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 e844ff6ca867ea64dade7e2c899e3a35153c43de
Author: Rémi Kowalski <rkowal...@linagora.com>
AuthorDate: Wed Sep 18 15:17:53 2019 +0200

    JAMES-2813 extract ErrorRecoveryIndexationTaskDTO
---
 .../tools/indexer/ErrorRecoveryIndexationTask.java |  84 +---------------
 .../indexer/ErrorRecoveryIndexationTaskDTO.java    | 109 +++++++++++++++++++++
 ...rorRecoveryIndexationTaskSerializationTest.java |   2 +-
 3 files changed, 115 insertions(+), 80 deletions(-)

diff --git 
a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTask.java
 
b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTask.java
index fe08031..b13d49c 100644
--- 
a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTask.java
+++ 
b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTask.java
@@ -19,100 +19,22 @@
 
 package org.apache.mailbox.tools.indexer;
 
-import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 import java.util.Optional;
-import java.util.function.Function;
 
 import javax.inject.Inject;
 
-import org.apache.james.json.DTOModule;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.mailbox.model.MailboxId;
-import org.apache.james.server.task.json.dto.TaskDTO;
-import org.apache.james.server.task.json.dto.TaskDTOModule;
 import org.apache.james.task.Task;
 import org.apache.james.task.TaskExecutionDetails;
 import org.apache.james.task.TaskType;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.github.steveash.guavate.Guavate;
-import com.google.common.collect.Multimap;
 
 public class ErrorRecoveryIndexationTask implements Task {
-    private static final TaskType PREVIOUS_FAILURES_INDEXING = 
TaskType.of("ErrorRecoveryIndexation");
-
-    public static final Function<ErrorRecoveryIndexationTask.Factory, 
TaskDTOModule<ErrorRecoveryIndexationTask, ErrorRecoveryIndexationTaskDTO>> 
MODULE = (factory) ->
-        DTOModule
-            .forDomainObject(ErrorRecoveryIndexationTask.class)
-            
.convertToDTO(ErrorRecoveryIndexationTask.ErrorRecoveryIndexationTaskDTO.class)
-            .toDomainObjectConverter(factory::create)
-            
.toDTOConverter(ErrorRecoveryIndexationTask.ErrorRecoveryIndexationTaskDTO::of)
-            .typeName(PREVIOUS_FAILURES_INDEXING.asString())
-            .withFactory(TaskDTOModule::new);
-
-    public static class ErrorRecoveryIndexationTaskDTO implements TaskDTO {
-
-        public static ErrorRecoveryIndexationTaskDTO 
of(ErrorRecoveryIndexationTask task, String type) {
-            Multimap<MailboxId, ReIndexingExecutionFailures.ReIndexingFailure> 
failuresByMailboxId = task.previousFailures
-                .failures()
-                .stream()
-                
.collect(Guavate.toImmutableListMultimap(ReIndexingExecutionFailures.ReIndexingFailure::getMailboxId,
 Function.identity()));
-
-            List<ReindexingFailureDTO> failureDTOs = 
failuresByMailboxId.asMap()
-                .entrySet().stream()
-                
.map(ErrorRecoveryIndexationTaskDTO::failuresByMailboxToReindexingFailureDTO).collect(Guavate.toImmutableList());
-            return new ErrorRecoveryIndexationTaskDTO(type, failureDTOs);
-        }
-
-        private static ReindexingFailureDTO 
failuresByMailboxToReindexingFailureDTO(Map.Entry<MailboxId,
-            Collection<ReIndexingExecutionFailures.ReIndexingFailure>> entry) {
-            List<Long> uids = entry.getValue().stream()
-                .map(ReIndexingExecutionFailures.ReIndexingFailure::getUid)
-                .map(MessageUid::asLong)
-                .collect(Guavate.toImmutableList());
-            return new ReindexingFailureDTO(entry.getKey().serialize(), uids);
-        }
-
-        public static class ReindexingFailureDTO {
-
-            private final String mailboxId;
-            private final List<Long> uids;
-
-            private ReindexingFailureDTO(@JsonProperty("mailboxId") String 
mailboxId, @JsonProperty("uids") List<Long> uids) {
-                this.mailboxId = mailboxId;
-                this.uids = uids;
-            }
-
-            public String getMailboxId() {
-                return mailboxId;
-            }
-
-            public List<Long> getUids() {
-                return uids;
-            }
-        }
-
-        private final String type;
-        private final List<ReindexingFailureDTO> previousFailures;
-
-        private ErrorRecoveryIndexationTaskDTO(@JsonProperty("type") String 
type, @JsonProperty("previousFailures") List<ReindexingFailureDTO> 
previousFailures) {
-            this.type = type;
-            this.previousFailures = previousFailures;
-        }
-
-        @Override
-        public String getType() {
-            return type;
-        }
-
-        public List<ReindexingFailureDTO> getPreviousFailures() {
-            return previousFailures;
-        }
-
-    }
+    public static final TaskType PREVIOUS_FAILURES_INDEXING = 
TaskType.of("ErrorRecoveryIndexation");
 
     public static class Factory {
 
@@ -159,6 +81,10 @@ public class ErrorRecoveryIndexationTask implements Task {
         return PREVIOUS_FAILURES_INDEXING;
     }
 
+    public ReIndexingExecutionFailures getPreviousFailures() {
+        return previousFailures;
+    }
+
     @Override
     public Optional<TaskExecutionDetails.AdditionalInformation> details() {
         return 
Optional.of(ReprocessingContextInformation.from(reprocessingContext));
diff --git 
a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskDTO.java
 
b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskDTO.java
new file mode 100644
index 0000000..55c98de
--- /dev/null
+++ 
b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskDTO.java
@@ -0,0 +1,109 @@
+/****************************************************************
+ * 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.                                           *
+ ****************************************************************/
+package org.apache.mailbox.tools.indexer;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+
+import org.apache.james.json.DTOModule;
+import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
+import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.server.task.json.dto.TaskDTO;
+import org.apache.james.server.task.json.dto.TaskDTOModule;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.steveash.guavate.Guavate;
+import com.google.common.collect.Multimap;
+
+public class ErrorRecoveryIndexationTaskDTO implements TaskDTO {
+
+    public static final Function<ErrorRecoveryIndexationTask.Factory, 
TaskDTOModule<ErrorRecoveryIndexationTask, ErrorRecoveryIndexationTaskDTO>> 
MODULE = (factory) ->
+        DTOModule
+            .forDomainObject(ErrorRecoveryIndexationTask.class)
+            .convertToDTO(ErrorRecoveryIndexationTaskDTO.class)
+            .toDomainObjectConverter(factory::create)
+            .toDTOConverter(ErrorRecoveryIndexationTaskDTO::of)
+            
.typeName(ErrorRecoveryIndexationTask.PREVIOUS_FAILURES_INDEXING.asString())
+            .withFactory(TaskDTOModule::new);
+
+    public static ErrorRecoveryIndexationTaskDTO 
of(ErrorRecoveryIndexationTask task, String type) {
+        Multimap<MailboxId, ReIndexingExecutionFailures.ReIndexingFailure> 
failuresByMailboxId = task.getPreviousFailures()
+            .failures()
+            .stream()
+            
.collect(Guavate.toImmutableListMultimap(ReIndexingExecutionFailures.ReIndexingFailure::getMailboxId,
 Function.identity()));
+
+        List<ReindexingFailureDTO> failureDTOs = failuresByMailboxId.asMap()
+            .entrySet()
+            .stream()
+            
.map(ErrorRecoveryIndexationTaskDTO::failuresByMailboxToReindexingFailureDTO)
+            .collect(Guavate.toImmutableList());
+        return new ErrorRecoveryIndexationTaskDTO(type, failureDTOs);
+    }
+
+    private static ReindexingFailureDTO 
failuresByMailboxToReindexingFailureDTO(Map.Entry<MailboxId,
+        Collection<ReIndexingExecutionFailures.ReIndexingFailure>> entry) {
+        List<Long> uids = entry
+            .getValue()
+            .stream()
+            .map(ReIndexingExecutionFailures.ReIndexingFailure::getUid)
+            .map(MessageUid::asLong)
+            .collect(Guavate.toImmutableList());
+        return new ReindexingFailureDTO(entry.getKey().serialize(), uids);
+    }
+
+    public static class ReindexingFailureDTO {
+
+        private final String mailboxId;
+        private final List<Long> uids;
+
+        private ReindexingFailureDTO(@JsonProperty("mailboxId") String 
mailboxId, @JsonProperty("uids") List<Long> uids) {
+            this.mailboxId = mailboxId;
+            this.uids = uids;
+        }
+
+        public String getMailboxId() {
+            return mailboxId;
+        }
+
+        public List<Long> getUids() {
+            return uids;
+        }
+    }
+
+    private final String type;
+    private final List<ReindexingFailureDTO> previousFailures;
+
+    private ErrorRecoveryIndexationTaskDTO(@JsonProperty("type") String type, 
@JsonProperty("previousFailures") List<ReindexingFailureDTO> previousFailures) {
+        this.type = type;
+        this.previousFailures = previousFailures;
+    }
+
+    @Override
+    public String getType() {
+        return type;
+    }
+
+    public List<ReindexingFailureDTO> getPreviousFailures() {
+        return previousFailures;
+    }
+
+}
diff --git 
a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java
 
b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java
index 415db36..2103682 100644
--- 
a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java
+++ 
b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java
@@ -58,7 +58,7 @@ class ErrorRecoveryIndexationTaskSerializationTest {
     void setUp() {
         reIndexerPerformer = mock(ReIndexerPerformer.class);
         ErrorRecoveryIndexationTask.Factory factory = new 
ErrorRecoveryIndexationTask.Factory(reIndexerPerformer, new TestId.Factory());
-        taskSerializer = new 
JsonTaskSerializer(ErrorRecoveryIndexationTask.MODULE.apply(factory));
+        taskSerializer = new 
JsonTaskSerializer(ErrorRecoveryIndexationTaskDTO.MODULE.apply(factory));
     }
 
     @Test


---------------------------------------------------------------------
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