Repository: james-project Updated Branches: refs/heads/master f8993a19f -> 2248c18cd
JAMES-1838 Extract Path building from AbstractMailboxProcessor Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/490bd69a Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/490bd69a Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/490bd69a Branch: refs/heads/master Commit: 490bd69aa59a8a67b51e76f06c4de11103e49b22 Parents: 8bba513 Author: Benoit Tellier <btell...@linagora.com> Authored: Wed Oct 19 15:30:17 2016 +0200 Committer: Benoit Tellier <btell...@linagora.com> Committed: Fri Oct 21 17:00:39 2016 +0200 ---------------------------------------------------------------------- .../apache/james/imap/main/PathConverter.java | 78 ++++++++++++++++++++ .../imap/processor/AbstractAuthProcessor.java | 3 +- .../processor/AbstractMailboxProcessor.java | 38 ---------- .../AbstractMessageRangeProcessor.java | 3 +- .../processor/AbstractSelectionProcessor.java | 3 +- .../james/imap/processor/AppendProcessor.java | 3 +- .../james/imap/processor/CreateProcessor.java | 3 +- .../imap/processor/DeleteACLProcessor.java | 3 +- .../james/imap/processor/DeleteProcessor.java | 3 +- .../james/imap/processor/GetACLProcessor.java | 3 +- .../imap/processor/GetAnnotationProcessor.java | 3 +- .../imap/processor/GetQuotaRootProcessor.java | 3 +- .../james/imap/processor/LSubProcessor.java | 3 +- .../james/imap/processor/ListProcessor.java | 3 +- .../imap/processor/ListRightsProcessor.java | 3 +- .../james/imap/processor/MyRightsProcessor.java | 3 +- .../james/imap/processor/RenameProcessor.java | 6 +- .../james/imap/processor/SetACLProcessor.java | 3 +- .../imap/processor/SetAnnotationProcessor.java | 3 +- .../james/imap/processor/StatusProcessor.java | 3 +- 20 files changed, 116 insertions(+), 57 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java b/protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java new file mode 100644 index 0000000..1f68601 --- /dev/null +++ b/protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java @@ -0,0 +1,78 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ + +package org.apache.james.imap.main; + +import org.apache.james.imap.api.ImapSessionUtils; +import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.mailbox.MailboxSession; +import org.apache.james.mailbox.model.MailboxConstants; +import org.apache.james.mailbox.model.MailboxPath; + +public class PathConverter { + + public static PathConverter forSession(ImapSession session) { + return new PathConverter(session); + } + + private final ImapSession session; + + public PathConverter(ImapSession session) { + this.session = session; + } + + public MailboxPath buildFullPath(String mailboxName) { + String namespace = null; + String name = null; + final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + + if (mailboxName == null || mailboxName.length() == 0) { + return new MailboxPath("", "", ""); + } + if (mailboxName.charAt(0) == MailboxConstants.NAMESPACE_PREFIX_CHAR) { + int namespaceLength = mailboxName.indexOf(mailboxSession.getPathDelimiter()); + if (namespaceLength > -1) { + namespace = mailboxName.substring(0, namespaceLength); + if (mailboxName.length() > namespaceLength) + name = mailboxName.substring(++namespaceLength); + } else { + namespace = mailboxName; + } + } else { + namespace = MailboxConstants.USER_NAMESPACE; + name = mailboxName; + } + String user = null; + // we only use the user as part of the MailboxPath if its a private user + // namespace + if (namespace.equals(MailboxConstants.USER_NAMESPACE)) { + user = ImapSessionUtils.getUserName(session); + } + + // use uppercase for INBOX + // + // See IMAP-349 + if (name.equalsIgnoreCase(MailboxConstants.INBOX)) { + name = MailboxConstants.INBOX; + } + + return new MailboxPath(namespace, user, name); + } + +} http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java index d2e873e..be5460a 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java @@ -25,6 +25,7 @@ import org.apache.james.imap.api.message.request.ImapRequest; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.exception.BadCredentialsException; @@ -56,7 +57,7 @@ public abstract class AbstractAuthProcessor<M extends ImapRequest> extends Abstr final MailboxSession mailboxSession = mailboxManager.login(userid, passwd, session.getLog()); session.authenticated(); session.setAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY, mailboxSession); - final MailboxPath inboxPath = buildFullPath(session, MailboxConstants.INBOX); + final MailboxPath inboxPath = PathConverter.forSession(session).buildFullPath(MailboxConstants.INBOX); if (mailboxManager.mailboxExists(inboxPath, mailboxSession)) { if (session.getLog().isDebugEnabled()) { session.getLog().debug("INBOX exists. No need to create it."); http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java index 03dde23..2663b56 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java @@ -351,44 +351,6 @@ abstract public class AbstractMailboxProcessor<M extends ImapRequest> extends Ab protected abstract void doProcess(M message, ImapSession session, String tag, ImapCommand command, Responder responder); - public MailboxPath buildFullPath(ImapSession session, String mailboxName) { - String namespace = null; - String name = null; - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); - - if (mailboxName == null || mailboxName.length() == 0) { - return new MailboxPath("", "", ""); - } - if (mailboxName.charAt(0) == MailboxConstants.NAMESPACE_PREFIX_CHAR) { - int namespaceLength = mailboxName.indexOf(mailboxSession.getPathDelimiter()); - if (namespaceLength > -1) { - namespace = mailboxName.substring(0, namespaceLength); - if (mailboxName.length() > namespaceLength) - name = mailboxName.substring(++namespaceLength); - } else { - namespace = mailboxName; - } - } else { - namespace = MailboxConstants.USER_NAMESPACE; - name = mailboxName; - } - String user = null; - // we only use the user as part of the MailboxPath if its a private user - // namespace - if (namespace.equals(MailboxConstants.USER_NAMESPACE)) { - user = ImapSessionUtils.getUserName(session); - } - - // use uppercase for INBOX - // - // See IMAP-349 - if (name.equalsIgnoreCase(MailboxConstants.INBOX)) { - name = MailboxConstants.INBOX; - } - - return new MailboxPath(namespace, user, name); - } - /** * Joins the elements of a mailboxPath together and returns them as a string * http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java index 7dd271d..53f41d9 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java @@ -31,6 +31,7 @@ import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.imap.api.process.SelectedMailbox; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.AbstractMessageRangeRequest; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; @@ -56,7 +57,7 @@ public abstract class AbstractMessageRangeProcessor<M extends AbstractMessageRan @Override protected void doProcess(M request, ImapSession session, String tag, ImapCommand command, Responder responder) { - final MailboxPath targetMailbox = buildFullPath(session, request.getMailboxName()); + final MailboxPath targetMailbox = PathConverter.forSession(session).buildFullPath(request.getMailboxName()); final IdRange[] idSet = request.getIdSet(); final boolean useUids = request.isUseUids(); final SelectedMailbox currentMailbox = session.getSelected(); http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java index 3bd594f..9d9a7e0 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java @@ -38,6 +38,7 @@ import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.imap.api.process.SearchResUtil; import org.apache.james.imap.api.process.SelectedMailbox; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.AbstractMailboxSelectionRequest; import org.apache.james.imap.message.response.ExistsResponse; import org.apache.james.imap.message.response.RecentResponse; @@ -80,7 +81,7 @@ abstract class AbstractSelectionProcessor<M extends AbstractMailboxSelectionRequ protected void doProcess(M request, ImapSession session, String tag, ImapCommand command, Responder responder) { final String mailboxName = request.getMailboxName(); try { - final MailboxPath fullMailboxPath = buildFullPath(session, mailboxName); + final MailboxPath fullMailboxPath = PathConverter.forSession(session).buildFullPath(mailboxName); respond(tag, command, session, fullMailboxPath, request, responder); http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java index 05b2f76..4d85ce2 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java @@ -35,6 +35,7 @@ import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.imap.api.process.SelectedMailbox; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.AppendRequest; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; @@ -64,7 +65,7 @@ public class AppendProcessor extends AbstractMailboxProcessor<AppendRequest> { final InputStream messageIn = request.getMessage(); final Date datetime = request.getDatetime(); final Flags flags = request.getFlags(); - final MailboxPath mailboxPath = buildFullPath(session, mailboxName); + final MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(mailboxName); try { http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java index 27e46a0..71b78ef 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java @@ -25,6 +25,7 @@ import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.CreateRequest; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.exception.MailboxException; @@ -45,7 +46,7 @@ public class CreateProcessor extends AbstractMailboxProcessor<CreateRequest> { * org.apache.james.imap.api.process.ImapProcessor.Responder) */ protected void doProcess(CreateRequest request, ImapSession session, String tag, ImapCommand command, Responder responder) { - final MailboxPath mailboxPath = buildFullPath(session, request.getMailboxName()); + final MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(request.getMailboxName()); try { final MailboxManager mailboxManager = getMailboxManager(); mailboxManager.createMailbox(mailboxPath, ImapSessionUtils.getMailboxSession(session)); http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java ---------------------------------------------------------------------- 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 9a7f889..77ead95 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 @@ -29,6 +29,7 @@ import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.DeleteACLRequest; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; @@ -65,7 +66,7 @@ public class DeleteACLProcessor extends AbstractMailboxProcessor<DeleteACLReques final String identifier = message.getIdentifier(); try { - MailboxPath mailboxPath = buildFullPath(session, mailboxName); + MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(mailboxName); // Check that mailbox exists mailboxManager.getMailbox(mailboxPath, mailboxSession); /* http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java index db3c5d4..4d1d600 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java @@ -26,6 +26,7 @@ import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.imap.api.process.SelectedMailbox; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.DeleteRequest; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.exception.MailboxException; @@ -46,7 +47,7 @@ public class DeleteProcessor extends AbstractMailboxProcessor<DeleteRequest> { * org.apache.james.imap.api.process.ImapProcessor.Responder) */ protected void doProcess(DeleteRequest request, ImapSession session, String tag, ImapCommand command, Responder responder) { - final MailboxPath mailboxPath = buildFullPath(session, request.getMailboxName()); + final MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(request.getMailboxName()); try { final SelectedMailbox selected = session.getSelected(); if (selected != null && selected.getPath().equals(mailboxPath)) { http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java ---------------------------------------------------------------------- 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 33a848c..81a6994 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 @@ -29,6 +29,7 @@ import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.GetACLRequest; import org.apache.james.imap.message.response.ACLResponse; import org.apache.james.mailbox.MailboxManager; @@ -62,7 +63,7 @@ public class GetACLProcessor extends AbstractMailboxProcessor<GetACLRequest> imp final String mailboxName = message.getMailboxName(); try { - MailboxPath mailboxPath = buildFullPath(session, mailboxName); + MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(mailboxName); // Check that mailbox exists MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, mailboxSession); /* http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java index 052e533..596849f 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java @@ -34,6 +34,7 @@ import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.GetAnnotationRequest; import org.apache.james.imap.message.response.AnnotationResponse; import org.apache.james.mailbox.MailboxManager; @@ -73,7 +74,7 @@ public class GetAnnotationProcessor extends AbstractMailboxProcessor<GetAnnotati private void proceed(GetAnnotationRequest message, ImapSession session, String tag, ImapCommand command, Responder responder) throws MailboxException { String mailboxName = message.getMailboxName(); Optional<Integer> maxsize = message.getMaxsize(); - MailboxPath mailboxPath = buildFullPath(session, mailboxName); + MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(mailboxName); List<MailboxAnnotation> mailboxAnnotations = getMailboxAnnotations(session, message.getKeys(), message.getDepth(), mailboxPath); Optional<Integer> maximumOversizedSize = getMaxSizeValue(mailboxAnnotations, maxsize); http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java index bc977c4..5b2987f 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java @@ -26,6 +26,7 @@ import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.GetQuotaRootRequest; import org.apache.james.imap.message.response.QuotaRootResponse; import org.apache.james.imap.message.response.QuotaResponse; @@ -66,7 +67,7 @@ public class GetQuotaRootProcessor extends AbstractMailboxProcessor<GetQuotaRoot final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); final MailboxManager mailboxManager = getMailboxManager(); - final MailboxPath mailboxPath = buildFullPath(session, message.getMailboxName()); + final MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(message.getMailboxName()); // First check mailbox exists try { http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java index 3a57e50..c8ebdde 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java @@ -29,6 +29,7 @@ import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.LsubRequest; import org.apache.james.imap.message.response.LSubResponse; import org.apache.james.mailbox.MailboxManager; @@ -62,7 +63,7 @@ public class LSubProcessor extends AbstractSubscriptionProcessor<LsubRequest> { if (isRelative) { basePath = new MailboxPath(MailboxConstants.USER_NAMESPACE, mailboxSession.getUser().getUserName(), CharsetUtil.decodeModifiedUTF7(finalReferencename)); } else { - basePath = buildFullPath(session, CharsetUtil.decodeModifiedUTF7(finalReferencename)); + basePath = PathConverter.forSession(session).buildFullPath(CharsetUtil.decodeModifiedUTF7(finalReferencename)); } final MailboxQuery expression = new MailboxQuery(basePath, CharsetUtil.decodeModifiedUTF7(mailboxName), mailboxSession.getPathDelimiter()); http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java ---------------------------------------------------------------------- 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 a6416bd..c9200a2 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 @@ -33,6 +33,7 @@ import org.apache.james.imap.api.process.ImapProcessor; 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.request.ListRequest; import org.apache.james.imap.message.response.ListResponse; import org.apache.james.mailbox.MailboxManager; @@ -169,7 +170,7 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> { if (isRelative) { basePath = new MailboxPath(MailboxConstants.USER_NAMESPACE, user, finalReferencename); } else { - basePath = buildFullPath(session, finalReferencename); + basePath = PathConverter.forSession(session).buildFullPath(finalReferencename); } results = getMailboxManager().search(new MailboxQuery(basePath, CharsetUtil.decodeModifiedUTF7(mailboxName), mailboxSession.getPathDelimiter()), mailboxSession); http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java ---------------------------------------------------------------------- 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 da4e899..b465a3e 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.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.ListRightsRequest; import org.apache.james.imap.message.response.ListRightsResponse; import org.apache.james.mailbox.MailboxManager; @@ -64,7 +65,7 @@ public class ListRightsProcessor extends AbstractMailboxProcessor<ListRightsRequ final String identifier = message.getIdentifier(); try { - MailboxPath mailboxPath = buildFullPath(session, mailboxName); + MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(mailboxName); // Check that mailbox exists mailboxManager.getMailbox(mailboxPath, mailboxSession); http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java ---------------------------------------------------------------------- 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 48f7a36..163e02f 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 @@ -29,6 +29,7 @@ import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.MyRightsRequest; import org.apache.james.imap.message.response.MyRightsResponse; import org.apache.james.mailbox.MailboxManager; @@ -61,7 +62,7 @@ public class MyRightsProcessor extends AbstractMailboxProcessor<MyRightsRequest> final String mailboxName = message.getMailboxName(); try { - MailboxPath mailboxPath = buildFullPath(session, mailboxName); + MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(mailboxName); // Check that mailbox exists mailboxManager.getMailbox(mailboxPath, mailboxSession); MailboxACLRights myRights = mailboxManager.myRights(mailboxPath, mailboxSession); http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java index 5cf5133..6d83a21 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java @@ -26,6 +26,7 @@ import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.RenameRequest; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; @@ -49,8 +50,9 @@ public class RenameProcessor extends AbstractMailboxProcessor<RenameRequest> { * org.apache.james.imap.api.process.ImapProcessor.Responder) */ protected void doProcess(RenameRequest request, ImapSession session, String tag, ImapCommand command, Responder responder) { - final MailboxPath existingPath = buildFullPath(session, request.getExistingName()); - final MailboxPath newPath = buildFullPath(session, request.getNewName()); + PathConverter pathConverter = PathConverter.forSession(session); + MailboxPath existingPath = pathConverter.buildFullPath(request.getExistingName()); + MailboxPath newPath = pathConverter.buildFullPath(request.getNewName()); try { final MailboxManager mailboxManager = getMailboxManager(); MailboxSession mailboxsession = ImapSessionUtils.getMailboxSession(session); http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java ---------------------------------------------------------------------- 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 6b0c2a2..f521a8f 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 @@ -29,6 +29,7 @@ import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.SetACLRequest; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; @@ -84,7 +85,7 @@ public class SetACLProcessor extends AbstractMailboxProcessor<SetACLRequest> imp } MailboxACLRights mailboxAclRights = new Rfc4314Rights(rights); - MailboxPath mailboxPath = buildFullPath(session, mailboxName); + MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(mailboxName); // Check that mailbox exists mailboxManager.getMailbox(mailboxPath, mailboxSession); http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java index 0a5bdc6..4ce0fee 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java @@ -29,6 +29,7 @@ import org.apache.james.imap.api.message.response.StatusResponse; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.SetAnnotationRequest; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; @@ -54,7 +55,7 @@ public class SetAnnotationProcessor extends AbstractMailboxProcessor<SetAnnotati final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); final String mailboxName = message.getMailboxName(); try { - MailboxPath mailboxPath = buildFullPath(session, mailboxName); + MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(mailboxName); mailboxManager.updateAnnotations(mailboxPath, mailboxSession, message.getMailboxAnnotations()); http://git-wip-us.apache.org/repos/asf/james-project/blob/490bd69a/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java index 34b7308..8c853e3 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java @@ -26,6 +26,7 @@ import org.apache.james.imap.api.message.StatusDataItems; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.main.PathConverter; import org.apache.james.imap.message.request.StatusRequest; import org.apache.james.imap.message.response.MailboxStatusResponse; import org.apache.james.mailbox.MailboxManager; @@ -51,7 +52,7 @@ public class StatusProcessor extends AbstractMailboxProcessor<StatusRequest> { * org.apache.james.imap.api.process.ImapProcessor.Responder) */ protected void doProcess(StatusRequest request, ImapSession session, String tag, ImapCommand command, Responder responder) { - final MailboxPath mailboxPath = buildFullPath(session, request.getMailboxName()); + final MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(request.getMailboxName()); final StatusDataItems statusDataItems = request.getStatusDataItems(); final Logger logger = session.getLog(); final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org