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 c8ab2ff90046aa4bccee469d08fde59d1c66fc13
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Mon Dec 16 14:06:03 2019 +0700

    JAMES-2993 Guice bindings for JMAP preview re-computing
---
 pom.xml                                            |  5 +++
 server/container/guice/cassandra-guice/pom.xml     |  4 ++
 .../org/apache/james/CassandraJamesServerMain.java | 10 +++--
 .../james/modules/TaskSerializationModule.java     | 13 ++++++
 server/container/guice/memory-guice/pom.xml        |  4 ++
 .../org/apache/james/MemoryJamesServerMain.java    |  8 ++--
 server/container/guice/pom.xml                     |  6 +++
 .../guice/protocols/webadmin-jmap/pom.xml          | 52 ++++++++++++++++++++++
 .../james/modules/server/JmapTasksModule.java}     | 10 +++--
 .../modules/server/MailboxesRoutesModule.java      |  4 ++
 ...uteAllFastViewProjectionItemsRequestToTask.java |  7 ++-
 ...> RecomputeAllFastViewProjectionItemsTask.java} | 13 +++---
 ...uteAllPreviewsTaskAdditionalInformationDTO.java |  8 ++--
 ...llFastViewProjectionItemsRequestToTaskTest.java |  8 ++--
 ...tionItemsTaskAdditionalInformationDTOTest.java} |  6 +--
 ...tViewProjectionItemsTaskSerializationTest.java} |  8 ++--
 .../james/webadmin/routes/MailboxesRoutes.java     | 12 ++++-
 .../james/webadmin/routes/MailboxesRoutesTest.java |  6 ++-
 18 files changed, 145 insertions(+), 39 deletions(-)

diff --git a/pom.xml b/pom.xml
index 1245413..bd6137e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1823,6 +1823,11 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
+                <artifactId>james-server-webadmin-jmap</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.groupId}</groupId>
                 <artifactId>james-server-webadmin-mailbox</artifactId>
                 <version>${project.version}</version>
             </dependency>
diff --git a/server/container/guice/cassandra-guice/pom.xml 
b/server/container/guice/cassandra-guice/pom.xml
index 347c693..01219bb 100644
--- a/server/container/guice/cassandra-guice/pom.xml
+++ b/server/container/guice/cassandra-guice/pom.xml
@@ -232,6 +232,10 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-guice-webadmin-jmap</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-guice-webadmin-mailbox</artifactId>
         </dependency>
         <dependency>
diff --git 
a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 
b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
index 67bf8b5..f62e1bd 100644
--- 
a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
+++ 
b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
@@ -59,6 +59,7 @@ import org.apache.james.modules.server.DLPRoutesModule;
 import org.apache.james.modules.server.DataRoutesModules;
 import org.apache.james.modules.server.ElasticSearchMetricReporterModule;
 import org.apache.james.modules.server.JMXServerModule;
+import org.apache.james.modules.server.JmapTasksModule;
 import org.apache.james.modules.server.MailQueueRoutesModule;
 import org.apache.james.modules.server.MailRepositoriesRoutesModule;
 import org.apache.james.modules.server.MailboxRoutesModule;
@@ -86,15 +87,16 @@ public class CassandraJamesServerMain {
         new CassandraDataRoutesModules(),
         new DataRoutesModules(),
         new DeletedMessageVaultRoutesModule(),
+        new DLPRoutesModule(),
+        new JmapTasksModule(),
+        new MailboxesRoutesModule(),
         new MailboxRoutesModule(),
         new MailQueueRoutesModule(),
         new MailRepositoriesRoutesModule(),
-        new SwaggerRoutesModule(),
-        new WebAdminServerModule(),
-        new DLPRoutesModule(),
         new ReIndexingModule(),
         new SieveRoutesModule(),
-        new MailboxesRoutesModule(),
+        new SwaggerRoutesModule(),
+        new WebAdminServerModule(),
         new MessagesRoutesModule());
 
     public static final Module PROTOCOLS = Modules.combine(
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 f75f0d8..6bf92c3 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
@@ -52,6 +52,9 @@ import 
org.apache.james.task.eventsourcing.distributed.TasksSerializationModule;
 import org.apache.james.vault.blob.BlobStoreVaultGarbageCollectionTask;
 import 
org.apache.james.vault.blob.BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO;
 import org.apache.james.vault.blob.BlobStoreVaultGarbageCollectionTaskDTO;
+import org.apache.james.webadmin.data.jmap.MessageFastViewProjectionCorrector;
+import 
org.apache.james.webadmin.data.jmap.RecomputeAllFastViewProjectionItemsTask;
+import 
org.apache.james.webadmin.data.jmap.RecomputeAllPreviewsTaskAdditionalInformationDTO;
 import 
org.apache.james.webadmin.service.CassandraMappingsSolveInconsistenciesTask;
 import 
org.apache.james.webadmin.service.ClearMailQueueTaskAdditionalInformationDTO;
 import org.apache.james.webadmin.service.ClearMailQueueTaskDTO;
@@ -174,6 +177,11 @@ public class TaskSerializationModule extends 
AbstractModule {
     }
 
     @ProvidesIntoSet
+    public TaskDTOModule<?, ?> 
recomputeAllJmapPreviewsTask(MessageFastViewProjectionCorrector corrector) {
+        return RecomputeAllFastViewProjectionItemsTask.module(corrector);
+    }
+
+    @ProvidesIntoSet
     public TaskDTOModule<?, ?> 
clearMailRepositoryTask(ClearMailRepositoryTask.Factory factory) {
         return ClearMailRepositoryTaskDTO.module(factory);
     }
@@ -368,6 +376,11 @@ public class TaskSerializationModule extends 
AbstractModule {
         return 
UserReindexingTaskAdditionalInformationDTO.serializationModule(mailboxIdFactory);
     }
 
+    @ProvidesIntoSet
+    public AdditionalInformationDTOModule<?, ?> 
recomputeAllJmapPreviewsAdditionalInformation() {
+        return 
RecomputeAllPreviewsTaskAdditionalInformationDTO.SERIALIZATION_MODULE;
+    }
+
     @Named(EVENT_NESTED_TYPES_INJECTION_NAME)
     @Provides
     public Set<DTOModule<?, ?>> 
eventNestedTypes(Set<AdditionalInformationDTOModule<?, ?>> 
additionalInformationDTOModules,
diff --git a/server/container/guice/memory-guice/pom.xml 
b/server/container/guice/memory-guice/pom.xml
index 84d5c99..34e4b4a 100644
--- a/server/container/guice/memory-guice/pom.xml
+++ b/server/container/guice/memory-guice/pom.xml
@@ -148,6 +148,10 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-guice-webadmin-jmap</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-guice-webadmin-mailbox</artifactId>
         </dependency>
         <dependency>
diff --git 
a/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
 
b/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
index 87c8d4c..489b055 100644
--- 
a/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
+++ 
b/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
@@ -42,6 +42,7 @@ import org.apache.james.modules.server.DKIMMailetModule;
 import org.apache.james.modules.server.DLPRoutesModule;
 import org.apache.james.modules.server.DataRoutesModules;
 import org.apache.james.modules.server.JMXServerModule;
+import org.apache.james.modules.server.JmapTasksModule;
 import org.apache.james.modules.server.MailQueueRoutesModule;
 import org.apache.james.modules.server.MailRepositoriesRoutesModule;
 import org.apache.james.modules.server.MailboxRoutesModule;
@@ -68,12 +69,13 @@ public class MemoryJamesServerMain {
         new WebAdminServerModule(),
         new DataRoutesModules(),
         new DeletedMessageVaultRoutesModule(),
+        new DLPRoutesModule(),
+        new JmapTasksModule(),
         new MailboxRoutesModule(),
         new MailQueueRoutesModule(),
         new MailRepositoriesRoutesModule(),
-        new SwaggerRoutesModule(),
-        new DLPRoutesModule(),
-        new SieveRoutesModule());
+        new SieveRoutesModule(),
+        new SwaggerRoutesModule());
 
 
     public static final JwtConfiguration NO_JWT_CONFIGURATION = new 
JwtConfiguration(Optional.empty());
diff --git a/server/container/guice/pom.xml b/server/container/guice/pom.xml
index 0ac4ab6..9cefaf5 100644
--- a/server/container/guice/pom.xml
+++ b/server/container/guice/pom.xml
@@ -69,6 +69,7 @@
         <module>protocols/webadmin-cassandra</module>
         <module>protocols/webadmin-cassandra-data</module>
         <module>protocols/webadmin-data</module>
+        <module>protocols/webadmin-jmap</module>
         <module>protocols/webadmin-mailbox</module>
         <module>protocols/webadmin-mailqueue</module>
         <module>protocols/webadmin-mailrepository</module>
@@ -196,6 +197,11 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
+                <artifactId>james-server-guice-webadmin-jmap</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.groupId}</groupId>
                 <artifactId>james-server-guice-webadmin-mailbox</artifactId>
                 <version>${project.version}</version>
             </dependency>
diff --git a/server/container/guice/protocols/webadmin-jmap/pom.xml 
b/server/container/guice/protocols/webadmin-jmap/pom.xml
new file mode 100644
index 0000000..39cc21a
--- /dev/null
+++ b/server/container/guice/protocols/webadmin-jmap/pom.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements. See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership. The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License. You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied. See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.james</groupId>
+        <artifactId>james-server-guice</artifactId>
+        <version>3.5.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>james-server-guice-webadmin-jmap</artifactId>
+
+    <name>Apache James :: Server :: Guice :: Webadmin :: JMAP</name>
+    <description>Webadmin jmap modules for Guice implementation of James 
server</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-webadmin-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-webadmin-mailbox</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-webadmin-jmap</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.inject</groupId>
+            <artifactId>guice</artifactId>
+        </dependency>
+    </dependencies>
+</project>
diff --git 
a/server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxesRoutesModule.java
 
b/server/container/guice/protocols/webadmin-jmap/src/main/java/org/apache/james/modules/server/JmapTasksModule.java
similarity index 75%
copy from 
server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxesRoutesModule.java
copy to 
server/container/guice/protocols/webadmin-jmap/src/main/java/org/apache/james/modules/server/JmapTasksModule.java
index 9075f34..9db7450 100644
--- 
a/server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxesRoutesModule.java
+++ 
b/server/container/guice/protocols/webadmin-jmap/src/main/java/org/apache/james/modules/server/JmapTasksModule.java
@@ -19,16 +19,18 @@
 
 package org.apache.james.modules.server;
 
-import org.apache.james.webadmin.Routes;
+import 
org.apache.james.webadmin.data.jmap.RecomputeAllFastViewProjectionItemsRequestToTask;
 import org.apache.james.webadmin.routes.MailboxesRoutes;
+import org.apache.james.webadmin.tasks.TaskFromRequestRegistry;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.multibindings.Multibinder;
+import com.google.inject.name.Names;
 
-public class MailboxesRoutesModule extends AbstractModule {
+public class JmapTasksModule extends AbstractModule {
     @Override
     protected void configure() {
-        Multibinder<Routes> routesMultibinder = 
Multibinder.newSetBinder(binder(), Routes.class);
-        routesMultibinder.addBinding().to(MailboxesRoutes.class);
+        Multibinder.newSetBinder(binder(), 
TaskFromRequestRegistry.TaskRegistration.class, 
Names.named(MailboxesRoutes.ALL_MAILBOXES_TASKS))
+            
.addBinding().to(RecomputeAllFastViewProjectionItemsRequestToTask.class);
     }
 }
diff --git 
a/server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxesRoutesModule.java
 
b/server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxesRoutesModule.java
index 9075f34..a6d7e86 100644
--- 
a/server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxesRoutesModule.java
+++ 
b/server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxesRoutesModule.java
@@ -21,14 +21,18 @@ package org.apache.james.modules.server;
 
 import org.apache.james.webadmin.Routes;
 import org.apache.james.webadmin.routes.MailboxesRoutes;
+import 
org.apache.james.webadmin.tasks.TaskFromRequestRegistry.TaskRegistration;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.multibindings.Multibinder;
+import com.google.inject.name.Names;
 
 public class MailboxesRoutesModule extends AbstractModule {
     @Override
     protected void configure() {
         Multibinder<Routes> routesMultibinder = 
Multibinder.newSetBinder(binder(), Routes.class);
         routesMultibinder.addBinding().to(MailboxesRoutes.class);
+
+        Multibinder.newSetBinder(binder(), TaskRegistration.class, 
Names.named(MailboxesRoutes.ALL_MAILBOXES_TASKS));
     }
 }
diff --git 
a/server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsRequestToTask.java
 
b/server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsRequestToTask.java
index a5810e1..e8d8a23 100644
--- 
a/server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsRequestToTask.java
+++ 
b/server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsRequestToTask.java
@@ -19,11 +19,14 @@
 
 package org.apache.james.webadmin.data.jmap;
 
+import javax.inject.Inject;
+
 import org.apache.james.webadmin.tasks.TaskFromRequestRegistry;
 
 public class RecomputeAllFastViewProjectionItemsRequestToTask extends 
TaskFromRequestRegistry.TaskRegistration {
-    public 
RecomputeAllFastViewProjectionItemsRequestToTask(MessageFastViewProjectionCorrector
 corrector) {
+    @Inject
+    
RecomputeAllFastViewProjectionItemsRequestToTask(MessageFastViewProjectionCorrector
 corrector) {
         super(Constants.TASK_REGISTRATION_KEY,
-            request -> new RecomputeAllPreviewsTask(corrector));
+            request -> new RecomputeAllFastViewProjectionItemsTask(corrector));
     }
 }
diff --git 
a/server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTask.java
 
b/server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsTask.java
similarity index 88%
rename from 
server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTask.java
rename to 
server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsTask.java
index 99b5b8d..88f4a64 100644
--- 
a/server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTask.java
+++ 
b/server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsTask.java
@@ -21,7 +21,6 @@ package org.apache.james.webadmin.data.jmap;
 
 import java.time.Clock;
 import java.time.Instant;
-import java.util.Objects;
 import java.util.Optional;
 
 import org.apache.james.json.DTOModule;
@@ -35,8 +34,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 
 import reactor.core.scheduler.Schedulers;
 
-public class RecomputeAllPreviewsTask implements Task {
-    static final TaskType TASK_TYPE = TaskType.of("RecomputeAllPreviewsTask");
+public class RecomputeAllFastViewProjectionItemsTask implements Task {
+    static final TaskType TASK_TYPE = 
TaskType.of("RecomputeAllFastViewProjectionItemsTask");
 
     public static class AdditionalInformation implements 
TaskExecutionDetails.AdditionalInformation {
         private static AdditionalInformation 
from(MessageFastViewProjectionCorrector.Progress progress) {
@@ -97,11 +96,11 @@ public class RecomputeAllPreviewsTask implements Task {
         }
     }
 
-    public static TaskDTOModule<RecomputeAllPreviewsTask, 
RecomputeAllPreviousTaskDTO> module(MessageFastViewProjectionCorrector 
corrector) {
+    public static TaskDTOModule<RecomputeAllFastViewProjectionItemsTask, 
RecomputeAllPreviousTaskDTO> module(MessageFastViewProjectionCorrector 
corrector) {
         return DTOModule
-            .forDomainObject(RecomputeAllPreviewsTask.class)
+            .forDomainObject(RecomputeAllFastViewProjectionItemsTask.class)
             .convertToDTO(RecomputeAllPreviousTaskDTO.class)
-            .toDomainObjectConverter(dto -> new 
RecomputeAllPreviewsTask(corrector))
+            .toDomainObjectConverter(dto -> new 
RecomputeAllFastViewProjectionItemsTask(corrector))
             .toDTOConverter((task, type) -> new 
RecomputeAllPreviousTaskDTO(type))
             .typeName(TASK_TYPE.asString())
             .withFactory(TaskDTOModule::new);
@@ -110,7 +109,7 @@ public class RecomputeAllPreviewsTask implements Task {
     private final MessageFastViewProjectionCorrector corrector;
     private final MessageFastViewProjectionCorrector.Progress progress;
 
-    RecomputeAllPreviewsTask(MessageFastViewProjectionCorrector corrector) {
+    RecomputeAllFastViewProjectionItemsTask(MessageFastViewProjectionCorrector 
corrector) {
         this.corrector = corrector;
         this.progress = new MessageFastViewProjectionCorrector.Progress();
     }
diff --git 
a/server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTaskAdditionalInformationDTO.java
 
b/server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTaskAdditionalInformationDTO.java
index aab6aa7..56478e6 100644
--- 
a/server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTaskAdditionalInformationDTO.java
+++ 
b/server/protocols/webadmin/webadmin-data-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTaskAdditionalInformationDTO.java
@@ -29,10 +29,10 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.annotations.VisibleForTesting;
 
 public class RecomputeAllPreviewsTaskAdditionalInformationDTO implements 
AdditionalInformationDTO {
-    public static final 
AdditionalInformationDTOModule<RecomputeAllPreviewsTask.AdditionalInformation, 
RecomputeAllPreviewsTaskAdditionalInformationDTO> SERIALIZATION_MODULE =
-        
DTOModule.forDomainObject(RecomputeAllPreviewsTask.AdditionalInformation.class)
+    public static final 
AdditionalInformationDTOModule<RecomputeAllFastViewProjectionItemsTask.AdditionalInformation,
 RecomputeAllPreviewsTaskAdditionalInformationDTO> SERIALIZATION_MODULE =
+        
DTOModule.forDomainObject(RecomputeAllFastViewProjectionItemsTask.AdditionalInformation.class)
             
.convertToDTO(RecomputeAllPreviewsTaskAdditionalInformationDTO.class)
-            .toDomainObjectConverter(dto -> new 
RecomputeAllPreviewsTask.AdditionalInformation(
+            .toDomainObjectConverter(dto -> new 
RecomputeAllFastViewProjectionItemsTask.AdditionalInformation(
                 dto.getProcessedUserCount(),
                 dto.getProcessedMessageCount(),
                 dto.getFailedUserCount(),
@@ -45,7 +45,7 @@ public class RecomputeAllPreviewsTaskAdditionalInformationDTO 
implements Additio
                 details.getProcessedMessageCount(),
                 details.getFailedUserCount(),
                 details.getFailedMessageCount()))
-            .typeName(RecomputeAllPreviewsTask.TASK_TYPE.asString())
+            
.typeName(RecomputeAllFastViewProjectionItemsTask.TASK_TYPE.asString())
             .withFactory(AdditionalInformationDTOModule::new);
 
     private final String type;
diff --git 
a/server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsRequestToTaskTest.java
 
b/server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsRequestToTaskTest.java
index a351095..1013e63 100644
--- 
a/server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsRequestToTaskTest.java
+++ 
b/server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsRequestToTaskTest.java
@@ -200,7 +200,7 @@ class RecomputeAllFastViewProjectionItemsRequestToTaskTest {
         .then()
             .body("status", is("completed"))
             .body("taskId", is(taskId))
-            .body("type", is("RecomputeAllPreviewsTask"))
+            .body("type", is("RecomputeAllFastViewProjectionItemsTask"))
             .body("additionalInformation.processedUserCount", is(0))
             .body("additionalInformation.processedMessageCount", is(0))
             .body("additionalInformation.failedUserCount", is(0))
@@ -227,7 +227,7 @@ class RecomputeAllFastViewProjectionItemsRequestToTaskTest {
         .then()
             .body("status", is("completed"))
             .body("taskId", is(taskId))
-            .body("type", is("RecomputeAllPreviewsTask"))
+            .body("type", is("RecomputeAllFastViewProjectionItemsTask"))
             .body("additionalInformation.processedUserCount", is(1))
             .body("additionalInformation.processedMessageCount", is(0))
             .body("additionalInformation.failedUserCount", is(0))
@@ -255,7 +255,7 @@ class RecomputeAllFastViewProjectionItemsRequestToTaskTest {
         .then()
             .body("status", is("completed"))
             .body("taskId", is(taskId))
-            .body("type", is("RecomputeAllPreviewsTask"))
+            .body("type", is("RecomputeAllFastViewProjectionItemsTask"))
             .body("additionalInformation.processedUserCount", is(1))
             .body("additionalInformation.processedMessageCount", is(0))
             .body("additionalInformation.failedUserCount", is(0))
@@ -287,7 +287,7 @@ class RecomputeAllFastViewProjectionItemsRequestToTaskTest {
         .then()
             .body("status", is("completed"))
             .body("taskId", is(taskId))
-            .body("type", is("RecomputeAllPreviewsTask"))
+            .body("type", is("RecomputeAllFastViewProjectionItemsTask"))
             .body("additionalInformation.processedUserCount", is(1))
             .body("additionalInformation.processedMessageCount", is(1))
             .body("additionalInformation.failedUserCount", is(0))
diff --git 
a/server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTaskAdditionalInformationDTOTest.java
 
b/server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsTaskAdditionalInformationDTOTest.java
similarity index 87%
rename from 
server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTaskAdditionalInformationDTOTest.java
rename to 
server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsTaskAdditionalInformationDTOTest.java
index 5fad6d9..d1111bb 100644
--- 
a/server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTaskAdditionalInformationDTOTest.java
+++ 
b/server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsTaskAdditionalInformationDTOTest.java
@@ -25,11 +25,9 @@ import org.apache.james.JsonSerializationVerifier;
 import org.apache.james.util.ClassLoaderUtils;
 import org.junit.jupiter.api.Test;
 
-import nl.jqno.equalsverifier.EqualsVerifier;
-
-class RecomputeAllPreviewsTaskAdditionalInformationDTOTest {
+class RecomputeAllFastViewProjectionItemsTaskAdditionalInformationDTOTest {
     private static final Instant INSTANT = 
Instant.parse("2007-12-03T10:15:30.00Z");
-    private static final RecomputeAllPreviewsTask.AdditionalInformation 
DOMAIN_OBJECT = new RecomputeAllPreviewsTask.AdditionalInformation(1, 2, 3, 4, 
INSTANT);
+    private static final 
RecomputeAllFastViewProjectionItemsTask.AdditionalInformation DOMAIN_OBJECT = 
new RecomputeAllFastViewProjectionItemsTask.AdditionalInformation(1, 2, 3, 4, 
INSTANT);
 
     @Test
     void shouldMatchJsonSerializationContract() throws Exception {
diff --git 
a/server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTaskSerializationTest.java
 
b/server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsTaskSerializationTest.java
similarity index 88%
rename from 
server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTaskSerializationTest.java
rename to 
server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsTaskSerializationTest.java
index 177a2b6..3d1b949 100644
--- 
a/server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllPreviewsTaskSerializationTest.java
+++ 
b/server/protocols/webadmin/webadmin-data-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsTaskSerializationTest.java
@@ -26,9 +26,7 @@ import org.apache.james.util.ClassLoaderUtils;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import nl.jqno.equalsverifier.EqualsVerifier;
-
-class RecomputeAllPreviewsTaskSerializationTest {
+class RecomputeAllFastViewProjectionItemsTaskSerializationTest {
     MessageFastViewProjectionCorrector corrector;
 
     @BeforeEach
@@ -38,8 +36,8 @@ class RecomputeAllPreviewsTaskSerializationTest {
 
     @Test
     void shouldMatchJsonSerializationContract() throws Exception {
-        
JsonSerializationVerifier.dtoModule(RecomputeAllPreviewsTask.module(corrector))
-            .bean(new RecomputeAllPreviewsTask(corrector))
+        
JsonSerializationVerifier.dtoModule(RecomputeAllFastViewProjectionItemsTask.module(corrector))
+            .bean(new RecomputeAllFastViewProjectionItemsTask(corrector))
             
.json(ClassLoaderUtils.getSystemResourceAsString("json/recomputeAll.task.json"))
             .verify();
     }
diff --git 
a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/MailboxesRoutes.java
 
b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/MailboxesRoutes.java
index 5d644fd..f48f090 100644
--- 
a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/MailboxesRoutes.java
+++ 
b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/MailboxesRoutes.java
@@ -19,7 +19,10 @@
 
 package org.apache.james.webadmin.routes;
 
+import java.util.Set;
+
 import javax.inject.Inject;
+import javax.inject.Named;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
@@ -38,6 +41,7 @@ import org.apache.james.webadmin.Routes;
 import org.apache.james.webadmin.service.PreviousReIndexingService;
 import org.apache.james.webadmin.tasks.TaskFromRequest;
 import org.apache.james.webadmin.tasks.TaskFromRequestRegistry;
+import 
org.apache.james.webadmin.tasks.TaskFromRequestRegistry.TaskRegistration;
 import org.apache.james.webadmin.tasks.TaskIdDto;
 import org.apache.james.webadmin.tasks.TaskRegistrationKey;
 import org.apache.james.webadmin.utils.ErrorResponder;
@@ -68,20 +72,25 @@ public class MailboxesRoutes implements Routes {
     private static final String MESSAGE_PATH = MAILBOX_PATH + "/mails/" + 
UID_PARAM;
     static final TaskRegistrationKey RE_INDEX = 
TaskRegistrationKey.of("reIndex");
     static final String TASK_PARAMETER = "task";
+    public static final String ALL_MAILBOXES_TASKS = "allMailboxesTasks";
 
     private final TaskManager taskManager;
     private final PreviousReIndexingService previousReIndexingService;
     private final MailboxId.Factory mailboxIdFactory;
     private final ReIndexer reIndexer;
     private final JsonTransformer jsonTransformer;
+    private final Set<TaskRegistration> allMailboxesTaskRegistration;
 
     @Inject
-    MailboxesRoutes(TaskManager taskManager, PreviousReIndexingService 
previousReIndexingService, MailboxId.Factory mailboxIdFactory, ReIndexer 
reIndexer, JsonTransformer jsonTransformer) {
+    MailboxesRoutes(TaskManager taskManager, PreviousReIndexingService 
previousReIndexingService,
+                    MailboxId.Factory mailboxIdFactory, ReIndexer reIndexer, 
JsonTransformer jsonTransformer,
+                    @Named(ALL_MAILBOXES_TASKS) Set<TaskRegistration> 
allMailboxesTaskRegistration) {
         this.taskManager = taskManager;
         this.previousReIndexingService = previousReIndexingService;
         this.mailboxIdFactory = mailboxIdFactory;
         this.reIndexer = reIndexer;
         this.jsonTransformer = jsonTransformer;
+        this.allMailboxesTaskRegistration = allMailboxesTaskRegistration;
     }
 
     @Override
@@ -125,6 +134,7 @@ public class MailboxesRoutes implements Routes {
     private Route reIndexAll() {
         return TaskFromRequestRegistry.builder()
             .parameterName(TASK_PARAMETER)
+            .registrations(allMailboxesTaskRegistration)
             .register(RE_INDEX, wrap(this::reIndexAll))
             .buildAsRoute(taskManager);
     }
diff --git 
a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
 
b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
index 5f0a977..552356a 100644
--- 
a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
+++ 
b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
@@ -51,6 +51,7 @@ import org.apache.james.task.MemoryTaskManager;
 import org.apache.james.webadmin.WebAdminServer;
 import org.apache.james.webadmin.WebAdminUtils;
 import org.apache.james.webadmin.service.PreviousReIndexingService;
+import org.apache.james.webadmin.tasks.TaskFromRequestRegistry;
 import org.apache.james.webadmin.utils.ErrorResponder;
 import org.apache.james.webadmin.utils.JsonTransformer;
 import org.apache.mailbox.tools.indexer.FullReindexingTask;
@@ -64,12 +65,14 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mockito.ArgumentCaptor;
+import org.testcontainers.shaded.com.google.common.collect.ImmutableSet;
 
 import io.restassured.RestAssured;
 
 class MailboxesRoutesTest {
     private static final Username USERNAME = Username.of("be...@apache.org");
     private static final MailboxPath INBOX = MailboxPath.inbox(USERNAME);
+    private static final 
ImmutableSet<TaskFromRequestRegistry.TaskRegistration> 
NO_ADDITIONAL_REGISTRATION = ImmutableSet.of();
 
     private WebAdminServer webAdminServer;
     private ListeningMessageSearchIndex searchIndex;
@@ -99,7 +102,8 @@ class MailboxesRoutesTest {
                     new PreviousReIndexingService(taskManager),
                     mailboxIdFactory,
                     reIndexer,
-                    jsonTransformer))
+                    jsonTransformer,
+                    NO_ADDITIONAL_REGISTRATION))
             .start();
 
         RestAssured.requestSpecification = 
WebAdminUtils.buildRequestSpecification(webAdminServer).build();


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to