This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit cf6fb9f7661a8de5bd8ef75319474b30f544146e
Author: Lan <[email protected]>
AuthorDate: Fri Mar 6 17:28:31 2020 +0700

    JAMES-3072 MailboxesExportTask guice binding
---
 .../james/mailbox/backup/DefaultMailboxBackup.java |  3 +++
 .../mailbox/backup/ZipMailArchiveRestorer.java     |  3 +++
 .../apache/james/mailbox/backup/zip/Zipper.java    |  3 +++
 .../james/modules/TaskSerializationModule.java     | 13 ++++++++++
 .../james/modules/server/MailboxRoutesModule.java  | 28 ++++++++++++++++++++++
 5 files changed, 50 insertions(+)

diff --git 
a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/DefaultMailboxBackup.java
 
b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/DefaultMailboxBackup.java
index 856c094..62dc067 100644
--- 
a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/DefaultMailboxBackup.java
+++ 
b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/DefaultMailboxBackup.java
@@ -24,6 +24,8 @@ import java.io.OutputStream;
 import java.util.List;
 import java.util.stream.Stream;
 
+import javax.inject.Inject;
+
 import org.apache.james.core.Username;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
@@ -77,6 +79,7 @@ public class DefaultMailboxBackup implements MailboxBackup {
     private final ArchiveService archiveService;
     private final MailArchiveRestorer archiveRestorer;
 
+    @Inject
     public DefaultMailboxBackup(MailboxManager mailboxManager, ArchiveService 
archiveService, MailArchiveRestorer archiveRestorer) {
         this.mailboxManager = mailboxManager;
         this.archiveService = archiveService;
diff --git 
a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/ZipMailArchiveRestorer.java
 
b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/ZipMailArchiveRestorer.java
index 07c0e82..e592d28 100644
--- 
a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/ZipMailArchiveRestorer.java
+++ 
b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/ZipMailArchiveRestorer.java
@@ -25,6 +25,8 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Stream;
 
+import javax.inject.Inject;
+
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.james.core.Username;
 import org.apache.james.mailbox.MailboxManager;
@@ -48,6 +50,7 @@ public class ZipMailArchiveRestorer implements 
MailArchiveRestorer {
     private final MailboxManager mailboxManager;
     private final MailArchivesLoader archiveLoader;
 
+    @Inject
     public ZipMailArchiveRestorer(MailboxManager mailboxManager, 
MailArchivesLoader archiveLoader) {
         this.mailboxManager = mailboxManager;
         this.archiveLoader = archiveLoader;
diff --git 
a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/Zipper.java 
b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/Zipper.java
index 4077c1e..5a6615e 100644
--- 
a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/Zipper.java
+++ 
b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/Zipper.java
@@ -27,6 +27,8 @@ import java.io.PrintWriter;
 import java.util.List;
 import java.util.stream.Stream;
 
+import javax.inject.Inject;
+
 import org.apache.commons.compress.archivers.zip.ExtraFieldUtils;
 import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
 import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
@@ -51,6 +53,7 @@ public class Zipper implements ArchiveService {
     private static final boolean AUTO_FLUSH = true;
     private static final Logger LOGGER = LoggerFactory.getLogger(Zipper.class);
 
+    @Inject
     public Zipper() {
         ExtraFieldUtils.register(SizeExtraField.class);
         ExtraFieldUtils.register(UidExtraField.class);
diff --git 
a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/TaskSerializationModule.java
 
b/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/TaskSerializationModule.java
index bf3f70f..2b03f57 100644
--- 
a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/TaskSerializationModule.java
+++ 
b/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/TaskSerializationModule.java
@@ -77,6 +77,9 @@ import 
org.apache.james.webadmin.service.EventDeadLettersRedeliverGroupTaskDTO;
 import org.apache.james.webadmin.service.EventDeadLettersRedeliverOneTaskDTO;
 import org.apache.james.webadmin.service.EventDeadLettersRedeliverService;
 import 
org.apache.james.webadmin.service.EventDeadLettersRedeliveryTaskAdditionalInformationDTO;
+import org.apache.james.webadmin.service.ExportService;
+import org.apache.james.webadmin.service.MailboxesExportTask;
+import 
org.apache.james.webadmin.service.MailboxesExportTaskAdditionalInformationDTO;
 import 
org.apache.james.webadmin.service.ReprocessingAllMailsTaskAdditionalInformationDTO;
 import org.apache.james.webadmin.service.ReprocessingAllMailsTaskDTO;
 import 
org.apache.james.webadmin.service.ReprocessingOneMailTaskAdditionalInformationDTO;
@@ -203,6 +206,11 @@ public class TaskSerializationModule extends 
AbstractModule {
     }
 
     @ProvidesIntoSet
+    public TaskDTOModule<? extends Task, ? extends TaskDTO> 
mailboxesExportTask(ExportService exportService) {
+        return MailboxesExportTask.module(exportService);
+    }
+
+    @ProvidesIntoSet
     public TaskDTOModule<? extends Task, ? extends TaskDTO> 
clearMailRepositoryTask(ClearMailRepositoryTask.Factory factory) {
         return ClearMailRepositoryTaskDTO.module(factory);
     }
@@ -427,6 +435,11 @@ public class TaskSerializationModule extends 
AbstractModule {
         return 
RecomputeUserFastViewTaskAdditionalInformationDTO.SERIALIZATION_MODULE;
     }
 
+    @ProvidesIntoSet
+    public AdditionalInformationDTOModule<? extends 
TaskExecutionDetails.AdditionalInformation, ? extends  
AdditionalInformationDTO> mailboxesExportAdditionalInformation() {
+        return 
MailboxesExportTaskAdditionalInformationDTO.SERIALIZATION_MODULE;
+    }
+
     @Named(EventNestedTypes.EVENT_NESTED_TYPES_INJECTION_NAME)
     @Provides
     public Set<DTOModule<?, ? extends org.apache.james.json.DTO>> 
eventNestedTypes(Set<AdditionalInformationDTOModule<? extends 
TaskExecutionDetails.AdditionalInformation, ? extends  
AdditionalInformationDTO>> additionalInformationDTOModules,
diff --git 
a/server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxRoutesModule.java
 
b/server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxRoutesModule.java
index 42a7c88..fb14490 100644
--- 
a/server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxRoutesModule.java
+++ 
b/server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxRoutesModule.java
@@ -24,6 +24,14 @@ import static 
org.apache.james.webadmin.routes.MailboxesRoutes.ONE_MAILBOX_TASKS
 import static org.apache.james.webadmin.routes.MailboxesRoutes.ONE_MAIL_TASKS;
 import static 
org.apache.james.webadmin.routes.UserMailboxesRoutes.USER_MAILBOXES_OPERATIONS_INJECTION_KEY;
 
+import org.apache.james.mailbox.backup.ArchiveService;
+import org.apache.james.mailbox.backup.DefaultMailboxBackup;
+import org.apache.james.mailbox.backup.MailArchiveRestorer;
+import org.apache.james.mailbox.backup.MailArchivesLoader;
+import org.apache.james.mailbox.backup.MailboxBackup;
+import org.apache.james.mailbox.backup.ZipMailArchiveRestorer;
+import org.apache.james.mailbox.backup.zip.ZipArchivesLoader;
+import org.apache.james.mailbox.backup.zip.Zipper;
 import org.apache.james.webadmin.Routes;
 import org.apache.james.webadmin.jackson.QuotaModule;
 import org.apache.james.webadmin.routes.DomainQuotaRoutes;
@@ -32,10 +40,14 @@ import org.apache.james.webadmin.routes.GlobalQuotaRoutes;
 import org.apache.james.webadmin.routes.MailboxesRoutes;
 import org.apache.james.webadmin.routes.UserMailboxesRoutes;
 import org.apache.james.webadmin.routes.UserQuotaRoutes;
+import org.apache.james.webadmin.service.ExportService;
+import org.apache.james.webadmin.service.MailboxesExportRequestToTask;
+import org.apache.james.webadmin.tasks.TaskFromRequestRegistry;
 import 
org.apache.james.webadmin.tasks.TaskFromRequestRegistry.TaskRegistration;
 import org.apache.james.webadmin.utils.JsonTransformerModule;
 
 import com.google.inject.AbstractModule;
+import com.google.inject.Scopes;
 import com.google.inject.multibindings.Multibinder;
 import com.google.inject.name.Names;
 
@@ -58,5 +70,21 @@ public class MailboxRoutesModule extends AbstractModule {
         Multibinder.newSetBinder(binder(), TaskRegistration.class, 
Names.named(ALL_MAILBOXES_TASKS));
         Multibinder.newSetBinder(binder(), TaskRegistration.class, 
Names.named(ONE_MAILBOX_TASKS));
         Multibinder.newSetBinder(binder(), TaskRegistration.class, 
Names.named(ONE_MAIL_TASKS));
+
+        bind(Zipper.class).in(Scopes.SINGLETON);
+        bind(ArchiveService.class).to(Zipper.class);
+
+        bind(ZipMailArchiveRestorer.class).in(Scopes.SINGLETON);
+        bind(MailArchiveRestorer.class).to(ZipMailArchiveRestorer.class);
+
+        bind(ZipArchivesLoader.class).in(Scopes.SINGLETON);
+        bind(MailArchivesLoader.class).to(ZipArchivesLoader.class);
+
+        bind(DefaultMailboxBackup.class).in(Scopes.SINGLETON);
+        bind(MailboxBackup.class).to(DefaultMailboxBackup.class);
+
+        bind(ExportService.class).in(Scopes.SINGLETON);
+        Multibinder.newSetBinder(binder(), 
TaskFromRequestRegistry.TaskRegistration.class, 
Names.named(UserMailboxesRoutes.USER_MAILBOXES_OPERATIONS_INJECTION_KEY))
+            .addBinding().to(MailboxesExportRequestToTask.class);
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to