This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch 3.9.x
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 80dbd75783c25ced232197392e5062b29c9374c4
Author: Quan Tran <[email protected]>
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:[email protected]:mbx1",
     "messagesFailCount": 9,
     "messagesSuccessCount": 10,
     "timestamp": "2007-12-03T10:15:30Z",
@@ -1926,7 +1926,7 @@ the following `additionalInformation`:
 
 ....
 {
-    "mailboxName": "mbx1",
+    "mailboxPath": "#private:[email protected]: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("[email protected]"), new MailboxName("mbx1"), INSTANT, 10, 
9, false, 30);
+        Username.of("[email protected]"), 
MailboxPath.forUser(Username.of("[email protected]"), "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:[email protected]:mbx1",
   "rulesOnMessagesApplyFailed": 9,
   "rulesOnMessagesApplySuccessfully": 10,
   "processedMessagesCount": 30,


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to