This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 7c86c9b33b8463c27ab8f554209f7dce98b0b121 Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Wed Dec 11 10:53:24 2019 +0700 [Refactoring] Get rid of ImapSessionUtils This class was used to help retrieving MailboxSession and Username which is a very common operation. Having a separeted utility makes the API not straightforward to work with. I propose leveraging default methods to enhance the developer experience and allow an ImapSession::getMailboxSession and a ImapSession::getUsernames methods. Note that fixing mocked tests was non trivial hence I replaced mocking by usage of FakeMailboxSession. --- .../apache/james/imap/api/ImapSessionUtils.java | 46 ---------------------- .../apache/james/imap/api/process/ImapSession.java | 18 +++++++++ .../imap/decode/parser/CreateCommandParser.java | 3 +- .../org/apache/james/imap/main/PathConverter.java | 7 ++-- .../imap/processor/AbstractAuthProcessor.java | 5 +-- .../imap/processor/AbstractMailboxProcessor.java | 11 +++--- .../processor/AbstractMessageRangeProcessor.java | 3 +- .../imap/processor/AbstractSelectionProcessor.java | 7 ++-- .../processor/AbstractSubscriptionProcessor.java | 3 +- .../james/imap/processor/AppendProcessor.java | 5 +-- .../james/imap/processor/CloseProcessor.java | 3 +- .../james/imap/processor/CreateProcessor.java | 3 +- .../james/imap/processor/DeleteACLProcessor.java | 3 +- .../james/imap/processor/DeleteProcessor.java | 3 +- .../james/imap/processor/ExpungeProcessor.java | 3 +- .../james/imap/processor/GetACLProcessor.java | 3 +- .../imap/processor/GetAnnotationProcessor.java | 5 +-- .../james/imap/processor/GetQuotaProcessor.java | 3 +- .../imap/processor/GetQuotaRootProcessor.java | 3 +- .../apache/james/imap/processor/LSubProcessor.java | 3 +- .../apache/james/imap/processor/ListProcessor.java | 5 +-- .../james/imap/processor/ListRightsProcessor.java | 3 +- .../james/imap/processor/LogoutProcessor.java | 3 +- .../james/imap/processor/MyRightsProcessor.java | 3 +- .../james/imap/processor/NamespaceProcessor.java | 3 +- .../james/imap/processor/RenameProcessor.java | 3 +- .../james/imap/processor/SearchProcessor.java | 3 +- .../james/imap/processor/SetACLProcessor.java | 3 +- .../imap/processor/SetAnnotationProcessor.java | 3 +- .../james/imap/processor/StatusProcessor.java | 3 +- .../james/imap/processor/StoreProcessor.java | 3 +- .../james/imap/processor/SubscribeProcessor.java | 3 +- .../imap/processor/SystemMessageProcessor.java | 3 +- .../james/imap/processor/UnsubscribeProcessor.java | 3 +- .../imap/processor/base/SelectedMailboxImpl.java | 5 +-- .../james/imap/processor/fetch/FetchProcessor.java | 3 +- .../imap/processor/fetch/FetchResponseBuilder.java | 3 +- ...pSessionUtilsTest.java => ImapSessionTest.java} | 16 ++------ .../decode/parser/CreateCommandParserTest.java | 3 +- .../apache/james/imap/main/PathConverterTest.java | 11 ++---- .../james/imap/processor/CopyProcessorTest.java | 39 ++++++++---------- .../imap/processor/DeleteACLProcessorTest.java | 14 +++---- .../james/imap/processor/GetACLProcessorTest.java | 14 +++---- .../imap/processor/GetAnnotationProcessorTest.java | 35 ++++++++-------- .../imap/processor/GetQuotaProcessorTest.java | 9 ++--- .../imap/processor/GetQuotaRootProcessorTest.java | 26 ++++++------ .../james/imap/processor/LSubProcessorTest.java | 3 +- .../imap/processor/ListRightsProcessorTest.java | 14 +++---- .../james/imap/processor/MoveProcessorTest.java | 43 ++++++++------------ .../imap/processor/NamespaceProcessorTest.java | 5 +-- .../james/imap/processor/SearchProcessorTest.java | 6 +-- .../james/imap/processor/SetACLProcessorTest.java | 14 +++---- .../imap/processor/SetAnnotationProcessorTest.java | 19 ++++----- .../imap/processor/SetQuotaProcessorTest.java | 3 +- .../processor/base/MailboxEventAnalyserTest.java | 3 +- .../processor/base/SelectedMailboxImplTest.java | 3 +- .../james/imapserver/netty/IMAPMDCContext.java | 6 +-- 57 files changed, 175 insertions(+), 306 deletions(-) diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/ImapSessionUtils.java b/protocols/imap/src/main/java/org/apache/james/imap/api/ImapSessionUtils.java deleted file mode 100644 index 532eb49..0000000 --- a/protocols/imap/src/main/java/org/apache/james/imap/api/ImapSessionUtils.java +++ /dev/null @@ -1,46 +0,0 @@ -/**************************************************************** - * 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.api; - -import java.util.Optional; - -import org.apache.james.core.Username; -import org.apache.james.imap.api.process.ImapSession; -import org.apache.james.mailbox.MailboxSession; - -import com.google.common.base.Preconditions; - -public class ImapSessionUtils { - - public static final String MAILBOX_USER_ATTRIBUTE_SESSION_KEY = "org.apache.james.api.imap.MAILBOX_USER_ATTRIBUTE_SESSION_KEY"; - - public static final String MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY = "org.apache.james.api.imap.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY"; - - public static MailboxSession getMailboxSession(ImapSession session) { - return (MailboxSession) session.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY); - } - - public static Username getUserName(ImapSession imapSession) { - Preconditions.checkNotNull(imapSession); - return Optional.ofNullable(getMailboxSession(imapSession)) - .map(mailboxSession -> mailboxSession.getUser()) - .orElse(null); - } -} diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/process/ImapSession.java b/protocols/imap/src/main/java/org/apache/james/imap/api/process/ImapSession.java index 9bbf27a..e8769f9 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/api/process/ImapSession.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/api/process/ImapSession.java @@ -19,7 +19,11 @@ package org.apache.james.imap.api.process; +import java.util.Optional; + +import org.apache.james.core.Username; import org.apache.james.imap.api.ImapSessionState; +import org.apache.james.mailbox.MailboxSession; /** * Encapsulates all state held for an ongoing Imap session, which commences when @@ -29,6 +33,7 @@ import org.apache.james.imap.api.ImapSessionState; * @version $Revision: 109034 $ */ public interface ImapSession { + String MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY = "org.apache.james.api.imap.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY"; /** * Logs out the session. Marks the connection for closure; @@ -158,4 +163,17 @@ public interface ImapSession { */ boolean isPlainAuthDisallowed(); + default void setMailboxSession(MailboxSession mailboxSession) { + setAttribute(MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY, mailboxSession); + } + + default MailboxSession getMailboxSession() { + return (MailboxSession) getAttribute(MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY); + } + + default Username getUserName() { + return Optional.ofNullable(getMailboxSession()) + .map(MailboxSession::getUser) + .orElse(null); + } } diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CreateCommandParser.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CreateCommandParser.java index 89c679a..350f65f 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CreateCommandParser.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CreateCommandParser.java @@ -21,7 +21,6 @@ package org.apache.james.imap.decode.parser; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapConstants; import org.apache.james.imap.api.ImapMessage; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.Tag; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.process.ImapSession; @@ -47,7 +46,7 @@ public class CreateCommandParser extends AbstractImapCommandParser { protected ImapMessage decode(ImapCommand command, ImapRequestLineReader request, Tag tag, ImapSession session) throws DecodingException { String mailboxName = request.mailbox(); - MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + MailboxSession mailboxSession = session.getMailboxSession(); // Check if we have an mailboxsession. This is a workaround for // IMAP-240: 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 index 8f97bd7..ca5a7cb 100644 --- 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 @@ -22,7 +22,6 @@ package org.apache.james.imap.main; import java.util.List; import org.apache.james.core.Username; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.mailbox.model.MailboxConstants; import org.apache.james.mailbox.model.MailboxPath; @@ -64,11 +63,11 @@ public class PathConverter { } private MailboxPath buildRelativePath(String mailboxName) { - return buildMailboxPath(MailboxConstants.USER_NAMESPACE, ImapSessionUtils.getUserName(session), mailboxName); + return buildMailboxPath(MailboxConstants.USER_NAMESPACE, session.getUserName(), mailboxName); } private MailboxPath buildAbsolutePath(String absolutePath) { - char pathDelimiter = ImapSessionUtils.getMailboxSession(session).getPathDelimiter(); + char pathDelimiter = session.getMailboxSession().getPathDelimiter(); List<String> mailboxPathParts = Splitter.on(pathDelimiter).splitToList(absolutePath); String namespace = mailboxPathParts.get(NAMESPACE); String mailboxName = Joiner.on(pathDelimiter).join(Iterables.skip(mailboxPathParts, 1)); @@ -77,7 +76,7 @@ public class PathConverter { private Username retrieveUserName(String namespace) { if (namespace.equals(MailboxConstants.USER_NAMESPACE)) { - return ImapSessionUtils.getUserName(session); + return session.getUserName(); } throw new DeniedAccessOnSharedMailboxException(); } 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 d7ef19e..35eac0b 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 @@ -21,7 +21,6 @@ package org.apache.james.imap.processor; import java.util.Optional; import org.apache.james.core.Username; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.request.ImapRequest; import org.apache.james.imap.api.message.response.StatusResponseFactory; @@ -71,7 +70,7 @@ public abstract class AbstractAuthProcessor<R extends ImapRequest> extends Abstr final MailboxSession mailboxSession = mailboxManager.login(authenticationAttempt.getAuthenticationId(), authenticationAttempt.getPassword()); session.authenticated(); - session.setAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY, mailboxSession); + session.setMailboxSession(mailboxSession); provisionInbox(session, mailboxManager, mailboxSession); okComplete(request, responder); } catch (BadCredentialsException e) { @@ -101,7 +100,7 @@ public abstract class AbstractAuthProcessor<R extends ImapRequest> extends Abstr authenticationAttempt.getPassword(), authenticationAttempt.getDelegateUserName().get()); session.authenticated(); - session.setAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY, mailboxSession); + session.setMailboxSession(mailboxSession); provisionInbox(session, mailboxManager, mailboxSession); okComplete(request, responder); } catch (BadCredentialsException e) { 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 0073028..7eff975 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 @@ -29,7 +29,6 @@ import java.util.stream.Stream; import javax.mail.Flags; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.IdRange; import org.apache.james.imap.api.message.UidRange; @@ -94,11 +93,11 @@ public abstract class AbstractMailboxProcessor<R extends ImapRequest> extends Ab responder.respond(response); } else { - getMailboxManager().startProcessingRequest(ImapSessionUtils.getMailboxSession(session)); + getMailboxManager().startProcessingRequest(session.getMailboxSession()); processRequest(acceptableMessage, session, responder); - getMailboxManager().endProcessingRequest(ImapSessionUtils.getMailboxSession(session)); + getMailboxManager().endProcessingRequest(session.getMailboxSession()); } } catch (DeniedAccessOnSharedMailboxException e) { no(acceptableMessage, responder, HumanReadableText.DENIED_SHARED_MAILBOX); @@ -196,7 +195,7 @@ public abstract class AbstractMailboxProcessor<R extends ImapRequest> extends Ab // To be lazily initialized only if needed, which is in minority of cases. MessageManager messageManager = null; MetaData metaData = null; - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); // Check if we need to send a FLAGS and PERMANENTFLAGS response before the FETCH response // This is the case if some new flag/keyword was used @@ -295,7 +294,7 @@ public abstract class AbstractMailboxProcessor<R extends ImapRequest> extends Ab private MessageManager getMailbox(ImapSession session, SelectedMailbox selected) throws MailboxException { final MailboxManager mailboxManager = getMailboxManager(); - return mailboxManager.getMailbox(selected.getMailboxId(), ImapSessionUtils.getMailboxSession(session)); + return mailboxManager.getMailbox(selected.getMailboxId(), session.getMailboxSession()); } private void addRecentResponses(SelectedMailbox selected, ImapProcessor.Responder responder) { @@ -401,7 +400,7 @@ public abstract class AbstractMailboxProcessor<R extends ImapRequest> extends Ab result = null; } else { final MailboxManager mailboxManager = getMailboxManager(); - result = mailboxManager.getMailbox(selectedMailbox.getMailboxId(), ImapSessionUtils.getMailboxSession(session)); + result = mailboxManager.getMailbox(selectedMailbox.getMailboxId(), session.getMailboxSession()); } return result; } 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 ac31374..8860c1a 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 @@ -24,7 +24,6 @@ import java.util.List; import java.util.Objects; import java.util.stream.Stream; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.IdRange; import org.apache.james.imap.api.message.response.StatusResponse; @@ -68,7 +67,7 @@ public abstract class AbstractMessageRangeProcessor<R extends AbstractMessageRan MailboxPath targetMailbox = PathConverter.forSession(session).buildFullPath(request.getMailboxName()); try { - MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + MailboxSession mailboxSession = session.getMailboxSession(); if (!getMailboxManager().mailboxExists(targetMailbox, mailboxSession)) { no(request, responder, HumanReadableText.FAILURE_NO_SUCH_MAILBOX, StatusResponse.ResponseCode.tryCreate()); 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 9ceb8a5..a532b9e 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 @@ -24,7 +24,6 @@ import java.util.List; import org.apache.james.imap.api.ImapConstants; import org.apache.james.imap.api.ImapMessage; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.IdRange; import org.apache.james.imap.api.message.UidRange; @@ -157,7 +156,7 @@ abstract class AbstractSelectionProcessor<R extends AbstractMailboxSelectionRequ if (lastKnownUidValidity == metaData.getUidValidity()) { final MailboxManager mailboxManager = getMailboxManager(); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); final MessageManager mailbox = mailboxManager.getMailbox(fullMailboxPath, mailboxSession); // If the provided UIDVALIDITY matches that of the selected mailbox, the @@ -382,7 +381,7 @@ abstract class AbstractSelectionProcessor<R extends AbstractMailboxSelectionRequ private MessageManager.MetaData selectMailbox(MailboxPath mailboxPath, ImapSession session) throws MailboxException { final MailboxManager mailboxManager = getMailboxManager(); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); final MessageManager mailbox = mailboxManager.getMailbox(mailboxPath, mailboxSession); final SelectedMailbox sessionMailbox; @@ -443,7 +442,7 @@ abstract class AbstractSelectionProcessor<R extends AbstractMailboxSelectionRequ boolean send = false; if (sm != null) { MessageManager mailbox = getSelectedMailbox(session); - metaData = mailbox.getMetaData(false, ImapSessionUtils.getMailboxSession(session), FetchGroup.NO_COUNT); + metaData = mailbox.getMetaData(false, session.getMailboxSession(), FetchGroup.NO_COUNT); send = true; } condstoreEnablingCommand(session, responder, metaData, send); diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSubscriptionProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSubscriptionProcessor.java index ec3c4f2..4204cae 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSubscriptionProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSubscriptionProcessor.java @@ -18,7 +18,6 @@ ****************************************************************/ package org.apache.james.imap.processor; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -55,7 +54,7 @@ public abstract class AbstractSubscriptionProcessor<R extends ImapRequest> exten protected final void processRequest(R request, ImapSession session, Responder responder) { // take care of calling the start/end processing - MailboxSession mSession = ImapSessionUtils.getMailboxSession(session); + MailboxSession mSession = session.getMailboxSession(); getSubscriptionManager().startProcessingRequest(mSession); doProcessRequest(request, session, responder); getSubscriptionManager().endProcessingRequest(mSession); 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 5bbb43d..114281b 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 @@ -29,7 +29,6 @@ import java.util.Date; import javax.mail.Flags; import org.apache.commons.io.IOUtils; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.UidRange; import org.apache.james.imap.api.message.response.StatusResponse; @@ -71,7 +70,7 @@ public class AppendProcessor extends AbstractMailboxProcessor<AppendRequest> { try { final MailboxManager mailboxManager = getMailboxManager(); - final MessageManager mailbox = mailboxManager.getMailbox(mailboxPath, ImapSessionUtils.getMailboxSession(session)); + final MessageManager mailbox = mailboxManager.getMailbox(mailboxPath, session.getMailboxSession()); appendToMailbox(messageIn, datetime, flags, session, request, mailbox, responder, mailboxPath); } catch (MailboxNotFoundException e) { // consume message on exception @@ -124,7 +123,7 @@ public class AppendProcessor extends AbstractMailboxProcessor<AppendRequest> { private void appendToMailbox(InputStream message, Date datetime, Flags flagsToBeSet, ImapSession session, AppendRequest request, MessageManager mailbox, Responder responder, MailboxPath mailboxPath) { try { - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); final SelectedMailbox selectedMailbox = session.getSelected(); final MailboxManager mailboxManager = getMailboxManager(); final boolean isSelectedMailbox = selectedMailbox != null && selectedMailbox.getPath().equals(mailboxPath); diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java index cc0f6b6..61436ca 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java @@ -21,7 +21,6 @@ package org.apache.james.imap.processor; import java.io.Closeable; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -50,7 +49,7 @@ public class CloseProcessor extends AbstractMailboxProcessor<CloseRequest> { protected void processRequest(CloseRequest request, ImapSession session, Responder responder) { try { MessageManager mailbox = getSelectedMailbox(session); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); if (mailbox.getMetaData(false, mailboxSession, FetchGroup.NO_COUNT).isWriteable()) { mailbox.expunge(MessageRange.all(), mailboxSession); session.deselect(); 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 ecbfc8b..b5646f9 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 @@ -21,7 +21,6 @@ package org.apache.james.imap.processor; import java.io.Closeable; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -51,7 +50,7 @@ public class CreateProcessor extends AbstractMailboxProcessor<CreateRequest> { final MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(request.getMailboxName()); try { final MailboxManager mailboxManager = getMailboxManager(); - mailboxManager.createMailbox(mailboxPath, ImapSessionUtils.getMailboxSession(session)); + mailboxManager.createMailbox(mailboxPath, session.getMailboxSession()); unsolicitedResponses(session, responder, false); okComplete(request, responder); } catch (MailboxExistsException e) { 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 44a9658..722eb09 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 @@ -23,7 +23,6 @@ import java.io.Closeable; import java.util.List; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -62,7 +61,7 @@ public class DeleteACLProcessor extends AbstractMailboxProcessor<DeleteACLReques protected void processRequest(DeleteACLRequest request, ImapSession session, Responder responder) { final MailboxManager mailboxManager = getMailboxManager(); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); final String mailboxName = request.getMailboxName(); final String identifier = request.getIdentifier(); try { 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 dc7958b..edc86ce 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 @@ -21,7 +21,6 @@ package org.apache.james.imap.processor; import java.io.Closeable; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -57,7 +56,7 @@ public class DeleteProcessor extends AbstractMailboxProcessor<DeleteRequest> { session.deselect(); } final MailboxManager mailboxManager = getMailboxManager(); - mailboxManager.deleteMailbox(mailboxPath, ImapSessionUtils.getMailboxSession(session)); + mailboxManager.deleteMailbox(mailboxPath, session.getMailboxSession()); unsolicitedResponses(session, responder, false); okComplete(request, responder); } catch (MailboxNotFoundException e) { diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java index 6646faa..431aad7 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java @@ -24,7 +24,6 @@ import java.util.Iterator; import java.util.List; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.IdRange; import org.apache.james.imap.api.message.response.StatusResponse.ResponseCode; @@ -63,7 +62,7 @@ public class ExpungeProcessor extends AbstractMailboxProcessor<ExpungeRequest> i protected void processRequest(ExpungeRequest request, ImapSession session, Responder responder) { try { final MessageManager mailbox = getSelectedMailbox(session); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); int expunged = 0; MetaData mdata = mailbox.getMetaData(false, mailboxSession, FetchGroup.NO_COUNT); 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 bd7e884..06148c1 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 @@ -23,7 +23,6 @@ import java.io.Closeable; import java.util.List; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -64,7 +63,7 @@ public class GetACLProcessor extends AbstractMailboxProcessor<GetACLRequest> imp protected void processRequest(GetACLRequest request, ImapSession session, Responder responder) { final MailboxManager mailboxManager = getMailboxManager(); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); final String mailboxName = request.getMailboxName(); try { 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 f8a3abd..14f697e 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 @@ -28,7 +28,6 @@ import java.util.function.Predicate; import org.apache.commons.lang3.NotImplementedException; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.request.ImapRequest; import org.apache.james.imap.api.message.response.StatusResponse.ResponseCode; @@ -75,7 +74,7 @@ public class GetAnnotationProcessor extends AbstractMailboxProcessor<GetAnnotati LOGGER.info("The command: {} is failed because not found mailbox {}", request.getCommand().getName(), request.getMailboxName()); no(request, responder, HumanReadableText.FAILURE_NO_SUCH_MAILBOX, ResponseCode.tryCreate()); } catch (MailboxException e) { - LOGGER.error("GetAnnotation on mailbox {} failed for user {}", request.getMailboxName(), ImapSessionUtils.getUserName(session), e); + LOGGER.error("GetAnnotation on mailbox {} failed for user {}", request.getMailboxName(), session.getUserName(), e); no(request, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING); } } @@ -120,7 +119,7 @@ public class GetAnnotationProcessor extends AbstractMailboxProcessor<GetAnnotati } private List<MailboxAnnotation> getMailboxAnnotations(ImapSession session, Set<MailboxAnnotationKey> keys, GetAnnotationRequest.Depth depth, MailboxPath mailboxPath) throws MailboxException { - MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + MailboxSession mailboxSession = session.getMailboxSession(); switch (depth) { case ZERO: return getMailboxAnnotationsWithDepthZero(keys, mailboxPath, mailboxSession); diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java index 3b86940..20976cf 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java @@ -27,7 +27,6 @@ import org.apache.james.core.quota.QuotaCountUsage; import org.apache.james.core.quota.QuotaSizeLimit; import org.apache.james.core.quota.QuotaSizeUsage; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -100,7 +99,7 @@ public class GetQuotaProcessor extends AbstractMailboxProcessor<GetQuotaRequest> private boolean hasRight(QuotaRoot quotaRoot, ImapSession session) throws MailboxException { // If any of the mailboxes owned by quotaRoot user can be read by the current user, then we should respond to him. - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); List<Mailbox> mailboxList = quotaRootResolver.retrieveAssociatedMailboxes(quotaRoot, mailboxSession); for (Mailbox mailbox : mailboxList) { if (getMailboxManager().hasRight(mailbox.generateAssociatedPath(), MailboxACL.Right.Read, mailboxSession)) { 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 8d70dcc..c9a4db3 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 @@ -27,7 +27,6 @@ import org.apache.james.core.quota.QuotaCountUsage; import org.apache.james.core.quota.QuotaSizeLimit; import org.apache.james.core.quota.QuotaSizeUsage; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -73,7 +72,7 @@ public class GetQuotaRootProcessor extends AbstractMailboxProcessor<GetQuotaRoot @Override protected void processRequest(GetQuotaRootRequest request, ImapSession session, Responder responder) { - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); final MailboxManager mailboxManager = getMailboxManager(); final MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(request.getMailboxName()); 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 1842c7a..de43684 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 @@ -23,7 +23,6 @@ import java.io.Closeable; import java.util.ArrayList; import java.util.Collection; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.display.ModifiedUtf7; import org.apache.james.imap.api.message.response.StatusResponseFactory; @@ -67,7 +66,7 @@ public class LSubProcessor extends AbstractSubscriptionProcessor<LsubRequest> { } private void listSubscriptions(ImapSession session, Responder responder, String referenceName, String mailboxName) throws SubscriptionException, MailboxException { - MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + MailboxSession mailboxSession = session.getMailboxSession(); Collection<String> mailboxes = getSubscriptionManager().subscriptions(mailboxSession); String decodedMailName = ModifiedUtf7.decodeModifiedUTF7(referenceName); 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 1768917..bf96dc9 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 @@ -23,7 +23,6 @@ import java.io.Closeable; import java.util.List; import org.apache.james.imap.api.ImapMessage; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.display.ModifiedUtf7; import org.apache.james.imap.api.message.response.ImapResponseMessage; @@ -71,7 +70,7 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> { protected void processRequest(ListRequest request, ImapSession session, Responder responder) { String baseReferenceName = request.getBaseReferenceName(); String mailboxPatternString = request.getMailboxPattern(); - MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + MailboxSession mailboxSession = session.getMailboxSession(); try { if (mailboxPatternString.length() == 0) { @@ -149,7 +148,7 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> { private MailboxPath computeBasePath(ImapSession session, String finalReferencename, boolean isRelative) { String decodedName = ModifiedUtf7.decodeModifiedUTF7(finalReferencename); if (isRelative) { - return MailboxPath.forUser(ImapSessionUtils.getUserName(session), decodedName); + return MailboxPath.forUser(session.getUserName(), decodedName); } else { return PathConverter.forSession(session).buildFullPath(decodedName); } 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 38b69e8..850d800 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 @@ -23,7 +23,6 @@ import java.io.Closeable; import java.util.List; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -63,7 +62,7 @@ public class ListRightsProcessor extends AbstractMailboxProcessor<ListRightsRequ protected void processRequest(ListRightsRequest request, ImapSession session, Responder responder) { final MailboxManager mailboxManager = getMailboxManager(); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); final String mailboxName = request.getMailboxName(); final String identifier = request.getIdentifier(); try { diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java index c0c099a..390ea77 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java @@ -21,7 +21,6 @@ package org.apache.james.imap.processor; import java.io.Closeable; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -39,7 +38,7 @@ public class LogoutProcessor extends AbstractMailboxProcessor<LogoutRequest> { @Override protected void processRequest(LogoutRequest request, ImapSession session, Responder responder) { - MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + MailboxSession mailboxSession = session.getMailboxSession(); getMailboxManager().logout(mailboxSession); session.logout(); bye(responder); 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 3d88813..5e9ac7e 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 @@ -24,7 +24,6 @@ import java.util.Collections; import java.util.List; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -61,7 +60,7 @@ public class MyRightsProcessor extends AbstractMailboxProcessor<MyRightsRequest> protected void processRequest(MyRightsRequest request, ImapSession session, Responder responder) { final MailboxManager mailboxManager = getMailboxManager(); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); final String mailboxName = request.getMailboxName(); try { diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java index b0b5a04..afbd533 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java @@ -27,7 +27,6 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -52,7 +51,7 @@ public class NamespaceProcessor extends AbstractMailboxProcessor<NamespaceReques @Override protected void processRequest(NamespaceRequest request, ImapSession session, Responder responder) { - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); final List<NamespaceResponse.Namespace> personalNamespaces = buildPersonalNamespaces(mailboxSession, session); final List<NamespaceResponse.Namespace> otherUsersNamespaces = buildOtherUsersSpaces(mailboxSession, session); final List<NamespaceResponse.Namespace> sharedNamespaces = buildSharedNamespaces(mailboxSession, session); 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 8d464fc..27de839 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 @@ -22,7 +22,6 @@ package org.apache.james.imap.processor; import java.io.Closeable; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -56,7 +55,7 @@ public class RenameProcessor extends AbstractMailboxProcessor<RenameRequest> { MailboxPath newPath = pathConverter.buildFullPath(request.getNewName()); try { final MailboxManager mailboxManager = getMailboxManager(); - MailboxSession mailboxsession = ImapSessionUtils.getMailboxSession(session); + MailboxSession mailboxsession = session.getMailboxSession(); mailboxManager.renameMailbox(existingPath, newPath, mailboxsession); if (existingPath.getName().equalsIgnoreCase(ImapConstants.INBOX_NAME) && !mailboxManager.mailboxExists(existingPath, mailboxsession)) { diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java index ce1920a..c124234 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java @@ -30,7 +30,6 @@ import java.util.stream.Stream; import javax.mail.Flags.Flag; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.IdRange; import org.apache.james.imap.api.message.UidRange; @@ -93,7 +92,7 @@ public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> imp final MessageManager mailbox = getSelectedMailbox(session); final SearchQuery query = toQuery(searchKey, session); - MailboxSession msession = ImapSessionUtils.getMailboxSession(session); + MailboxSession msession = session.getMailboxSession(); final Collection<MessageUid> uids = performUidSearch(mailbox, query, msession); final Collection<Long> results = asResults(session, useUids, uids); 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 25d2ead..708ae15 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 @@ -24,7 +24,6 @@ import java.util.Collections; import java.util.List; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -63,7 +62,7 @@ public class SetACLProcessor extends AbstractMailboxProcessor<SetACLRequest> imp protected void processRequest(SetACLRequest request, ImapSession session, Responder responder) { final MailboxManager mailboxManager = getMailboxManager(); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); final String mailboxName = request.getMailboxName(); final String identifier = request.getIdentifier(); try { 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 630799f..94e84e3 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 @@ -23,7 +23,6 @@ import java.io.Closeable; import java.util.List; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponse; import org.apache.james.imap.api.message.response.StatusResponseFactory; @@ -60,7 +59,7 @@ public class SetAnnotationProcessor extends AbstractMailboxProcessor<SetAnnotati @Override protected void processRequest(SetAnnotationRequest request, ImapSession session, Responder responder) { final MailboxManager mailboxManager = getMailboxManager(); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); final String mailboxName = request.getMailboxName(); try { MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(mailboxName); 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 4303e58..cf2aade 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 @@ -21,7 +21,6 @@ package org.apache.james.imap.processor; import java.io.Closeable; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.StatusDataItems; import org.apache.james.imap.api.message.response.StatusResponseFactory; @@ -54,7 +53,7 @@ public class StatusProcessor extends AbstractMailboxProcessor<StatusRequest> { protected void processRequest(StatusRequest request, ImapSession session, Responder responder) { MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(request.getMailboxName()); StatusDataItems statusDataItems = request.getStatusDataItems(); - MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + MailboxSession mailboxSession = session.getMailboxSession(); try { LOGGER.debug("Status called on mailbox named {}", mailboxPath); diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java index b8ac0bd..4f6695d 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java @@ -31,7 +31,6 @@ import javax.mail.Flags; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.IdRange; import org.apache.james.imap.api.message.UidRange; @@ -83,7 +82,7 @@ public class StoreProcessor extends AbstractMailboxProcessor<StoreRequest> { try { final MessageManager mailbox = getSelectedMailbox(session); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); final Flags flags = request.getFlags(); if (unchangedSince != -1) { diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java index 02c2c0f..4683879 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java @@ -21,7 +21,6 @@ package org.apache.james.imap.processor; import java.io.Closeable; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -47,7 +46,7 @@ public class SubscribeProcessor extends AbstractSubscriptionProcessor<SubscribeR @Override protected void doProcessRequest(SubscribeRequest request, ImapSession session, Responder responder) { final String mailboxName = request.getMailboxName(); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); try { getSubscriptionManager().subscribe(mailboxSession, mailboxName); diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java index 1584d3c..71b9112 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java @@ -21,7 +21,6 @@ package org.apache.james.imap.processor; import java.io.Closeable; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.imap.message.request.SystemMessage; @@ -64,7 +63,7 @@ public class SystemMessageProcessor extends AbstractChainedProcessor<SystemMessa * not null */ private void forceLogout(ImapSession imapSession) { - final MailboxSession session = ImapSessionUtils.getMailboxSession(imapSession); + final MailboxSession session = imapSession.getMailboxSession(); if (session == null) { LOGGER.trace("No mailbox session so no force logout needed"); } else { diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java index d251607..e90bbc7 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java @@ -21,7 +21,6 @@ package org.apache.james.imap.processor; import java.io.Closeable; -import org.apache.james.imap.api.ImapSessionUtils; 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; @@ -47,7 +46,7 @@ public class UnsubscribeProcessor extends AbstractSubscriptionProcessor<Unsubscr @Override protected void doProcessRequest(UnsubscribeRequest request, ImapSession session, Responder responder) { final String mailboxName = request.getMailboxName(); - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); try { getSubscriptionManager().unsubscribe(mailboxSession, mailboxName); diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java index 63a4c77..741cdb5 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java @@ -32,7 +32,6 @@ import java.util.stream.Stream; import javax.mail.Flags; import javax.mail.Flags.Flag; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.imap.api.process.SelectedMailbox; import org.apache.james.mailbox.MailboxManager; @@ -77,13 +76,13 @@ public class SelectedMailboxImpl implements SelectedMailbox, MailboxListener { public SelectedMailboxImpl(MailboxManager mailboxManager, EventBus eventBus, ImapSession session, MailboxPath path) throws MailboxException { this.session = session; - this.sessionId = ImapSessionUtils.getMailboxSession(session).getSessionId(); + this.sessionId = session.getMailboxSession().getSessionId(); this.mailboxManager = mailboxManager; // Ignore events from our session setSilentFlagChanges(true); - mailboxSession = ImapSessionUtils.getMailboxSession(session); + mailboxSession = session.getMailboxSession(); uidMsnConverter = new UidMsnConverter(); diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java index 1ee1a24..668128e 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java @@ -24,7 +24,6 @@ import java.util.ArrayList; import java.util.List; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.FetchData; import org.apache.james.imap.api.message.IdRange; @@ -83,7 +82,7 @@ public class FetchProcessor extends AbstractMailboxProcessor<FetchRequest> { taggedBad(request, responder, HumanReadableText.QRESYNC_VANISHED_WITHOUT_CHANGEDSINCE); return; } - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); MetaData metaData = mailbox.getMetaData(false, mailboxSession, org.apache.james.mailbox.MessageManager.MetaData.FetchGroup.NO_COUNT); if (fetch.getChangedSince() != -1 || fetch.isModSeq()) { diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java index 0b2e938..16de9b3 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java @@ -31,7 +31,6 @@ import java.util.List; import javax.mail.Flags; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.message.BodyFetchElement; import org.apache.james.imap.api.message.FetchData; import org.apache.james.imap.api.message.SectionType; @@ -123,7 +122,7 @@ public final class FetchResponseBuilder { // Check if this fetch will cause the "SEEN" flag to be set on this // message. If so, update the flags, and ensure that a flags response is // included in the response. - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + final MailboxSession mailboxSession = session.getMailboxSession(); boolean ensureFlagsResponse = false; final Flags resultFlags = result.getFlags(); if (fetch.isSetSeen() && !resultFlags.contains(Flags.Flag.SEEN)) { diff --git a/protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionUtilsTest.java b/protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionTest.java similarity index 78% rename from protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionUtilsTest.java rename to protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionTest.java index 57a82eb..84687cd 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionUtilsTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionTest.java @@ -20,7 +20,6 @@ package org.apache.james.imap.api; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; import org.apache.james.core.Username; import org.apache.james.imap.encode.FakeImapSession; @@ -29,7 +28,7 @@ import org.apache.james.mailbox.MailboxSessionUtil; import org.junit.Before; import org.junit.Test; -public class ImapSessionUtilsTest { +public class ImapSessionTest { private static final Username USERNAME = Username.of("username"); private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create(USERNAME); private FakeImapSession fakeImapSession; @@ -41,21 +40,14 @@ public class ImapSessionUtilsTest { @Test public void getUserNameShouldReturnNullWhenNoMailboxSession() { - assertThat(ImapSessionUtils.getUserName(fakeImapSession)) + assertThat(fakeImapSession.getUserName()) .isNull(); } @Test public void getUserNameShouldReturnUserWhenMailboxSession() { - fakeImapSession.setAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY, MAILBOX_SESSION); - assertThat(ImapSessionUtils.getUserName(fakeImapSession)) + fakeImapSession.setMailboxSession(MAILBOX_SESSION); + assertThat(fakeImapSession.getUserName()) .isEqualTo(USERNAME); } - - @Test - public void getUserNameShouldThrowOnNullImapSession() { - assertThatThrownBy(() -> ImapSessionUtils.getUserName(null)) - .isInstanceOf(NullPointerException.class); - } - } \ No newline at end of file diff --git a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/CreateCommandParserTest.java b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/CreateCommandParserTest.java index a7a8e04..c2bbd10 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/CreateCommandParserTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/CreateCommandParserTest.java @@ -32,7 +32,6 @@ import java.nio.charset.StandardCharsets; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapCommand; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.imap.decode.DecodingException; import org.apache.james.imap.decode.ImapRequestStreamLineReader; @@ -55,7 +54,7 @@ public class CreateCommandParserTest { mockImapSession = mock(ImapSession.class); mailboxSession = MailboxSessionUtil.create(Username.of("userName")); - when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); + when(mockImapSession.getMailboxSession()).thenReturn(mailboxSession); parser = new CreateCommandParser(); } diff --git a/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java b/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java index 657722f..e7796a8 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java @@ -20,12 +20,9 @@ package org.apache.james.imap.main; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import org.apache.james.core.Username; -import org.apache.james.imap.api.ImapSessionUtils; -import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.encode.FakeImapSession; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MailboxSessionUtil; import org.apache.james.mailbox.model.MailboxConstants; @@ -40,17 +37,17 @@ public class PathConverterTest { private static final Username USERNAME = Username.of("username"); private static final char PATH_DELIMITER = '.'; - private ImapSession imapSession; + private FakeImapSession imapSession; private MailboxSession mailboxSession; private PathConverter pathConverter; @Rule public ExpectedException expectedException = ExpectedException.none(); @Before public void setUp() { - imapSession = mock(ImapSession.class); + imapSession = new FakeImapSession(); mailboxSession = MailboxSessionUtil.create(USERNAME); pathConverter = PathConverter.forSession(imapSession); - when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); + imapSession.setMailboxSession(mailboxSession); } @Test diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java index 60db808..af62fa8 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java @@ -31,16 +31,14 @@ import java.util.Optional; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.Tag; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.IdRange; 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.api.process.SelectedMailbox; +import org.apache.james.imap.encode.FakeImapSession; import org.apache.james.imap.message.request.CopyRequest; import org.apache.james.imap.message.request.MoveRequest; import org.apache.james.mailbox.MailboxManager; @@ -67,7 +65,7 @@ public class CopyProcessorTest { private MailboxManager mockMailboxManager; private StatusResponseFactory mockStatusResponseFactory; private ImapProcessor.Responder mockResponder; - private ImapSession mockImapSession; + private FakeImapSession imapSession; private MailboxSession mailboxSession; @Before @@ -76,24 +74,25 @@ public class CopyProcessorTest { mockMailboxManager = mock(MailboxManager.class); mockStatusResponseFactory = mock(StatusResponseFactory.class); mockResponder = mock(ImapProcessor.Responder.class); - mockImapSession = mock(ImapSession.class); + imapSession = new FakeImapSession(); mailboxSession = MailboxSessionUtil.create(USERNAME); testee = new CopyProcessor(mockNextProcessor, mockMailboxManager, mockStatusResponseFactory, new NoopMetricFactory()); + + imapSession.authenticated(); + imapSession.setMailboxSession(mailboxSession); } @Test public void processShouldWork() throws Exception { CopyRequest copyRequest = new CopyRequest(ImapCommand.anyStateCommand("Name"), new IdRange[] {new IdRange(4, 6)}, ImapConstants.INBOX_NAME, true, TAG); - when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED); - when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); MailboxPath selected = new MailboxPath(INBOX, "selected"); SelectedMailbox selectedMailbox = mock(SelectedMailbox.class); when(selectedMailbox.getLastUid()).thenReturn(Optional.of(MessageUid.of(8))); when(selectedMailbox.existsCount()).thenReturn(8L); when(selectedMailbox.getPath()).thenReturn(selected); - when(mockImapSession.getSelected()).thenReturn(selectedMailbox); + imapSession.selected(selectedMailbox); when(mockMailboxManager.mailboxExists(INBOX, mailboxSession)).thenReturn(true); MessageManager targetMessageManager = mock(MessageManager.class); when(mockMailboxManager.getMailbox(INBOX, mailboxSession)).thenReturn(targetMessageManager); @@ -104,7 +103,7 @@ public class CopyProcessorTest { when(mockStatusResponseFactory.taggedOk(any(Tag.class), any(ImapCommand.class), any(HumanReadableText.class), any(StatusResponse.ResponseCode.class))).thenReturn(okResponse); when(mockMailboxManager.moveMessages(MessageRange.range(MessageUid.of(4), MessageUid.of(6)), selected, INBOX, mailboxSession)).thenReturn(Lists.<MessageRange>newArrayList(MessageRange.range(MessageUid.of(4), MessageUid.of(6)))); - testee.process(copyRequest, mockResponder, mockImapSession); + testee.process(copyRequest, mockResponder, imapSession); verify(mockMailboxManager).startProcessingRequest(mailboxSession); verify(mockMailboxManager).endProcessingRequest(mailboxSession); @@ -121,14 +120,12 @@ public class CopyProcessorTest { public void processShouldWorkWithMultipleRanges() throws Exception { CopyRequest copyRequest = new CopyRequest(ImapCommand.anyStateCommand("Name"), new IdRange[] {new IdRange(5, 6), new IdRange(1, 3)}, ImapConstants.INBOX_NAME, true, TAG); - when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED); - when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); MailboxPath selected = new MailboxPath(INBOX, "selected"); SelectedMailbox selectedMailbox = mock(SelectedMailbox.class); when(selectedMailbox.getLastUid()).thenReturn(Optional.of(MessageUid.of(8))); when(selectedMailbox.existsCount()).thenReturn(8L); when(selectedMailbox.getPath()).thenReturn(selected); - when(mockImapSession.getSelected()).thenReturn(selectedMailbox); + imapSession.selected(selectedMailbox); when(mockMailboxManager.mailboxExists(INBOX, mailboxSession)).thenReturn(true); MessageManager targetMessageManager = mock(MessageManager.class); when(mockMailboxManager.getMailbox(INBOX, mailboxSession)).thenReturn(targetMessageManager); @@ -138,7 +135,7 @@ public class CopyProcessorTest { StatusResponse okResponse = mock(StatusResponse.class); when(mockStatusResponseFactory.taggedOk(any(Tag.class), any(ImapCommand.class), any(HumanReadableText.class), any(StatusResponse.ResponseCode.class))).thenReturn(okResponse); - testee.process(copyRequest, mockResponder, mockImapSession); + testee.process(copyRequest, mockResponder, imapSession); verify(mockMailboxManager).startProcessingRequest(mailboxSession); verify(mockMailboxManager).endProcessingRequest(mailboxSession); @@ -155,20 +152,18 @@ public class CopyProcessorTest { public void processShouldRespondNoOnUnExistingTargetMailbox() throws Exception { CopyRequest copyRequest = new CopyRequest(ImapCommand.anyStateCommand("Name"), new IdRange[] {new IdRange(4, 6)}, ImapConstants.INBOX_NAME, true, TAG); - when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED); - when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); MailboxPath selected = new MailboxPath(INBOX, "selected"); SelectedMailbox selectedMailbox = mock(SelectedMailbox.class); when(selectedMailbox.getLastUid()).thenReturn(Optional.of(MessageUid.of(8))); when(selectedMailbox.existsCount()).thenReturn(8L); when(selectedMailbox.getPath()).thenReturn(selected); - when(mockImapSession.getSelected()).thenReturn(selectedMailbox); + imapSession.selected(selectedMailbox); when(mockMailboxManager.mailboxExists(INBOX, mailboxSession)).thenReturn(false); StatusResponse noResponse = mock(StatusResponse.class); when(mockStatusResponseFactory.taggedNo(any(Tag.class), any(ImapCommand.class), any(HumanReadableText.class), any(StatusResponse.ResponseCode.class))).thenReturn(noResponse); - testee.process(copyRequest, mockResponder, mockImapSession); + testee.process(copyRequest, mockResponder, imapSession); verify(mockMailboxManager).startProcessingRequest(mailboxSession); verify(mockMailboxManager).endProcessingRequest(mailboxSession); @@ -181,20 +176,18 @@ public class CopyProcessorTest { public void processShouldRespondNoOnMailboxException() throws Exception { CopyRequest copyRequest = new CopyRequest(ImapCommand.anyStateCommand("Name"), new IdRange[] {new IdRange(4, 6)}, ImapConstants.INBOX_NAME, true, TAG); - when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED); - when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); MailboxPath selected = new MailboxPath(INBOX, "selected"); SelectedMailbox selectedMailbox = mock(SelectedMailbox.class); when(selectedMailbox.getLastUid()).thenReturn(Optional.of(MessageUid.of(8))); when(selectedMailbox.existsCount()).thenReturn(8L); when(selectedMailbox.getPath()).thenReturn(selected); - when(mockImapSession.getSelected()).thenReturn(selectedMailbox); + imapSession.selected(selectedMailbox); when(mockMailboxManager.mailboxExists(INBOX, mailboxSession)).thenThrow(new MailboxException()); StatusResponse noResponse = mock(StatusResponse.class); when(mockStatusResponseFactory.taggedNo(any(Tag.class), any(ImapCommand.class), any(HumanReadableText.class))).thenReturn(noResponse); - testee.process(copyRequest, mockResponder, mockImapSession); + testee.process(copyRequest, mockResponder, imapSession); verify(mockMailboxManager).startProcessingRequest(mailboxSession); verify(mockMailboxManager).endProcessingRequest(mailboxSession); @@ -207,9 +200,9 @@ public class CopyProcessorTest { public void processShouldNotHandleMoveRequests() { MoveRequest moveRequest = new MoveRequest(ImapCommand.anyStateCommand("Name"), new IdRange[] {new IdRange(4, 6)}, ImapConstants.INBOX_NAME, true, TAG); - testee.process(moveRequest, mockResponder, mockImapSession); + testee.process(moveRequest, mockResponder, imapSession); - verify(mockNextProcessor).process(moveRequest, mockResponder, mockImapSession); + verify(mockNextProcessor).process(moveRequest, mockResponder, imapSession); verifyNoMoreInteractions(mockMailboxManager, mockResponder, mockNextProcessor); } 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 d43a94b..2769f8c 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 @@ -32,12 +32,10 @@ import static org.mockito.Mockito.when; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.message.response.ImapResponseMessage; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapProcessor.Responder; -import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.encode.FakeImapSession; import org.apache.james.imap.message.request.DeleteACLRequest; import org.apache.james.imap.message.response.UnpooledStatusResponseFactory; import org.apache.james.mailbox.MailboxManager; @@ -64,7 +62,7 @@ public class DeleteACLProcessorTest { private static final String MAILBOX_NAME = ImapConstants.INBOX_NAME; private static final Username USER_1 = Username.of("user1"); - private ImapSession imapSession; + private FakeImapSession imapSession; private MailboxManager mailboxManager; private MailboxSession mailboxSession; private MetaData metaData; @@ -81,17 +79,15 @@ public class DeleteACLProcessorTest { UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory(); mailboxManager = mock(MailboxManager.class); subject = new DeleteACLProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory()); - imapSession = mock(ImapSession.class); + imapSession = new FakeImapSession(); mailboxSession = MailboxSessionUtil.create(USER_1); MessageManager messageManager = mock(MessageManager.class); metaData = mock(MetaData.class); responder = mock(Responder.class); - when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)) - .thenReturn(mailboxSession); - when(imapSession.getState()) - .thenReturn(ImapSessionState.AUTHENTICATED); + imapSession.authenticated(); + imapSession.setMailboxSession(mailboxSession); when(messageManager.getMetaData(anyBoolean(), any(MailboxSession.class), any(FetchGroup.class))) .thenReturn(metaData); when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.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 4f5a58e..c617d3a 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 @@ -32,12 +32,10 @@ import static org.mockito.Mockito.when; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.message.response.ImapResponseMessage; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapProcessor.Responder; -import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.encode.FakeImapSession; import org.apache.james.imap.message.request.GetACLRequest; import org.apache.james.imap.message.response.ACLResponse; import org.apache.james.imap.message.response.UnpooledStatusResponseFactory; @@ -64,7 +62,7 @@ public class GetACLProcessorTest { private static final String MAILBOX_NAME = ImapConstants.INBOX_NAME; private static final Username USER_1 = Username.of("user1"); - private ImapSession imapSession; + private FakeImapSession imapSession; private MailboxManager mailboxManager; private MailboxSession mailboxSession; private MetaData metaData; @@ -80,7 +78,7 @@ public class GetACLProcessorTest { UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory(); mailboxManager = mock(MailboxManager.class); subject = new GetACLProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory()); - imapSession = mock(ImapSession.class); + imapSession = new FakeImapSession(); mailboxSession = MailboxSessionUtil.create(USER_1); MessageManager messageManager = mock(MessageManager.class); metaData = mock(MetaData.class); @@ -88,10 +86,8 @@ public class GetACLProcessorTest { getACLRequest = new GetACLRequest(TAG, ImapCommand.anyStateCommand("Name"), MAILBOX_NAME); - when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)) - .thenReturn(mailboxSession); - when(imapSession.getState()) - .thenReturn(ImapSessionState.AUTHENTICATED); + imapSession.authenticated(); + imapSession.setMailboxSession(mailboxSession); when(messageManager.getMetaData(anyBoolean(), any(MailboxSession.class), any(FetchGroup.class))) .thenReturn(metaData); when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class))) diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java index ff1a44d..b950b7a 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java @@ -36,15 +36,12 @@ import java.util.Set; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.Tag; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponse; import org.apache.james.imap.api.message.response.StatusResponse.ResponseCode; 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.encode.FakeImapSession; import org.apache.james.imap.message.request.GetAnnotationRequest; import org.apache.james.imap.message.request.GetAnnotationRequest.Depth; @@ -85,7 +82,7 @@ public class GetAnnotationProcessorTest { private MailboxManager mockMailboxManager; private StatusResponseFactory mockStatusResponseFactory; private ImapProcessor.Responder mockResponder; - private ImapSession mockImapSession; + private FakeImapSession imapSession; private MailboxSession mailboxSession; private Set<MailboxAnnotationKey> keys; @@ -103,7 +100,7 @@ public class GetAnnotationProcessorTest { mockMailboxManager = mock(MailboxManager.class); mockStatusResponseFactory = mock(StatusResponseFactory.class); mockResponder = mock(ImapProcessor.Responder.class); - mockImapSession = mock(ImapSession.class); + imapSession = new FakeImapSession(); Username username = Username.of("username"); mailboxSession = MailboxSessionUtil.create(username); @@ -117,8 +114,8 @@ public class GetAnnotationProcessorTest { captorResponsecode = ArgumentCaptor.forClass(ResponseCode.class); captorAnnotationResponse = ArgumentCaptor.forClass(AnnotationResponse.class); - when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED); - when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); + imapSession.authenticated(); + imapSession.setMailboxSession(mailboxSession); } @Before @@ -140,7 +137,7 @@ public class GetAnnotationProcessorTest { when(mockStatusResponseFactory.taggedNo(any(Tag.class), any(ImapCommand.class), any(HumanReadableText.class), any(ResponseCode.class))) .thenReturn(statusResponse); - processor.process(annotationRequestBuilder.build(), mockResponder, mockImapSession); + processor.process(annotationRequestBuilder.build(), mockResponder, imapSession); verify(mockStatusResponseFactory, times(1)).taggedNo(any(Tag.class), any(ImapCommand.class), humanTextCaptor.capture(), captorResponsecode.capture()); verify(mockResponder).respond(statusResponse); @@ -156,7 +153,7 @@ public class GetAnnotationProcessorTest { when(mockStatusResponseFactory.taggedNo(any(Tag.class), any(ImapCommand.class), any(HumanReadableText.class))) .thenReturn(statusResponse); - processor.process(annotationRequestBuilder.build(), mockResponder, mockImapSession); + processor.process(annotationRequestBuilder.build(), mockResponder, imapSession); verify(mockStatusResponseFactory, times(1)).taggedNo(any(Tag.class), any(ImapCommand.class), humanTextCaptor.capture()); verify(mockResponder).respond(statusResponse); @@ -167,7 +164,7 @@ public class GetAnnotationProcessorTest { @Test public void processShouldGetAllAnnotationsAndReturnCompleteResponse() throws Exception { - processor.process(annotationRequestBuilder.build(), mockResponder, mockImapSession); + processor.process(annotationRequestBuilder.build(), mockResponder, imapSession); verify(mockMailboxManager, times(1)).getAllAnnotations(inbox, mailboxSession); verify(mockStatusResponseFactory, times(1)).taggedOk(any(Tag.class), any(ImapCommand.class), humanTextCaptor.capture()); @@ -180,7 +177,7 @@ public class GetAnnotationProcessorTest { @Test public void processShouldGetAnnotationsByKeysAndReturnCompleteResponse() throws Exception { - processor.process(annotationRequestBuilder.keys(keys).build(), mockResponder, mockImapSession); + processor.process(annotationRequestBuilder.keys(keys).build(), mockResponder, imapSession); verify(mockMailboxManager, times(1)).getAnnotationsByKeys(eq(inbox), eq(mailboxSession), eq(keys)); verify(mockStatusResponseFactory, times(1)).taggedOk(any(Tag.class), any(ImapCommand.class), humanTextCaptor.capture()); @@ -194,7 +191,7 @@ public class GetAnnotationProcessorTest { public void processShouldGetAnnotationsAndReturnCompleteResponseWithTheLongestEntryInfoWhenLimitMaxsize() throws Exception { when(mockMailboxManager.getAllAnnotations(inbox, mailboxSession)).thenReturn(ImmutableList.of(PRIVATE_ANNOTATION, SHARED_ANNOTATION, PRIVATE_GRANDCHILD_ANNOTATION)); - processor.process(annotationRequestBuilder.maxsize(Optional.of(10)).build(), mockResponder, mockImapSession); + processor.process(annotationRequestBuilder.maxsize(Optional.of(10)).build(), mockResponder, imapSession); verify(mockStatusResponseFactory, times(1)).taggedOk(any(Tag.class), any(ImapCommand.class), @@ -211,7 +208,7 @@ public class GetAnnotationProcessorTest { public void processShouldGetAnnotationsAndReturnCompleteResponseDoesNotTruncateDataByMaxsize() throws Exception { when(mockMailboxManager.getAllAnnotations(inbox, mailboxSession)).thenReturn(ImmutableList.of(PRIVATE_ANNOTATION, SHARED_ANNOTATION)); - processor.process(annotationRequestBuilder.maxsize(Optional.of(100)).build(), mockResponder, mockImapSession); + processor.process(annotationRequestBuilder.maxsize(Optional.of(100)).build(), mockResponder, imapSession); verify(mockStatusResponseFactory, times(1)).taggedOk(any(Tag.class), any(ImapCommand.class), @@ -226,7 +223,7 @@ public class GetAnnotationProcessorTest { public void processShouldGetAnnotationsAndReturnCompleteResponseWithTruncateDataByMaxsize() throws Exception { when(mockMailboxManager.getAllAnnotations(inbox, mailboxSession)).thenReturn(ImmutableList.of(SHARED_ANNOTATION, PRIVATE_ANNOTATION, PRIVATE_CHILD_ANNOTATION, PRIVATE_GRANDCHILD_ANNOTATION)); - processor.process(annotationRequestBuilder.maxsize(Optional.of(15)).build(), mockResponder, mockImapSession); + processor.process(annotationRequestBuilder.maxsize(Optional.of(15)).build(), mockResponder, imapSession); verify(mockStatusResponseFactory, times(1)).taggedOk(any(Tag.class), any(ImapCommand.class), @@ -243,7 +240,7 @@ public class GetAnnotationProcessorTest { public void processShouldGetAnnotationsAndReturnCompleteResponseDoesnotTruncateDataByMaxsizeWhenNoMoreOverSizeItem() throws Exception { when(mockMailboxManager.getAllAnnotations(inbox, mailboxSession)).thenReturn(ImmutableList.of(SHARED_ANNOTATION, PRIVATE_ANNOTATION, PRIVATE_CHILD_ANNOTATION, PRIVATE_GRANDCHILD_ANNOTATION)); - processor.process(annotationRequestBuilder.maxsize(Optional.of(100)).build(), mockResponder, mockImapSession); + processor.process(annotationRequestBuilder.maxsize(Optional.of(100)).build(), mockResponder, imapSession); verify(mockStatusResponseFactory, times(1)).taggedOk(any(Tag.class), any(ImapCommand.class), @@ -259,7 +256,7 @@ public class GetAnnotationProcessorTest { public void processShouldGetAnnotationsByOneDepthAndReturnCompleteResponseWithTruncateDataByMaxsize() throws Exception { when(mockMailboxManager.getAnnotationsByKeysWithOneDepth(inbox, mailboxSession, keys)).thenReturn(ImmutableList.of(PRIVATE_ANNOTATION, PRIVATE_CHILD_ANNOTATION)); - processor.process(annotationRequestBuilder.maxsize(Optional.of(14)).depth(Depth.ONE).keys(keys).build(), mockResponder, mockImapSession); + processor.process(annotationRequestBuilder.maxsize(Optional.of(14)).depth(Depth.ONE).keys(keys).build(), mockResponder, imapSession); verify(mockMailboxManager, times(1)).getAnnotationsByKeysWithOneDepth(eq(inbox), eq(mailboxSession), eq(keys)); verify(mockStatusResponseFactory, times(1)).taggedOk(any(Tag.class), @@ -277,7 +274,7 @@ public class GetAnnotationProcessorTest { public void processShouldGetAnnotationsAndReturnCompleteResponseWithTruncateDataByLessThenOrEqualMaxsize() throws Exception { when(mockMailboxManager.getAllAnnotations(inbox, mailboxSession)).thenReturn(ImmutableList.of(PRIVATE_ANNOTATION, SHARED_ANNOTATION)); - processor.process(annotationRequestBuilder.maxsize(Optional.of(15)).build(), mockResponder, mockImapSession); + processor.process(annotationRequestBuilder.maxsize(Optional.of(15)).build(), mockResponder, imapSession); verify(mockMailboxManager, times(1)).getAllAnnotations(eq(inbox), eq(mailboxSession)); verify(mockStatusResponseFactory, times(1)).taggedOk(any(Tag.class), @@ -295,7 +292,7 @@ public class GetAnnotationProcessorTest { public void processShouldGetAnnotationsByInfinityDepthAndReturnCompleteResponseWithTruncateDataByMaxsize() throws Exception { when(mockMailboxManager.getAnnotationsByKeysWithAllDepth(inbox, mailboxSession, keys)).thenReturn(ImmutableList.of(PRIVATE_ANNOTATION, PRIVATE_CHILD_ANNOTATION, PRIVATE_GRANDCHILD_ANNOTATION)); - processor.process(annotationRequestBuilder.maxsize(Optional.of(14)).depth(Depth.INFINITY).keys(keys).build(), mockResponder, mockImapSession); + processor.process(annotationRequestBuilder.maxsize(Optional.of(14)).depth(Depth.INFINITY).keys(keys).build(), mockResponder, imapSession); verify(mockMailboxManager, times(1)).getAnnotationsByKeysWithAllDepth(eq(inbox), eq(mailboxSession), eq(keys)); verify(mockStatusResponseFactory, times(1)).taggedOk(any(Tag.class), @@ -314,7 +311,7 @@ public class GetAnnotationProcessorTest { public void processShouldGetAnnotationsByInfinityDepthAndReturnCompleteResponse() throws Exception { when(mockMailboxManager.getAnnotationsByKeysWithAllDepth(inbox, mailboxSession, keys)).thenReturn(ImmutableList.of(PRIVATE_ANNOTATION, PRIVATE_CHILD_ANNOTATION, PRIVATE_GRANDCHILD_ANNOTATION)); - processor.process(annotationRequestBuilder.depth(Depth.INFINITY).keys(keys).build(), mockResponder, mockImapSession); + processor.process(annotationRequestBuilder.depth(Depth.INFINITY).keys(keys).build(), mockResponder, imapSession); verify(mockStatusResponseFactory, times(1)).taggedOk(any(Tag.class), any(ImapCommand.class), diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaProcessorTest.java index 7f18494..c7d583b 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaProcessorTest.java @@ -37,7 +37,6 @@ import org.apache.james.core.quota.QuotaSizeLimit; import org.apache.james.core.quota.QuotaSizeUsage; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.message.response.ImapResponseMessage; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; @@ -102,7 +101,7 @@ public class GetQuotaProcessorTest { GetQuotaRequest getQuotaRequest = new GetQuotaRequest(TAG, ImapCommand.anyStateCommand("Name"), QUOTA_ROOT.getValue()); when(mockedImapSession.getState()).thenReturn(ImapSessionState.AUTHENTICATED); - when(mockedImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)) + when(mockedImapSession.getMailboxSession()) .thenReturn(mailboxSession); when(mockedQuotaRootResolver.retrieveAssociatedMailboxes(QUOTA_ROOT, mailboxSession)) .thenReturn(ImmutableList.of(mailbox)); @@ -132,8 +131,7 @@ public class GetQuotaProcessorTest { GetQuotaRequest getQuotaRequest = new GetQuotaRequest(TAG, ImapCommand.anyStateCommand("Name"), QUOTA_ROOT.getValue()); when(mockedImapSession.getState()).thenReturn(ImapSessionState.AUTHENTICATED); - when(mockedImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)) - .thenReturn(mailboxSession); + when(mockedImapSession.getMailboxSession()).thenReturn(mailboxSession); when(mockedQuotaRootResolver.retrieveAssociatedMailboxes(QUOTA_ROOT, mailboxSession)) .thenReturn(ImmutableList.of(mailbox)); when(mockedMailboxManager.hasRight(MAILBOX_PATH, MailboxACL.Right.Read, mailboxSession)) @@ -157,8 +155,7 @@ public class GetQuotaProcessorTest { GetQuotaRequest getQuotaRequest = new GetQuotaRequest(TAG, ImapCommand.anyStateCommand("Name"), QUOTA_ROOT.getValue()); when(mockedImapSession.getState()).thenReturn(ImapSessionState.AUTHENTICATED); - when(mockedImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)) - .thenReturn(mailboxSession); + when(mockedImapSession.getMailboxSession()).thenReturn(mailboxSession); when(mockedQuotaRootResolver.retrieveAssociatedMailboxes(QUOTA_ROOT, mailboxSession)) .thenReturn(ImmutableList.of(mailbox)); when(mockedMailboxManager.hasRight(MAILBOX_PATH, MailboxACL.Right.Read, mailboxSession)) diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaRootProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaRootProcessorTest.java index 726799f..30b3cd1 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaRootProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaRootProcessorTest.java @@ -37,12 +37,10 @@ import org.apache.james.core.quota.QuotaCountUsage; import org.apache.james.core.quota.QuotaSizeLimit; import org.apache.james.core.quota.QuotaSizeUsage; import org.apache.james.imap.api.ImapCommand; -import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.message.response.ImapResponseMessage; import org.apache.james.imap.api.message.response.StatusResponse; import org.apache.james.imap.api.process.ImapProcessor; -import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.encode.FakeImapSession; import org.apache.james.imap.message.request.GetQuotaRootRequest; import org.apache.james.imap.message.response.QuotaResponse; import org.apache.james.imap.message.response.QuotaRootResponse; @@ -73,7 +71,7 @@ public class GetQuotaRootProcessorTest { Quota.<QuotaSizeLimit, QuotaSizeUsage>builder().used(QuotaSizeUsage.size(240)).computedLimit(QuotaSizeLimit.size(15890)).build(); private GetQuotaRootProcessor testee; - private ImapSession mockedImapSession; + private FakeImapSession imapSession; private ImapProcessor.Responder mockedResponder; private QuotaManager mockedQuotaManager; private QuotaRootResolver mockedQuotaRootResolver; @@ -84,7 +82,7 @@ public class GetQuotaRootProcessorTest { public void setUp() { mailboxSession = MailboxSessionUtil.create(PLOP); UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory(); - mockedImapSession = mock(ImapSession.class); + imapSession = new FakeImapSession(); mockedQuotaManager = mock(QuotaManager.class); mockedQuotaRootResolver = mock(QuotaRootResolver.class); mockedResponder = mock(ImapProcessor.Responder.class); @@ -97,8 +95,8 @@ public class GetQuotaRootProcessorTest { public void processorShouldWorkOnValidRights() throws Exception { GetQuotaRootRequest getQuotaRootRequest = new GetQuotaRootRequest(TAG, ImapCommand.anyStateCommand("Name"), "INBOX"); - when(mockedImapSession.getState()).thenReturn(ImapSessionState.AUTHENTICATED); - when(mockedImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); + imapSession.authenticated(); + imapSession.setMailboxSession(mailboxSession); when(mockedQuotaRootResolver.getQuotaRoot(MAILBOX_PATH)).thenReturn(QUOTA_ROOT); when(mockedMailboxManager.hasRight(MAILBOX_PATH, MailboxACL.Right.Read, mailboxSession)).thenReturn(true); when(mockedQuotaManager.getMessageQuota(QUOTA_ROOT)).thenReturn(MESSAGE_QUOTA); @@ -108,7 +106,7 @@ public class GetQuotaRootProcessorTest { final QuotaResponse messageQuotaResponse = new QuotaResponse("MESSAGE", "plop", MESSAGE_QUOTA); final QuotaRootResponse quotaRootResponse = new QuotaRootResponse("INBOX", "plop"); - testee.doProcess(getQuotaRootRequest, mockedResponder, mockedImapSession); + testee.doProcess(getQuotaRootRequest, mockedResponder, imapSession); verify(mockedMailboxManager, times(1)).startProcessingRequest(mailboxSession); verify(mockedMailboxManager, times(1)).endProcessingRequest(mailboxSession); @@ -127,11 +125,11 @@ public class GetQuotaRootProcessorTest { public void processorShouldWorkOnErrorThrown() throws Exception { GetQuotaRootRequest getQuotaRootRequest = new GetQuotaRootRequest(TAG, ImapCommand.anyStateCommand("Name"), "INBOX"); - when(mockedImapSession.getState()).thenReturn(ImapSessionState.AUTHENTICATED); - when(mockedImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); + imapSession.authenticated(); + imapSession.setMailboxSession(mailboxSession); when(mockedMailboxManager.hasRight(MAILBOX_PATH, MailboxACL.Right.Read, mailboxSession)).thenThrow(new MailboxException()); - testee.doProcess(getQuotaRootRequest, mockedResponder, mockedImapSession); + testee.doProcess(getQuotaRootRequest, mockedResponder, imapSession); verify(mockedMailboxManager).startProcessingRequest(mailboxSession); verify(mockedMailboxManager).endProcessingRequest(mailboxSession); @@ -148,11 +146,11 @@ public class GetQuotaRootProcessorTest { public void processorShouldWorkOnNonValidRights() throws Exception { GetQuotaRootRequest getQuotaRootRequest = new GetQuotaRootRequest(TAG, ImapCommand.anyStateCommand("Name"), "INBOX"); - when(mockedImapSession.getState()).thenReturn(ImapSessionState.AUTHENTICATED); - when(mockedImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); + imapSession.authenticated(); + imapSession.setMailboxSession(mailboxSession); when(mockedMailboxManager.hasRight(MAILBOX_PATH, MailboxACL.Right.Read, mailboxSession)).thenReturn(false); - testee.doProcess(getQuotaRootRequest, mockedResponder, mockedImapSession); + testee.doProcess(getQuotaRootRequest, mockedResponder, imapSession); verify(mockedMailboxManager).startProcessingRequest(mailboxSession); verify(mockedMailboxManager).endProcessingRequest(mailboxSession); diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java index 75c6424..211ebd6 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java @@ -31,7 +31,6 @@ import java.util.Collection; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapCommand; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponse; import org.apache.james.imap.api.message.response.StatusResponseFactory; @@ -184,7 +183,7 @@ public class LSubProcessorTest { } private void expectSubscriptions() throws Exception { - when(session.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); + when(session.getMailboxSession()).thenReturn(mailboxSession); when(manager.subscriptions(mailboxSession)).thenReturn(subscriptions); } } 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 43a80c2..6e107b2 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 @@ -32,12 +32,10 @@ import static org.mockito.Mockito.when; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.message.response.ImapResponseMessage; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapProcessor.Responder; -import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.encode.FakeImapSession; 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 +63,7 @@ public class ListRightsProcessorTest { private static final String MAILBOX_NAME = ImapConstants.INBOX_NAME; private static final Username USER_1 = Username.of("user1"); - private ImapSession imapSession; + private FakeImapSession imapSession; private MailboxManager mailboxManager; private MailboxSession mailboxSession; private MetaData metaData; @@ -83,7 +81,7 @@ public class ListRightsProcessorTest { UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory(); mailboxManager = mock(MailboxManager.class); subject = new ListRightsProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory()); - imapSession = mock(ImapSession.class); + imapSession = new FakeImapSession(); mailboxSession = MailboxSessionUtil.create(USER_1); MessageManager messageManager = mock(MessageManager.class); metaData = mock(MetaData.class); @@ -91,10 +89,8 @@ public class ListRightsProcessorTest { argumentCaptor = ArgumentCaptor.forClass(ImapResponseMessage.class); - when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)) - .thenReturn(mailboxSession); - when(imapSession.getState()) - .thenReturn(ImapSessionState.AUTHENTICATED); + imapSession.authenticated(); + imapSession.setMailboxSession(mailboxSession); when(messageManager.getMetaData(anyBoolean(), any(MailboxSession.class), any(MetaData.FetchGroup.class))) .thenReturn(metaData); when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class))) diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java index 51def47..4bbbf83 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java @@ -33,16 +33,14 @@ import java.util.Optional; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.Tag; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.IdRange; 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.api.process.SelectedMailbox; +import org.apache.james.imap.encode.FakeImapSession; import org.apache.james.imap.message.request.CopyRequest; import org.apache.james.imap.message.request.MoveRequest; import org.apache.james.mailbox.MailboxManager; @@ -70,7 +68,7 @@ public class MoveProcessorTest { private MailboxManager mockMailboxManager; private StatusResponseFactory mockStatusResponseFactory; private ImapProcessor.Responder mockResponder; - private ImapSession mockImapSession; + private FakeImapSession imapSession; private MailboxSession mailboxSession; @Before @@ -79,12 +77,15 @@ public class MoveProcessorTest { mockMailboxManager = mock(MailboxManager.class); mockStatusResponseFactory = mock(StatusResponseFactory.class); mockResponder = mock(ImapProcessor.Responder.class); - mockImapSession = mock(ImapSession.class); + imapSession = new FakeImapSession(); mailboxSession = MailboxSessionUtil.create(USERNAME); when(mockMailboxManager.hasCapability(eq(MailboxCapabilities.Move))).thenReturn(true); testee = new MoveProcessor(mockNextProcessor, mockMailboxManager, mockStatusResponseFactory, new NoopMetricFactory()); verify(mockMailboxManager).hasCapability(MailboxCapabilities.Move); + + imapSession.authenticated(); + imapSession.setMailboxSession(mailboxSession); } @Test @@ -102,15 +103,12 @@ public class MoveProcessorTest { @Test public void processShouldWork() throws Exception { MoveRequest moveRequest = new MoveRequest(ImapCommand.anyStateCommand("Name"), new IdRange[] {new IdRange(4, 6)}, ImapConstants.INBOX_NAME, true, TAG); - - when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED); - when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); MailboxPath selected = new MailboxPath(INBOX, "selected"); SelectedMailbox selectedMailbox = mock(SelectedMailbox.class); when(selectedMailbox.getLastUid()).thenReturn(Optional.of(MessageUid.of(8))); when(selectedMailbox.existsCount()).thenReturn(8L); when(selectedMailbox.getPath()).thenReturn(selected); - when(mockImapSession.getSelected()).thenReturn(selectedMailbox); + imapSession.selected(selectedMailbox); when(mockMailboxManager.mailboxExists(INBOX, mailboxSession)).thenReturn(true); MessageManager targetMessageManager = mock(MessageManager.class); when(mockMailboxManager.getMailbox(INBOX, mailboxSession)).thenReturn(targetMessageManager); @@ -122,7 +120,7 @@ public class MoveProcessorTest { when(mockMailboxManager.moveMessages(MessageRange.range(MessageUid.of(4), MessageUid.of(6)), selected, INBOX, mailboxSession)) .thenReturn(Lists.<MessageRange>newArrayList(MessageRange.range(MessageUid.of(4), MessageUid.of(6)))); - testee.process(moveRequest, mockResponder, mockImapSession); + testee.process(moveRequest, mockResponder, imapSession); verify(mockMailboxManager).startProcessingRequest(mailboxSession); verify(mockMailboxManager).endProcessingRequest(mailboxSession); @@ -138,15 +136,12 @@ public class MoveProcessorTest { @Test public void processShouldWorkWithMultipleRanges() throws Exception { MoveRequest moveRequest = new MoveRequest(ImapCommand.anyStateCommand("Name"), new IdRange[] {new IdRange(5, 6), new IdRange(1,3)}, ImapConstants.INBOX_NAME, true, TAG); - - when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED); - when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); MailboxPath selected = new MailboxPath(INBOX, "selected"); SelectedMailbox selectedMailbox = mock(SelectedMailbox.class); when(selectedMailbox.getLastUid()).thenReturn(Optional.of(MessageUid.of(8))); when(selectedMailbox.existsCount()).thenReturn(8L); when(selectedMailbox.getPath()).thenReturn(selected); - when(mockImapSession.getSelected()).thenReturn(selectedMailbox); + imapSession.selected(selectedMailbox); when(mockMailboxManager.mailboxExists(INBOX, mailboxSession)).thenReturn(true); MessageManager targetMessageManager = mock(MessageManager.class); when(mockMailboxManager.getMailbox(INBOX, mailboxSession)).thenReturn(targetMessageManager); @@ -156,7 +151,7 @@ public class MoveProcessorTest { StatusResponse okResponse = mock(StatusResponse.class); when(mockStatusResponseFactory.taggedOk(any(Tag.class), any(ImapCommand.class), any(HumanReadableText.class), any(StatusResponse.ResponseCode.class))).thenReturn(okResponse); - testee.process(moveRequest, mockResponder, mockImapSession); + testee.process(moveRequest, mockResponder, imapSession); verify(mockMailboxManager).startProcessingRequest(mailboxSession); verify(mockMailboxManager).endProcessingRequest(mailboxSession); @@ -172,21 +167,18 @@ public class MoveProcessorTest { @Test public void processShouldRespondNoOnUnExistingTargetMailbox() throws Exception { MoveRequest moveRequest = new MoveRequest(ImapCommand.anyStateCommand("Name"), new IdRange[] {new IdRange(5, 6), new IdRange(1,3)}, ImapConstants.INBOX_NAME, true, TAG); - - when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED); - when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); MailboxPath selected = new MailboxPath(INBOX, "selected"); SelectedMailbox selectedMailbox = mock(SelectedMailbox.class); when(selectedMailbox.getLastUid()).thenReturn(Optional.of(MessageUid.of(8))); when(selectedMailbox.existsCount()).thenReturn(8L); when(selectedMailbox.getPath()).thenReturn(selected); - when(mockImapSession.getSelected()).thenReturn(selectedMailbox); + imapSession.selected(selectedMailbox); when(mockMailboxManager.mailboxExists(INBOX, mailboxSession)).thenReturn(false); StatusResponse noResponse = mock(StatusResponse.class); when(mockStatusResponseFactory.taggedNo(any(Tag.class), any(ImapCommand.class), any(HumanReadableText.class), any(StatusResponse.ResponseCode.class))).thenReturn(noResponse); - testee.process(moveRequest, mockResponder, mockImapSession); + testee.process(moveRequest, mockResponder, imapSession); verify(mockMailboxManager).startProcessingRequest(mailboxSession); verify(mockMailboxManager).endProcessingRequest(mailboxSession); @@ -198,21 +190,18 @@ public class MoveProcessorTest { @Test public void processShouldRespondNoOnMailboxException() throws Exception { MoveRequest moveRequest = new MoveRequest(ImapCommand.anyStateCommand("Name"), new IdRange[] {new IdRange(5, 6), new IdRange(1,3)}, ImapConstants.INBOX_NAME, true, TAG); - - when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED); - when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); MailboxPath selected = new MailboxPath(INBOX, "selected"); SelectedMailbox selectedMailbox = mock(SelectedMailbox.class); when(selectedMailbox.getLastUid()).thenReturn(Optional.of(MessageUid.of(8))); when(selectedMailbox.existsCount()).thenReturn(8L); when(selectedMailbox.getPath()).thenReturn(selected); - when(mockImapSession.getSelected()).thenReturn(selectedMailbox); + imapSession.selected(selectedMailbox); when(mockMailboxManager.mailboxExists(INBOX, mailboxSession)).thenThrow(new MailboxException()); StatusResponse noResponse = mock(StatusResponse.class); when(mockStatusResponseFactory.taggedNo(any(Tag.class), any(ImapCommand.class), any(HumanReadableText.class))).thenReturn(noResponse); - testee.process(moveRequest, mockResponder, mockImapSession); + testee.process(moveRequest, mockResponder, imapSession); verify(mockMailboxManager).startProcessingRequest(mailboxSession); verify(mockMailboxManager).endProcessingRequest(mailboxSession); @@ -225,9 +214,9 @@ public class MoveProcessorTest { public void processShouldNotHandleCopyRequests() { CopyRequest copyRequest = new CopyRequest(ImapCommand.anyStateCommand("Name"), new IdRange[] {new IdRange(4, 6)}, ImapConstants.INBOX_NAME, true, TAG); - testee.process(copyRequest, mockResponder, mockImapSession); + testee.process(copyRequest, mockResponder, imapSession); - verify(mockNextProcessor).process(copyRequest, mockResponder, mockImapSession); + verify(mockNextProcessor).process(copyRequest, mockResponder, imapSession); verifyNoMoreInteractions(mockMailboxManager, mockResponder, mockNextProcessor); } } diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/NamespaceProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/NamespaceProcessorTest.java index 06cfb79..2606938 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/NamespaceProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/NamespaceProcessorTest.java @@ -33,7 +33,6 @@ import java.util.List; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.Tag; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponse; @@ -81,7 +80,7 @@ public class NamespaceProcessorTest { @Test public void testNamespaceResponseShouldContainPersonalAndUserSpaces() { when(imapSessionStub.supportMultipleNamespaces()).thenReturn(true); - when(imapSessionStub.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); + when(imapSessionStub.getMailboxSession()).thenReturn(mailboxSession); when(imapSessionStub.getAttribute(EnableProcessor.ENABLED_CAPABILITIES)).thenReturn(null); when(mailboxSession.getPersonalSpace()).thenReturn(PERSONAL_PREFIX); @@ -106,7 +105,7 @@ public class NamespaceProcessorTest { @Test public void testNamespaceResponseShouldContainSharedSpaces() { when(imapSessionStub.supportMultipleNamespaces()).thenReturn(true); - when(imapSessionStub.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); + when(imapSessionStub.getMailboxSession()).thenReturn(mailboxSession); when(imapSessionStub.getAttribute(EnableProcessor.ENABLED_CAPABILITIES)).thenReturn(null); when(mailboxSession.getPersonalSpace()).thenReturn(PERSONAL_PREFIX); diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java index 1653c0d..7fdf373 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java @@ -42,7 +42,6 @@ import javax.mail.Flags.Flag; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.IdRange; import org.apache.james.imap.api.message.UidRange; @@ -142,8 +141,7 @@ public class SearchProcessorTest { } private void allowUnsolicitedResponses() { - when(session.getAttribute(ImapSessionUtils.MAILBOX_USER_ATTRIBUTE_SESSION_KEY)).thenReturn(USER); - when(session.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); + when(session.getMailboxSession()).thenReturn(mailboxSession); } @Test @@ -469,7 +467,7 @@ public class SearchProcessorTest { private void check(SearchKey key, final SearchQuery query) throws Exception { when(session.getAttribute(SearchProcessor.SEARCH_MODSEQ)).thenReturn(null); - when(session.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession); + when(session.getMailboxSession()).thenReturn(mailboxSession); when(mailbox.search(query, mailboxSession)).thenReturn(Stream.empty()); when(selectedMailbox.getApplicableFlags()).thenReturn(new Flags()); when(selectedMailbox.hasNewApplicableFlags()).thenReturn(false); 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 dcb4629..24e9232 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 @@ -32,12 +32,10 @@ import static org.mockito.Mockito.when; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.message.response.ImapResponseMessage; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapProcessor.Responder; -import org.apache.james.imap.api.process.ImapSession; +import org.apache.james.imap.encode.FakeImapSession; import org.apache.james.imap.message.request.SetACLRequest; import org.apache.james.imap.message.response.UnpooledStatusResponseFactory; import org.apache.james.mailbox.MailboxManager; @@ -68,7 +66,7 @@ public class SetACLProcessorTest { private static final String SET_RIGHTS = "aw"; private static final String UNSUPPORTED_RIGHT = "W"; - private ImapSession imapSession; + private FakeImapSession imapSession; private MailboxManager mailboxManager; private MailboxSession mailboxSession; private SetACLProcessor subject; @@ -85,7 +83,7 @@ public class SetACLProcessorTest { UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory(); mailboxManager = mock(MailboxManager.class); subject = new SetACLProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory()); - imapSession = mock(ImapSession.class); + imapSession = new FakeImapSession(); mailboxSession = MailboxSessionUtil.create(USER_1); MessageManager messageManager = mock(MessageManager.class); MetaData metaData = mock(MetaData.class); @@ -93,10 +91,8 @@ public class SetACLProcessorTest { argumentCaptor = ArgumentCaptor.forClass(ImapResponseMessage.class); - when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)) - .thenReturn(mailboxSession); - when(imapSession.getState()) - .thenReturn(ImapSessionState.AUTHENTICATED); + imapSession.authenticated(); + imapSession.setMailboxSession(mailboxSession); when(messageManager.getMetaData(anyBoolean(), any(MailboxSession.class), any(FetchGroup.class))) .thenReturn(metaData); when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class))) diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java index cd0b4ee..e2998bd 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java @@ -34,14 +34,11 @@ import java.util.List; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.Tag; import org.apache.james.imap.api.display.HumanReadableText; 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.encode.FakeImapSession; import org.apache.james.imap.message.request.SetAnnotationRequest; import org.apache.james.mailbox.MailboxManager; @@ -73,7 +70,7 @@ public class SetAnnotationProcessorTest { private MailboxManager mockMailboxManager; private StatusResponseFactory mockStatusResponseFactory; private ImapProcessor.Responder mockResponder; - private ImapSession mockImapSession; + private FakeImapSession imapSession; private MailboxSession mockMailboxSession; private List<MailboxAnnotation> mailboxAnnotations; @@ -90,7 +87,7 @@ public class SetAnnotationProcessorTest { mockMailboxManager = mock(MailboxManager.class); mockStatusResponseFactory = mock(StatusResponseFactory.class); mockResponder = mock(ImapProcessor.Responder.class); - mockImapSession = mock(ImapSession.class); + imapSession = new FakeImapSession(); Username username = Username.of("username"); mockMailboxSession = MailboxSessionUtil.create(username); @@ -99,8 +96,8 @@ public class SetAnnotationProcessorTest { request = new SetAnnotationRequest(TAG, ImapCommand.anyStateCommand("Name"), ImapConstants.INBOX_NAME, mailboxAnnotations); humanTextCaptor = ArgumentCaptor.forClass(HumanReadableText.class); - when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED); - when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mockMailboxSession); + imapSession.authenticated(); + imapSession.setMailboxSession(mockMailboxSession); } @Before @@ -125,7 +122,7 @@ public class SetAnnotationProcessorTest { doThrow(MailboxNotFoundException.class).when(mockMailboxManager).updateAnnotations(eq(inbox), eq(mockMailboxSession), eq(mailboxAnnotations)); - processor.process(request, mockResponder, mockImapSession); + processor.process(request, mockResponder, imapSession); verify(mockStatusResponseFactory, times(1)).taggedNo(any(Tag.class), any(ImapCommand.class), humanTextCaptor.capture(), any(StatusResponse.ResponseCode.class)); @@ -137,7 +134,7 @@ public class SetAnnotationProcessorTest { public void processShouldResponseNoWithGenericFailureWhenManagerThrowMailboxException() throws Exception { doThrow(MailboxException.class).when(mockMailboxManager).updateAnnotations(eq(inbox), eq(mockMailboxSession), eq(mailboxAnnotations)); - processor.process(request, mockResponder, mockImapSession); + processor.process(request, mockResponder, imapSession); verify(mockStatusResponseFactory, times(1)).taggedNo(any(Tag.class), any(ImapCommand.class), humanTextCaptor.capture()); @@ -149,7 +146,7 @@ public class SetAnnotationProcessorTest { when(mockStatusResponseFactory.taggedOk(any(Tag.class), any(ImapCommand.class), any(HumanReadableText.class))) .thenReturn(okResponse); - processor.process(request, mockResponder, mockImapSession); + processor.process(request, mockResponder, imapSession); verify(mockMailboxManager).updateAnnotations(inbox, mockMailboxSession, mailboxAnnotations); verify(mockResponder).respond(okResponse); @@ -162,7 +159,7 @@ public class SetAnnotationProcessorTest { public void processShouldResponseNoWhenManagerThrowsAnnotationException() throws Exception { doThrow(AnnotationException.class).when(mockMailboxManager).updateAnnotations(eq(inbox), eq(mockMailboxSession), eq(mailboxAnnotations)); - processor.process(request, mockResponder, mockImapSession); + processor.process(request, mockResponder, imapSession); verify(mockStatusResponseFactory, times(1)).taggedNo(any(Tag.class), any(ImapCommand.class), humanTextCaptor.capture()); diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetQuotaProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetQuotaProcessorTest.java index 89c7773..7a67573 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetQuotaProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetQuotaProcessorTest.java @@ -29,7 +29,6 @@ import static org.mockito.Mockito.when; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.message.response.ImapResponseMessage; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; @@ -66,7 +65,7 @@ public class SetQuotaProcessorTest { SetQuotaRequest setQuotaRequest = new SetQuotaRequest(TAG, ImapCommand.anyStateCommand("Name"), "quotaRoot"); when(mockedImapSession.getState()).thenReturn(ImapSessionState.AUTHENTICATED); - when(mockedImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)) + when(mockedImapSession.getMailboxSession()) .thenReturn(mailboxSession); testee.doProcess(setQuotaRequest, mockedResponder, mockedImapSession); diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java index bf70ce3..1ba1f14 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java @@ -32,7 +32,6 @@ import javax.mail.Flags; import org.apache.commons.lang3.NotImplementedException; import org.apache.james.core.Username; import org.apache.james.imap.api.ImapSessionState; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; @@ -133,7 +132,7 @@ public class MailboxEventAnalyserTest { public void setUp() throws MailboxException { ImapSession imapSession = mock(ImapSession.class); InVMEventBus eventBus = new InVMEventBus(new InVmEventDelivery(new NoopMetricFactory())); - when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)) + when(imapSession.getMailboxSession()) .thenReturn(MAILBOX_SESSION); when(imapSession.getState()).thenReturn(ImapSessionState.AUTHENTICATED); diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java index 95a25c1..d0ed403 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java @@ -37,7 +37,6 @@ import java.util.stream.Stream; import javax.mail.Flags; import org.apache.james.core.Username; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; @@ -102,7 +101,7 @@ public class SelectedMailboxImplTest { .then(delayedSearchAnswer()); when(messageManager.getId()).thenReturn(mailboxId); - when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mock(MailboxSession.class)); + when(imapSession.getMailboxSession()).thenReturn(mock(MailboxSession.class)); when(mailbox.generateAssociatedPath()).thenReturn(mailboxPath); when(mailbox.getMailboxId()).thenReturn(mailboxId); diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java index bb8799e..56042a7 100644 --- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java +++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java @@ -25,10 +25,8 @@ import java.net.SocketAddress; import java.util.Optional; import org.apache.james.core.Username; -import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.imap.api.process.SelectedMailbox; -import org.apache.james.mailbox.MailboxSession; import org.apache.james.util.MDCBuilder; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelLocal; @@ -64,11 +62,9 @@ public class IMAPMDCContext { private static MDCBuilder from(Object o) { if (o instanceof ImapSession) { ImapSession imapSession = (ImapSession) o; - MailboxSession mailboxSession = (MailboxSession) imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY); return MDCBuilder.create() - .addContext(MDCBuilder.USER, Optional.ofNullable(mailboxSession) - .map(MailboxSession::getUser) + .addContext(MDCBuilder.USER, Optional.ofNullable(imapSession.getUserName()) .map(Username::asString)) .addContext(from(Optional.ofNullable(imapSession.getSelected()))); } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org