You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/12/12 02:18:46 UTC
[james-project] 02/15: [Refactoring] Get rid of ImapSessionUtils
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 <bt...@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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org