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

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


The following commit(s) were added to refs/heads/master by this push:
     new e631cf40dc Strong typing other ACLRequests (#2427)
e631cf40dc is described below

commit e631cf40dc9c0a3a483d66deefdf89a18be77838
Author: florentos17 <fazav...@linagora.com>
AuthorDate: Thu Oct 3 04:15:12 2024 +0200

    Strong typing other ACLRequests (#2427)
---
 .../imap/decode/parser/DeleteACLCommandParser.java |  8 +++---
 .../imap/decode/parser/GetACLCommandParser.java    |  3 ++-
 .../decode/parser/ListRightsCommandParser.java     |  8 +++---
 .../imap/decode/parser/MyRightsCommandParser.java  |  3 ++-
 .../imap/decode/parser/SetACLCommandParser.java    |  3 ++-
 .../james/imap/encode/ACLResponseEncoder.java      | 13 +++++-----
 .../imap/encode/ListRightsResponseEncoder.java     | 15 ++++++-----
 .../james/imap/encode/MyRightsResponseEncoder.java | 13 +++++-----
 .../GetACLRequest.java => MailboxName.java}        | 29 ++++++----------------
 .../imap/message/request/DeleteACLRequest.java     | 18 ++++++++------
 .../james/imap/message/request/GetACLRequest.java  |  7 +++---
 .../imap/message/request/ListRightsRequest.java    | 18 ++++++++------
 .../imap/message/request/MyRightsRequest.java      |  7 +++---
 .../james/imap/message/request/SetACLRequest.java  | 13 +---------
 .../james/imap/message/response/ACLResponse.java   |  7 +++---
 .../imap/message/response/ListRightsResponse.java  | 21 ++++++++--------
 .../imap/message/response/MyRightsResponse.java    |  7 +++---
 .../james/imap/processor/DeleteACLProcessor.java   | 22 ++++++++--------
 .../james/imap/processor/GetACLProcessor.java      |  7 +++---
 .../apache/james/imap/processor/ListProcessor.java |  4 ++-
 .../james/imap/processor/ListRightsProcessor.java  | 19 ++++++--------
 .../james/imap/processor/MyRightsProcessor.java    |  7 +++---
 .../james/imap/processor/SetACLProcessor.java      |  5 ++--
 .../imap/processor/DeleteACLProcessorTest.java     |  7 +++---
 .../james/imap/processor/GetACLProcessorTest.java  |  3 ++-
 .../imap/processor/ListRightsProcessorTest.java    | 11 ++++----
 .../james/imap/processor/SetACLProcessorTest.java  | 17 +++++++------
 27 files changed, 147 insertions(+), 148 deletions(-)

diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteACLCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteACLCommandParser.java
index 67147af825..663b2f274c 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteACLCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteACLCommandParser.java
@@ -29,7 +29,9 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.decode.DecodingException;
 import org.apache.james.imap.decode.ImapRequestLineReader;
 import org.apache.james.imap.decode.base.AbstractImapCommandParser;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.DeleteACLRequest;
+import org.apache.james.mailbox.model.MailboxACL;
 
 /**
  * DELETEACL Parser
@@ -43,10 +45,10 @@ public class DeleteACLCommandParser extends 
AbstractImapCommandParser {
 
     @Override
     protected ImapMessage decode(ImapRequestLineReader request, Tag tag, 
ImapSession session) throws DecodingException {
-        final String mailboxName = request.mailbox();
-        final String identifier = request.astring();
+        MailboxName mailboxName = new MailboxName(request.mailbox());
+        MailboxACL.EntryKey entryKey = 
MailboxACL.EntryKey.deserialize(request.astring());
         request.eol();
-        return new DeleteACLRequest(tag, mailboxName, identifier);
+        return new DeleteACLRequest(tag, mailboxName, entryKey);
     }
 
 }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetACLCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetACLCommandParser.java
index 4ffd4fb92f..3a1dbec038 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetACLCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetACLCommandParser.java
@@ -29,6 +29,7 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.decode.DecodingException;
 import org.apache.james.imap.decode.ImapRequestLineReader;
 import org.apache.james.imap.decode.base.AbstractImapCommandParser;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.GetACLRequest;
 
 /**
@@ -43,7 +44,7 @@ public class GetACLCommandParser extends 
AbstractImapCommandParser {
 
     @Override
     protected ImapMessage decode(ImapRequestLineReader request, Tag tag, 
ImapSession session) throws DecodingException {
-        final String mailboxName = request.mailbox();
+        MailboxName mailboxName = new MailboxName(request.mailbox());
         request.eol();
         return new GetACLRequest(tag, mailboxName);
     }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListRightsCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListRightsCommandParser.java
index 6fa0f0e901..3d66dc8bec 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListRightsCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListRightsCommandParser.java
@@ -29,7 +29,9 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.decode.DecodingException;
 import org.apache.james.imap.decode.ImapRequestLineReader;
 import org.apache.james.imap.decode.base.AbstractImapCommandParser;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.ListRightsRequest;
+import org.apache.james.mailbox.model.MailboxACL;
 
 /**
  * LISTRIGHTS Parser
@@ -43,9 +45,9 @@ public class ListRightsCommandParser extends 
AbstractImapCommandParser {
 
     @Override
     protected ImapMessage decode(ImapRequestLineReader request, Tag tag, 
ImapSession session) throws DecodingException {
-        final String mailboxName = request.mailbox();
-        final String identifier = request.astring();
+        MailboxName mailboxName = new MailboxName(request.mailbox());
+        MailboxACL.EntryKey entryKey = 
MailboxACL.EntryKey.deserialize(request.astring());
         request.eol();
-        return new ListRightsRequest(tag, mailboxName, identifier);
+        return new ListRightsRequest(tag, mailboxName, entryKey);
     }
 }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MyRightsCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MyRightsCommandParser.java
index 0971bdacb2..1a82372c26 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MyRightsCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MyRightsCommandParser.java
@@ -29,6 +29,7 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.decode.DecodingException;
 import org.apache.james.imap.decode.ImapRequestLineReader;
 import org.apache.james.imap.decode.base.AbstractImapCommandParser;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.MyRightsRequest;
 
 /**
@@ -43,7 +44,7 @@ public class MyRightsCommandParser extends 
AbstractImapCommandParser {
 
     @Override
     protected ImapMessage decode(ImapRequestLineReader request, Tag tag, 
ImapSession session) throws DecodingException {
-        final String mailboxName = request.mailbox();
+        MailboxName mailboxName = new MailboxName(request.mailbox());
         request.eol();
         return new MyRightsRequest(tag, mailboxName);
     }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetACLCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetACLCommandParser.java
index f152a3bec1..c7626f2ed2 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetACLCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetACLCommandParser.java
@@ -31,6 +31,7 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.decode.DecodingException;
 import org.apache.james.imap.decode.ImapRequestLineReader;
 import org.apache.james.imap.decode.base.AbstractImapCommandParser;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.SetACLRequest;
 import org.apache.james.mailbox.exception.UnsupportedRightException;
 import org.apache.james.mailbox.model.MailboxACL;
@@ -49,7 +50,7 @@ public class SetACLCommandParser extends 
AbstractImapCommandParser {
 
     @Override
     protected ImapMessage decode(ImapRequestLineReader request, Tag tag, 
ImapSession session) throws DecodingException {
-        SetACLRequest.MailboxName mailboxName = new 
SetACLRequest.MailboxName(request.mailbox());
+        MailboxName mailboxName = new MailboxName(request.mailbox());
         MailboxACL.EntryKey entryKey = 
MailboxACL.EntryKey.deserialize(request.astring());
         String editModeAndRights = request.astring();
         request.eol();
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java
index dc290ad790..f057e31aaa 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java
@@ -22,12 +22,15 @@ package org.apache.james.imap.encode;
 import java.io.IOException;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Optional;
 
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.message.response.ACLResponse;
 import org.apache.james.mailbox.model.MailboxACL.EntryKey;
 import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
 
+import com.github.fge.lambdas.Throwing;
+
 /**
  * ACL Response Encoder.
  */
@@ -37,16 +40,14 @@ public class ACLResponseEncoder implements 
ImapResponseEncoder<ACLResponse> {
         Map<EntryKey, Rfc4314Rights> entries = 
aclResponse.getAcl().getEntries();
         composer.untagged();
         composer.message(ImapConstants.ACL_RESPONSE_NAME);
-        
-        String mailboxName = aclResponse.getMailboxName();
-        composer.mailbox(mailboxName == null ? "" : mailboxName);
-        
+
+        
Optional.ofNullable(aclResponse.getMailboxName()).ifPresent(Throwing.consumer(value
 -> composer.mailbox(value.asString())));
+
         if (entries != null) {
             for (Entry<EntryKey, Rfc4314Rights> entry : entries.entrySet()) {
                 String identifier = entry.getKey().serialize();
                 composer.quote(identifier);
-                String rights = entry.getValue().serialize();
-                composer.quote(rights == null ? "" : rights);
+                
Optional.ofNullable(entry.getValue()).ifPresent(Throwing.consumer(value -> 
composer.quote(value.serialize())));
             }
         }
         composer.end();
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/ListRightsResponseEncoder.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/ListRightsResponseEncoder.java
index 790a21e6a6..7e9c121345 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/ListRightsResponseEncoder.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/ListRightsResponseEncoder.java
@@ -21,11 +21,15 @@ package org.apache.james.imap.encode;
 
 import java.io.IOException;
 import java.util.List;
+import java.util.Optional;
 
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.message.response.ListRightsResponse;
+import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
 
+import com.github.fge.lambdas.Throwing;
+
 /**
  * ACL Response Encoder.
  */
@@ -39,12 +43,11 @@ public class ListRightsResponseEncoder implements 
ImapResponseEncoder<ListRights
     public void encode(ListRightsResponse listRightsResponse, 
ImapResponseComposer composer) throws IOException {
         composer.untagged();
         composer.commandName(ImapConstants.LISTRIGHTS_COMMAND);
-        
-        String mailboxName = listRightsResponse.getMailboxName();
-        composer.mailbox(mailboxName == null ? "" : mailboxName);
-        
-        String identifier = listRightsResponse.getIdentifier();
-        composer.quote(identifier);
+
+        
Optional.ofNullable(listRightsResponse.getMailboxName()).ifPresent(Throwing.consumer(value
 -> composer.mailbox(value.asString())));
+
+        MailboxACL.EntryKey entryKey = listRightsResponse.getEntryKey();
+        composer.quote(entryKey.toString());
         
         List<Rfc4314Rights> rights = listRightsResponse.getRights();
         
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/MyRightsResponseEncoder.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/MyRightsResponseEncoder.java
index 3d1ecabb60..9dd07dba90 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/MyRightsResponseEncoder.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/MyRightsResponseEncoder.java
@@ -20,10 +20,12 @@
 package org.apache.james.imap.encode;
 
 import java.io.IOException;
+import java.util.Optional;
 
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.message.response.MyRightsResponse;
-import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
+
+import com.github.fge.lambdas.Throwing;
 
 /**
  * MYRIGHTS Response Encoder.
@@ -36,13 +38,12 @@ public class MyRightsResponseEncoder implements 
ImapResponseEncoder<MyRightsResp
 
     @Override
     public void encode(MyRightsResponse aclResponse, ImapResponseComposer 
composer) throws IOException {
-        Rfc4314Rights myRights = aclResponse.getMyRights();
         composer.untagged();
         composer.commandName(ImapConstants.MYRIGHTS_COMMAND);
-        
-        String mailboxName = aclResponse.getMailboxName();
-        composer.mailbox(mailboxName == null ? "" : mailboxName);
-        composer.quote(myRights == null ? "" : myRights.serialize());
+
+        
Optional.ofNullable(aclResponse.getMailboxName()).ifPresent(Throwing.consumer(value
 -> composer.quote(value.asString())));
+        
Optional.ofNullable(aclResponse.getMyRights()).ifPresent(Throwing.consumer(value
 -> composer.quote(value.serialize())));
+
         composer.end();
     }
 }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/message/request/GetACLRequest.java
 b/protocols/imap/src/main/java/org/apache/james/imap/message/MailboxName.java
similarity index 65%
copy from 
protocols/imap/src/main/java/org/apache/james/imap/message/request/GetACLRequest.java
copy to 
protocols/imap/src/main/java/org/apache/james/imap/message/MailboxName.java
index 4a0da7f6f2..eef4477647 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/message/request/GetACLRequest.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/message/MailboxName.java
@@ -17,32 +17,17 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.imap.message.request;
+package org.apache.james.imap.message;
 
-import org.apache.james.imap.api.ImapConstants;
-import org.apache.james.imap.api.Tag;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
 
-import com.google.common.base.MoreObjects;
-
-/**
- * GETACL Request.
- */
-public class GetACLRequest extends AbstractImapRequest {
-    private final String mailboxName;
-
-    public GetACLRequest(Tag tag, String mailboxName) {
-        super(tag, ImapConstants.GETACL_COMMAND);
-        this.mailboxName = mailboxName;
+public record MailboxName(String mailboxName) {
+    public MailboxName {
+        Preconditions.checkArgument(!Strings.isNullOrEmpty(mailboxName), 
"MailboxName must not be null or empty");
     }
 
-    public String getMailboxName() {
+    public String asString() {
         return mailboxName;
     }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-            .add("mailboxName", mailboxName)
-            .toString();
-    }
 }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/message/request/DeleteACLRequest.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/message/request/DeleteACLRequest.java
index 192133cfd3..2b3dffeb57 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/message/request/DeleteACLRequest.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/message/request/DeleteACLRequest.java
@@ -21,6 +21,8 @@ package org.apache.james.imap.message.request;
 
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.Tag;
+import org.apache.james.imap.message.MailboxName;
+import org.apache.james.mailbox.model.MailboxACL;
 
 import com.google.common.base.MoreObjects;
 
@@ -28,20 +30,20 @@ import com.google.common.base.MoreObjects;
  * DELETEACL Request.
  */
 public class DeleteACLRequest extends AbstractImapRequest {
-    private final String identifier;
-    private final String mailboxName;
+    private final MailboxACL.EntryKey entryKey;
+    private final MailboxName mailboxName;
 
-    public DeleteACLRequest(Tag tag, String mailboxName, String identifier) {
+    public DeleteACLRequest(Tag tag, MailboxName mailboxName, 
MailboxACL.EntryKey entryKey) {
         super(tag, ImapConstants.DELETEACL_COMMAND);
         this.mailboxName = mailboxName;
-        this.identifier = identifier;
+        this.entryKey = entryKey;
     }
 
-    public String getIdentifier() {
-        return identifier;
+    public MailboxACL.EntryKey getEntryKey() {
+        return entryKey;
     }
 
-    public String getMailboxName() {
+    public MailboxName getMailboxName() {
         return mailboxName;
     }
 
@@ -49,7 +51,7 @@ public class DeleteACLRequest extends AbstractImapRequest {
     public String toString() {
         return MoreObjects.toStringHelper(this)
             .add("mailboxName", mailboxName)
-            .add("identifier", identifier)
+            .add("identifier", entryKey)
             .toString();
     }
 }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/message/request/GetACLRequest.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/message/request/GetACLRequest.java
index 4a0da7f6f2..9e1f6e23ef 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/message/request/GetACLRequest.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/message/request/GetACLRequest.java
@@ -21,6 +21,7 @@ package org.apache.james.imap.message.request;
 
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.Tag;
+import org.apache.james.imap.message.MailboxName;
 
 import com.google.common.base.MoreObjects;
 
@@ -28,14 +29,14 @@ import com.google.common.base.MoreObjects;
  * GETACL Request.
  */
 public class GetACLRequest extends AbstractImapRequest {
-    private final String mailboxName;
+    private final MailboxName mailboxName;
 
-    public GetACLRequest(Tag tag, String mailboxName) {
+    public GetACLRequest(Tag tag, MailboxName mailboxName) {
         super(tag, ImapConstants.GETACL_COMMAND);
         this.mailboxName = mailboxName;
     }
 
-    public String getMailboxName() {
+    public MailboxName getMailboxName() {
         return mailboxName;
     }
 
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/message/request/ListRightsRequest.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/message/request/ListRightsRequest.java
index a4e406f8e0..8ac2344d98 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/message/request/ListRightsRequest.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/message/request/ListRightsRequest.java
@@ -21,6 +21,8 @@ package org.apache.james.imap.message.request;
 
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.Tag;
+import org.apache.james.imap.message.MailboxName;
+import org.apache.james.mailbox.model.MailboxACL;
 
 import com.google.common.base.MoreObjects;
 
@@ -28,27 +30,27 @@ import com.google.common.base.MoreObjects;
  * LISTRIGHTS Request.
  */
 public class ListRightsRequest extends AbstractImapRequest {
-    private final String identifier;
-    private final String mailboxName;
+    private final MailboxACL.EntryKey entryKey;
+    private final MailboxName mailboxName;
 
-    public ListRightsRequest(Tag tag, String mailboxName, String identifier) {
+    public ListRightsRequest(Tag tag, MailboxName mailboxName, 
MailboxACL.EntryKey entryKey) {
         super(tag, ImapConstants.LISTRIGHTS_COMMAND);
         this.mailboxName = mailboxName;
-        this.identifier = identifier;
+        this.entryKey = entryKey;
     }
 
-    public String getIdentifier() {
-        return identifier;
+    public MailboxACL.EntryKey getEntryKey() {
+        return entryKey;
     }
 
-    public String getMailboxName() {
+    public MailboxName getMailboxName() {
         return mailboxName;
     }
 
     @Override
     public String toString() {
         return MoreObjects.toStringHelper(this)
-            .add("identifier", identifier)
+            .add("entryKey", entryKey)
             .add("mailboxName", mailboxName)
             .toString();
     }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/message/request/MyRightsRequest.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/message/request/MyRightsRequest.java
index 421024b5bb..69a99b44a1 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/message/request/MyRightsRequest.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/message/request/MyRightsRequest.java
@@ -21,6 +21,7 @@ package org.apache.james.imap.message.request;
 
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.Tag;
+import org.apache.james.imap.message.MailboxName;
 
 import com.google.common.base.MoreObjects;
 
@@ -28,14 +29,14 @@ import com.google.common.base.MoreObjects;
  * MYRIGHTS Request.
  */
 public class MyRightsRequest extends AbstractImapRequest {
-    private final String mailboxName;
+    private final MailboxName mailboxName;
 
-    public MyRightsRequest(Tag tag, String mailboxName) {
+    public MyRightsRequest(Tag tag, MailboxName mailboxName) {
         super(tag, ImapConstants.MYRIGHTS_COMMAND);
         this.mailboxName = mailboxName;
     }
 
-    public String getMailboxName() {
+    public MailboxName getMailboxName() {
         return mailboxName;
     }
 
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetACLRequest.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetACLRequest.java
index 6b602ad87e..ed002ecd40 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetACLRequest.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetACLRequest.java
@@ -21,27 +21,16 @@ package org.apache.james.imap.message.request;
 
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.Tag;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.mailbox.model.MailboxACL;
 
 import com.google.common.base.MoreObjects;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
 
 /**
  * SETACL Request.
  */
 public class SetACLRequest extends AbstractImapRequest {
 
-    public record MailboxName(String mailboxName) {
-        public MailboxName {
-            Preconditions.checkArgument(!Strings.isNullOrEmpty(mailboxName), 
"MailboxName must not be null or empty");
-        }
-
-        public String asString() {
-            return mailboxName;
-        }
-    }
-
     private final MailboxName mailboxName;
     private final MailboxACL.ACLCommand aclCommand;
 
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/message/response/ACLResponse.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/message/response/ACLResponse.java
index ba41f39296..752d1953de 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/message/response/ACLResponse.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/message/response/ACLResponse.java
@@ -24,6 +24,7 @@ import java.util.Objects;
 
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.message.response.ImapResponseMessage;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.EntryKey;
 import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
@@ -34,9 +35,9 @@ import 
org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
  */
 public final class ACLResponse implements ImapResponseMessage {
     private final MailboxACL acl;
-    private final String mailboxName;
+    private final MailboxName mailboxName;
 
-    public ACLResponse(String mailboxName, MailboxACL acl) {
+    public ACLResponse(MailboxName mailboxName, MailboxACL acl) {
         this.mailboxName = mailboxName;
         this.acl = acl;
     }
@@ -45,7 +46,7 @@ public final class ACLResponse implements ImapResponseMessage 
{
         return acl;
     }
 
-    public String getMailboxName() {
+    public MailboxName getMailboxName() {
         return mailboxName;
     }
 
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java
index 6565982db6..400057188a 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java
@@ -24,28 +24,29 @@ import java.util.Objects;
 
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.message.response.ImapResponseMessage;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.mailbox.model.MailboxACL;
 
 /**
  * LISTRIGHTS Response.
  */
 public final class ListRightsResponse implements ImapResponseMessage {
-    private final String identifier;
-    private final String mailboxName;
+    private final MailboxACL.EntryKey entryKey;
+    private final MailboxName mailboxName;
     private final List<MailboxACL.Rfc4314Rights> rights;
 
-    public ListRightsResponse(String mailboxName, String identifier, 
List<MailboxACL.Rfc4314Rights> rights) {
+    public ListRightsResponse(MailboxName mailboxName, MailboxACL.EntryKey 
entryKey, List<MailboxACL.Rfc4314Rights> rights) {
         super();
         this.mailboxName = mailboxName;
-        this.identifier = identifier;
+        this.entryKey = entryKey;
         this.rights = rights;
     }
 
-    public String getIdentifier() {
-        return identifier;
+    public MailboxACL.EntryKey getEntryKey() {
+        return entryKey;
     }
 
-    public String getMailboxName() {
+    public MailboxName getMailboxName() {
         return mailboxName;
     }
 
@@ -59,7 +60,7 @@ public final class ListRightsResponse implements 
ImapResponseMessage {
             ListRightsResponse other = (ListRightsResponse) o;
 
             return Objects.equals(this.mailboxName, other.mailboxName) &&
-                Objects.equals(this.identifier, other.identifier) &&
+                Objects.equals(this.entryKey, other.entryKey) &&
                 Objects.equals(this.rights, other.rights);
         }
         return false;
@@ -67,12 +68,12 @@ public final class ListRightsResponse implements 
ImapResponseMessage {
 
     @Override
     public final int hashCode() {
-        return Objects.hash(mailboxName, identifier, rights);
+        return Objects.hash(mailboxName, entryKey, rights);
     }
 
     @Override
     public String toString() {
-        StringBuilder result = new 
StringBuilder().append(ImapConstants.LISTRIGHTS_COMMAND.getName()).append(' 
').append(mailboxName).append(' ').append(identifier);
+        StringBuilder result = new 
StringBuilder().append(ImapConstants.LISTRIGHTS_COMMAND.getName()).append(' 
').append(mailboxName).append(' ').append(entryKey);
 
         for (MailboxACL.Rfc4314Rights optionalRightsGroup : rights) {
             result.append(' ').append(optionalRightsGroup.toString());
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/message/response/MyRightsResponse.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/message/response/MyRightsResponse.java
index 10628f07b1..ae1b0d6d1a 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/message/response/MyRightsResponse.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/message/response/MyRightsResponse.java
@@ -23,21 +23,22 @@ import java.util.Objects;
 
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.message.response.ImapResponseMessage;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.mailbox.model.MailboxACL;
 
 /**
  * MYRIGHTS Response.
  */
 public final class MyRightsResponse implements ImapResponseMessage {
-    private final String mailboxName;
+    private final MailboxName mailboxName;
     private final MailboxACL.Rfc4314Rights myRights;
 
-    public MyRightsResponse(String mailboxName, MailboxACL.Rfc4314Rights 
myRights) {
+    public MyRightsResponse(MailboxName mailboxName, MailboxACL.Rfc4314Rights 
myRights) {
         this.mailboxName = mailboxName;
         this.myRights = myRights;
     }
 
-    public String getMailboxName() {
+    public MailboxName getMailboxName() {
         return mailboxName;
     }
 
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
index c2aad45de2..d0c0f33cb8 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
@@ -31,6 +31,7 @@ import org.apache.james.imap.api.message.Capability;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.main.PathConverter;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.DeleteACLRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
@@ -38,7 +39,6 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.exception.UnsupportedRightException;
 import org.apache.james.mailbox.model.MailboxACL;
-import org.apache.james.mailbox.model.MailboxACL.EntryKey;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.FunctionalUtils;
@@ -67,15 +67,15 @@ public class DeleteACLProcessor extends 
AbstractMailboxProcessor<DeleteACLReques
     protected Mono<Void> processRequestReactive(DeleteACLRequest request, 
ImapSession session, Responder responder) {
         final MailboxManager mailboxManager = getMailboxManager();
         final MailboxSession mailboxSession = session.getMailboxSession();
-        final String mailboxName = request.getMailboxName();
-        final String identifier = request.getIdentifier();
-        MailboxPath mailboxPath = 
PathConverter.forSession(session).buildFullPath(mailboxName);
+        MailboxName mailboxName = request.getMailboxName();
+        MailboxACL.EntryKey entryKey = request.getEntryKey();
+        MailboxPath mailboxPath = 
PathConverter.forSession(session).buildFullPath(mailboxName.asString());
 
         return checkLookupRight(request, responder, mailboxManager, 
mailboxSession, mailboxPath)
             .filter(FunctionalUtils.identityPredicate())
             .flatMap(hasLookupRight -> checkAdminRight(request, responder, 
mailboxManager, mailboxSession, mailboxName, mailboxPath))
             .filter(FunctionalUtils.identityPredicate())
-            .flatMap(hasAdminRight -> applyRight(mailboxManager, 
mailboxSession, identifier, mailboxPath)
+            .flatMap(hasAdminRight -> applyRight(mailboxManager, 
mailboxSession, entryKey, mailboxPath)
                 .then(Mono.fromRunnable(() -> okComplete(request, responder)))
                 .then())
             .onErrorResume(UnsupportedRightException.class,
@@ -91,14 +91,14 @@ public class DeleteACLProcessor extends 
AbstractMailboxProcessor<DeleteACLReques
                 error -> Mono.fromRunnable(() -> no(request, responder, 
HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING)));
     }
 
-    private static Mono<Void> applyRight(MailboxManager mailboxManager, 
MailboxSession mailboxSession, String identifier, MailboxPath mailboxPath) {
+    private static Mono<Void> applyRight(MailboxManager mailboxManager, 
MailboxSession mailboxSession, MailboxACL.EntryKey entryKey, MailboxPath 
mailboxPath) {
         return Mono.from(mailboxManager.applyRightsCommandReactive(
             mailboxPath,
-            
MailboxACL.command().key(EntryKey.deserialize(identifier)).noRights().asReplacement(),
+            MailboxACL.command().key(entryKey).noRights().asReplacement(),
             mailboxSession));
     }
 
-    private Mono<Boolean> checkAdminRight(DeleteACLRequest request, Responder 
responder, MailboxManager mailboxManager, MailboxSession mailboxSession, String 
mailboxName, MailboxPath mailboxPath) {
+    private Mono<Boolean> checkAdminRight(DeleteACLRequest request, Responder 
responder, MailboxManager mailboxManager, MailboxSession mailboxSession, 
MailboxName mailboxName, MailboxPath mailboxPath) {
         return Mono.from(mailboxManager.hasRightReactive(mailboxPath, 
MailboxACL.Right.Administer, mailboxSession))
             .doOnNext(hasRight -> {
                 if (!hasRight) {
@@ -108,7 +108,7 @@ public class DeleteACLProcessor extends 
AbstractMailboxProcessor<DeleteACLReques
                             
HumanReadableText.UNSUFFICIENT_RIGHTS_DEFAULT_VALUE,
                             MailboxACL.Right.Administer.toString(),
                             request.getCommand().getName(),
-                            mailboxName));
+                            mailboxName.asString()));
                 }
             });
     }
@@ -131,7 +131,7 @@ public class DeleteACLProcessor extends 
AbstractMailboxProcessor<DeleteACLReques
     protected MDCBuilder mdc(DeleteACLRequest request) {
         return MDCBuilder.create()
             .addToContext(MDCBuilder.ACTION, "DELETE_ACL")
-            .addToContext("mailbox", request.getMailboxName())
-            .addToContext("identifier", request.getIdentifier());
+            .addToContext("mailbox", request.getMailboxName().asString())
+            .addToContext("identifier", request.getEntryKey().toString());
     }
 }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
index 3e5b647b9d..11badd0c4f 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
@@ -32,6 +32,7 @@ import org.apache.james.imap.api.message.Capability;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.main.PathConverter;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.GetACLRequest;
 import org.apache.james.imap.message.response.ACLResponse;
 import org.apache.james.mailbox.MailboxManager;
@@ -70,9 +71,9 @@ public class GetACLProcessor extends 
AbstractMailboxProcessor<GetACLRequest> imp
     protected Mono<Void> processRequestReactive(GetACLRequest request, 
ImapSession session, Responder responder) {
         MailboxManager mailboxManager = getMailboxManager();
         MailboxSession mailboxSession = session.getMailboxSession();
-        String mailboxName = request.getMailboxName();
+        MailboxName mailboxName = request.getMailboxName();
 
-        MailboxPath mailboxPath = 
PathConverter.forSession(session).buildFullPath(mailboxName);
+        MailboxPath mailboxPath = 
PathConverter.forSession(session).buildFullPath(mailboxName.asString());
 
         return Mono.from(mailboxManager.getMailboxReactive(mailboxPath, 
mailboxSession))
             .flatMap(Throwing.function(mailbox -> {
@@ -129,6 +130,6 @@ public class GetACLProcessor extends 
AbstractMailboxProcessor<GetACLRequest> imp
     protected MDCBuilder mdc(GetACLRequest request) {
         return MDCBuilder.create()
             .addToContext(MDCBuilder.ACTION, "GET_ACL")
-            .addToContext("mailbox", request.getMailboxName());
+            .addToContext("mailbox", request.getMailboxName().asString());
     }
 }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
index 2d6db8302f..a74fb8c23f 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
@@ -46,6 +46,7 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.api.process.MailboxType;
 import org.apache.james.imap.api.process.MailboxTyper;
 import org.apache.james.imap.main.PathConverter;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.ListRequest;
 import org.apache.james.imap.message.response.ListResponse;
 import org.apache.james.imap.message.response.MailboxStatusResponse;
@@ -319,7 +320,8 @@ public class ListProcessor<T extends ListRequest> extends 
AbstractMailboxProcess
 
     private void respondMyRights(T request, Responder responder, 
MailboxSession mailboxSession, MailboxMetaData metaData) {
         if 
(request.getReturnOptions().contains(ListRequest.ListReturnOption.MYRIGHTS)) {
-            MyRightsResponse myRightsResponse = new 
MyRightsResponse(metaData.getPath().getName(), getRfc4314Rights(mailboxSession, 
metaData));
+            MailboxName mailboxName = new 
MailboxName(metaData.getPath().getName());
+            MyRightsResponse myRightsResponse = new 
MyRightsResponse(mailboxName, getRfc4314Rights(mailboxSession, metaData));
             responder.respond(myRightsResponse);
         }
     }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
index 7e9a945dbc..7c2c599006 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
@@ -29,6 +29,7 @@ import org.apache.james.imap.api.message.Capability;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.main.PathConverter;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.ListRightsRequest;
 import org.apache.james.imap.message.response.ListRightsResponse;
 import org.apache.james.mailbox.MailboxManager;
@@ -37,7 +38,6 @@ import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.model.MailboxACL;
-import org.apache.james.mailbox.model.MailboxACL.EntryKey;
 import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
@@ -69,9 +69,8 @@ public class ListRightsProcessor extends 
AbstractMailboxProcessor<ListRightsRequ
     protected Mono<Void> processRequestReactive(ListRightsRequest request, 
ImapSession session, Responder responder) {
         MailboxManager mailboxManager = getMailboxManager();
         MailboxSession mailboxSession = session.getMailboxSession();
-        String mailboxName = request.getMailboxName();
-        String identifier = request.getIdentifier();
-        MailboxPath mailboxPath = 
PathConverter.forSession(session).buildFullPath(mailboxName);
+        MailboxName mailboxName = request.getMailboxName();
+        MailboxPath mailboxPath = 
PathConverter.forSession(session).buildFullPath(mailboxName.asString());
 
         return Mono.from(mailboxManager.getMailboxReactive(mailboxPath, 
mailboxSession))
             .doOnNext(Throwing.<MessageManager>consumer(mailbox -> {
@@ -98,9 +97,7 @@ public class ListRightsProcessor extends 
AbstractMailboxProcessor<ListRightsRequ
                     no(request, responder, text);
                 } else {
 
-                    EntryKey key = EntryKey.deserialize(identifier);
-
-                    // FIXME check if identifier is a valid user or group
+                    // FIXME check if request.getEntryKey() is a valid user or 
group
                     // FIXME Servers, when processing a command that has an 
identifier as a
                     // parameter (i.e., any of SETACL, DELETEACL, and 
LISTRIGHTS commands),
                     // SHOULD first prepare the received identifier using 
"SASLprep" profile
@@ -110,8 +107,8 @@ public class ListRightsProcessor extends 
AbstractMailboxProcessor<ListRightsRequ
                     // Note that Section 6 recommends additional identifier’s 
verification
                     // steps.
 
-                    List<Rfc4314Rights> rights = 
mailboxManager.listRights(mailbox.getMailboxEntity(), key, mailboxSession);
-                    ListRightsResponse aclResponse = new 
ListRightsResponse(mailboxName, identifier, rights);
+                    List<Rfc4314Rights> rights = 
mailboxManager.listRights(mailbox.getMailboxEntity(), request.getEntryKey(), 
mailboxSession);
+                    ListRightsResponse aclResponse = new 
ListRightsResponse(mailboxName, request.getEntryKey(), rights);
                     responder.respond(aclResponse);
                     okComplete(request, responder);
                 }
@@ -136,7 +133,7 @@ public class ListRightsProcessor extends 
AbstractMailboxProcessor<ListRightsRequ
     protected MDCBuilder mdc(ListRightsRequest request) {
         return MDCBuilder.create()
             .addToContext(MDCBuilder.ACTION, "LIST_RIGHTS")
-            .addToContext("mailbox", request.getMailboxName())
-            .addToContext("identifier", request.getIdentifier());
+            .addToContext("mailbox", request.getMailboxName().asString())
+            .addToContext("identifier", request.getEntryKey().toString());
     }
 }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
index ee26e60b8b..ea2fc84d61 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
@@ -30,6 +30,7 @@ import org.apache.james.imap.api.message.Capability;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.main.PathConverter;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.MyRightsRequest;
 import org.apache.james.imap.message.response.MyRightsResponse;
 import org.apache.james.mailbox.MailboxManager;
@@ -66,9 +67,9 @@ public class MyRightsProcessor extends 
AbstractMailboxProcessor<MyRightsRequest>
     protected Mono<Void> processRequestReactive(MyRightsRequest request, 
ImapSession session, Responder responder) {
         MailboxManager mailboxManager = getMailboxManager();
         MailboxSession mailboxSession = session.getMailboxSession();
-        String mailboxName = request.getMailboxName();
+        MailboxName mailboxName = request.getMailboxName();
 
-        MailboxPath mailboxPath = 
PathConverter.forSession(session).buildFullPath(mailboxName);
+        MailboxPath mailboxPath = 
PathConverter.forSession(session).buildFullPath(mailboxName.asString());
         return Mono.from(mailboxManager.getMailboxReactive(mailboxPath, 
mailboxSession))
             .doOnNext(Throwing.consumer(mailbox -> {
                 Rfc4314Rights myRights = 
mailboxManager.myRights(mailbox.getMailboxEntity(), mailboxSession);
@@ -118,6 +119,6 @@ public class MyRightsProcessor extends 
AbstractMailboxProcessor<MyRightsRequest>
     protected MDCBuilder mdc(MyRightsRequest request) {
         return MDCBuilder.create()
             .addToContext(MDCBuilder.ACTION, "MYRIGHTS")
-            .addToContext("mailbox", request.getMailboxName());
+            .addToContext("mailbox", request.getMailboxName().asString());
     }
 }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
index 752dffb305..ace668d01a 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
@@ -31,6 +31,7 @@ import org.apache.james.imap.api.message.Capability;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.main.PathConverter;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.SetACLRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
@@ -67,7 +68,7 @@ public class SetACLProcessor extends 
AbstractMailboxProcessor<SetACLRequest> imp
     protected Mono<Void> processRequestReactive(SetACLRequest request, 
ImapSession session, Responder responder) {
         final MailboxManager mailboxManager = getMailboxManager();
         final MailboxSession mailboxSession = session.getMailboxSession();
-        final SetACLRequest.MailboxName mailboxName = request.getMailboxName();
+        MailboxName mailboxName = request.getMailboxName();
         MailboxPath mailboxPath = 
PathConverter.forSession(session).buildFullPath(mailboxName.asString());
 
         return checkLookupRight(request, responder, mailboxManager, 
mailboxSession, mailboxPath)
@@ -100,7 +101,7 @@ public class SetACLProcessor extends 
AbstractMailboxProcessor<SetACLRequest> imp
                 mailboxSession));
     }
 
-    private Mono<Boolean> checkAdminRight(SetACLRequest request, Responder 
responder, MailboxManager mailboxManager, MailboxSession mailboxSession, 
SetACLRequest.MailboxName mailboxName, MailboxPath mailboxPath) {
+    private Mono<Boolean> checkAdminRight(SetACLRequest request, Responder 
responder, MailboxManager mailboxManager, MailboxSession mailboxSession, 
MailboxName mailboxName, MailboxPath mailboxPath) {
         return Mono.from(mailboxManager.hasRightReactive(mailboxPath, 
MailboxACL.Right.Administer, mailboxSession))
             .doOnNext(hasRight -> {
                 if (!hasRight) {
diff --git 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
index 8ee9813ba7..88233e5a50 100644
--- 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
+++ 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
@@ -33,6 +33,7 @@ import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.message.response.ImapResponseMessage;
 import org.apache.james.imap.api.process.ImapProcessor.Responder;
 import org.apache.james.imap.encode.FakeImapSession;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.DeleteACLRequest;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
@@ -95,11 +96,9 @@ class DeleteACLProcessorTest {
         when(mailboxManager.getMailbox(any(MailboxPath.class), 
any(MailboxSession.class)))
             .thenReturn(messageManager);
 
-        deleteACLRequest = new DeleteACLRequest(TAG,
-            MAILBOX_NAME,
-            USER_1.asString());
+        user1Key = EntryKey.createUserEntryKey(USER_1);
 
-        user1Key = EntryKey.deserialize(USER_1.asString());
+        deleteACLRequest = new DeleteACLRequest(TAG, new 
MailboxName(MAILBOX_NAME), user1Key);
 
         argumentCaptor = ArgumentCaptor.forClass(ImapResponseMessage.class);
     }
diff --git 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
index 4b4cec6600..7968cea29b 100644
--- 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
+++ 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
@@ -36,6 +36,7 @@ import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.message.response.ImapResponseMessage;
 import org.apache.james.imap.api.process.ImapProcessor.Responder;
 import org.apache.james.imap.encode.FakeImapSession;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.GetACLRequest;
 import org.apache.james.imap.message.response.ACLResponse;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
@@ -62,7 +63,7 @@ import reactor.core.publisher.Mono;
  */
 class GetACLProcessorTest {
 
-    private static final String MAILBOX_NAME = ImapConstants.INBOX_NAME;
+    private static final MailboxName MAILBOX_NAME = new 
MailboxName(ImapConstants.INBOX_NAME);
     private static final Username USER_1 = Username.of("user1");
 
     private FakeImapSession imapSession;
diff --git 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
index 5f2ac5fafc..839efe4d6f 100644
--- 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
+++ 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
@@ -37,6 +37,7 @@ import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.message.response.ImapResponseMessage;
 import org.apache.james.imap.api.process.ImapProcessor.Responder;
 import org.apache.james.imap.encode.FakeImapSession;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.ListRightsRequest;
 import org.apache.james.imap.message.response.ListRightsResponse;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
@@ -65,7 +66,7 @@ import reactor.core.publisher.Mono;
  */
 class ListRightsProcessorTest {
 
-    private static final String MAILBOX_NAME = ImapConstants.INBOX_NAME;
+    private static final MailboxName MAILBOX_NAME = new 
MailboxName(ImapConstants.INBOX_NAME);
     private static final Username USER_1 = Username.of("user1");
 
     private FakeImapSession imapSession;
@@ -82,7 +83,7 @@ class ListRightsProcessorTest {
 
     @BeforeEach
     public void setUp() throws Exception {
-        path = MailboxPath.forUser(USER_1, MAILBOX_NAME);
+        path = MailboxPath.forUser(USER_1, MAILBOX_NAME.asString());
         UnpooledStatusResponseFactory statusResponseFactory = new 
UnpooledStatusResponseFactory();
         mailboxManager = mock(MailboxManager.class);
         when(mailboxManager.manageProcessing(any(), 
any())).thenAnswer((Answer<Mono>) invocation -> {
@@ -106,9 +107,9 @@ class ListRightsProcessorTest {
             .thenReturn(Mono.just(messageManager));
         
when(messageManager.getMailboxEntity()).thenReturn(mock(Mailbox.class));
 
-        listRightsRequest = new ListRightsRequest(TAG, MAILBOX_NAME, 
USER_1.asString());
+        user1Key = EntryKey.createUserEntryKey(USER_1);
+        listRightsRequest = new ListRightsRequest(TAG, MAILBOX_NAME, user1Key);
 
-        user1Key = EntryKey.deserialize(USER_1.asString());
         listRights = List.of(
             Rfc4314Rights.fromSerializedRfc4314Rights("ae"),
             Rfc4314Rights.fromSerializedRfc4314Rights("i"),
@@ -181,7 +182,7 @@ class ListRightsProcessorTest {
 
         subject.doProcess(listRightsRequest, responder, imapSession).block();
 
-        ListRightsResponse response = new ListRightsResponse(MAILBOX_NAME, 
USER_1.asString(), listRights);
+        ListRightsResponse response = new ListRightsResponse(MAILBOX_NAME, 
user1Key, listRights);
         verify(responder, times(2)).respond(argumentCaptor.capture());
         verifyNoMoreInteractions(responder);
 
diff --git 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
index 5ef6fe8e44..207f72624c 100644
--- 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
+++ 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
@@ -34,6 +34,7 @@ import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.message.response.ImapResponseMessage;
 import org.apache.james.imap.api.process.ImapProcessor.Responder;
 import org.apache.james.imap.encode.FakeImapSession;
+import org.apache.james.imap.message.MailboxName;
 import org.apache.james.imap.message.request.SetACLRequest;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
@@ -103,15 +104,15 @@ class SetACLProcessorTest {
         when(mailboxManager.getMailbox(any(MailboxPath.class), 
any(MailboxSession.class)))
             .thenReturn(messageManager);
 
+        user1Key = EntryKey.createUserEntryKey(USER_1);
+        setRights = Rfc4314Rights.fromSerializedRfc4314Rights(SET_RIGHTS);
+
         MailboxACL.ACLCommand aclCommand = MailboxACL.command()
-                .key(MailboxACL.EntryKey.createUserEntryKey(USER_1))
+                .key(user1Key)
                 .mode(EditMode.REPLACE)
-                .rights(MailboxACL.Rfc4314Rights.deserialize(SET_RIGHTS))
+                .rights(setRights)
                 .build();
-        replaceAclRequest = new SetACLRequest(TAG, new 
SetACLRequest.MailboxName(MAILBOX_NAME), aclCommand);
-
-        user1Key = EntryKey.deserialize(USER_1.asString());
-        setRights = Rfc4314Rights.fromSerializedRfc4314Rights(SET_RIGHTS);
+        replaceAclRequest = new SetACLRequest(TAG, new 
MailboxName(MAILBOX_NAME), aclCommand);
     }
 
     @Test
@@ -124,7 +125,7 @@ class SetACLProcessorTest {
                     .mode(EditMode.REPLACE)
                     .rights(unsupportedRight)
                     .build();
-            new SetACLRequest(TAG, new 
SetACLRequest.MailboxName(MAILBOX_NAME), aclCommand);
+            new SetACLRequest(TAG, new MailboxName(MAILBOX_NAME), aclCommand);
         });
     }
     
@@ -193,7 +194,7 @@ class SetACLProcessorTest {
                 .mode(editMode)
                 .rights(MailboxACL.Rfc4314Rights.deserialize(SET_RIGHTS))
                 .build();
-        SetACLRequest setACLRequest = new SetACLRequest(TAG, new 
SetACLRequest.MailboxName(MAILBOX_NAME), aclCommand);
+        SetACLRequest setACLRequest = new SetACLRequest(TAG, new 
MailboxName(MAILBOX_NAME), aclCommand);
         subject.doProcess(setACLRequest, responder, imapSession).block();
 
         verify(mailboxManager).applyRightsCommandReactive(path,


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org
For additional commands, e-mail: notifications-h...@james.apache.org

Reply via email to