JAMES-2436 Don't do the loops in the public method
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/49c2a841 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/49c2a841 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/49c2a841 Branch: refs/heads/master Commit: 49c2a841de7a24c5bb842038be69163920029550 Parents: 628420f Author: Antoine Duprat <[email protected]> Authored: Thu Jun 21 15:05:20 2018 +0200 Committer: Raphael Ouazana <[email protected]> Committed: Wed Jun 27 16:41:40 2018 +0200 ---------------------------------------------------------------------- .../org/apache/james/mailbox/backup/Zipper.java | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/49c2a841/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/Zipper.java ---------------------------------------------------------------------- diff --git a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/Zipper.java b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/Zipper.java index a249a9f..3a1314c 100644 --- a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/Zipper.java +++ b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/Zipper.java @@ -46,16 +46,24 @@ public class Zipper implements Backup { @Override public void archive(List<Mailbox> mailboxes, Stream<MailboxMessage> messages, OutputStream destination) throws IOException { try (ZipArchiveOutputStream archiveOutputStream = new ZipArchiveOutputStream(destination)) { - for (Mailbox mailbox: mailboxes) { - storeInArchive(mailbox, archiveOutputStream); - } - messages.forEach(Throwing.<MailboxMessage>consumer(message -> { - storeInArchive(message, archiveOutputStream); - }).sneakyThrow()); + storeMailboxes(mailboxes, archiveOutputStream); + storeMessages(messages, archiveOutputStream); archiveOutputStream.finish(); } } + private void storeMailboxes(List<Mailbox> mailboxes, ZipArchiveOutputStream archiveOutputStream) throws IOException { + for (Mailbox mailbox: mailboxes) { + storeInArchive(mailbox, archiveOutputStream); + } + } + + private void storeMessages(Stream<MailboxMessage> messages, ZipArchiveOutputStream archiveOutputStream) { + messages.forEach(Throwing.<MailboxMessage>consumer(message -> { + storeInArchive(message, archiveOutputStream); + }).sneakyThrow()); + } + private void storeInArchive(Mailbox mailbox, ZipArchiveOutputStream archiveOutputStream) throws IOException { String name = mailbox.getName(); ZipArchiveEntry archiveEntry = (ZipArchiveEntry) archiveOutputStream.createArchiveEntry(new Directory(name), name); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
