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