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 3764fa9cc76cfcc17e535f0475e8958504581c24 Author: Rémi Kowalski <rkowal...@linagora.com> AuthorDate: Mon Sep 2 15:24:11 2019 +0200 JAMES-2813 Extract MessageReindexingTask --- .../tools/indexer/MessageIdReIndexerImpl.java | 83 ---------------- .../tools/indexer/MessageIdReIndexingTask.java | 109 +++++++++++++++++++++ .../webadmin/routes/ReindexingRoutesTest.java | 5 +- 3 files changed, 112 insertions(+), 85 deletions(-) diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexerImpl.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexerImpl.java index 27ae4f4..1a95358 100644 --- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexerImpl.java +++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexerImpl.java @@ -19,99 +19,16 @@ package org.apache.mailbox.tools.indexer; -import java.util.Optional; - import javax.inject.Inject; import org.apache.james.mailbox.MailboxManager; -import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.indexer.MessageIdReIndexer; -import org.apache.james.mailbox.model.Mailbox; import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; -import org.apache.james.mailbox.store.mail.MailboxMapper; -import org.apache.james.mailbox.store.mail.MessageMapper; -import org.apache.james.mailbox.store.mail.model.MailboxMessage; import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex; import org.apache.james.task.Task; -import org.apache.james.task.TaskExecutionDetails; -import org.apache.james.task.TaskType; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.collect.ImmutableList; public class MessageIdReIndexerImpl implements MessageIdReIndexer { - public static class MessageIdReIndexingTask implements Task { - private static final Logger LOGGER = LoggerFactory.getLogger(MessageIdReIndexingTask.class); - - public static final TaskType TYPE = new TaskType("MessageIdReIndexingTask"); - - public final class AdditionalInformation implements TaskExecutionDetails.AdditionalInformation { - private final MessageId messageId; - - AdditionalInformation(MessageId messageId) { - this.messageId = messageId; - } - - public String getMessageId() { - return messageId.serialize(); - } - } - - private final MailboxManager mailboxManager; - private final MailboxSessionMapperFactory mailboxSessionMapperFactory; - private final ListeningMessageSearchIndex index; - private final MessageId messageId; - private final AdditionalInformation additionalInformation; - - MessageIdReIndexingTask(MailboxManager mailboxManager, MailboxSessionMapperFactory mailboxSessionMapperFactory, ListeningMessageSearchIndex index, MessageId messageId) { - this.mailboxManager = mailboxManager; - this.mailboxSessionMapperFactory = mailboxSessionMapperFactory; - this.index = index; - this.messageId = messageId; - this.additionalInformation = new AdditionalInformation(messageId); - } - - @Override - public Result run() { - try { - MailboxSession session = mailboxManager.createSystemSession("MessageIdReIndexerImpl"); - - return mailboxSessionMapperFactory.getMessageIdMapper(session) - .find(ImmutableList.of(messageId), MessageMapper.FetchType.Full) - .stream() - .map(mailboxMessage -> reIndex(mailboxMessage, session)) - .reduce(Task::combine) - .orElse(Result.COMPLETED); - } catch (Exception e) { - LOGGER.warn("Failed to re-index {}", messageId, e); - return Result.PARTIAL; - } - } - - public Result reIndex(MailboxMessage mailboxMessage, MailboxSession session) { - try { - MailboxMapper mailboxMapper = mailboxSessionMapperFactory.getMailboxMapper(session); - Mailbox mailbox = mailboxMapper.findMailboxById(mailboxMessage.getMailboxId()); - index.add(session, mailbox, mailboxMessage); - return Result.COMPLETED; - } catch (Exception e) { - LOGGER.warn("Failed to re-index {} in {}", messageId, mailboxMessage.getMailboxId(), e); - return Result.PARTIAL; - } - } - - @Override - public TaskType type() { - return TYPE; - } - - @Override - public Optional<TaskExecutionDetails.AdditionalInformation> details() { - return Optional.of(additionalInformation); - } - } private final MailboxManager mailboxManager; private final MailboxSessionMapperFactory mailboxSessionMapperFactory; diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexingTask.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexingTask.java new file mode 100644 index 0000000..0baec22 --- /dev/null +++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexingTask.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.Optional; + +import org.apache.james.mailbox.MailboxManager; +import org.apache.james.mailbox.MailboxSession; +import org.apache.james.mailbox.model.Mailbox; +import org.apache.james.mailbox.model.MessageId; +import org.apache.james.mailbox.store.MailboxSessionMapperFactory; +import org.apache.james.mailbox.store.mail.MailboxMapper; +import org.apache.james.mailbox.store.mail.MessageMapper; +import org.apache.james.mailbox.store.mail.model.MailboxMessage; +import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex; +import org.apache.james.task.Task; +import org.apache.james.task.TaskExecutionDetails; +import org.apache.james.task.TaskType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.collect.ImmutableList; + +public class MessageIdReIndexingTask implements Task { + private static final Logger LOGGER = LoggerFactory.getLogger(MessageIdReIndexingTask.class); + + public static final TaskType TYPE = TaskType.of("MessageIdReIndexingTask"); + + public final class AdditionalInformation implements TaskExecutionDetails.AdditionalInformation { + private final MessageId messageId; + + AdditionalInformation(MessageId messageId) { + this.messageId = messageId; + } + + public String getMessageId() { + return messageId.serialize(); + } + } + + private final MailboxManager mailboxManager; + private final MailboxSessionMapperFactory mailboxSessionMapperFactory; + private final ListeningMessageSearchIndex index; + private final MessageId messageId; + private final AdditionalInformation additionalInformation; + + MessageIdReIndexingTask(MailboxManager mailboxManager, MailboxSessionMapperFactory mailboxSessionMapperFactory, ListeningMessageSearchIndex index, MessageId messageId) { + this.mailboxManager = mailboxManager; + this.mailboxSessionMapperFactory = mailboxSessionMapperFactory; + this.index = index; + this.messageId = messageId; + this.additionalInformation = new AdditionalInformation(messageId); + } + + @Override + public Result run() { + try { + MailboxSession session = mailboxManager.createSystemSession("MessageIdReIndexerImpl"); + + return mailboxSessionMapperFactory.getMessageIdMapper(session) + .find(ImmutableList.of(messageId), MessageMapper.FetchType.Full) + .stream() + .map(mailboxMessage -> reIndex(mailboxMessage, session)) + .reduce(Task::combine) + .orElse(Result.COMPLETED); + } catch (Exception e) { + LOGGER.warn("Failed to re-index {}", messageId, e); + return Result.PARTIAL; + } + } + + public Result reIndex(MailboxMessage mailboxMessage, MailboxSession session) { + try { + MailboxMapper mailboxMapper = mailboxSessionMapperFactory.getMailboxMapper(session); + Mailbox mailbox = mailboxMapper.findMailboxById(mailboxMessage.getMailboxId()); + index.add(session, mailbox, mailboxMessage); + return Result.COMPLETED; + } catch (Exception e) { + LOGGER.warn("Failed to re-index {} in {}", messageId, mailboxMessage.getMailboxId(), e); + return Result.PARTIAL; + } + } + + @Override + public TaskType type() { + return TYPE; + } + + @Override + public Optional<TaskExecutionDetails.AdditionalInformation> details() { + return Optional.of(additionalInformation); + } +} diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ReindexingRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ReindexingRoutesTest.java index e5925b6..b0cf840 100644 --- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ReindexingRoutesTest.java +++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ReindexingRoutesTest.java @@ -55,6 +55,7 @@ import org.apache.james.webadmin.utils.ErrorResponder; import org.apache.james.webadmin.utils.JsonTransformer; import org.apache.mailbox.tools.indexer.FullReindexingTask; import org.apache.mailbox.tools.indexer.MessageIdReIndexerImpl; +import org.apache.mailbox.tools.indexer.MessageIdReIndexingTask; import org.apache.mailbox.tools.indexer.ReIndexerImpl; import org.apache.mailbox.tools.indexer.ReIndexerPerformer; import org.apache.mailbox.tools.indexer.SingleMailboxReindexingTask; @@ -860,7 +861,7 @@ class ReindexingRoutesTest { .then() .body("status", is("completed")) .body("taskId", is(notNullValue())) - .body("type", is(MessageIdReIndexerImpl.MessageIdReIndexingTask.TYPE)) + .body("type", is(MessageIdReIndexingTask.TYPE)) .body("additionalInformation.messageId", is("1")) .body("startedDate", is(notNullValue())) .body("submitDate", is(notNullValue())) @@ -888,7 +889,7 @@ class ReindexingRoutesTest { .then() .body("status", is("completed")) .body("taskId", is(notNullValue())) - .body("type", is(MessageIdReIndexerImpl.MessageIdReIndexingTask.TYPE)) + .body("type", is(MessageIdReIndexingTask.TYPE)) .body("additionalInformation.messageId", is(composedMessageId.getMessageId().serialize())) .body("startedDate", is(notNullValue())) .body("submitDate", is(notNullValue())) --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org