This is an automated email from the ASF dual-hosted git repository. rouazana pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 2b97dd8eac36bc383b982476a544857d4778f613 Author: Gautier DI FOLCO <[email protected]> AuthorDate: Wed Jul 17 10:36:23 2019 +0200 JAMES-2813 Add serialization for SingleMailboxReindexingTask --- .../tools/indexer/SingleMailboxReindexingTask.java | 27 ++++++++++++++++++++++ .../indexer/SingleMailboxReindexingTaskTest.java | 21 +++++++++++++++++ 2 files changed, 48 insertions(+) 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 c98337e..73882ea 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 @@ -19,14 +19,19 @@ package org.apache.mailbox.tools.indexer; +import java.util.Map; import java.util.Optional; import javax.inject.Inject; import org.apache.james.mailbox.model.MailboxId; +import org.apache.james.server.task.json.TaskDeserializer; import org.apache.james.task.Task; import org.apache.james.task.TaskExecutionDetails; +import com.fasterxml.jackson.databind.JsonNode; +import com.google.common.collect.ImmutableMap; + public class SingleMailboxReindexingTask implements Task { public static final String MAILBOX_RE_INDEXING = "mailboxReIndexing"; @@ -44,6 +49,22 @@ public class SingleMailboxReindexingTask implements Task { } } + public static class Factory implements TaskDeserializer.Factory { + + private MailboxId.Factory mailboxIdFactory; + + @Inject + public Factory(MailboxId.Factory mailboxIdFactory) { + this.mailboxIdFactory = mailboxIdFactory; + } + + @Override + public Task create(JsonNode parameters) { + MailboxId mailboxId = mailboxIdFactory.fromString(parameters.get("mailboxId").asText()); + return new SingleMailboxReindexingTask(null, mailboxId); + } + } + private final ReIndexerPerformer reIndexerPerformer; private final MailboxId mailboxId; private final AdditionalInformation additionalInformation; @@ -75,4 +96,10 @@ public class SingleMailboxReindexingTask implements Task { public Optional<TaskExecutionDetails.AdditionalInformation> details() { return Optional.of(additionalInformation); } + + @Override + public Map<String, String> parameters() { + return ImmutableMap.of("mailboxId", mailboxId.serialize()); + } + } diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskTest.java new file mode 100644 index 0000000..ccda108 --- /dev/null +++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskTest.java @@ -0,0 +1,21 @@ +package org.apache.mailbox.tools.indexer; + +import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; + +import org.apache.james.mailbox.model.TestId; +import org.junit.jupiter.api.Test; +import org.testcontainers.shaded.com.google.common.collect.ImmutableMap; + +class SingleMailboxReindexingTaskTest { + + @Test + void parametersShouldReturnMapWithStringValues() { + ReIndexerPerformer reIndexerPerformer = mock(ReIndexerPerformer.class); + TestId mailboxId = TestId.of(1L); + SingleMailboxReindexingTask task = new SingleMailboxReindexingTask(reIndexerPerformer, mailboxId); + assertThat(task.parameters()).isEqualTo(ImmutableMap.of("mailboxId", "1")); + } + +} \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
