This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit da4cd47636cb3833098f59a1ec48454848a24a56 Author: Benoit Tellier <[email protected]> AuthorDate: Fri Mar 6 23:09:57 2020 +0700 JAMES-3105 Guice bindings --- .../webadmin/InconsistencySolvingRoutesModule.java | 14 +++++++++++--- .../james/modules/TaskSerializationModule.java | 13 +++++++++++++ ...bAdminServerTaskSerializationIntegrationTest.java | 20 ++++++++++++++++++++ 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/webadmin/InconsistencySolvingRoutesModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/webadmin/InconsistencySolvingRoutesModule.java index bf995c1..baf4402 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/webadmin/InconsistencySolvingRoutesModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/webadmin/InconsistencySolvingRoutesModule.java @@ -19,9 +19,12 @@ package org.apache.james.modules.webadmin; +import org.apache.james.mailbox.cassandra.mail.task.RecomputeMailboxCountersService; +import org.apache.james.mailbox.cassandra.mail.task.SolveMailboxInconsistenciesService; import org.apache.james.webadmin.Routes; import org.apache.james.webadmin.routes.CassandraMappingsRoutes; import org.apache.james.webadmin.routes.MailboxesRoutes; +import org.apache.james.webadmin.routes.RecomputeMailboxCountersRequestToTask; import org.apache.james.webadmin.routes.SolveMailboxInconsistenciesRequestToTask; import org.apache.james.webadmin.service.CassandraMappingsService; import org.apache.james.webadmin.tasks.TaskFromRequestRegistry; @@ -46,9 +49,14 @@ public class InconsistencySolvingRoutesModule extends AbstractModule { public static class SolveMailboxInconsistenciesModules extends AbstractModule { @Override protected void configure() { - Multibinder.newSetBinder(binder(), TaskFromRequestRegistry.TaskRegistration.class, - Names.named(MailboxesRoutes.ALL_MAILBOXES_TASKS)) - .addBinding().to(SolveMailboxInconsistenciesRequestToTask.class); + bind(RecomputeMailboxCountersService.class).in(Scopes.SINGLETON); + bind(SolveMailboxInconsistenciesService.class).in(Scopes.SINGLETON); + + Multibinder<TaskFromRequestRegistry.TaskRegistration> multiBinder = Multibinder.newSetBinder(binder(), + TaskFromRequestRegistry.TaskRegistration.class, Names.named(MailboxesRoutes.ALL_MAILBOXES_TASKS)); + + multiBinder.addBinding().to(SolveMailboxInconsistenciesRequestToTask.class); + multiBinder.addBinding().to(RecomputeMailboxCountersRequestToTask.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 30ef794..bf3f70f 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 @@ -35,6 +35,9 @@ import org.apache.james.json.DTOModule; import org.apache.james.mailbox.cassandra.mail.task.MailboxMergingTaskAdditionalInformationDTO; import org.apache.james.mailbox.cassandra.mail.task.MailboxMergingTaskDTO; import org.apache.james.mailbox.cassandra.mail.task.MailboxMergingTaskRunner; +import org.apache.james.mailbox.cassandra.mail.task.RecomputeMailboxCountersService; +import org.apache.james.mailbox.cassandra.mail.task.RecomputeMailboxCountersTaskAdditionalInformationDTO; +import org.apache.james.mailbox.cassandra.mail.task.RecomputeMailboxCountersTaskDTO; import org.apache.james.mailbox.cassandra.mail.task.SolveMailboxInconsistenciesService; import org.apache.james.mailbox.cassandra.mail.task.SolveMailboxInconsistenciesTaskAdditionalInformationDTO; import org.apache.james.mailbox.cassandra.mail.task.SolveMailboxInconsistenciesTaskDTO; @@ -260,6 +263,11 @@ public class TaskSerializationModule extends AbstractModule { } @ProvidesIntoSet + public TaskDTOModule<? extends Task, ? extends TaskDTO> recomputeMailboxCountersTask(RecomputeMailboxCountersService service) { + return RecomputeMailboxCountersTaskDTO.module(service); + } + + @ProvidesIntoSet public TaskDTOModule<? extends Task, ? extends TaskDTO> messageIdReindexingTask(MessageIdReIndexingTask.Factory factory) { return MessageIdReindexingTaskDTO.module(factory); } @@ -370,6 +378,11 @@ public class TaskSerializationModule extends AbstractModule { } @ProvidesIntoSet + public AdditionalInformationDTOModule<? extends TaskExecutionDetails.AdditionalInformation, ? extends AdditionalInformationDTO> recomputeMailboxCountersAdditionalInformation() { + return RecomputeMailboxCountersTaskAdditionalInformationDTO.MODULE; + } + + @ProvidesIntoSet public AdditionalInformationDTOModule<? extends TaskExecutionDetails.AdditionalInformation, ? extends AdditionalInformationDTO> messageIdReindexingAdditionalInformation(MessageId.Factory messageIdFactory) { return MessageIdReindexingTaskAdditionalInformationDTO.serializationModule(messageIdFactory); } diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java index af117df..fe77c70 100644 --- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java +++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java @@ -739,6 +739,26 @@ class RabbitMQWebAdminServerTaskSerializationIntegrationTest { .body("additionalInformation.errorMappingsCount", is(0)); } + @Test + void recomputeMailboxCountersShouldComplete() { + String taskId = with() + .basePath("/mailboxes") + .queryParam("task", "RecomputeMailboxCounters") + .post() + .jsonPath() + .get("taskId"); + + given() + .basePath(TasksRoutes.BASE) + .when() + .get(taskId + "/await") + .then() + .body("status", is("completed")) + .body("taskId", is(taskId)) + .body("type", is("recompute-mailbox-counters")) + .body("additionalInformation.processedMailboxes", is(0)); + } + private MailboxListener.MailboxAdded createMailboxAdded() { String uuid = "6e0dd59d-660e-4d9b-b22f-0354479f47b4"; return EventFactory.mailboxAdded() --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
