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 2020/07/03 02:04:08 UTC
[james-project] 13/15: JAMES-3184 Add serialized info for
reindexing tasks RunningOptions
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit ce9d7ba6ab5b3af21205ddc20d84013c7c76adb9
Author: LanKhuat <kh...@gmail.com>
AuthorDate: Wed Jul 1 16:09:23 2020 +0700
JAMES-3184 Add serialized info for reindexing tasks RunningOptions
---
.../apache/james/mailbox/indexer/ReIndexer.java | 4 -
.../WebAdminReprocessingContextInformationDTO.java | 21 ++--
...lboxReindexingTaskAdditionalInformationDTO.java | 9 +-
...UserReindexingTaskAdditionalInformationDTO.java | 8 ++
...AdminReprocessingContextInformationDTOTest.java | 2 +
.../WebAdminSingleMailboxReprocessingDTOTest.java | 1 +
.../dto/WebAdminUserReprocessingDTOTest.java | 1 +
.../james/webadmin/routes/MailboxesRoutesTest.java | 136 +++++++++++++++++++++
.../webadmin/routes/UserMailboxesRoutesTest.java | 43 +++++++
9 files changed, 213 insertions(+), 12 deletions(-)
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 60c08a4..e953059 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
@@ -46,10 +46,6 @@ public interface ReIndexer {
return this;
}
- public Builder messagesPerSeconds(int messagesPerSecond) {
- return messagesPerSeconds(Optional.of(messagesPerSecond));
- }
-
public Builder mode(Optional<Mode> mode) {
this.mode = mode;
return this;
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminReprocessingContextInformationDTO.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminReprocessingContextInformationDTO.java
index 124fec3..89efaeb 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminReprocessingContextInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminReprocessingContextInformationDTO.java
@@ -30,6 +30,7 @@ import org.apache.james.server.task.json.dto.AdditionalInformationDTOModule;
import org.apache.mailbox.tools.indexer.ErrorRecoveryIndexationTask;
import org.apache.mailbox.tools.indexer.FullReindexingTask;
import org.apache.mailbox.tools.indexer.ReprocessingContextInformationDTO;
+import org.apache.mailbox.tools.indexer.RunningOptionsDTO;
import com.github.steveash.guavate.Guavate;
@@ -43,6 +44,7 @@ public class WebAdminReprocessingContextInformationDTO implements AdditionalInfo
})
.toDTOConverter((details, type) -> new WebAdminErrorRecoveryIndexationDTO(
type,
+ RunningOptionsDTO.toDTO(details.getRunningOptions()),
details.getSuccessfullyReprocessedMailCount(),
details.getFailedReprocessedMailCount(),
details.failures(),
@@ -51,9 +53,9 @@ public class WebAdminReprocessingContextInformationDTO implements AdditionalInfo
.withFactory(AdditionalInformationDTOModule::new);
}
- WebAdminErrorRecoveryIndexationDTO(String type, int successfullyReprocessedMailCount, int failedReprocessedMailCount,
+ WebAdminErrorRecoveryIndexationDTO(String type, RunningOptionsDTO runningOptionsDTO, int successfullyReprocessedMailCount, int failedReprocessedMailCount,
ReIndexingExecutionFailures failures, Instant timestamp) {
- super(type, successfullyReprocessedMailCount, failedReprocessedMailCount, failures, timestamp);
+ super(type, runningOptionsDTO, successfullyReprocessedMailCount, failedReprocessedMailCount, failures, timestamp);
}
}
@@ -66,6 +68,7 @@ public class WebAdminReprocessingContextInformationDTO implements AdditionalInfo
})
.toDTOConverter((details, type) -> new WebAdminFullIndexationDTO(
type,
+ RunningOptionsDTO.toDTO(details.getRunningOptions()),
details.getSuccessfullyReprocessedMailCount(),
details.getFailedReprocessedMailCount(),
details.failures(),
@@ -74,25 +77,25 @@ public class WebAdminReprocessingContextInformationDTO implements AdditionalInfo
.withFactory(AdditionalInformationDTOModule::new);
}
- WebAdminFullIndexationDTO(String type, int successfullyReprocessedMailCount, int failedReprocessedMailCount,
+ WebAdminFullIndexationDTO(String type, RunningOptionsDTO runningOptions, int successfullyReprocessedMailCount, int failedReprocessedMailCount,
ReIndexingExecutionFailures failures, Instant timestamp) {
- super(type, successfullyReprocessedMailCount, failedReprocessedMailCount, failures, timestamp);
+ super(type, runningOptions, successfullyReprocessedMailCount, failedReprocessedMailCount, failures, timestamp);
}
-
}
protected final String type;
+ protected final RunningOptionsDTO runningOptions;
protected final int successfullyReprocessedMailCount;
protected final int failedReprocessedMailCount;
protected final SerializableReIndexingExecutionFailures messageFailures;
private final List<String> mailboxFailures;
protected final Instant timestamp;
-
- WebAdminReprocessingContextInformationDTO(String type, int successfullyReprocessedMailCount, int failedReprocessedMailCount,
+ WebAdminReprocessingContextInformationDTO(String type, RunningOptionsDTO runningOptions, int successfullyReprocessedMailCount, int failedReprocessedMailCount,
ReIndexingExecutionFailures failures,
Instant timestamp) {
this.type = type;
+ this.runningOptions = runningOptions;
this.successfullyReprocessedMailCount = successfullyReprocessedMailCount;
this.failedReprocessedMailCount = failedReprocessedMailCount;
this.messageFailures = SerializableReIndexingExecutionFailures.from(failures);
@@ -102,6 +105,10 @@ public class WebAdminReprocessingContextInformationDTO implements AdditionalInfo
this.timestamp = timestamp;
}
+ public RunningOptionsDTO getRunningOptions() {
+ return runningOptions;
+ }
+
public int getSuccessfullyReprocessedMailCount() {
return successfullyReprocessedMailCount;
}
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminSingleMailboxReindexingTaskAdditionalInformationDTO.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminSingleMailboxReindexingTaskAdditionalInformationDTO.java
index 19733ae..d6348e1 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminSingleMailboxReindexingTaskAdditionalInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminSingleMailboxReindexingTaskAdditionalInformationDTO.java
@@ -27,6 +27,7 @@ import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.server.task.json.dto.AdditionalInformationDTO;
import org.apache.james.server.task.json.dto.AdditionalInformationDTOModule;
+import org.apache.mailbox.tools.indexer.RunningOptionsDTO;
import org.apache.mailbox.tools.indexer.SingleMailboxReindexingTask;
import com.fasterxml.jackson.annotation.JsonCreator;
@@ -42,6 +43,7 @@ public class WebAdminSingleMailboxReindexingTaskAdditionalInformationDTO impleme
.toDTOConverter((details, type) -> new WebAdminSingleMailboxReindexingTaskAdditionalInformationDTO(
type,
details.getMailboxId(),
+ RunningOptionsDTO.toDTO(details.getRunningOptions()),
details.getSuccessfullyReprocessedMailCount(),
details.getFailedReprocessedMailCount(),
details.failures(),
@@ -56,13 +58,14 @@ public class WebAdminSingleMailboxReindexingTaskAdditionalInformationDTO impleme
@JsonCreator
private WebAdminSingleMailboxReindexingTaskAdditionalInformationDTO(String type,
String mailboxId,
+ RunningOptionsDTO runningOptions,
int successfullyReprocessedMailCount,
int failedReprocessedMailCount,
ReIndexingExecutionFailures failures,
Instant timestamp) {
this.mailboxId = mailboxId;
this.reprocessingContextInformationDTO = new WebAdminReprocessingContextInformationDTO(
- type, successfullyReprocessedMailCount, failedReprocessedMailCount, failures, timestamp);
+ type, runningOptions, successfullyReprocessedMailCount, failedReprocessedMailCount, failures, timestamp);
}
@Override
@@ -78,6 +81,10 @@ public class WebAdminSingleMailboxReindexingTaskAdditionalInformationDTO impleme
return mailboxId;
}
+ public RunningOptionsDTO getRunningOptions() {
+ return reprocessingContextInformationDTO.getRunningOptions();
+ }
+
public int getSuccessfullyReprocessedMailCount() {
return reprocessingContextInformationDTO.getSuccessfullyReprocessedMailCount();
}
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminUserReindexingTaskAdditionalInformationDTO.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminUserReindexingTaskAdditionalInformationDTO.java
index 2b00d4f..ff555b1 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminUserReindexingTaskAdditionalInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminUserReindexingTaskAdditionalInformationDTO.java
@@ -27,6 +27,7 @@ import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.server.task.json.dto.AdditionalInformationDTO;
import org.apache.james.server.task.json.dto.AdditionalInformationDTOModule;
+import org.apache.mailbox.tools.indexer.RunningOptionsDTO;
import org.apache.mailbox.tools.indexer.UserReindexingTask;
import com.fasterxml.jackson.annotation.JsonCreator;
@@ -42,6 +43,7 @@ public class WebAdminUserReindexingTaskAdditionalInformationDTO implements Addit
.toDTOConverter((details, type) -> new WebAdminUserReindexingTaskAdditionalInformationDTO(
type,
details.getUsername(),
+ RunningOptionsDTO.toDTO(details.getRunningOptions()),
details.getSuccessfullyReprocessedMailCount(),
details.getFailedReprocessedMailCount(),
details.failures(),
@@ -56,6 +58,7 @@ public class WebAdminUserReindexingTaskAdditionalInformationDTO implements Addit
@JsonCreator
private WebAdminUserReindexingTaskAdditionalInformationDTO(String type,
String username,
+ RunningOptionsDTO runningOptions,
int successfullyReprocessedMailCount,
int failedReprocessedMailCount,
ReIndexingExecutionFailures failures,
@@ -63,6 +66,7 @@ public class WebAdminUserReindexingTaskAdditionalInformationDTO implements Addit
this.username = username;
this.reprocessingContextInformationDTO = new WebAdminReprocessingContextInformationDTO(
type,
+ runningOptions,
successfullyReprocessedMailCount,
failedReprocessedMailCount, failures, timestamp);
}
@@ -80,6 +84,10 @@ public class WebAdminUserReindexingTaskAdditionalInformationDTO implements Addit
return username;
}
+ public RunningOptionsDTO getRunningOptions() {
+ return reprocessingContextInformationDTO.getRunningOptions();
+ }
+
public int getSuccessfullyReprocessedMailCount() {
return reprocessingContextInformationDTO.getSuccessfullyReprocessedMailCount();
}
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminReprocessingContextInformationDTOTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminReprocessingContextInformationDTOTest.java
index 48ffab4..6bcfa5f 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminReprocessingContextInformationDTOTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminReprocessingContextInformationDTOTest.java
@@ -41,6 +41,7 @@ class WebAdminReprocessingContextInformationDTOTest {
private final String serializedErrorRecoveryAdditionalInformation = "{" +
" \"type\":\"error-recovery-indexation\"," +
+ " \"runningOptions\":{\"messagesPerSecond\":50,\"mode\":\"REBUILD_ALL\"}," +
" \"successfullyReprocessedMailCount\":42," +
" \"failedReprocessedMailCount\":2," +
" \"messageFailures\":{\"1\":[{\"uid\":10}],\"2\":[{\"uid\":20}]}," +
@@ -48,6 +49,7 @@ class WebAdminReprocessingContextInformationDTOTest {
" \"timestamp\":\"2018-11-13T12:00:55Z\"}";
private final String serializedFullAdditionalInformation = "{" +
" \"type\":\"full-reindexing\"," +
+ " \"runningOptions\":{\"messagesPerSecond\":50,\"mode\":\"REBUILD_ALL\"}," +
" \"successfullyReprocessedMailCount\":42," +
" \"failedReprocessedMailCount\":2," +
" \"messageFailures\":{\"1\":[{\"uid\":10}],\"2\":[{\"uid\":20}]}," +
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminSingleMailboxReprocessingDTOTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminSingleMailboxReprocessingDTOTest.java
index 6409881..c112ea5 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminSingleMailboxReprocessingDTOTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminSingleMailboxReprocessingDTOTest.java
@@ -42,6 +42,7 @@ class WebAdminSingleMailboxReprocessingDTOTest {
private final String serializedAdditionalInformation = "{" +
" \"type\":\"mailbox-reindexing\"," +
" \"mailboxId\":\"1\"," +
+ " \"runningOptions\":{\"messagesPerSecond\":50,\"mode\":\"REBUILD_ALL\"}," +
" \"successfullyReprocessedMailCount\":42," +
" \"failedReprocessedMailCount\":2," +
" \"messageFailures\":{\"1\":[{\"uid\":10}],\"2\":[{\"uid\":20}]}," +
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminUserReprocessingDTOTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminUserReprocessingDTOTest.java
index 05987d4..09f49f3 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminUserReprocessingDTOTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminUserReprocessingDTOTest.java
@@ -42,6 +42,7 @@ class WebAdminUserReprocessingDTOTest {
private final String serializedAdditionalInformation = "{" +
" \"type\":\"user-reindexing\",\"username\":\"bob\"," +
+ " \"runningOptions\":{\"messagesPerSecond\":50,\"mode\":\"REBUILD_ALL\"}," +
" \"successfullyReprocessedMailCount\":42," +
" \"failedReprocessedMailCount\":2," +
" \"messageFailures\":{\"1\":[{\"uid\":10}],\"2\":[{\"uid\":20}]}," +
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
index c537a72..b64e4ab 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
@@ -250,6 +250,8 @@ class MailboxesRoutesTest {
.body("type", is(FullReindexingTask.FULL_RE_INDEXING.asString()))
.body("additionalInformation.successfullyReprocessedMailCount", is(0))
.body("additionalInformation.failedReprocessedMailCount", is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(50))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()))
.body("completedDate", is(notNullValue()));
@@ -279,6 +281,40 @@ class MailboxesRoutesTest {
.body("type", is(FullReindexingTask.FULL_RE_INDEXING.asString()))
.body("additionalInformation.successfullyReprocessedMailCount", is(1))
.body("additionalInformation.failedReprocessedMailCount", is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(50))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
+ .body("startedDate", is(notNullValue()))
+ .body("submitDate", is(notNullValue()))
+ .body("completedDate", is(notNullValue()));
+ }
+
+ @Test
+ void fullReprocessingWithMessagesPerSecondShouldReturnTaskDetailsWhenMail() throws Exception {
+ MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
+ mailboxManager.createMailbox(INBOX, systemSession).get();
+ mailboxManager.getMailbox(INBOX, systemSession)
+ .appendMessage(
+ MessageManager.AppendCommand.builder().build("header: value\r\n\r\nbody"),
+ systemSession);
+
+ String taskId = with()
+ .queryParam("messagesPerSecond", 1)
+ .post("/mailboxes?task=reIndex")
+ .jsonPath()
+ .get("taskId");
+
+ given()
+ .basePath(TasksRoutes.BASE)
+ .when()
+ .get(taskId + "/await")
+ .then()
+ .body("status", is("completed"))
+ .body("taskId", is(notNullValue()))
+ .body("type", is(FullReindexingTask.FULL_RE_INDEXING.asString()))
+ .body("additionalInformation.successfullyReprocessedMailCount", is(1))
+ .body("additionalInformation.failedReprocessedMailCount", is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(1))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()))
.body("completedDate", is(notNullValue()));
@@ -313,6 +349,8 @@ class MailboxesRoutesTest {
.body("type", is(FullReindexingTask.FULL_RE_INDEXING.asString()))
.body("additionalInformation.successfullyReprocessedMailCount", is(0))
.body("additionalInformation.failedReprocessedMailCount", is(1))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(50))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
.body("additionalInformation.messageFailures.\"" + mailboxId.serialize() + "\"[0].uid", is(Long.valueOf(uidAsLong).intValue()))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()));
@@ -386,6 +424,8 @@ class MailboxesRoutesTest {
.body("type", is(FullReindexingTask.FULL_RE_INDEXING.asString()))
.body("additionalInformation.successfullyReprocessedMailCount", is(2))
.body("additionalInformation.failedReprocessedMailCount", is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(50))
+ .body("additionalInformation.runningOptions.mode", is("FIX_OUTDATED"))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()))
.body("completedDate", is(notNullValue()));
@@ -619,6 +659,8 @@ class MailboxesRoutesTest {
.body("additionalInformation.mailboxId", is(mailboxId.serialize()))
.body("additionalInformation.successfullyReprocessedMailCount", is(0))
.body("additionalInformation.failedReprocessedMailCount", is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(50))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()))
.body("completedDate", is(notNullValue()));
@@ -649,6 +691,41 @@ class MailboxesRoutesTest {
.body("additionalInformation.mailboxId", is(mailboxId.serialize()))
.body("additionalInformation.successfullyReprocessedMailCount", is(1))
.body("additionalInformation.failedReprocessedMailCount", is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(50))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
+ .body("startedDate", is(notNullValue()))
+ .body("submitDate", is(notNullValue()));
+ }
+
+ @Test
+ void mailboxReprocessingWithMessagesPerSecondShouldReturnTaskDetailsWhenMail() throws Exception {
+ MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
+ MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get();
+ mailboxManager.getMailbox(INBOX, systemSession)
+ .appendMessage(
+ MessageManager.AppendCommand.builder().build("header: value\r\n\r\nbody"),
+ systemSession);
+
+ String taskId = with()
+ .queryParam("task", "reIndex")
+ .queryParam("messagesPerSecond", 1)
+ .post("/mailboxes/" + mailboxId.serialize())
+ .jsonPath()
+ .get("taskId");
+
+ given()
+ .basePath(TasksRoutes.BASE)
+ .when()
+ .get(taskId + "/await")
+ .then()
+ .body("status", is("completed"))
+ .body("taskId", is(notNullValue()))
+ .body("type", is(SingleMailboxReindexingTask.TYPE.asString()))
+ .body("additionalInformation.mailboxId", is(mailboxId.serialize()))
+ .body("additionalInformation.successfullyReprocessedMailCount", is(1))
+ .body("additionalInformation.failedReprocessedMailCount", is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(1))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()));
}
@@ -683,6 +760,8 @@ class MailboxesRoutesTest {
.body("type", is(SingleMailboxReindexingTask.TYPE.asString()))
.body("additionalInformation.successfullyReprocessedMailCount", is(0))
.body("additionalInformation.failedReprocessedMailCount", is(1))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(50))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
.body("additionalInformation.messageFailures.\"" + mailboxId.serialize() + "\"[0].uid", is(Long.valueOf(uidAsLong).intValue()))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()));
@@ -760,6 +839,8 @@ class MailboxesRoutesTest {
.body("type", is(SingleMailboxReindexingTask.TYPE.asString()))
.body("additionalInformation.successfullyReprocessedMailCount", is(2))
.body("additionalInformation.failedReprocessedMailCount", is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(50))
+ .body("additionalInformation.runningOptions.mode", is("FIX_OUTDATED"))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()))
.body("completedDate", is(notNullValue()));
@@ -1181,6 +1262,8 @@ class MailboxesRoutesTest {
.body("type", is("error-recovery-indexation"))
.body("additionalInformation.successfullyReprocessedMailCount", is(0))
.body("additionalInformation.failedReprocessedMailCount", is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(50))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()))
.body("completedDate", is(notNullValue()));
@@ -1225,6 +1308,55 @@ class MailboxesRoutesTest {
.body("type", is("error-recovery-indexation"))
.body("additionalInformation.successfullyReprocessedMailCount", is(1))
.body("additionalInformation.failedReprocessedMailCount", is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(50))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
+ .body("startedDate", is(notNullValue()))
+ .body("submitDate", is(notNullValue()))
+ .body("completedDate", is(notNullValue()));
+ }
+
+ @Test
+ void fixingReIndexingWithMessagePerSecondShouldReturnTaskDetailsWhenMail() throws Exception {
+ MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
+ mailboxManager.createMailbox(INBOX, systemSession).get();
+ mailboxManager.getMailbox(INBOX, systemSession)
+ .appendMessage(
+ MessageManager.AppendCommand.builder().build("header: value\r\n\r\nbody"),
+ systemSession);
+
+ doReturn(Mono.error(new RuntimeException())).when(searchIndex).add(any(MailboxSession.class), any(Mailbox.class), any(MailboxMessage.class));
+
+ String taskId = with()
+ .post("/mailboxes?task=reIndex")
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ doReturn(Mono.empty()).when(searchIndex).add(any(MailboxSession.class), any(Mailbox.class), any(MailboxMessage.class));
+
+ String fixingTaskId = with()
+ .queryParam("reIndexFailedMessagesOf", taskId)
+ .queryParam("task", "reIndex")
+ .queryParam("messagesPerSecond", 1)
+ .post("/mailboxes")
+ .jsonPath()
+ .get("taskId");
+
+ given()
+ .basePath(TasksRoutes.BASE)
+ .when()
+ .get(fixingTaskId + "/await")
+ .then()
+ .body("status", is("completed"))
+ .body("taskId", is(notNullValue()))
+ .body("type", is("error-recovery-indexation"))
+ .body("additionalInformation.successfullyReprocessedMailCount", is(1))
+ .body("additionalInformation.failedReprocessedMailCount", is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(1))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()))
.body("completedDate", is(notNullValue()));
@@ -1270,6 +1402,8 @@ class MailboxesRoutesTest {
.body("type", is("error-recovery-indexation"))
.body("additionalInformation.successfullyReprocessedMailCount", is(0))
.body("additionalInformation.failedReprocessedMailCount", is(1))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(50))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
.body("additionalInformation.messageFailures.\"" + mailboxId.serialize() + "\"[0].uid", is(Long.valueOf(uidAsLong).intValue()))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()));
@@ -1307,6 +1441,8 @@ class MailboxesRoutesTest {
.then()
.body("status", Matchers.is("failed"))
.body("taskId", Matchers.is(notNullValue()))
+ .body("additionalInformation.runningOptions.messagesPerSecond", is(50))
+ .body("additionalInformation.runningOptions.mode", is("REBUILD_ALL"))
.body("additionalInformation.mailboxFailures", Matchers.containsInAnyOrder(mailboxId.serialize()));
}
}
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
index 768913f..f6db1b5 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
@@ -1265,6 +1265,8 @@ class UserMailboxesRoutesTest {
.body("additionalInformation.username", Matchers.is("username"))
.body("additionalInformation.successfullyReprocessedMailCount", Matchers.is(0))
.body("additionalInformation.failedReprocessedMailCount", Matchers.is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", Matchers.is(50))
+ .body("additionalInformation.runningOptions.mode", Matchers.is("REBUILD_ALL"))
.body("startedDate", Matchers.is(notNullValue()))
.body("submitDate", Matchers.is(notNullValue()))
.body("completedDate", Matchers.is(notNullValue()));
@@ -1297,6 +1299,43 @@ class UserMailboxesRoutesTest {
.body("additionalInformation.username", Matchers.is("username"))
.body("additionalInformation.successfullyReprocessedMailCount", Matchers.is(1))
.body("additionalInformation.failedReprocessedMailCount", Matchers.is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", Matchers.is(50))
+ .body("additionalInformation.runningOptions.mode", Matchers.is("REBUILD_ALL"))
+ .body("startedDate", Matchers.is(notNullValue()))
+ .body("submitDate", Matchers.is(notNullValue()))
+ .body("completedDate", Matchers.is(notNullValue()));
+ }
+
+ @Test
+ void userReprocessingWithMessagesPerSecondShouldReturnTaskDetailsWhenMail() throws Exception {
+ MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME);
+ mailboxManager.createMailbox(INBOX, systemSession).get();
+ mailboxManager.getMailbox(INBOX, systemSession)
+ .appendMessage(
+ MessageManager.AppendCommand.builder().build("header: value\r\n\r\nbody"),
+ systemSession);
+
+ String taskId = given()
+ .queryParam("task", "reIndex")
+ .queryParam("messagesPerSecond", 1)
+ .when()
+ .post()
+ .jsonPath()
+ .get("taskId");
+
+ given()
+ .basePath(TasksRoutes.BASE)
+ .when()
+ .get(taskId + "/await")
+ .then()
+ .body("status", Matchers.is("completed"))
+ .body("taskId", Matchers.is(notNullValue()))
+ .body("type", Matchers.is(UserReindexingTask.USER_RE_INDEXING.asString()))
+ .body("additionalInformation.username", Matchers.is("username"))
+ .body("additionalInformation.successfullyReprocessedMailCount", Matchers.is(1))
+ .body("additionalInformation.failedReprocessedMailCount", Matchers.is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", Matchers.is(1))
+ .body("additionalInformation.runningOptions.mode", Matchers.is("REBUILD_ALL"))
.body("startedDate", Matchers.is(notNullValue()))
.body("submitDate", Matchers.is(notNullValue()))
.body("completedDate", Matchers.is(notNullValue()));
@@ -1332,6 +1371,8 @@ class UserMailboxesRoutesTest {
.body("type", Matchers.is(UserReindexingTask.USER_RE_INDEXING.asString()))
.body("additionalInformation.successfullyReprocessedMailCount", Matchers.is(0))
.body("additionalInformation.failedReprocessedMailCount", Matchers.is(1))
+ .body("additionalInformation.runningOptions.messagesPerSecond", Matchers.is(50))
+ .body("additionalInformation.runningOptions.mode", Matchers.is("REBUILD_ALL"))
.body("additionalInformation.messageFailures.\"" + mailboxId.serialize() + "\"[0].uid", Matchers.is(Long.valueOf(uidAsLong).intValue()))
.body("startedDate", Matchers.is(notNullValue()))
.body("submitDate", Matchers.is(notNullValue()));
@@ -1408,6 +1449,8 @@ class UserMailboxesRoutesTest {
.body("type", Matchers.is(UserReindexingTask.USER_RE_INDEXING.asString()))
.body("additionalInformation.successfullyReprocessedMailCount", Matchers.is(2))
.body("additionalInformation.failedReprocessedMailCount", Matchers.is(0))
+ .body("additionalInformation.runningOptions.messagesPerSecond", Matchers.is(50))
+ .body("additionalInformation.runningOptions.mode", Matchers.is("FIX_OUTDATED"))
.body("startedDate", Matchers.is(notNullValue()))
.body("submitDate", Matchers.is(notNullValue()))
.body("completedDate", Matchers.is(notNullValue()));
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org