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]
