You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/05/30 07:22:18 UTC

[james-project] 07/19: MAILBOX-351 Move ReIndexing failures to the API

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 15910fa0c995291f0727c2b2310f17bb95a7a813
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu May 23 11:57:41 2019 +0700

    MAILBOX-351 Move ReIndexing failures to the API
---
 .../indexer/IndexingDetailInformation.java         |  2 +-
 .../indexer/ReIndexingExecutionFailures.java       | 24 +------------
 .../mailbox/tools/indexer/FullReindexingTask.java  | 11 ++++++
 .../indexer/PreviousFailuresReIndexationTask.java  | 12 ++++++-
 .../mailbox/tools/indexer/ReIndexerPerformer.java  |  1 +
 .../mailbox/tools/indexer/ReprocessingContext.java |  1 +
 ...> SerializableReIndexingExecutionFailures.java} | 39 +++++++++-------------
 .../tools/indexer/SingleMailboxReindexingTask.java | 11 ++++++
 .../mailbox/tools/indexer/UserReindexingTask.java  | 11 ++++++
 ...rializableReIndexingExecutionFailuresTest.java} |  7 ++--
 10 files changed, 68 insertions(+), 51 deletions(-)

diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/IndexingDetailInformation.java b/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/IndexingDetailInformation.java
similarity index 97%
rename from mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/IndexingDetailInformation.java
rename to mailbox/api/src/main/java/org/apache/james/mailbox/indexer/IndexingDetailInformation.java
index 063092a..cc70572 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/IndexingDetailInformation.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/IndexingDetailInformation.java
@@ -17,7 +17,7 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.mailbox.tools.indexer;
+package org.apache.james.mailbox.indexer;
 
 public interface IndexingDetailInformation {
     int getSuccessfullyReprocessMailCount();
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexingExecutionFailures.java b/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexingExecutionFailures.java
similarity index 73%
copy from mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexingExecutionFailures.java
copy to mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexingExecutionFailures.java
index 4ed98ec..9e9a987 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexingExecutionFailures.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexingExecutionFailures.java
@@ -17,19 +17,14 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.mailbox.tools.indexer;
+package org.apache.james.mailbox.indexer;
 
 import java.util.List;
 
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.MailboxId;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonValue;
-import com.github.steveash.guavate.Guavate;
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Multimap;
 
 public class ReIndexingExecutionFailures {
     public static class ReIndexingFailure {
@@ -41,20 +36,10 @@ public class ReIndexingExecutionFailures {
             this.uid = uid;
         }
 
-        @JsonIgnore
-        public String getSerializedMailboxId() {
-            return mailboxId.serialize();
-        }
-
         public MailboxId getMailboxId() {
             return mailboxId;
         }
 
-        @JsonProperty("uid")
-        public long getSerializedUid() {
-            return uid.asLong();
-        }
-
         public MessageUid getUid() {
             return uid;
         }
@@ -66,13 +51,6 @@ public class ReIndexingExecutionFailures {
         this.failures = failures;
     }
 
-    @JsonValue
-    public Multimap<String, ReIndexingFailure> serializedFailures() {
-        return failures.stream()
-            .collect(Guavate.toImmutableListMultimap(ReIndexingFailure::getSerializedMailboxId));
-    }
-
-    @JsonIgnore
     public List<ReIndexingFailure> failures() {
         return ImmutableList.copyOf(failures);
     }
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/FullReindexingTask.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/FullReindexingTask.java
index 848f8c7..c5b5219 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/FullReindexingTask.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/FullReindexingTask.java
@@ -24,9 +24,14 @@ import java.util.Optional;
 import javax.inject.Inject;
 
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.indexer.IndexingDetailInformation;
+import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.task.Task;
 import org.apache.james.task.TaskExecutionDetails;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 public class FullReindexingTask implements Task {
 
     public static final String FULL_RE_INDEXING = "FullReIndexing";
@@ -49,9 +54,15 @@ public class FullReindexingTask implements Task {
         }
 
         @Override
+        @JsonIgnore
         public ReIndexingExecutionFailures failures() {
             return reprocessingContext.failures();
         }
+
+        @JsonProperty
+        public SerializableReIndexingExecutionFailures failuresAsJson() {
+            return SerializableReIndexingExecutionFailures.from(failures());
+        }
     }
 
     private final ReIndexerPerformer reIndexerPerformer;
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/PreviousFailuresReIndexationTask.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/PreviousFailuresReIndexationTask.java
index a64b2d7..4bbeba4 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/PreviousFailuresReIndexationTask.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/PreviousFailuresReIndexationTask.java
@@ -21,9 +21,14 @@ package org.apache.mailbox.tools.indexer;
 
 import java.util.Optional;
 
+import org.apache.james.mailbox.indexer.IndexingDetailInformation;
+import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.task.Task;
 import org.apache.james.task.TaskExecutionDetails;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 public class PreviousFailuresReIndexationTask implements Task {
     public static final String PREVIOUS_FAILURES_INDEXING = "ReIndexPreviousFailures";
 
@@ -41,10 +46,15 @@ public class PreviousFailuresReIndexationTask implements Task {
         public int getFailedReprocessedMailCount() {
             return reprocessingContext.failedReprocessingMailCount();
         }
-
+        @JsonIgnore
         public ReIndexingExecutionFailures failures() {
             return reprocessingContext.failures();
         }
+
+        @JsonProperty("failures")
+        public SerializableReIndexingExecutionFailures failuresAsJson() {
+            return SerializableReIndexingExecutionFailures.from(failures());
+        }
     }
 
     private final ReIndexerPerformer reIndexerPerformer;
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
index 035da20..03d2d2c 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
@@ -29,6 +29,7 @@ import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.mailbox.model.Mailbox;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxMetaData;
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReprocessingContext.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReprocessingContext.java
index 4834bcb..c0c3eb7 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReprocessingContext.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReprocessingContext.java
@@ -23,6 +23,7 @@ import java.util.concurrent.ConcurrentLinkedDeque;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.mailbox.model.MailboxId;
 
 import com.google.common.collect.ImmutableList;
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexingExecutionFailures.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SerializableReIndexingExecutionFailures.java
similarity index 64%
rename from mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexingExecutionFailures.java
rename to mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SerializableReIndexingExecutionFailures.java
index 4ed98ec..3b3515a 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexingExecutionFailures.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SerializableReIndexingExecutionFailures.java
@@ -22,21 +22,20 @@ package org.apache.mailbox.tools.indexer;
 import java.util.List;
 
 import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.mailbox.model.MailboxId;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonValue;
 import com.github.steveash.guavate.Guavate;
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Multimap;
 
-public class ReIndexingExecutionFailures {
-    public static class ReIndexingFailure {
+public class SerializableReIndexingExecutionFailures {
+    public static class SerializableReIndexingFailure {
         private final MailboxId mailboxId;
         private final MessageUid uid;
 
-        public ReIndexingFailure(MailboxId mailboxId, MessageUid uid) {
+        public SerializableReIndexingFailure(MailboxId mailboxId, MessageUid uid) {
             this.mailboxId = mailboxId;
             this.uid = uid;
         }
@@ -46,34 +45,28 @@ public class ReIndexingExecutionFailures {
             return mailboxId.serialize();
         }
 
-        public MailboxId getMailboxId() {
-            return mailboxId;
-        }
-
-        @JsonProperty("uid")
-        public long getSerializedUid() {
+        public long getUid() {
             return uid.asLong();
         }
+    }
 
-        public MessageUid getUid() {
-            return uid;
-        }
+    public static SerializableReIndexingExecutionFailures from(ReIndexingExecutionFailures reIndexingExecutionFailures) {
+        return new SerializableReIndexingExecutionFailures(
+            reIndexingExecutionFailures.failures()
+                .stream()
+                .map(failure -> new SerializableReIndexingExecutionFailures.SerializableReIndexingFailure(failure.getMailboxId(), failure.getUid()))
+                .collect(Guavate.toImmutableList()));
     }
 
-    private final List<ReIndexingFailure> failures;
+    private final List<SerializableReIndexingFailure> failures;
 
-    public ReIndexingExecutionFailures(List<ReIndexingFailure> failures) {
+    public SerializableReIndexingExecutionFailures(List<SerializableReIndexingFailure> failures) {
         this.failures = failures;
     }
 
     @JsonValue
-    public Multimap<String, ReIndexingFailure> serializedFailures() {
+    public Multimap<String, SerializableReIndexingFailure> failures() {
         return failures.stream()
-            .collect(Guavate.toImmutableListMultimap(ReIndexingFailure::getSerializedMailboxId));
-    }
-
-    @JsonIgnore
-    public List<ReIndexingFailure> failures() {
-        return ImmutableList.copyOf(failures);
+            .collect(Guavate.toImmutableListMultimap(SerializableReIndexingFailure::getSerializedMailboxId));
     }
 }
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTask.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTask.java
index 9a66481..c3e26fb 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTask.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTask.java
@@ -23,10 +23,15 @@ import java.util.Optional;
 
 import javax.inject.Inject;
 
+import org.apache.james.mailbox.indexer.IndexingDetailInformation;
+import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.task.Task;
 import org.apache.james.task.TaskExecutionDetails;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 public class SingleMailboxReindexingTask implements Task {
 
     public static final String MAILBOX_RE_INDEXING = "mailboxReIndexing";
@@ -56,9 +61,15 @@ public class SingleMailboxReindexingTask implements Task {
         }
 
         @Override
+        @JsonIgnore
         public ReIndexingExecutionFailures failures() {
             return reprocessingContext.failures();
         }
+
+        @JsonProperty("failures")
+        public SerializableReIndexingExecutionFailures failuresAsJson() {
+            return SerializableReIndexingExecutionFailures.from(failures());
+        }
     }
 
     private final ReIndexerPerformer reIndexerPerformer;
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/UserReindexingTask.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/UserReindexingTask.java
index 4088db2..1f3a0a0 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/UserReindexingTask.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/UserReindexingTask.java
@@ -25,9 +25,14 @@ import javax.inject.Inject;
 
 import org.apache.james.core.User;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.indexer.IndexingDetailInformation;
+import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.task.Task;
 import org.apache.james.task.TaskExecutionDetails;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 public class UserReindexingTask implements Task {
 
     public static final String USER_RE_INDEXING = "userReIndexing";
@@ -52,10 +57,16 @@ public class UserReindexingTask implements Task {
         }
 
         @Override
+        @JsonIgnore
         public ReIndexingExecutionFailures failures() {
             return reprocessingContext.failures();
         }
 
+        @JsonProperty("failures")
+        public SerializableReIndexingExecutionFailures failuresAsJson() {
+            return SerializableReIndexingExecutionFailures.from(failures());
+        }
+
         public String getUser() {
             return user.asString();
         }
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexingExecutionFailuresTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SerializableReIndexingExecutionFailuresTest.java
similarity index 90%
rename from mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexingExecutionFailuresTest.java
rename to mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SerializableReIndexingExecutionFailuresTest.java
index f224113..147032f 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexingExecutionFailuresTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SerializableReIndexingExecutionFailuresTest.java
@@ -22,6 +22,7 @@ package org.apache.mailbox.tools.indexer;
 import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
 
 import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.mailbox.inmemory.InMemoryId;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -32,7 +33,7 @@ import com.fasterxml.jackson.datatype.guava.GuavaModule;
 
 import net.javacrumbs.jsonunit.core.Option;
 
-class ReIndexingExecutionFailuresTest {
+class SerializableReIndexingExecutionFailuresTest {
     private ObjectMapper objectMapper;
 
     @BeforeEach
@@ -45,7 +46,7 @@ class ReIndexingExecutionFailuresTest {
     void failuresShouldBeSerializedAsEmptyArrayWhenNone() throws Exception {
         ReIndexingExecutionFailures failures = new ReIndexingExecutionFailures(ImmutableList.of());
 
-        assertThatJson(objectMapper.writeValueAsString(failures))
+        assertThatJson(objectMapper.writeValueAsString(SerializableReIndexingExecutionFailures.from(failures)))
             .when(Option.IGNORING_ARRAY_ORDER)
             .isEqualTo("{}");
     }
@@ -60,7 +61,7 @@ class ReIndexingExecutionFailuresTest {
             new ReIndexingExecutionFailures.ReIndexingFailure(InMemoryId.of(41), MessageUid.of(18)),
             new ReIndexingExecutionFailures.ReIndexingFailure(InMemoryId.of(16), MessageUid.of(24))));
 
-        assertThatJson(objectMapper.writeValueAsString(failures))
+        assertThatJson(objectMapper.writeValueAsString(SerializableReIndexingExecutionFailures.from(failures)))
             .when(Option.IGNORING_ARRAY_ORDER)
             .isEqualTo("{" +
                 "  \"45\":[{\"uid\":34}, {\"uid\":33}]," +


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