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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
