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 2018/11/29 03:53:15 UTC
[01/10] james-project git commit: MAILBOX-351 ReIndexerPerformer
should internally rely on MailboxId
Repository: james-project
Updated Branches:
refs/heads/master 13989f999 -> 1d5744076
MAILBOX-351 ReIndexerPerformer should internally rely on MailboxId
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/655d35b3
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/655d35b3
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/655d35b3
Branch: refs/heads/master
Commit: 655d35b38d2a3ed9577f9998e54c9398c7d91740
Parents: 13989f9
Author: Benoit Tellier <bt...@linagora.com>
Authored: Fri Nov 23 15:03:31 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Nov 29 10:47:49 2018 +0700
----------------------------------------------------------------------
.../tools/indexer/ReIndexerPerformer.java | 65 ++++++---------
.../registrations/GlobalRegistration.java | 62 ---------------
.../registrations/GlobalRegistrationTest.java | 83 --------------------
3 files changed, 24 insertions(+), 186 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/655d35b3/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
----------------------------------------------------------------------
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 92de5be..b86316f 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
@@ -19,9 +19,8 @@
package org.apache.mailbox.tools.indexer;
-import java.util.List;
import java.util.Optional;
-import java.util.function.Function;
+import java.util.stream.Stream;
import javax.inject.Inject;
@@ -30,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.model.MailboxId;
import org.apache.james.mailbox.model.MailboxMetaData;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.MessageRange;
@@ -40,20 +40,18 @@ import org.apache.james.mailbox.store.mail.model.Mailbox;
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.util.OptionalUtils;
import org.apache.james.util.streams.Iterators;
-import org.apache.mailbox.tools.indexer.registrations.GlobalRegistration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.fge.lambdas.Throwing;
-import com.google.common.collect.ImmutableList;
public class ReIndexerPerformer {
private static final Logger LOGGER = LoggerFactory.getLogger(ReIndexerPerformer.class);
private static final int NO_LIMIT = 0;
private static final int SINGLE_MESSAGE = 1;
+ private static final String RE_INDEXING = "re-indexing";
private final MailboxManager mailboxManager;
private final ListeningMessageSearchIndex messageSearchIndex;
@@ -70,16 +68,19 @@ public class ReIndexerPerformer {
Task.Result reIndex(MailboxPath path, ReprocessingContext reprocessingContext) throws MailboxException {
MailboxSession mailboxSession = mailboxManager.createSystemSession(path.getUser());
- return reIndex(path, mailboxSession, reprocessingContext);
+ Mailbox mailbox = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).findMailboxByPath(path);
+ return reIndexSingleMailbox(mailbox.getMailboxId(), reprocessingContext);
}
Task.Result reIndex(ReprocessingContext reprocessingContext) throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession("re-indexing");
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(RE_INDEXING);
LOGGER.info("Starting a full reindex");
- List<MailboxPath> mailboxPaths = mailboxManager.list(mailboxSession);
+ Stream<MailboxId> mailboxIds = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).list()
+ .stream()
+ .map(Mailbox::getMailboxId);
try {
- return reIndex(mailboxPaths, mailboxSession, reprocessingContext);
+ return reIndex(mailboxIds, reprocessingContext);
} finally {
LOGGER.info("Full reindex finished");
}
@@ -88,14 +89,13 @@ public class ReIndexerPerformer {
Task.Result reIndex(User user, ReprocessingContext reprocessingContext) throws MailboxException {
MailboxSession mailboxSession = mailboxManager.createSystemSession(user.asString());
LOGGER.info("Starting a reindex for user {}", user.asString());
- List<MailboxPath> mailboxPaths = mailboxManager.search(MailboxQuery.privateMailboxesBuilder(mailboxSession)
- .build(), mailboxSession)
+
+ Stream<MailboxId> mailboxIds = mailboxManager.search(MailboxQuery.privateMailboxesBuilder(mailboxSession).build(), mailboxSession)
.stream()
- .map(MailboxMetaData::getPath)
- .collect(ImmutableList.toImmutableList());
+ .map(MailboxMetaData::getId);
try {
- return reIndex(mailboxPaths, mailboxSession, reprocessingContext);
+ return reIndex(mailboxIds, reprocessingContext);
} finally {
LOGGER.info("User {} reindex finished", user.asString());
}
@@ -109,21 +109,13 @@ public class ReIndexerPerformer {
return handleMessageReIndexing(mailboxSession, mailbox, uid);
}
- private Task.Result reIndex(List<MailboxPath> mailboxPaths, MailboxSession mailboxSession, ReprocessingContext reprocessingContext) throws MailboxException {
- return wrapInGlobalRegistration(mailboxSession,
- globalRegistration -> handleMultiMailboxesReindexingIterations(mailboxPaths, globalRegistration, reprocessingContext));
- }
-
- private Task.Result handleMultiMailboxesReindexingIterations(List<MailboxPath> mailboxPaths, GlobalRegistration globalRegistration,
- ReprocessingContext reprocessingContext) {
- return mailboxPaths.stream()
- .map(globalRegistration::getPathToIndex)
- .flatMap(OptionalUtils::toStream)
- .map(path -> {
+ private Task.Result reIndex(Stream<MailboxId> mailboxIds, ReprocessingContext reprocessingContext) {
+ return mailboxIds
+ .map(mailboxId -> {
try {
- return reIndex(path, reprocessingContext);
+ return reIndexSingleMailbox(mailboxId, reprocessingContext);
} catch (Throwable e) {
- LOGGER.error("Error while proceeding to full reindexing on {}", path.asString(), e);
+ LOGGER.error("Error while proceeding to full reindexing on mailbox with mailboxId {}", mailboxId.serialize(), e);
return Task.Result.PARTIAL;
}
})
@@ -131,9 +123,10 @@ public class ReIndexerPerformer {
.orElse(Task.Result.COMPLETED);
}
- private Task.Result reIndex(MailboxPath path, MailboxSession mailboxSession, ReprocessingContext reprocessingContext) throws MailboxException {
- LOGGER.info("Intend to reindex {}", path.asString());
- Mailbox mailbox = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).findMailboxByPath(path);
+ private Task.Result reIndexSingleMailbox(MailboxId mailboxId, ReprocessingContext reprocessingContext) throws MailboxException {
+ LOGGER.info("Intend to reindex mailbox with mailboxId {}", mailboxId.serialize());
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(RE_INDEXING);
+ Mailbox mailbox = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
messageSearchIndex.deleteAll(mailboxSession, mailbox);
try {
return Iterators.toStream(
@@ -145,7 +138,7 @@ public class ReIndexerPerformer {
.reduce(Task::combine)
.orElse(Task.Result.COMPLETED);
} finally {
- LOGGER.info("Finish to reindex {}", path.asString());
+ LOGGER.info("Finish to reindex mailbox with mailboxId {}", mailboxId.serialize());
}
}
@@ -166,14 +159,4 @@ public class ReIndexerPerformer {
.findInMailbox(mailbox, MessageRange.one(mUid), MessageMapper.FetchType.Full, SINGLE_MESSAGE))
.findFirst();
}
-
- private <T> T wrapInGlobalRegistration(MailboxSession session, Function<GlobalRegistration, T> function) throws MailboxException {
- GlobalRegistration globalRegistration = new GlobalRegistration();
- mailboxManager.addGlobalListener(globalRegistration, session);
- try {
- return function.apply(globalRegistration);
- } finally {
- mailboxManager.removeGlobalListener(globalRegistration, session);
- }
- }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/655d35b3/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/registrations/GlobalRegistration.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/registrations/GlobalRegistration.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/registrations/GlobalRegistration.java
deleted file mode 100644
index 1cc7764..0000000
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/registrations/GlobalRegistration.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************
- * 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.registrations;
-
-import java.util.Optional;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.james.mailbox.Event;
-import org.apache.james.mailbox.MailboxListener;
-import org.apache.james.mailbox.model.MailboxPath;
-
-public class GlobalRegistration implements MailboxListener {
-
- private final ConcurrentHashMap<MailboxPath, Boolean> isPathDeleted;
- private final ConcurrentHashMap<MailboxPath, MailboxPath> nameCorrespondence;
-
- public GlobalRegistration() {
- this.isPathDeleted = new ConcurrentHashMap<>();
- this.nameCorrespondence = new ConcurrentHashMap<>();
- }
-
- public Optional<MailboxPath> getPathToIndex(MailboxPath mailboxPath) {
- if (isPathDeleted.get(mailboxPath) != null) {
- return Optional.empty();
- }
- return Optional.of(
- Optional.ofNullable(nameCorrespondence.get(mailboxPath)).orElse(mailboxPath));
- }
-
- @Override
- public ListenerType getType() {
- return ListenerType.EACH_NODE;
- }
-
- @Override
- public void event(Event event) {
- if (event instanceof MailboxDeletion) {
- MailboxDeletion mailboxDeletion = (MailboxDeletion) event;
- isPathDeleted.put(mailboxDeletion.getMailboxPath(), true);
- } else if (event instanceof MailboxRenamed) {
- MailboxRenamed mailboxRenamed = (MailboxRenamed) event;
- nameCorrespondence.put(mailboxRenamed.getMailboxPath(), ((MailboxRenamed) event).getNewPath());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/655d35b3/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/registrations/GlobalRegistrationTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/registrations/GlobalRegistrationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/registrations/GlobalRegistrationTest.java
deleted file mode 100644
index e0b06f7..0000000
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/registrations/GlobalRegistrationTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************
- * 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.registrations;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.Optional;
-
-import org.apache.james.core.quota.QuotaCount;
-import org.apache.james.core.quota.QuotaSize;
-import org.apache.james.mailbox.MailboxListener;
-import org.apache.james.mailbox.mock.MockMailboxSession;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.model.QuotaRoot;
-import org.apache.james.mailbox.store.event.EventFactory;
-import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-public class GlobalRegistrationTest {
- public static final MailboxPath INBOX = MailboxPath.forUser("btellier@apache.org", "INBOX");
- private static final MailboxPath NEW_PATH = MailboxPath.forUser("btellier@apache.org", "INBOX.new");
- private static final int UID_VALIDITY = 45;
- private static final SimpleMailbox MAILBOX = new SimpleMailbox(INBOX, UID_VALIDITY);
- private static final SimpleMailbox NEW_MAILBOX = new SimpleMailbox(NEW_PATH, UID_VALIDITY);
-
- private GlobalRegistration globalRegistration;
- private EventFactory eventFactory;
- private MockMailboxSession session;
-
- @BeforeEach
- void setUp() {
- eventFactory = new EventFactory();
- session = new MockMailboxSession("test");
- globalRegistration = new GlobalRegistration();
- }
-
- @Test
- void pathToIndexShouldNotBeChangedByDefault() {
- assertThat(globalRegistration.getPathToIndex(INBOX).get()).isEqualTo(INBOX);
- }
-
- @Test
- void pathToIndexShouldNotBeChangedByAddedEvents() {
- MailboxListener.MailboxEvent event = eventFactory.mailboxAdded(session, MAILBOX);
- globalRegistration.event(event);
- assertThat(globalRegistration.getPathToIndex(INBOX).get()).isEqualTo(INBOX);
- }
-
- @Test
- void pathToIndexShouldBeNullifiedByDeletedEvents() {
- QuotaRoot quotaRoot = QuotaRoot.quotaRoot("root", Optional.empty());
- QuotaCount quotaCount = QuotaCount.count(123);
- QuotaSize quotaSize = QuotaSize.size(456);
- MailboxListener.MailboxEvent event = eventFactory.mailboxDeleted(session, MAILBOX, quotaRoot, quotaCount, quotaSize);
- globalRegistration.event(event);
- assertThat(globalRegistration.getPathToIndex(INBOX)).isEqualTo(Optional.empty());
- }
-
- @Test
- void pathToIndexShouldBeModifiedByRenamedEvents() {
- MailboxListener.MailboxEvent event = eventFactory.mailboxRenamed(session, INBOX, NEW_MAILBOX);
- globalRegistration.event(event);
- assertThat(globalRegistration.getPathToIndex(INBOX).get()).isEqualTo(NEW_PATH);
- }
-}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[09/10] james-project git commit: MAILBOX-351 ReIndexerRoutes: Fail
with not found upon unknown mailboxes
Posted by bt...@apache.org.
MAILBOX-351 ReIndexerRoutes: Fail with not found upon unknown mailboxes
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1d574407
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1d574407
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1d574407
Branch: refs/heads/master
Commit: 1d57440765f10feeeaab08a19d79e7e499053078
Parents: f1f981a
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Nov 28 15:50:18 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Nov 29 10:52:45 2018 +0700
----------------------------------------------------------------------
.../apache/james/webadmin/routes/ReindexingRoutes.java | 4 ++--
.../james/webadmin/routes/ReindexingRoutesTest.java | 12 ++++++------
2 files changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/1d574407/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
index ffb7d98..28b10cc 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
@@ -232,8 +232,8 @@ public class ReindexingRoutes implements Routes {
return TaskIdDto.respond(response, taskId);
} catch (MailboxNotFoundException e) {
throw ErrorResponder.builder()
- .statusCode(HttpStatus.BAD_REQUEST_400)
- .type(ErrorResponder.ErrorType.INVALID_ARGUMENT)
+ .statusCode(HttpStatus.NOT_FOUND_404)
+ .type(ErrorResponder.ErrorType.NOT_FOUND)
.message("mailbox not found")
.cause(e)
.haltError();
http://git-wip-us.apache.org/repos/asf/james-project/blob/1d574407/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ReindexingRoutesTest.java
----------------------------------------------------------------------
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 f5e9382..38d0205 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
@@ -416,9 +416,9 @@ class ReindexingRoutesTest {
when()
.post("/mailboxIndex/mailboxes/36?task=reIndex")
.then()
- .statusCode(HttpStatus.BAD_REQUEST_400)
- .body("statusCode", is(400))
- .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
+ .statusCode(HttpStatus.NOT_FOUND_404)
+ .body("statusCode", is(404))
+ .body("type", is(ErrorResponder.ErrorType.NOT_FOUND.getType()))
.body("message", is("mailbox not found"));
}
}
@@ -570,9 +570,9 @@ class ReindexingRoutesTest {
when()
.post("/mailboxIndex/mailboxes/36/mails/7?task=reIndex")
.then()
- .statusCode(HttpStatus.BAD_REQUEST_400)
- .body("statusCode", is(400))
- .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
+ .statusCode(HttpStatus.NOT_FOUND_404)
+ .body("statusCode", is(404))
+ .body("type", is(ErrorResponder.ErrorType.NOT_FOUND.getType()))
.body("message", is("mailbox not found"));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[06/10] james-project git commit: MAILBOX-351 User is not needed for
mailboxId based reIndexing
Posted by bt...@apache.org.
MAILBOX-351 User is not needed for mailboxId based reIndexing
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/a09ef443
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/a09ef443
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/a09ef443
Branch: refs/heads/master
Commit: a09ef44376ccc4da3ba3071dadc036857e819f13
Parents: 85350b3
Author: Benoit Tellier <bt...@linagora.com>
Authored: Fri Nov 23 16:00:30 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Nov 29 10:52:45 2018 +0700
----------------------------------------------------------------------
.../james/webadmin/routes/ReindexingRoutes.java | 6 +-
.../webadmin/routes/ReindexingRoutesTest.java | 72 ++++----------------
src/site/markdown/server/manage-webadmin.md | 6 +-
3 files changed, 21 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/a09ef443/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
index e954a0f..ffb7d98 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
@@ -63,7 +63,7 @@ public class ReindexingRoutes implements Routes {
private static final String MAILBOX_PARAM = ":mailbox";
private static final String UID_PARAM = ":uid";
private static final String USER_PATH = BASE_PATH + "/users/" + USER_PARAM;
- private static final String MAILBOX_PATH = USER_PATH + "/mailboxes/" + MAILBOX_PARAM;
+ private static final String MAILBOX_PATH = BASE_PATH + "/mailboxes/" + MAILBOX_PARAM;
private static final String MESSAGE_PATH = MAILBOX_PATH + "/mails/" + UID_PARAM;
private final TaskManager taskManager;
@@ -147,7 +147,7 @@ public class ReindexingRoutes implements Routes {
}
@POST
- @Path("/users/{user}/mailboxes/{mailboxId}")
+ @Path("/mailboxes/{mailboxId}")
@ApiOperation(value = "Re-indexes all the mails in a mailbox")
@ApiImplicitParams({
@ApiImplicitParam(
@@ -185,7 +185,7 @@ public class ReindexingRoutes implements Routes {
}
@POST
- @Path("/users/{user}/mailboxes/{mailboxId}/mails/{uid}")
+ @Path("/mailboxes/{mailboxId}/mails/{uid}")
@ApiOperation(value = "Re-indexes a single email")
@ApiImplicitParams({
@ApiImplicitParam(
http://git-wip-us.apache.org/repos/asf/james-project/blob/a09ef443/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ReindexingRoutesTest.java
----------------------------------------------------------------------
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 6ac8cc8..08db547 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
@@ -61,7 +61,6 @@ import org.apache.mailbox.tools.indexer.UserReindexingTask;
import org.eclipse.jetty.http.HttpStatus;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
@@ -379,7 +378,7 @@ class ReindexingRoutesTest {
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/" + mailboxId.serialize())
+ .post("/mailboxIndex/mailboxes/" + mailboxId.serialize())
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -393,7 +392,7 @@ class ReindexingRoutesTest {
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/" + mailboxId.serialize() + "?task=bad")
+ .post("/mailboxIndex/mailboxes/" + mailboxId.serialize() + "?task=bad")
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -401,25 +400,10 @@ class ReindexingRoutesTest {
.body("message", is("task query parameter is mandatory. The only supported value is `reIndex`"));
}
- @Disabled("Using user here makes no sens from an API perspective, and will be removed")
- @Test
- void mailboxReprocessingShouldFailWithBadUser() throws Exception {
- MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
- MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
-
- when()
- .post("/mailboxIndex/users/bad@bad@bad/mailboxes/" + mailboxId.serialize() + "?task=reIndex")
- .then()
- .statusCode(HttpStatus.BAD_REQUEST_400)
- .body("statusCode", is(400))
- .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
- .body("message", is("Error while parsing 'user'"));
- }
-
@Test
void mailboxReprocessingShouldFailWithBadMailboxId() {
when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/bad?task=reIndex")
+ .post("/mailboxIndex/mailboxes/bad?task=reIndex")
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -430,18 +414,7 @@ class ReindexingRoutesTest {
@Test
void mailboxReprocessingShouldFailWithNonExistentMailboxId() {
when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/36?task=reIndex")
- .then()
- .statusCode(HttpStatus.BAD_REQUEST_400)
- .body("statusCode", is(400))
- .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
- .body("message", is("mailbox not found"));
- }
-
- @Test
- void mailboxReprocessingShouldFailWithNonExistentUser() {
- when()
- .post("/mailboxIndex/users/notFound@domain.tld/mailboxes/36?task=reIndex")
+ .post("/mailboxIndex/mailboxes/36?task=reIndex")
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -458,7 +431,7 @@ class ReindexingRoutesTest {
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
String taskId = when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/" + mailboxId.serialize() + "?task=reIndex")
+ .post("/mailboxIndex/mailboxes/" + mailboxId.serialize() + "?task=reIndex")
.jsonPath()
.get("taskId");
@@ -488,7 +461,7 @@ class ReindexingRoutesTest {
systemSession);
String taskId = when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/" + mailboxId.serialize() + "?task=reIndex")
+ .post("/mailboxIndex/mailboxes/" + mailboxId.serialize() + "?task=reIndex")
.jsonPath()
.get("taskId");
@@ -521,7 +494,7 @@ class ReindexingRoutesTest {
systemSession);
String taskId = when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/" + mailboxId.serialize() + "?task=reIndex")
+ .post("/mailboxIndex/mailboxes/" + mailboxId.serialize() + "?task=reIndex")
.jsonPath()
.get("taskId");
@@ -559,7 +532,7 @@ class ReindexingRoutesTest {
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/" + mailboxId.serialize() + "/mails/7")
+ .post("/mailboxIndex/mailboxes/" + mailboxId.serialize() + "/mails/7")
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -573,7 +546,7 @@ class ReindexingRoutesTest {
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/" + mailboxId.serialize() + "/mails/7?task=bad")
+ .post("/mailboxIndex/mailboxes/" + mailboxId.serialize() + "/mails/7?task=bad")
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -581,25 +554,10 @@ class ReindexingRoutesTest {
.body("message", is("task query parameter is mandatory. The only supported value is `reIndex`"));
}
- @Disabled("Using user here makes no sens from an API perspective, and will be removed")
- @Test
- void messageReprocessingShouldFailWithBadUser() throws Exception {
- MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
- MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
-
- when()
- .post("/mailboxIndex/users/bad@bad@bad/mailboxes/" + mailboxId.serialize() + "/mails/7?task=reIndex")
- .then()
- .statusCode(HttpStatus.BAD_REQUEST_400)
- .body("statusCode", is(400))
- .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
- .body("message", is("Error while parsing 'user'"));
- }
-
@Test
void messageReprocessingShouldFailWithBadMailboxId() {
when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/bad/mails/7?task=reIndex")
+ .post("/mailboxIndex/mailboxes/bad/mails/7?task=reIndex")
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -610,7 +568,7 @@ class ReindexingRoutesTest {
@Test
void messageReprocessingShouldFailWithNonExistentMailboxId() {
when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/36/mails/7?task=reIndex")
+ .post("/mailboxIndex/mailboxes/36/mails/7?task=reIndex")
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -621,7 +579,7 @@ class ReindexingRoutesTest {
@Test
void messageReprocessingShouldFailWithBadUid() {
when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/36/mails/bad?task=reIndex")
+ .post("/mailboxIndex/mailboxes/36/mails/bad?task=reIndex")
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -638,7 +596,7 @@ class ReindexingRoutesTest {
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
String taskId = when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/" + mailboxId.serialize() + "/mails/1?task=reIndex")
+ .post("/mailboxIndex/mailboxes/" + mailboxId.serialize() + "/mails/1?task=reIndex")
.jsonPath()
.get("taskId");
@@ -667,7 +625,7 @@ class ReindexingRoutesTest {
systemSession);
String taskId = when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/" + mailboxId.serialize() + "/mails/"
+ .post("/mailboxIndex/mailboxes/" + mailboxId.serialize() + "/mails/"
+ composedMessageId.getUid().asLong() + "?task=reIndex")
.jsonPath()
.get("taskId");
@@ -700,7 +658,7 @@ class ReindexingRoutesTest {
systemSession);
String taskId = when()
- .post("/mailboxIndex/users/" + USERNAME + "/mailboxes/" + mailboxId.serialize() + "/mails/"
+ .post("/mailboxIndex/mailboxes/" + mailboxId.serialize() + "/mails/"
+ createdMessage.getUid().asLong() + "?task=reIndex")
.jsonPath()
.get("taskId");
http://git-wip-us.apache.org/repos/asf/james-project/blob/a09ef443/src/site/markdown/server/manage-webadmin.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/server/manage-webadmin.md b/src/site/markdown/server/manage-webadmin.md
index 5ce90ac..e1547f9 100644
--- a/src/site/markdown/server/manage-webadmin.md
+++ b/src/site/markdown/server/manage-webadmin.md
@@ -2204,10 +2204,10 @@ concurrent changes done during the reIndexing might be ignored.
### ReIndexing a mailbox mails
```
-curl -XPOST http://ip:port/mailboxIndex/users/bob@domain.com/mailboxes/{mailboxId}?task=reIndex
+curl -XPOST http://ip:port/mailboxIndex/mailboxes/{mailboxId}?task=reIndex
```
-Will schedule a task for reIndexing all the mails in one mailbox belonging to "bob@domain.com".
+Will schedule a task for reIndexing all the mails in one mailbox.
Note that 'mailboxId' path parameter needs to be a (implementation dependent) valid mailboxId.
@@ -2250,7 +2250,7 @@ concurrent changes done during the reIndexing might be ignored.
### ReIndexing a single mail
```
-curl -XPOST http://ip:port/mailboxIndex/users/bob@domain.com/mailboxes/{mailboxId}/uid/36?task=reIndex
+curl -XPOST http://ip:port/mailboxIndex/mailboxes/{mailboxId}/uid/36?task=reIndex
```
Will schedule a task for reIndexing a single email.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[10/10] james-project git commit: MAILBOX-351 Remove mailboxPath
information from reIndexing tasks
Posted by bt...@apache.org.
MAILBOX-351 Remove mailboxPath information from reIndexing tasks
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/39572158
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/39572158
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/39572158
Branch: refs/heads/master
Commit: 39572158b4e57b5d507985b1f6252d2765602f2d
Parents: c88e353
Author: Benoit Tellier <bt...@linagora.com>
Authored: Tue Nov 27 16:55:43 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Nov 29 10:52:45 2018 +0700
----------------------------------------------------------------------
.../mailbox/tools/indexer/ReIndexerImpl.java | 32 ++++++++------
.../tools/indexer/ReIndexerPerformer.java | 45 +++++++++-----------
.../indexer/SingleMailboxReindexingTask.java | 23 +++++-----
.../indexer/SingleMessageReindexingTask.java | 26 +++++------
.../indexer/CassandraReIndexerImplTest.java | 3 +-
.../tools/indexer/ReIndexerImplTest.java | 3 +-
.../webadmin/routes/ReindexingRoutesTest.java | 4 --
7 files changed, 64 insertions(+), 72 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/39572158/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
index 761a6cb..9f4b49d 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
@@ -30,7 +30,6 @@ import org.apache.james.mailbox.indexer.ReIndexer;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.task.Task;
/**
@@ -57,16 +56,18 @@ public class ReIndexerImpl implements ReIndexer {
@Override
public Task reIndex(MailboxPath path) throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession("ReIndexingImap");
- Mailbox mailbox = mapperFactory.getMailboxMapper(mailboxSession).findMailboxByPath(path);
- return new SingleMailboxReindexingTask(reIndexerPerformer, mailbox);
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(path.getUser());
+
+ MailboxId mailboxId = mailboxManager.getMailbox(path, mailboxSession).getId();
+
+ return new SingleMailboxReindexingTask(reIndexerPerformer, mailboxId);
}
@Override
public Task reIndex(MailboxId mailboxId) throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession("ReIndexingImap");
- Mailbox mailbox = mapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
- return new SingleMailboxReindexingTask(reIndexerPerformer, mailbox);
+ validateIdExists(mailboxId);
+
+ return new SingleMailboxReindexingTask(reIndexerPerformer, mailboxId);
}
@Override
@@ -81,15 +82,22 @@ public class ReIndexerImpl implements ReIndexer {
@Override
public Task reIndex(MailboxPath path, MessageUid uid) throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession("ReIndexingImap");
- Mailbox mailbox = mapperFactory.getMailboxMapper(mailboxSession).findMailboxByPath(path);
- return new SingleMessageReindexingTask(reIndexerPerformer, mailbox, uid);
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(path.getUser());
+
+ MailboxId mailboxId = mailboxManager.getMailbox(path, mailboxSession).getId();
+
+ return new SingleMessageReindexingTask(reIndexerPerformer, mailboxId, uid);
}
@Override
public Task reIndex(MailboxId mailboxId, MessageUid uid) throws MailboxException {
+ validateIdExists(mailboxId);
+
+ return new SingleMessageReindexingTask(reIndexerPerformer, mailboxId, uid);
+ }
+
+ private void validateIdExists(MailboxId mailboxId) throws MailboxException {
MailboxSession mailboxSession = mailboxManager.createSystemSession("ReIndexingImap");
- Mailbox mailbox = mapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
- return new SingleMessageReindexingTask(reIndexerPerformer, mailbox, uid);
+ mapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/39572158/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
----------------------------------------------------------------------
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 4e49f33..ffa623d 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
@@ -65,8 +65,23 @@ public class ReIndexerPerformer {
this.mailboxSessionMapperFactory = mailboxSessionMapperFactory;
}
- Task.Result reIndex(Mailbox mailbox, ReprocessingContext reprocessingContext) throws MailboxException {
- return reIndexSingleMailbox(mailbox.getMailboxId(), reprocessingContext);
+ Task.Result reIndex(MailboxId mailboxId, ReprocessingContext reprocessingContext) throws MailboxException {
+ LOGGER.info("Intend to reindex mailbox with mailboxId {}", mailboxId.serialize());
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(RE_INDEXING);
+ Mailbox mailbox = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
+ messageSearchIndex.deleteAll(mailboxSession, mailbox);
+ try {
+ return Iterators.toStream(
+ mailboxSessionMapperFactory.getMessageMapper(mailboxSession)
+ .findInMailbox(mailbox, MessageRange.all(), MessageMapper.FetchType.Metadata, NO_LIMIT))
+ .map(MailboxMessage::getUid)
+ .map(uid -> handleMessageReIndexing(mailboxSession, mailbox, uid))
+ .peek(reprocessingContext::updateAccordingToReprocessingResult)
+ .reduce(Task::combine)
+ .orElse(Task.Result.COMPLETED);
+ } finally {
+ LOGGER.info("Finish to reindex mailbox with mailboxId {}", mailboxId.serialize());
+ }
}
Task.Result reIndex(ReprocessingContext reprocessingContext) throws MailboxException {
@@ -98,9 +113,10 @@ public class ReIndexerPerformer {
}
}
- Task.Result handleMessageReIndexing(Mailbox mailbox, MessageUid uid) throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession(mailbox.getUser());
+ Task.Result handleMessageReIndexing(MailboxId mailboxId, MessageUid uid) throws MailboxException {
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(RE_INDEXING);
+ Mailbox mailbox = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
return handleMessageReIndexing(mailboxSession, mailbox, uid);
}
@@ -108,7 +124,7 @@ public class ReIndexerPerformer {
return mailboxIds
.map(mailboxId -> {
try {
- return reIndexSingleMailbox(mailboxId, reprocessingContext);
+ return reIndex(mailboxId, reprocessingContext);
} catch (Throwable e) {
LOGGER.error("Error while proceeding to full reindexing on mailbox with mailboxId {}", mailboxId.serialize(), e);
return Task.Result.PARTIAL;
@@ -118,25 +134,6 @@ public class ReIndexerPerformer {
.orElse(Task.Result.COMPLETED);
}
- private Task.Result reIndexSingleMailbox(MailboxId mailboxId, ReprocessingContext reprocessingContext) throws MailboxException {
- LOGGER.info("Intend to reindex mailbox with mailboxId {}", mailboxId.serialize());
- MailboxSession mailboxSession = mailboxManager.createSystemSession(RE_INDEXING);
- Mailbox mailbox = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
- messageSearchIndex.deleteAll(mailboxSession, mailbox);
- try {
- return Iterators.toStream(
- mailboxSessionMapperFactory.getMessageMapper(mailboxSession)
- .findInMailbox(mailbox, MessageRange.all(), MessageMapper.FetchType.Metadata, NO_LIMIT))
- .map(MailboxMessage::getUid)
- .map(uid -> handleMessageReIndexing(mailboxSession, mailbox, uid))
- .peek(reprocessingContext::updateAccordingToReprocessingResult)
- .reduce(Task::combine)
- .orElse(Task.Result.COMPLETED);
- } finally {
- LOGGER.info("Finish to reindex mailbox with mailboxId {}", mailboxId.serialize());
- }
- }
-
private Task.Result handleMessageReIndexing(MailboxSession mailboxSession, Mailbox mailbox, MessageUid uid) {
try {
Optional.of(uid)
http://git-wip-us.apache.org/repos/asf/james-project/blob/39572158/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTask.java
----------------------------------------------------------------------
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 c3f024b..00f771b 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
@@ -24,7 +24,7 @@ import java.util.Optional;
import javax.inject.Inject;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.store.mail.model.Mailbox;
+import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.task.Task;
import org.apache.james.task.TaskExecutionDetails;
@@ -33,20 +33,17 @@ public class SingleMailboxReindexingTask implements Task {
public static final String MAILBOX_RE_INDEXING = "mailboxReIndexing";
public static class AdditionalInformation implements TaskExecutionDetails.AdditionalInformation {
- private final Mailbox mailbox;
+ private final MailboxId mailboxId;
private final ReprocessingContext reprocessingContext;
- AdditionalInformation(Mailbox mailbox, ReprocessingContext reprocessingContext) {
- this.mailbox = mailbox;
+ AdditionalInformation(MailboxId mailboxId, ReprocessingContext reprocessingContext) {
+ this.mailboxId = mailboxId;
this.reprocessingContext = reprocessingContext;
}
- public String getMailboxPath() {
- return mailbox.generateAssociatedPath().asString();
- }
public String getMailboxId() {
- return mailbox.getMailboxId().serialize();
+ return mailboxId.serialize();
}
public int getSuccessfullyReprocessMailCount() {
@@ -59,22 +56,22 @@ public class SingleMailboxReindexingTask implements Task {
}
private final ReIndexerPerformer reIndexerPerformer;
- private final Mailbox mailbox;
+ private final MailboxId mailboxId;
private final AdditionalInformation additionalInformation;
private final ReprocessingContext reprocessingContext;
@Inject
- public SingleMailboxReindexingTask(ReIndexerPerformer reIndexerPerformer, Mailbox mailbox) {
+ public SingleMailboxReindexingTask(ReIndexerPerformer reIndexerPerformer, MailboxId mailboxId) {
this.reIndexerPerformer = reIndexerPerformer;
- this.mailbox = mailbox;
+ this.mailboxId = mailboxId;
this.reprocessingContext = new ReprocessingContext();
- this.additionalInformation = new AdditionalInformation(mailbox, reprocessingContext);
+ this.additionalInformation = new AdditionalInformation(mailboxId, reprocessingContext);
}
@Override
public Result run() {
try {
- return reIndexerPerformer.reIndex(mailbox, reprocessingContext);
+ return reIndexerPerformer.reIndex(mailboxId, reprocessingContext);
} catch (MailboxException e) {
return Result.PARTIAL;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/39572158/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java
index ef6aa07..749bf36 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java
@@ -25,7 +25,7 @@ import javax.inject.Inject;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.store.mail.model.Mailbox;
+import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.task.Task;
import org.apache.james.task.TaskExecutionDetails;
import org.slf4j.Logger;
@@ -37,20 +37,16 @@ public class SingleMessageReindexingTask implements Task {
public static final String MESSAGE_RE_INDEXING = "messageReIndexing";
public static class AdditionalInformation implements TaskExecutionDetails.AdditionalInformation {
- private final Mailbox mailbox;
+ private final MailboxId mailboxId;
private final MessageUid uid;
- AdditionalInformation(Mailbox mailbox, MessageUid uid) {
- this.mailbox = mailbox;
+ AdditionalInformation(MailboxId mailboxId, MessageUid uid) {
+ this.mailboxId = mailboxId;
this.uid = uid;
}
- public String getMailboxPath() {
- return mailbox.generateAssociatedPath().asString();
- }
-
public String getMailboxId() {
- return mailbox.getMailboxId().serialize();
+ return mailboxId.serialize();
}
public long getUid() {
@@ -59,24 +55,24 @@ public class SingleMessageReindexingTask implements Task {
}
private final ReIndexerPerformer reIndexerPerformer;
- private final Mailbox mailbox;
+ private final MailboxId mailboxId;
private final MessageUid uid;
private final AdditionalInformation additionalInformation;
@Inject
- public SingleMessageReindexingTask(ReIndexerPerformer reIndexerPerformer, Mailbox mailbox, MessageUid uid) {
+ public SingleMessageReindexingTask(ReIndexerPerformer reIndexerPerformer, MailboxId mailboxId, MessageUid uid) {
this.reIndexerPerformer = reIndexerPerformer;
- this.mailbox = mailbox;
+ this.mailboxId = mailboxId;
this.uid = uid;
- this.additionalInformation = new AdditionalInformation(mailbox, uid);
+ this.additionalInformation = new AdditionalInformation(mailboxId, uid);
}
@Override
public Result run() {
try {
- return reIndexerPerformer.handleMessageReIndexing(mailbox, uid);
+ return reIndexerPerformer.handleMessageReIndexing(mailboxId, uid);
} catch (MailboxException e) {
- LOGGER.warn("Error encounteres while reindexing {} {} : {}", mailbox.getMailboxId(), mailbox.generateAssociatedPath(), uid, e);
+ LOGGER.warn("Error encounteres while reindexing {} : {}",mailboxId, uid, e);
return Result.PARTIAL;
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/39572158/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java
index 8a95a85..7161b38 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java
@@ -65,8 +65,7 @@ public class CassandraReIndexerImplTest {
MailboxSessionMapperFactory mailboxSessionMapperFactory = mailboxManager.getMapperFactory();
messageSearchIndex = mock(ListeningMessageSearchIndex.class);
reIndexer = new ReIndexerImpl(new ReIndexerPerformer(mailboxManager, messageSearchIndex, mailboxSessionMapperFactory),
- mailboxManager,
- mailboxSessionMapperFactory);
+ mailboxManager, mailboxSessionMapperFactory);
}
@Test
http://git-wip-us.apache.org/repos/asf/james-project/blob/39572158/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
index 1f187d3..80bcecd 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
@@ -63,8 +63,7 @@ public class ReIndexerImplTest {
MailboxSessionMapperFactory mailboxSessionMapperFactory = mailboxManager.getMapperFactory();
messageSearchIndex = mock(ListeningMessageSearchIndex.class);
reIndexer = new ReIndexerImpl(new ReIndexerPerformer(mailboxManager, messageSearchIndex, mailboxSessionMapperFactory),
- mailboxManager,
- mailboxSessionMapperFactory);
+ mailboxManager, mailboxSessionMapperFactory);
}
@Test
http://git-wip-us.apache.org/repos/asf/james-project/blob/39572158/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ReindexingRoutesTest.java
----------------------------------------------------------------------
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 a6ddc4e..f5e9382 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
@@ -443,7 +443,6 @@ class ReindexingRoutesTest {
.body("status", is("completed"))
.body("taskId", is(notNullValue()))
.body("type", is(SingleMailboxReindexingTask.MAILBOX_RE_INDEXING))
- .body("additionalInformation.mailboxPath", is("#private:benwa@apache.org:INBOX"))
.body("additionalInformation.mailboxId", is(mailboxId.serialize()))
.body("additionalInformation.successfullyReprocessMailCount", is(0))
.body("additionalInformation.failedReprocessedMailCount", is(0))
@@ -474,7 +473,6 @@ class ReindexingRoutesTest {
.body("status", is("completed"))
.body("taskId", is(notNullValue()))
.body("type", is(SingleMailboxReindexingTask.MAILBOX_RE_INDEXING))
- .body("additionalInformation.mailboxPath", is("#private:benwa@apache.org:INBOX"))
.body("additionalInformation.mailboxId", is(mailboxId.serialize()))
.body("additionalInformation.successfullyReprocessMailCount", is(1))
.body("additionalInformation.failedReprocessedMailCount", is(0))
@@ -610,7 +608,6 @@ class ReindexingRoutesTest {
.body("status", is("completed"))
.body("taskId", is(notNullValue()))
.body("type", is(SingleMessageReindexingTask.MESSAGE_RE_INDEXING))
- .body("additionalInformation.mailboxPath", is("#private:benwa@apache.org:INBOX"))
.body("additionalInformation.mailboxId", is(mailboxId.serialize()))
.body("additionalInformation.uid", is(1))
.body("startedDate", is(notNullValue()))
@@ -641,7 +638,6 @@ class ReindexingRoutesTest {
.body("status", is("completed"))
.body("taskId", is(notNullValue()))
.body("type", is(SingleMessageReindexingTask.MESSAGE_RE_INDEXING))
- .body("additionalInformation.mailboxPath", is("#private:benwa@apache.org:INBOX"))
.body("additionalInformation.mailboxId", is(mailboxId.serialize()))
.body("additionalInformation.uid", is((int) composedMessageId.getUid().asLong()))
.body("startedDate", is(notNullValue()))
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[04/10] james-project git commit: MAILBOX-351 Task details should
include mailboxId when relevant
Posted by bt...@apache.org.
MAILBOX-351 Task details should include mailboxId when relevant
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c88e353d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c88e353d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c88e353d
Branch: refs/heads/master
Commit: c88e353db257d182d6af74caa7906c6d5a27cbe2
Parents: a09ef44
Author: Benoit Tellier <bt...@linagora.com>
Authored: Mon Nov 26 10:09:29 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Nov 29 10:52:45 2018 +0700
----------------------------------------------------------------------
.../org/apache/james/webadmin/routes/ReindexingRoutesTest.java | 4 ++++
1 file changed, 4 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/c88e353d/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ReindexingRoutesTest.java
----------------------------------------------------------------------
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 08db547..a6ddc4e 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
@@ -444,6 +444,7 @@ class ReindexingRoutesTest {
.body("taskId", is(notNullValue()))
.body("type", is(SingleMailboxReindexingTask.MAILBOX_RE_INDEXING))
.body("additionalInformation.mailboxPath", is("#private:benwa@apache.org:INBOX"))
+ .body("additionalInformation.mailboxId", is(mailboxId.serialize()))
.body("additionalInformation.successfullyReprocessMailCount", is(0))
.body("additionalInformation.failedReprocessedMailCount", is(0))
.body("startedDate", is(notNullValue()))
@@ -474,6 +475,7 @@ class ReindexingRoutesTest {
.body("taskId", is(notNullValue()))
.body("type", is(SingleMailboxReindexingTask.MAILBOX_RE_INDEXING))
.body("additionalInformation.mailboxPath", is("#private:benwa@apache.org:INBOX"))
+ .body("additionalInformation.mailboxId", is(mailboxId.serialize()))
.body("additionalInformation.successfullyReprocessMailCount", is(1))
.body("additionalInformation.failedReprocessedMailCount", is(0))
.body("startedDate", is(notNullValue()))
@@ -609,6 +611,7 @@ class ReindexingRoutesTest {
.body("taskId", is(notNullValue()))
.body("type", is(SingleMessageReindexingTask.MESSAGE_RE_INDEXING))
.body("additionalInformation.mailboxPath", is("#private:benwa@apache.org:INBOX"))
+ .body("additionalInformation.mailboxId", is(mailboxId.serialize()))
.body("additionalInformation.uid", is(1))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()))
@@ -639,6 +642,7 @@ class ReindexingRoutesTest {
.body("taskId", is(notNullValue()))
.body("type", is(SingleMessageReindexingTask.MESSAGE_RE_INDEXING))
.body("additionalInformation.mailboxPath", is("#private:benwa@apache.org:INBOX"))
+ .body("additionalInformation.mailboxId", is(mailboxId.serialize()))
.body("additionalInformation.uid", is((int) composedMessageId.getUid().asLong()))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()))
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[03/10] james-project git commit: MAILBOX-351 WebAdminReIndexing
routes can rely directly on MailboxId
Posted by bt...@apache.org.
MAILBOX-351 WebAdminReIndexing routes can rely directly on MailboxId
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/85350b38
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/85350b38
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/85350b38
Branch: refs/heads/master
Commit: 85350b38639e7ae5b15ef785f3c1dc1a80a3789d
Parents: 5e04df0
Author: Benoit Tellier <bt...@linagora.com>
Authored: Fri Nov 23 15:41:11 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Nov 29 10:52:45 2018 +0700
----------------------------------------------------------------------
.../james/webadmin/routes/ReindexingRoutes.java | 55 ++++++++------------
.../webadmin/routes/ReindexingRoutesTest.java | 6 ++-
2 files changed, 27 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/85350b38/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
index e042580..e954a0f 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
@@ -25,14 +25,11 @@ import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import org.apache.james.core.User;
-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.exception.MailboxNotFoundException;
import org.apache.james.mailbox.indexer.ReIndexer;
import org.apache.james.mailbox.model.MailboxId;
-import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.task.Task;
import org.apache.james.task.TaskId;
import org.apache.james.task.TaskManager;
@@ -42,8 +39,6 @@ import org.apache.james.webadmin.utils.ErrorResponder;
import org.apache.james.webadmin.utils.JsonTransformer;
import org.eclipse.jetty.http.HttpStatus;
-import com.github.fge.lambdas.supplier.ThrowingSupplier;
-
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -58,6 +53,11 @@ import spark.Service;
@Path("/mailboxIndex")
@Produces("application/json")
public class ReindexingRoutes implements Routes {
+ @FunctionalInterface
+ interface TaskGenerator {
+ Task generate() throws MailboxException;
+ }
+
static final String BASE_PATH = "/mailboxIndex";
private static final String USER_PARAM = ":user";
private static final String MAILBOX_PARAM = ":mailbox";
@@ -67,15 +67,13 @@ public class ReindexingRoutes implements Routes {
private static final String MESSAGE_PATH = MAILBOX_PATH + "/mails/" + UID_PARAM;
private final TaskManager taskManager;
- private final MailboxManager mailboxManager;
private final MailboxId.Factory mailboxIdFactory;
private final ReIndexer reIndexer;
private final JsonTransformer jsonTransformer;
@Inject
- public ReindexingRoutes(TaskManager taskManager, MailboxManager mailboxManager, MailboxId.Factory mailboxIdFactory, ReIndexer reIndexer, JsonTransformer jsonTransformer) {
+ public ReindexingRoutes(TaskManager taskManager, MailboxId.Factory mailboxIdFactory, ReIndexer reIndexer, JsonTransformer jsonTransformer) {
this.taskManager = taskManager;
- this.mailboxManager = mailboxManager;
this.mailboxIdFactory = mailboxIdFactory;
this.reIndexer = reIndexer;
this.jsonTransformer = jsonTransformer;
@@ -183,7 +181,7 @@ public class ReindexingRoutes implements Routes {
})
private TaskIdDto reIndexMailbox(Request request, Response response) {
return wrap(request, response,
- () -> reIndexer.reIndex(retrievePath(request)));
+ () -> reIndexer.reIndex(extractMailboxId(request)));
}
@POST
@@ -223,14 +221,25 @@ public class ReindexingRoutes implements Routes {
})
private TaskIdDto reIndexMessage(Request request, Response response) {
return wrap(request, response,
- () -> reIndexer.reIndex(retrievePath(request), extractUid(request)));
+ () -> reIndexer.reIndex(extractMailboxId(request), extractUid(request)));
}
- private TaskIdDto wrap(Request request, Response response, ThrowingSupplier<Task> taskGenerator) {
+ private TaskIdDto wrap(Request request, Response response, TaskGenerator taskGenerator) {
ReIndexingRoutesUtil.enforceTaskParameter(request);
- Task task = taskGenerator.get();
- TaskId taskId = taskManager.submit(task);
- return TaskIdDto.respond(response, taskId);
+ try {
+ Task task = taskGenerator.generate();
+ TaskId taskId = taskManager.submit(task);
+ return TaskIdDto.respond(response, taskId);
+ } catch (MailboxNotFoundException e) {
+ throw ErrorResponder.builder()
+ .statusCode(HttpStatus.BAD_REQUEST_400)
+ .type(ErrorResponder.ErrorType.INVALID_ARGUMENT)
+ .message("mailbox not found")
+ .cause(e)
+ .haltError();
+ } catch (MailboxException e) {
+ throw new RuntimeException(e);
+ }
}
private User extractUser(Request request) {
@@ -246,10 +255,6 @@ public class ReindexingRoutes implements Routes {
}
}
- private MailboxPath retrievePath(Request request) throws MailboxException {
- return toMailboxPath(extractUser(request), extractMailboxId(request));
- }
-
private MailboxId extractMailboxId(Request request) {
try {
return mailboxIdFactory.fromString(request.params(MAILBOX_PARAM));
@@ -275,18 +280,4 @@ public class ReindexingRoutes implements Routes {
.haltError();
}
}
-
- private MailboxPath toMailboxPath(User user, MailboxId mailboxId) throws MailboxException {
- try {
- MailboxSession systemSession = mailboxManager.createSystemSession(user.asString());
- return mailboxManager.getMailbox(mailboxId, systemSession).getMailboxPath();
- } catch (MailboxNotFoundException e) {
- throw ErrorResponder.builder()
- .statusCode(HttpStatus.BAD_REQUEST_400)
- .type(ErrorResponder.ErrorType.INVALID_ARGUMENT)
- .message("mailbox not found")
- .cause(e)
- .haltError();
- }
- }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/85350b38/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ReindexingRoutesTest.java
----------------------------------------------------------------------
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 f0c6459..6ac8cc8 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
@@ -61,6 +61,7 @@ import org.apache.mailbox.tools.indexer.UserReindexingTask;
import org.eclipse.jetty.http.HttpStatus;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
@@ -95,7 +96,6 @@ class ReindexingRoutesTest {
new TasksRoutes(taskManager, jsonTransformer),
new ReindexingRoutes(
taskManager,
- mailboxManager,
mailboxIdFactory,
reIndexer,
jsonTransformer),
@@ -401,6 +401,7 @@ class ReindexingRoutesTest {
.body("message", is("task query parameter is mandatory. The only supported value is `reIndex`"));
}
+ @Disabled("Using user here makes no sens from an API perspective, and will be removed")
@Test
void mailboxReprocessingShouldFailWithBadUser() throws Exception {
MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
@@ -580,6 +581,7 @@ class ReindexingRoutesTest {
.body("message", is("task query parameter is mandatory. The only supported value is `reIndex`"));
}
+ @Disabled("Using user here makes no sens from an API perspective, and will be removed")
@Test
void messageReprocessingShouldFailWithBadUser() throws Exception {
MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
@@ -624,7 +626,7 @@ class ReindexingRoutesTest {
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
.body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
- .body("message", is("mailbox not found"));
+ .body("message", is("'uid' needs to be a parsable long"));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[05/10] james-project git commit: MAILBOX-351 ReIndexer should allow
to reIndex per MailboxId
Posted by bt...@apache.org.
MAILBOX-351 ReIndexer should allow to reIndex per MailboxId
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1bd2c290
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1bd2c290
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1bd2c290
Branch: refs/heads/master
Commit: 1bd2c290518ef0305d0082c7208314ee30cebef6
Parents: 655d35b
Author: Benoit Tellier <bt...@linagora.com>
Authored: Fri Nov 23 15:34:11 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Nov 29 10:52:45 2018 +0700
----------------------------------------------------------------------
.../apache/james/mailbox/indexer/ReIndexer.java | 3 ++
.../mailbox/tools/indexer/ReIndexerImpl.java | 25 ++++++++--
.../tools/indexer/ReIndexerPerformer.java | 4 +-
.../indexer/SingleMailboxReindexingTask.java | 24 +++++----
.../mailbox/tools/indexer/ThrowsReIndexer.java | 6 +++
.../indexer/CassandraReIndexerImplTest.java | 4 +-
.../tools/indexer/ReIndexerImplTest.java | 51 +++++++++++++++++++-
.../webadmin/routes/ReindexingRoutesTest.java | 4 +-
8 files changed, 102 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/1bd2c290/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java b/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
index 817307b..5d4dd3a 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
@@ -22,6 +22,7 @@ package org.apache.james.mailbox.indexer;
import org.apache.james.core.User;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.task.Task;
@@ -31,6 +32,8 @@ public interface ReIndexer {
Task reIndex(MailboxPath path) throws MailboxException;
+ Task reIndex(MailboxId mailboxId) throws MailboxException;
+
Task reIndex() throws MailboxException;
Task reIndex(MailboxPath path, MessageUid uid) throws MailboxException;
http://git-wip-us.apache.org/repos/asf/james-project/blob/1bd2c290/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
index c32c533..d1c7b9e 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
@@ -22,9 +22,15 @@ package org.apache.mailbox.tools.indexer;
import javax.inject.Inject;
import org.apache.james.core.User;
+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.ReIndexer;
+import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
+import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.task.Task;
/**
@@ -39,15 +45,28 @@ import org.apache.james.task.Task;
public class ReIndexerImpl implements ReIndexer {
private final ReIndexerPerformer reIndexerPerformer;
+ private final MailboxManager mailboxManager;
+ private final MailboxSessionMapperFactory mapperFactory;
@Inject
- public ReIndexerImpl(ReIndexerPerformer reIndexerPerformer) {
+ public ReIndexerImpl(ReIndexerPerformer reIndexerPerformer, MailboxManager mailboxManager, MailboxSessionMapperFactory mapperFactory) {
this.reIndexerPerformer = reIndexerPerformer;
+ this.mailboxManager = mailboxManager;
+ this.mapperFactory = mapperFactory;
}
@Override
- public Task reIndex(MailboxPath path) {
- return new SingleMailboxReindexingTask(reIndexerPerformer, path);
+ public Task reIndex(MailboxPath path) throws MailboxException {
+ MailboxSession mailboxSession = mailboxManager.createSystemSession("ReIndexingImap");
+ Mailbox mailbox = mapperFactory.getMailboxMapper(mailboxSession).findMailboxByPath(path);
+ return new SingleMailboxReindexingTask(reIndexerPerformer, mailbox);
+ }
+
+ @Override
+ public Task reIndex(MailboxId mailboxId) throws MailboxException {
+ MailboxSession mailboxSession = mailboxManager.createSystemSession("ReIndexingImap");
+ Mailbox mailbox = mapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
+ return new SingleMailboxReindexingTask(reIndexerPerformer, mailbox);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/1bd2c290/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
----------------------------------------------------------------------
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 b86316f..552ddca 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
@@ -66,9 +66,7 @@ public class ReIndexerPerformer {
this.mailboxSessionMapperFactory = mailboxSessionMapperFactory;
}
- Task.Result reIndex(MailboxPath path, ReprocessingContext reprocessingContext) throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession(path.getUser());
- Mailbox mailbox = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).findMailboxByPath(path);
+ Task.Result reIndex(Mailbox mailbox, ReprocessingContext reprocessingContext) throws MailboxException {
return reIndexSingleMailbox(mailbox.getMailboxId(), reprocessingContext);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1bd2c290/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTask.java
----------------------------------------------------------------------
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 fc9f834..c3f024b 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
@@ -24,7 +24,7 @@ import java.util.Optional;
import javax.inject.Inject;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.task.Task;
import org.apache.james.task.TaskExecutionDetails;
@@ -33,16 +33,20 @@ public class SingleMailboxReindexingTask implements Task {
public static final String MAILBOX_RE_INDEXING = "mailboxReIndexing";
public static class AdditionalInformation implements TaskExecutionDetails.AdditionalInformation {
- private final MailboxPath mailboxPath;
+ private final Mailbox mailbox;
private final ReprocessingContext reprocessingContext;
- AdditionalInformation(MailboxPath mailboxPath, ReprocessingContext reprocessingContext) {
- this.mailboxPath = mailboxPath;
+ AdditionalInformation(Mailbox mailbox, ReprocessingContext reprocessingContext) {
+ this.mailbox = mailbox;
this.reprocessingContext = reprocessingContext;
}
public String getMailboxPath() {
- return mailboxPath.asString();
+ return mailbox.generateAssociatedPath().asString();
+ }
+
+ public String getMailboxId() {
+ return mailbox.getMailboxId().serialize();
}
public int getSuccessfullyReprocessMailCount() {
@@ -55,22 +59,22 @@ public class SingleMailboxReindexingTask implements Task {
}
private final ReIndexerPerformer reIndexerPerformer;
- private final MailboxPath path;
+ private final Mailbox mailbox;
private final AdditionalInformation additionalInformation;
private final ReprocessingContext reprocessingContext;
@Inject
- public SingleMailboxReindexingTask(ReIndexerPerformer reIndexerPerformer, MailboxPath path) {
+ public SingleMailboxReindexingTask(ReIndexerPerformer reIndexerPerformer, Mailbox mailbox) {
this.reIndexerPerformer = reIndexerPerformer;
- this.path = path;
+ this.mailbox = mailbox;
this.reprocessingContext = new ReprocessingContext();
- this.additionalInformation = new AdditionalInformation(path, reprocessingContext);
+ this.additionalInformation = new AdditionalInformation(mailbox, reprocessingContext);
}
@Override
public Result run() {
try {
- return reIndexerPerformer.reIndex(path, reprocessingContext);
+ return reIndexerPerformer.reIndex(mailbox, reprocessingContext);
} catch (MailboxException e) {
return Result.PARTIAL;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1bd2c290/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ThrowsReIndexer.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ThrowsReIndexer.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ThrowsReIndexer.java
index 5ffb02b..f5016a1 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ThrowsReIndexer.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ThrowsReIndexer.java
@@ -23,6 +23,7 @@ import org.apache.james.core.User;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.indexer.ReIndexer;
+import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.task.Task;
@@ -34,6 +35,11 @@ public class ThrowsReIndexer implements ReIndexer {
}
@Override
+ public Task reIndex(MailboxId mailboxId) throws MailboxException {
+ throw new MailboxException("Not implemented");
+ }
+
+ @Override
public Task reIndex() throws MailboxException {
throw new MailboxException("Not implemented");
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1bd2c290/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java
index 6c55478..8a95a85 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java
@@ -64,7 +64,9 @@ public class CassandraReIndexerImplTest {
mailboxManager = CassandraMailboxManagerProvider.provideMailboxManager(cassandra.getConf(), cassandra.getTypesProvider());
MailboxSessionMapperFactory mailboxSessionMapperFactory = mailboxManager.getMapperFactory();
messageSearchIndex = mock(ListeningMessageSearchIndex.class);
- reIndexer = new ReIndexerImpl(new ReIndexerPerformer(mailboxManager, messageSearchIndex, mailboxSessionMapperFactory));
+ reIndexer = new ReIndexerImpl(new ReIndexerPerformer(mailboxManager, messageSearchIndex, mailboxSessionMapperFactory),
+ mailboxManager,
+ mailboxSessionMapperFactory);
}
@Test
http://git-wip-us.apache.org/repos/asf/james-project/blob/1bd2c290/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
index 74e834a..70a74ca 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
@@ -20,6 +20,7 @@
package org.apache.mailbox.tools.indexer;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -30,7 +31,9 @@ import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.indexer.ReIndexer;
+import org.apache.james.mailbox.inmemory.InMemoryId;
import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
import org.apache.james.mailbox.model.ComposedMessageId;
@@ -58,7 +61,9 @@ public class ReIndexerImplTest {
mailboxManager = new InMemoryIntegrationResources().createMailboxManager(new SimpleGroupMembershipResolver());
MailboxSessionMapperFactory mailboxSessionMapperFactory = mailboxManager.getMapperFactory();
messageSearchIndex = mock(ListeningMessageSearchIndex.class);
- reIndexer = new ReIndexerImpl(new ReIndexerPerformer(mailboxManager, messageSearchIndex, mailboxSessionMapperFactory));
+ reIndexer = new ReIndexerImpl(new ReIndexerPerformer(mailboxManager, messageSearchIndex, mailboxSessionMapperFactory),
+ mailboxManager,
+ mailboxSessionMapperFactory);
}
@Test
@@ -154,4 +159,48 @@ public class ReIndexerImplTest {
assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId)
&& message.getUid().equals(createdMessage.getUid()));
}
+
+ @Test
+ void mailboxIdReIndexShouldBeWellPerformed() throws Exception {
+ MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
+ MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
+ ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession)
+ .appendMessage(
+ MessageManager.AppendCommand.builder().build("header: value\r\n\r\nbody"),
+ systemSession);
+
+ reIndexer.reIndex(mailboxId).run();
+ ArgumentCaptor<MailboxMessage> messageCaptor = ArgumentCaptor.forClass(MailboxMessage.class);
+ ArgumentCaptor<Mailbox> mailboxCaptor = ArgumentCaptor.forClass(Mailbox.class);
+
+ verify(messageSearchIndex).deleteAll(any(MailboxSession.class), mailboxCaptor.capture());
+ verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor.capture(), messageCaptor.capture());
+ verifyNoMoreInteractions(messageSearchIndex);
+
+ assertThat(mailboxCaptor.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
+ assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId)
+ && message.getUid().equals(createdMessage.getUid()));
+ }
+
+ @Test
+ void mailboxIdReIndexShouldBeWellPerformedWhenEmptyMailbox() throws Exception {
+ MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
+ MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
+
+ reIndexer.reIndex(mailboxId).run();
+ ArgumentCaptor<Mailbox> mailboxCaptor = ArgumentCaptor.forClass(Mailbox.class);
+
+ verify(messageSearchIndex).deleteAll(any(MailboxSession.class), mailboxCaptor.capture());
+ verifyNoMoreInteractions(messageSearchIndex);
+
+ assertThat(mailboxCaptor.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
+ }
+
+ @Test
+ void mailboxIdReIndexShouldFailWhenMailboxNotFound() {
+ MailboxId mailboxId = InMemoryId.of(42);
+
+ assertThatThrownBy(() -> reIndexer.reIndex(mailboxId))
+ .isInstanceOf(MailboxNotFoundException.class);
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1bd2c290/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ReindexingRoutesTest.java
----------------------------------------------------------------------
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 c0e90cf..f0c6459 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
@@ -85,7 +85,9 @@ class ReindexingRoutesTest {
new ReIndexerPerformer(
mailboxManager,
searchIndex,
- mailboxManager.getMapperFactory()));
+ mailboxManager.getMapperFactory()),
+ mailboxManager,
+ mailboxManager.getMapperFactory());
JsonTransformer jsonTransformer = new JsonTransformer();
webAdminServer = WebAdminUtils.createWebAdminServer(
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[08/10] james-project git commit: MAILBOX-351 ReIndexerImpl test:
make test names more accurate
Posted by bt...@apache.org.
MAILBOX-351 ReIndexerImpl test: make test names more accurate
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f1f981a4
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f1f981a4
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f1f981a4
Branch: refs/heads/master
Commit: f1f981a4b75d49bdae4ed908f71f50f07ef0f12a
Parents: 9b43051
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Nov 28 15:48:08 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Nov 29 10:52:45 2018 +0700
----------------------------------------------------------------------
.../mailbox/tools/indexer/ReIndexerImplTest.java | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/f1f981a4/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
index 3e0661f..4ada930 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
@@ -67,7 +67,7 @@ public class ReIndexerImplTest {
}
@Test
- void reIndexShouldBeWellPerformed() throws Exception {
+ void reIndexAllShouldCallMessageSearchIndex() throws Exception {
MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession)
@@ -94,7 +94,7 @@ public class ReIndexerImplTest {
}
@Test
- void mailboxPathUserShouldBeUsedWhenReIndexing() throws Exception {
+ void reIndexMailboxPathShouldCallMessageSearchIndex() throws Exception {
MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession)
@@ -120,7 +120,7 @@ public class ReIndexerImplTest {
}
@Test
- void userReIndexShouldBeWellPerformed() throws Exception {
+ void userReIndexShouldCallMessageSearchIndex() throws Exception {
MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession)
@@ -146,7 +146,7 @@ public class ReIndexerImplTest {
}
@Test
- void messageReIndexShouldBeWellPerformed() throws Exception {
+ void messageReIndexShouldCallMessageSearchIndex() throws Exception {
MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession)
@@ -169,7 +169,7 @@ public class ReIndexerImplTest {
}
@Test
- void messageReIndexUsingMailboxIdShouldBeWellPerformed() throws Exception {
+ void messageReIndexUsingMailboxIdShouldCallMessageSearchIndex() throws Exception {
MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession)
@@ -212,7 +212,7 @@ public class ReIndexerImplTest {
}
@Test
- void mailboxIdReIndexShouldBeWellPerformed() throws Exception {
+ void mailboxIdReIndexShouldCallMessageSearchIndex() throws Exception {
MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession)
@@ -236,7 +236,7 @@ public class ReIndexerImplTest {
}
@Test
- void mailboxIdReIndexShouldBeWellPerformedWhenEmptyMailbox() throws Exception {
+ void mailboxIdReIndexShouldOnlyDropSearchIndexWhenEmptyMailbox() throws Exception {
MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[02/10] james-project git commit: MAILBOX-351 ReIndexerImpl test: use
Assertj statisfies
Posted by bt...@apache.org.
MAILBOX-351 ReIndexerImpl test: use Assertj statisfies
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/9b430511
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/9b430511
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/9b430511
Branch: refs/heads/master
Commit: 9b430511cd11a16873caf1c51530084f196d200d
Parents: 3957215
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Nov 28 15:44:34 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Nov 29 10:52:45 2018 +0700
----------------------------------------------------------------------
.../tools/indexer/ReIndexerImplTest.java | 56 ++++++++++++--------
1 file changed, 34 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/9b430511/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
index 80bcecd..3e0661f 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
@@ -85,10 +85,12 @@ public class ReIndexerImplTest {
verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor2.capture(), messageCaptor.capture());
verifyNoMoreInteractions(messageSearchIndex);
- assertThat(mailboxCaptor1.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
- assertThat(mailboxCaptor2.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
- assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId)
- && message.getUid().equals(createdMessage.getUid()));
+ assertThat(mailboxCaptor1.getValue()).satisfies(mailbox -> assertThat(mailbox.getMailboxId()).isEqualTo(mailboxId));
+ assertThat(mailboxCaptor2.getValue()).satisfies(mailbox -> assertThat(mailbox.getMailboxId()).isEqualTo(mailboxId));
+ assertThat(messageCaptor.getValue()).satisfies(message -> {
+ assertThat(message.getMailboxId()).isEqualTo(mailboxId);
+ assertThat(message.getUid()).isEqualTo(createdMessage.getUid());
+ });
}
@Test
@@ -109,10 +111,12 @@ public class ReIndexerImplTest {
verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor2.capture(), messageCaptor.capture());
verifyNoMoreInteractions(messageSearchIndex);
- assertThat(mailboxCaptor1.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
- assertThat(mailboxCaptor2.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
- assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId)
- && message.getUid().equals(createdMessage.getUid()));
+ assertThat(mailboxCaptor1.getValue()).satisfies(mailbox -> assertThat(mailbox.getMailboxId()).isEqualTo(mailboxId));
+ assertThat(mailboxCaptor2.getValue()).satisfies(mailbox -> assertThat(mailbox.getMailboxId()).isEqualTo(mailboxId));
+ assertThat(messageCaptor.getValue()).satisfies(message -> {
+ assertThat(message.getMailboxId()).isEqualTo(mailboxId);
+ assertThat(message.getUid()).isEqualTo(createdMessage.getUid());
+ });
}
@Test
@@ -133,10 +137,12 @@ public class ReIndexerImplTest {
verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor2.capture(), messageCaptor.capture());
verifyNoMoreInteractions(messageSearchIndex);
- assertThat(mailboxCaptor1.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
- assertThat(mailboxCaptor2.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
- assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId)
- && message.getUid().equals(createdMessage.getUid()));
+ assertThat(mailboxCaptor1.getValue()).satisfies(mailbox -> assertThat(mailbox.getMailboxId()).isEqualTo(mailboxId));
+ assertThat(mailboxCaptor2.getValue()).satisfies(mailbox -> assertThat(mailbox.getMailboxId()).isEqualTo(mailboxId));
+ assertThat(messageCaptor.getValue()).satisfies(message -> {
+ assertThat(message.getMailboxId()).isEqualTo(mailboxId);
+ assertThat(message.getUid()).isEqualTo(createdMessage.getUid());
+ });
}
@Test
@@ -155,9 +161,11 @@ public class ReIndexerImplTest {
verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor.capture(), messageCaptor.capture());
verifyNoMoreInteractions(messageSearchIndex);
- assertThat(mailboxCaptor.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
- assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId)
- && message.getUid().equals(createdMessage.getUid()));
+ assertThat(mailboxCaptor.getValue()).satisfies(mailbox -> assertThat(mailbox.getMailboxId()).isEqualTo(mailboxId));
+ assertThat(messageCaptor.getValue()).satisfies(message -> {
+ assertThat(message.getMailboxId()).isEqualTo(mailboxId);
+ assertThat(message.getUid()).isEqualTo(createdMessage.getUid());
+ });
}
@Test
@@ -176,9 +184,11 @@ public class ReIndexerImplTest {
verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor.capture(), messageCaptor.capture());
verifyNoMoreInteractions(messageSearchIndex);
- assertThat(mailboxCaptor.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
- assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId)
- && message.getUid().equals(createdMessage.getUid()));
+ assertThat(mailboxCaptor.getValue()).satisfies(mailbox -> assertThat(mailbox.getMailboxId()).isEqualTo(mailboxId));
+ assertThat(messageCaptor.getValue()).satisfies(message -> {
+ assertThat(message.getMailboxId()).isEqualTo(mailboxId);
+ assertThat(message.getUid()).isEqualTo(createdMessage.getUid());
+ });
}
@Test
@@ -218,9 +228,11 @@ public class ReIndexerImplTest {
verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor.capture(), messageCaptor.capture());
verifyNoMoreInteractions(messageSearchIndex);
- assertThat(mailboxCaptor.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
- assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId)
- && message.getUid().equals(createdMessage.getUid()));
+ assertThat(mailboxCaptor.getValue()).satisfies(mailbox -> assertThat(mailbox.getMailboxId()).isEqualTo(mailboxId));
+ assertThat(messageCaptor.getValue()).satisfies(message -> {
+ assertThat(message.getMailboxId()).isEqualTo(mailboxId);
+ assertThat(message.getUid()).isEqualTo(createdMessage.getUid());
+ });
}
@Test
@@ -234,7 +246,7 @@ public class ReIndexerImplTest {
verify(messageSearchIndex).deleteAll(any(MailboxSession.class), mailboxCaptor.capture());
verifyNoMoreInteractions(messageSearchIndex);
- assertThat(mailboxCaptor.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
+ assertThat(mailboxCaptor.getValue()).satisfies(mailbox -> assertThat(mailbox.getMailboxId()).isEqualTo(mailboxId));
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[07/10] james-project git commit: MAILBOX-351 ReIndexer should allow
to reIndex single message per MailboxId
Posted by bt...@apache.org.
MAILBOX-351 ReIndexer should allow to reIndex single message per MailboxId
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/5e04df05
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/5e04df05
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/5e04df05
Branch: refs/heads/master
Commit: 5e04df0550ae7226899ebfe882ec06ed6cf2d977
Parents: 1bd2c29
Author: Benoit Tellier <bt...@linagora.com>
Authored: Fri Nov 23 15:39:44 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Nov 29 10:52:45 2018 +0700
----------------------------------------------------------------------
.../apache/james/mailbox/indexer/ReIndexer.java | 2 +
.../mailbox/tools/indexer/ReIndexerImpl.java | 13 +++++-
.../tools/indexer/ReIndexerPerformer.java | 7 +---
.../indexer/SingleMessageReindexingTask.java | 28 ++++++++-----
.../mailbox/tools/indexer/ThrowsReIndexer.java | 6 ++-
.../tools/indexer/ReIndexerImplTest.java | 42 ++++++++++++++++++++
6 files changed, 80 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/5e04df05/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java b/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
index 5d4dd3a..837ba38 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
@@ -38,4 +38,6 @@ public interface ReIndexer {
Task reIndex(MailboxPath path, MessageUid uid) throws MailboxException;
+ Task reIndex(MailboxId mailboxId, MessageUid uid) throws MailboxException;
+
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5e04df05/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
index d1c7b9e..761a6cb 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
@@ -80,7 +80,16 @@ public class ReIndexerImpl implements ReIndexer {
}
@Override
- public Task reIndex(MailboxPath path, MessageUid uid) {
- return new SingleMessageReindexingTask(reIndexerPerformer, path, uid);
+ public Task reIndex(MailboxPath path, MessageUid uid) throws MailboxException {
+ MailboxSession mailboxSession = mailboxManager.createSystemSession("ReIndexingImap");
+ Mailbox mailbox = mapperFactory.getMailboxMapper(mailboxSession).findMailboxByPath(path);
+ return new SingleMessageReindexingTask(reIndexerPerformer, mailbox, uid);
+ }
+
+ @Override
+ public Task reIndex(MailboxId mailboxId, MessageUid uid) throws MailboxException {
+ MailboxSession mailboxSession = mailboxManager.createSystemSession("ReIndexingImap");
+ Mailbox mailbox = mapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
+ return new SingleMessageReindexingTask(reIndexerPerformer, mailbox, uid);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5e04df05/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
----------------------------------------------------------------------
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 552ddca..4e49f33 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
@@ -31,7 +31,6 @@ import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MailboxMetaData;
-import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.MessageRange;
import org.apache.james.mailbox.model.search.MailboxQuery;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
@@ -99,10 +98,8 @@ public class ReIndexerPerformer {
}
}
- Task.Result handleMessageReIndexing(MailboxPath path, MessageUid uid) throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession(path.getUser());
- Mailbox mailbox = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession)
- .findMailboxByPath(path);
+ Task.Result handleMessageReIndexing(Mailbox mailbox, MessageUid uid) throws MailboxException {
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(mailbox.getUser());
return handleMessageReIndexing(mailboxSession, mailbox, uid);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5e04df05/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java
index 501ee6f..ef6aa07 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java
@@ -25,25 +25,32 @@ import javax.inject.Inject;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.task.Task;
import org.apache.james.task.TaskExecutionDetails;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class SingleMessageReindexingTask implements Task {
+ private static final Logger LOGGER = LoggerFactory.getLogger(SingleMessageReindexingTask.class);
public static final String MESSAGE_RE_INDEXING = "messageReIndexing";
public static class AdditionalInformation implements TaskExecutionDetails.AdditionalInformation {
- private final MailboxPath mailboxPath;
+ private final Mailbox mailbox;
private final MessageUid uid;
- AdditionalInformation(MailboxPath mailboxPath, MessageUid uid) {
- this.mailboxPath = mailboxPath;
+ AdditionalInformation(Mailbox mailbox, MessageUid uid) {
+ this.mailbox = mailbox;
this.uid = uid;
}
public String getMailboxPath() {
- return mailboxPath.asString();
+ return mailbox.generateAssociatedPath().asString();
+ }
+
+ public String getMailboxId() {
+ return mailbox.getMailboxId().serialize();
}
public long getUid() {
@@ -52,23 +59,24 @@ public class SingleMessageReindexingTask implements Task {
}
private final ReIndexerPerformer reIndexerPerformer;
- private final MailboxPath path;
+ private final Mailbox mailbox;
private final MessageUid uid;
private final AdditionalInformation additionalInformation;
@Inject
- public SingleMessageReindexingTask(ReIndexerPerformer reIndexerPerformer, MailboxPath path, MessageUid uid) {
+ public SingleMessageReindexingTask(ReIndexerPerformer reIndexerPerformer, Mailbox mailbox, MessageUid uid) {
this.reIndexerPerformer = reIndexerPerformer;
- this.path = path;
+ this.mailbox = mailbox;
this.uid = uid;
- this.additionalInformation = new AdditionalInformation(path, uid);
+ this.additionalInformation = new AdditionalInformation(mailbox, uid);
}
@Override
public Result run() {
try {
- return reIndexerPerformer.handleMessageReIndexing(path, uid);
+ return reIndexerPerformer.handleMessageReIndexing(mailbox, uid);
} catch (MailboxException e) {
+ LOGGER.warn("Error encounteres while reindexing {} {} : {}", mailbox.getMailboxId(), mailbox.generateAssociatedPath(), uid, e);
return Result.PARTIAL;
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5e04df05/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ThrowsReIndexer.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ThrowsReIndexer.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ThrowsReIndexer.java
index f5016a1..5a5173b 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ThrowsReIndexer.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ThrowsReIndexer.java
@@ -28,7 +28,6 @@ import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.task.Task;
public class ThrowsReIndexer implements ReIndexer {
-
@Override
public Task reIndex(MailboxPath path) throws MailboxException {
throw new MailboxException("Not implemented");
@@ -53,4 +52,9 @@ public class ThrowsReIndexer implements ReIndexer {
public Task reIndex(MailboxPath path, MessageUid uid) throws MailboxException {
throw new MailboxException("Not implemented");
}
+
+ @Override
+ public Task reIndex(MailboxId mailboxId, MessageUid uid) throws MailboxException {
+ throw new MailboxException("Not implemented");
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5e04df05/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
index 70a74ca..1f187d3 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
import org.apache.james.core.User;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
@@ -161,6 +162,47 @@ public class ReIndexerImplTest {
}
@Test
+ void messageReIndexUsingMailboxIdShouldBeWellPerformed() throws Exception {
+ MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
+ MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
+ ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession)
+ .appendMessage(
+ MessageManager.AppendCommand.builder().build("header: value\r\n\r\nbody"),
+ systemSession);
+
+ reIndexer.reIndex(mailboxId, createdMessage.getUid()).run();
+ ArgumentCaptor<MailboxMessage> messageCaptor = ArgumentCaptor.forClass(MailboxMessage.class);
+ ArgumentCaptor<Mailbox> mailboxCaptor = ArgumentCaptor.forClass(Mailbox.class);
+
+ verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor.capture(), messageCaptor.capture());
+ verifyNoMoreInteractions(messageSearchIndex);
+
+ assertThat(mailboxCaptor.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId));
+ assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId)
+ && message.getUid().equals(createdMessage.getUid()));
+ }
+
+ @Test
+ void messageReIndexUsingMailboxIdShouldDoNothingWhenUidNotFound() throws Exception {
+ MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
+ MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
+ MessageUid uid = MessageUid.of(36);
+
+ reIndexer.reIndex(mailboxId, uid).run();
+
+ verifyNoMoreInteractions(messageSearchIndex);
+ }
+
+ @Test
+ void messageReIndexUsingMailboxIdShouldFailWhenMailboxNotFound() {
+ MailboxId mailboxId = InMemoryId.of(42);
+ MessageUid uid = MessageUid.of(36);
+
+ assertThatThrownBy(() -> reIndexer.reIndex(mailboxId, uid))
+ .isInstanceOf(MailboxNotFoundException.class);
+ }
+
+ @Test
void mailboxIdReIndexShouldBeWellPerformed() throws Exception {
MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org