-// protected void migrateFoldersToFs(Path baseDir, Folder sourceFolder) throws MessagingException, IOException {
-// folders: for (Folder folder : sourceFolder.list()) {
-// String folderName = folder.getName();
-//
-// if ((folder.getType() & Folder.HOLDS_MESSAGES) != 0) {
-// // Make it configurable
-// switch (folderName) {
-// case "All Mail":
-// case "Important":
-// continue folders;
-// default:
-// // doe nothing
-// }
-// migrateFolderToFs(baseDir, folder);
-// }
-// if ((folder.getType() & Folder.HOLDS_FOLDERS) != 0) {
-// migrateFoldersToFs(baseDir.resolve(folder.getName()), folder);
-// }
-// }
-// }
-
-// protected void migrateFolderToFs(Path baseDir, Folder sourceFolder) throws MessagingException, IOException {
-//
-// String folderName = sourceFolder.getName();
-// sourceFolder.open(Folder.READ_ONLY);
-//
-// Folder targetFolder = null;
-// try {
-// int messageCount = sourceFolder.getMessageCount();
-// logger.log(DEBUG, folderName + " - Message count : " + messageCount);
-// if (messageCount == 0)
-// return;
-//// logger.log(DEBUG, folderName + " - Unread Messages : " + sourceFolder.getUnreadMessageCount());
-//
-// boolean saveAsFiles = false;
-//
-// if (saveAsFiles) {
-// Message messages[] = sourceFolder.getMessages();
-//
-// for (int i = 0; i < messages.length; ++i) {
-//// logger.log(DEBUG, "MESSAGE #" + (i + 1) + ":");
-// Message msg = messages[i];
-//// String from = "unknown";
-//// if (msg.getReplyTo().length >= 1) {
-//// from = msg.getReplyTo()[0].toString();
-//// } else if (msg.getFrom().length >= 1) {
-//// from = msg.getFrom()[0].toString();
-//// }
-// String subject = msg.getSubject();
-// Instant sentDate = msg.getSentDate().toInstant();
-//// logger.log(DEBUG, "Saving ... " + subject + " from " + from + " (" + sentDate + ")");
-// String fileName = sentDate + " " + subject;
-// Path file = baseDir.resolve(fileName);
-// savePartsAsFiles(msg.getContent(), file);
-// }
-// }
-// else {
-// long begin = System.currentTimeMillis();
-// targetFolder = openMboxTargetFolder(sourceFolder, baseDir);
-// migrateFolder(sourceFolder, targetFolder);
-// long duration = System.currentTimeMillis() - begin;
-// logger.log(DEBUG, folderName + " - Migration of " + messageCount + " messages took " + (duration / 1000)
-// + " s (" + (duration / messageCount) + " ms per message)");
-// }
-// } finally {
-// sourceFolder.close();
-// if (targetFolder != null)
-// targetFolder.close();
-// }
-// }
+ protected void migrateFoldersToFs(Path baseDir, Folder sourceFolder) throws MessagingException, IOException {
+ folders: for (Folder folder : sourceFolder.list()) {
+ String folderName = folder.getName();
+
+ if ((folder.getType() & Folder.HOLDS_MESSAGES) != 0) {
+ // Make it configurable
+ switch (folderName) {
+ case "All Mail":
+ case "Important":
+ continue folders;
+ default:
+ // doe nothing
+ }
+ migrateFolderToFs(baseDir, folder);
+ }
+ if ((folder.getType() & Folder.HOLDS_FOLDERS) != 0) {
+ migrateFoldersToFs(baseDir.resolve(folder.getName()), folder);
+ }
+ }
+ }
+
+ protected void migrateFolderToFs(Path baseDir, Folder sourceFolder) throws MessagingException, IOException {
+
+ String folderName = sourceFolder.getName();
+ sourceFolder.open(Folder.READ_ONLY);
+
+ Folder targetFolder = null;
+ try {
+ int messageCount = sourceFolder.getMessageCount();
+ logger.log(DEBUG, folderName + " - Message count : " + messageCount);
+ if (messageCount == 0)
+ return;
+// logger.log(DEBUG, folderName + " - Unread Messages : " + sourceFolder.getUnreadMessageCount());
+
+ boolean saveAsFiles = false;
+
+ if (saveAsFiles) {
+ Message messages[] = sourceFolder.getMessages();
+
+ for (int i = 0; i < messages.length; ++i) {
+// logger.log(DEBUG, "MESSAGE #" + (i + 1) + ":");
+ Message msg = messages[i];
+// String from = "unknown";
+// if (msg.getReplyTo().length >= 1) {
+// from = msg.getReplyTo()[0].toString();
+// } else if (msg.getFrom().length >= 1) {
+// from = msg.getFrom()[0].toString();
+// }
+ String subject = msg.getSubject();
+ Instant sentDate = msg.getSentDate().toInstant();
+// logger.log(DEBUG, "Saving ... " + subject + " from " + from + " (" + sentDate + ")");
+ String fileName = sentDate + " " + subject;
+ Path file = baseDir.resolve(fileName);
+ savePartsAsFiles(msg.getContent(), file);
+ }
+ }
+ else {
+ long begin = System.currentTimeMillis();
+ targetFolder = openMboxTargetFolder(sourceFolder, baseDir);
+ migrateFolder(sourceFolder, targetFolder);
+ long duration = System.currentTimeMillis() - begin;
+ logger.log(DEBUG, folderName + " - Migration of " + messageCount + " messages took " + (duration / 1000)
+ + " s (" + (duration / messageCount) + " ms per message)");
+ }
+ } finally {
+ sourceFolder.close();
+ if (targetFolder != null)
+ targetFolder.close();
+ }
+ }