You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by hq...@apache.org on 2025/10/29 07:11:37 UTC
(james-project) 03/07: JAMES-4148 Additional information: mailboxName -> mailboxPath
This is an automated email from the ASF dual-hosted git repository.
hqtran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 904d30aece1bf1b08c6e770b9afff2a294a749bd
Author: Quan Tran <hq...@linagora.com>
AuthorDate: Tue Oct 28 15:28:25 2025 +0700
JAMES-4148 Additional information: mailboxName -> mailboxPath
Allow knowing if the mailbox is a shared mailbox.
---
docs/modules/servers/partials/operate/webadmin.adoc | 4 ++--
...MQWebAdminServerTaskSerializationIntegrationTest.java | 2 +-
.../james/webadmin/data/jmap/RunRulesOnMailboxTask.java | 16 ++++++++--------
.../RunRulesOnMailboxTaskAdditionalInformationDTO.java | 16 ++++++++--------
.../webadmin/data/jmap/RunRulesOnMailboxRoutesTest.java | 2 +-
...unRulesOnMailboxTaskAdditionalInformationDTOTest.java | 4 ++--
.../json/runRulesOnMailbox.additionalInformation.json | 2 +-
7 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/docs/modules/servers/partials/operate/webadmin.adoc b/docs/modules/servers/partials/operate/webadmin.adoc
index 0bd32faead..b86cf502a1 100644
--- a/docs/modules/servers/partials/operate/webadmin.adoc
+++ b/docs/modules/servers/partials/operate/webadmin.adoc
@@ -1854,7 +1854,7 @@ the following `additionalInformation`:
....
{
- "mailboxName": "mbx1",
+ "mailboxPath": "#private:bob@domain.tld:mbx1",
"messagesFailCount": 9,
"messagesSuccessCount": 10,
"timestamp": "2007-12-03T10:15:30Z",
@@ -1926,7 +1926,7 @@ the following `additionalInformation`:
....
{
- "mailboxName": "mbx1",
+ "mailboxPath": "#private:bob@domain.tld:mbx1",
"processedMessagesCount": 15,
"rulesOnMessagesApplySuccessfully": 9,
"rulesOnMessagesApplyFailed": 3,
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java
index ea01f9eb62..3c47808de4 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java
@@ -777,7 +777,7 @@ class RabbitMQWebAdminServerTaskSerializationIntegrationTest {
.body("additionalInformation.rulesOnMessagesApplySuccessfully", is(1))
.body("additionalInformation.rulesOnMessagesApplyFailed", is(0))
.body("additionalInformation.username", is(USERNAME))
- .body("additionalInformation.mailboxName", is(MailboxConstants.INBOX));
+ .body("additionalInformation.mailboxPath", is(MailboxPath.forUser(Username.of(USERNAME), MailboxConstants.INBOX).asString()));
}
@Disabled("JAMES-4148: Route not plugged yet")
diff --git a/server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxTask.java b/server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxTask.java
index da99e07ceb..a478af63d7 100644
--- a/server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxTask.java
+++ b/server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxTask.java
@@ -134,15 +134,15 @@ public class RunRulesOnMailboxTask implements Task {
public static class AdditionalInformation implements TaskExecutionDetails.AdditionalInformation {
private static AdditionalInformation from(Username username,
- MailboxName mailboxName,
+ MailboxPath mailboxPath,
RunRulesOnMailboxTask.Context context) {
Context.Snapshot snapshot = context.snapshot();
- return new AdditionalInformation(username, mailboxName, Clock.systemUTC().instant(), snapshot.rulesOnMessagesApplySuccessfully,
+ return new AdditionalInformation(username, mailboxPath, Clock.systemUTC().instant(), snapshot.rulesOnMessagesApplySuccessfully,
snapshot.rulesOnMessagesApplyFailed, snapshot.maximumAppliedActionExceeded, snapshot.processedMessagesCount);
}
private final Username username;
- private final MailboxName mailboxName;
+ private final MailboxPath mailboxPath;
private final Instant timestamp;
private final long rulesOnMessagesApplySuccessfully;
private final long rulesOnMessagesApplyFailed;
@@ -150,14 +150,14 @@ public class RunRulesOnMailboxTask implements Task {
private final long processedMessagesCount;
public AdditionalInformation(Username username,
- MailboxName mailboxName,
+ MailboxPath mailboxPath,
Instant timestamp,
long rulesOnMessagesApplySuccessfully,
long rulesOnMessagesApplyFailed,
boolean maximumAppliedActionExceeded,
long processedMessagesCount) {
this.username = username;
- this.mailboxName = mailboxName;
+ this.mailboxPath = mailboxPath;
this.timestamp = timestamp;
this.rulesOnMessagesApplySuccessfully = rulesOnMessagesApplySuccessfully;
this.rulesOnMessagesApplyFailed = rulesOnMessagesApplyFailed;
@@ -169,8 +169,8 @@ public class RunRulesOnMailboxTask implements Task {
return username;
}
- public MailboxName getMailboxName() {
- return mailboxName;
+ public MailboxPath getMailboxPath() {
+ return mailboxPath;
}
public Instant getTimestamp() {
@@ -238,7 +238,7 @@ public class RunRulesOnMailboxTask implements Task {
@Override
public Optional<TaskExecutionDetails.AdditionalInformation> details() {
- return Optional.of(AdditionalInformation.from(username, new MailboxName(mailboxPath.getName()), context));
+ return Optional.of(AdditionalInformation.from(username, mailboxPath, context));
}
public Username getUsername() {
diff --git a/server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxTaskAdditionalInformationDTO.java b/server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxTaskAdditionalInformationDTO.java
index 4f3feff328..14d2bc493c 100644
--- a/server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxTaskAdditionalInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxTaskAdditionalInformationDTO.java
@@ -23,9 +23,9 @@ import java.time.Instant;
import org.apache.james.core.Username;
import org.apache.james.json.DTOModule;
+import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.server.task.json.dto.AdditionalInformationDTO;
import org.apache.james.server.task.json.dto.AdditionalInformationDTOModule;
-import org.apache.james.webadmin.validation.MailboxName;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -41,7 +41,7 @@ public class RunRulesOnMailboxTaskAdditionalInformationDTO implements Additional
private static RunRulesOnMailboxTask.AdditionalInformation toDomainObject(RunRulesOnMailboxTaskAdditionalInformationDTO dto) {
return new RunRulesOnMailboxTask.AdditionalInformation(
Username.of(dto.getUsername()),
- new MailboxName(dto.getMailboxName()),
+ MailboxPath.parseEscaped(dto.getMailboxPath()).orElseThrow(),
dto.getTimestamp(),
dto.getRulesOnMessagesApplySuccessfully(),
dto.getRulesOnMessagesApplyFailed(),
@@ -53,7 +53,7 @@ public class RunRulesOnMailboxTaskAdditionalInformationDTO implements Additional
return new RunRulesOnMailboxTaskAdditionalInformationDTO(
type,
domain.getUsername().asString(),
- domain.getMailboxName().asString(),
+ domain.getMailboxPath().asString(),
domain.getTimestamp(),
domain.getRulesOnMessagesApplySuccessfully(),
domain.getRulesOnMessagesApplyFailed(),
@@ -63,7 +63,7 @@ public class RunRulesOnMailboxTaskAdditionalInformationDTO implements Additional
private final String type;
private final String username;
- private final String mailboxName;
+ private final String mailboxPath;
private final Instant timestamp;
private final long rulesOnMessagesApplySuccessfully;
private final long rulesOnMessagesApplyFailed;
@@ -72,7 +72,7 @@ public class RunRulesOnMailboxTaskAdditionalInformationDTO implements Additional
public RunRulesOnMailboxTaskAdditionalInformationDTO(@JsonProperty("type") String type,
@JsonProperty("username") String username,
- @JsonProperty("mailboxName") String mailboxName,
+ @JsonProperty("mailboxPath") String mailboxPath,
@JsonProperty("timestamp") Instant timestamp,
@JsonProperty("rulesOnMessagesApplySuccessfully") long rulesOnMessagesApplySuccessfully,
@JsonProperty("rulesOnMessagesApplyFailed") long rulesOnMessagesApplyFailed,
@@ -80,7 +80,7 @@ public class RunRulesOnMailboxTaskAdditionalInformationDTO implements Additional
@JsonProperty("processedMessagesCount") long processedMessagesCount) {
this.type = type;
this.username = username;
- this.mailboxName = mailboxName;
+ this.mailboxPath = mailboxPath;
this.timestamp = timestamp;
this.rulesOnMessagesApplySuccessfully = rulesOnMessagesApplySuccessfully;
this.rulesOnMessagesApplyFailed = rulesOnMessagesApplyFailed;
@@ -102,8 +102,8 @@ public class RunRulesOnMailboxTaskAdditionalInformationDTO implements Additional
return username;
}
- public String getMailboxName() {
- return mailboxName;
+ public String getMailboxPath() {
+ return mailboxPath;
}
public long getRulesOnMessagesApplySuccessfully() {
diff --git a/server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxRoutesTest.java b/server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxRoutesTest.java
index 71ca7a9bf3..50b43be71e 100644
--- a/server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxRoutesTest.java
@@ -1035,7 +1035,7 @@ public class RunRulesOnMailboxRoutesTest {
.body("submitDate", Matchers.is(notNullValue()))
.body("completedDate", Matchers.is(notNullValue()))
.body("additionalInformation.username", Matchers.is(USERNAME.asString()))
- .body("additionalInformation.mailboxName", Matchers.is(MAILBOX_NAME))
+ .body("additionalInformation.mailboxPath", Matchers.is(MailboxPath.forUser(USERNAME, MAILBOX_NAME).asString()))
.body("additionalInformation.rulesOnMessagesApplySuccessfully", Matchers.is(2))
.body("additionalInformation.rulesOnMessagesApplyFailed", Matchers.is(0));
}
diff --git a/server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxTaskAdditionalInformationDTOTest.java b/server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxTaskAdditionalInformationDTOTest.java
index b6cfcc7a35..6af7e3a24b 100644
--- a/server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxTaskAdditionalInformationDTOTest.java
+++ b/server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RunRulesOnMailboxTaskAdditionalInformationDTOTest.java
@@ -23,15 +23,15 @@ import java.time.Instant;
import org.apache.james.JsonSerializationVerifier;
import org.apache.james.core.Username;
+import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.util.ClassLoaderUtils;
-import org.apache.james.webadmin.validation.MailboxName;
import org.junit.jupiter.api.Test;
public class RunRulesOnMailboxTaskAdditionalInformationDTOTest {
private static final Instant INSTANT = Instant.parse("2007-12-03T10:15:30.00Z");
private static final RunRulesOnMailboxTask.AdditionalInformation DOMAIN_OBJECT = new RunRulesOnMailboxTask.AdditionalInformation(
- Username.of("bob@domain.tld"), new MailboxName("mbx1"), INSTANT, 10, 9, false, 30);
+ Username.of("bob@domain.tld"), MailboxPath.forUser(Username.of("bob@domain.tld"), "mbx1"), INSTANT, 10, 9, false, 30);
@Test
void shouldMatchJsonSerializationContract() throws Exception {
diff --git a/server/protocols/webadmin/webadmin-jmap/src/test/resources/json/runRulesOnMailbox.additionalInformation.json b/server/protocols/webadmin/webadmin-jmap/src/test/resources/json/runRulesOnMailbox.additionalInformation.json
index 6be4f207e4..a9482c4dc1 100644
--- a/server/protocols/webadmin/webadmin-jmap/src/test/resources/json/runRulesOnMailbox.additionalInformation.json
+++ b/server/protocols/webadmin/webadmin-jmap/src/test/resources/json/runRulesOnMailbox.additionalInformation.json
@@ -1,5 +1,5 @@
{
- "mailboxName": "mbx1",
+ "mailboxPath": "#private:bob@domain.tld:mbx1",
"rulesOnMessagesApplyFailed": 9,
"rulesOnMessagesApplySuccessfully": 10,
"processedMessagesCount": 30,
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org