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 2018/12/18 08:00:44 UTC

[01/13] james-project git commit: MAILBOX-365 MailboxSession should not cary password

Repository: james-project
Updated Branches:
  refs/heads/master bd195b983 -> d04e65506


MAILBOX-365 MailboxSession should not cary password

Not only this is not used, but also it could lead to security vulnerabilities...


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/ad104d22
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/ad104d22
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/ad104d22

Branch: refs/heads/master
Commit: ad104d22bcc2828a6aa2ede570fb82dd61659da9
Parents: bd195b9
Author: Benoit Tellier <bt...@linagora.com>
Authored: Sat Dec 15 14:05:35 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Dec 18 14:47:55 2018 +0700

----------------------------------------------------------------------
 .../java/org/apache/james/mailbox/MailboxSession.java |  7 -------
 .../james/mailbox/store/SimpleMailboxSession.java     | 14 +++-----------
 .../james/mailbox/store/StoreMailboxManager.java      |  8 ++++----
 .../james/jmap/methods/GetMessagesMethodTest.java     |  5 -----
 4 files changed, 7 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/ad104d22/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
index e2c00f9..0b6324a 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
@@ -133,13 +133,6 @@ public interface MailboxSession {
         String getUserName();
 
         /**
-         * Return the Password for the logged in user
-         * 
-         * @return password
-         */
-        String getPassword();
-
-        /**
          * Gets acceptable localisation for this user in preference order.<br>
          * When localising a phrase, each <code>Locale</code> should be tried in
          * order until an appropriate translation is obtained.

http://git-wip-us.apache.org/repos/asf/james-project/blob/ad104d22/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
index 3d2101c..7f08b47 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
@@ -44,8 +44,6 @@ public class SimpleMailboxSession implements MailboxSession, MailboxSession.User
 
     private final String userName;
     
-    private final String password;
-    
     private boolean open = true;
 
     private final List<Locale> localePreferences;
@@ -57,16 +55,15 @@ public class SimpleMailboxSession implements MailboxSession, MailboxSession.User
     private final SessionType type;
 
     
-    public SimpleMailboxSession(SessionId sessionId, String userName, String password,
+    public SimpleMailboxSession(SessionId sessionId, String userName,
                                 List<Locale> localePreferences, char pathSeparator, SessionType type) {
-        this(sessionId, userName, password, localePreferences, new ArrayList<>(), null, pathSeparator, type);
+        this(sessionId, userName, localePreferences, new ArrayList<>(), null, pathSeparator, type);
     }
 
-    public SimpleMailboxSession(SessionId sessionId, String userName, String password,
+    public SimpleMailboxSession(SessionId sessionId, String userName,
                                 List<Locale> localePreferences, List<String> sharedSpaces, String otherUsersSpace, char pathSeparator, SessionType type) {
         this.sessionId = sessionId;
         this.userName = userName;
-        this.password = password;
         this.otherUsersSpace = otherUsersSpace;
         this.sharedSpaces = sharedSpaces;
         this.type = type;
@@ -157,11 +154,6 @@ public class SimpleMailboxSession implements MailboxSession, MailboxSession.User
     }
 
     @Override
-    public String getPassword() {
-        return password;
-    }
-
-    @Override
     public char getPathDelimiter() {
         return pathSeparator;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/ad104d22/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
index b978ed8..4b322de 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
@@ -346,7 +346,7 @@ public class StoreMailboxManager implements MailboxManager {
 
     @Override
     public MailboxSession createSystemSession(String userName) {
-        return createSession(userName, null, SessionType.System);
+        return createSession(userName, SessionType.System);
     }
 
     /**
@@ -356,8 +356,8 @@ public class StoreMailboxManager implements MailboxManager {
      * @return session
      */
 
-    protected MailboxSession createSession(String userName, String password, SessionType type) {
-        return new SimpleMailboxSession(newSessionId(), userName, password, new ArrayList<>(), getDelimiter(), type);
+    protected MailboxSession createSession(String userName, SessionType type) {
+        return new SimpleMailboxSession(newSessionId(), userName, new ArrayList<>(), getDelimiter(), type);
     }
 
     private MailboxSession.SessionId newSessionId() {
@@ -392,7 +392,7 @@ public class StoreMailboxManager implements MailboxManager {
     @Override
     public MailboxSession login(String userid, String passwd) throws MailboxException {
         if (isValidLogin(userid, passwd)) {
-            return createSession(userid, passwd, SessionType.User);
+            return createSession(userid, SessionType.User);
         } else {
             throw new BadCredentialsException();
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/ad104d22/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
index 6fcac84..4032bd0 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
@@ -101,11 +101,6 @@ public class GetMessagesMethodTest {
         public String getUserName() {
             return username;
         }
-
-        @Override
-        public String getPassword() {
-            return password;
-        }
         
         @Override
         public List<Locale> getLocalePreferences() {


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[05/13] james-project git commit: MAILBOX-365 Turn MailboxSession into POJO & delete SimpleMailboxSession

Posted by bt...@apache.org.
MAILBOX-365 Turn MailboxSession into POJO & delete SimpleMailboxSession


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/a5982615
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/a5982615
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/a5982615

Branch: refs/heads/master
Commit: a598261564104da0d0f0b30672a8983e8522681c
Parents: 46e26b8
Author: Benoit Tellier <bt...@linagora.com>
Authored: Sat Dec 15 16:25:56 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Dec 18 14:48:10 2018 +0700

----------------------------------------------------------------------
 .../apache/james/mailbox/MailboxSession.java    | 103 ++++++++++--
 .../mailbox/store/SimpleMailboxSession.java     | 157 -------------------
 .../mailbox/store/StoreMailboxManager.java      |   2 +-
 3 files changed, 88 insertions(+), 174 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/a5982615/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
index 51dd6b3..0e1cc74 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
@@ -19,22 +19,25 @@
 
 package org.apache.james.mailbox;
 
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 
 import org.apache.james.core.User;
+import org.apache.james.mailbox.model.MailboxConstants;
 
 import com.google.common.base.MoreObjects;
 
 /**
  * Mailbox session.
  */
-public interface MailboxSession {
+public class MailboxSession {
 
-    class SessionId {
+    public static class SessionId {
 
         public static SessionId of(long sessionId) {
             return new SessionId(sessionId);
@@ -76,9 +79,9 @@ public interface MailboxSession {
     /**
      * Id which will be used for a System session
      */
-    long SYSTEM_SESSION_ID = 0L;
+    public static long SYSTEM_SESSION_ID = 0L;
 
-    enum SessionType {
+    public enum SessionType {
         /**
          * Session was created via the System
          */
@@ -89,39 +92,83 @@ public interface MailboxSession {
          */
         User
     }
-    
+
+    private final Collection<String> sharedSpaces;
+    private final String otherUsersSpace;
+    private final String personalSpace;
+    private final SessionId sessionId;
+    private final String userName;
+    private boolean open = true;
+    private final List<Locale> localePreferences;
+    private final Map<Object, Object> attributes;
+    private final char pathSeparator;
+    private final SessionType type;
+
+    public MailboxSession(SessionId sessionId, String userName,
+                                List<Locale> localePreferences, char pathSeparator, SessionType type) {
+        this(sessionId, userName, localePreferences, new ArrayList<>(), null, pathSeparator, type);
+    }
+
+    public MailboxSession(SessionId sessionId, String userName,
+                                List<Locale> localePreferences, List<String> sharedSpaces, String otherUsersSpace, char pathSeparator, SessionType type) {
+        this.sessionId = sessionId;
+        this.userName = userName;
+        this.otherUsersSpace = otherUsersSpace;
+        this.sharedSpaces = sharedSpaces;
+        this.type = type;
+        if (otherUsersSpace == null && (sharedSpaces == null || sharedSpaces.isEmpty())) {
+            this.personalSpace = "";
+        } else {
+            this.personalSpace = MailboxConstants.USER_NAMESPACE;
+        }
+
+        this.localePreferences = localePreferences;
+        this.attributes = new HashMap<>();
+        this.pathSeparator = pathSeparator;
+    }
+
     /**
      * Return if the {@link MailboxSession} is of type {@link SessionType#User} or {@link SessionType#System}
      * 
      * @return type
      */
-    SessionType getType();
+    public SessionType getType() {
+        return type;
+    }
     
     /**
      * Gets the session ID.
      * 
      * @return session id
      */
-    SessionId getSessionId();
+    public SessionId getSessionId() {
+        return sessionId;
+    }
 
     /**
      * Is this session open?
      * 
      * @return true if the session is open, false otherwise
      */
-    boolean isOpen();
+    public boolean isOpen() {
+        return open;
+    }
 
     /**
      * Closes this session.
      */
-    void close();
+    public void close() {
+        open = false;
+    }
 
     /**
      * Gets the user executing this session.
      * 
      * @return not null
      */
-    User getUser();
+    public User getUser() {
+        return User.fromUsername(userName);
+    }
 
     /**
      * Gets acceptable localisation for this user in preference order.<br>
@@ -130,7 +177,9 @@ public interface MailboxSession {
      *
      * @return not null, when empty the default local should be used
      */
-    List<Locale> getLocalePreferences();
+    public List<Locale> getLocalePreferences() {
+        return localePreferences;
+    }
 
     /**
      * Gets the <a href='http://www.isi.edu/in-notes/rfc2342.txt' rel='tag'>RFC
@@ -141,7 +190,9 @@ public interface MailboxSession {
      * 
      * @return Personal Namespace, not null
      */
-    String getPersonalSpace();
+    public String getPersonalSpace() {
+        return personalSpace;
+    }
 
     /**
      * Gets the <a href='http://www.isi.edu/in-notes/rfc2342.txt' rel='tag'>RFC
@@ -152,7 +203,9 @@ public interface MailboxSession {
      * 
      * @return Other Users Namespace or null when there is non available
      */
-    String getOtherUsersSpace();
+    public String getOtherUsersSpace() {
+        return otherUsersSpace;
+    }
 
     /**
      * Iterates the <a href='http://www.isi.edu/in-notes/rfc2342.txt'
@@ -161,19 +214,37 @@ public interface MailboxSession {
      * 
      * @return not null though possibly empty
      */
-    Collection<String> getSharedSpaces();
+    public Collection<String> getSharedSpaces() {
+        return sharedSpaces;
+    }
 
     /**
      * Return the stored attributes for this {@link MailboxSession}.
      * 
      * @return attributes
      */
-    Map<Object, Object> getAttributes();
+    public Map<Object, Object> getAttributes() {
+        return attributes;
+    }
 
     /**
      * Return server side, folder path separator
      * 
      * @return path separator
      */
-    char getPathDelimiter();
+    public char getPathDelimiter() {
+        return pathSeparator;
+    }
+
+    /**
+     * Renders suitably for logging.
+     *
+     * @return a <code>String</code> representation of this object.
+     */
+    public String toString() {
+        String TAB = " ";
+
+        return "MailboxSession ( " + "sessionId = "
+            + this.sessionId + TAB + "open = " + this.open + TAB + " )";
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/a5982615/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
deleted file mode 100644
index 2e3f159..0000000
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
+++ /dev/null
@@ -1,157 +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.mailbox.store;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import org.apache.james.core.User;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.model.MailboxConstants;
-
-/**
- * Describes a mailbox session.
- */
-public class SimpleMailboxSession implements MailboxSession {
-
-    private final Collection<String> sharedSpaces;
-
-    private final String otherUsersSpace;
-
-    private final String personalSpace;
-    
-    private final SessionId sessionId;
-
-    private final String userName;
-    
-    private boolean open = true;
-
-    private final List<Locale> localePreferences;
-
-    private final Map<Object, Object> attributes;
-    
-    private final char pathSeparator;
-
-    private final SessionType type;
-
-    
-    public SimpleMailboxSession(SessionId sessionId, String userName,
-                                List<Locale> localePreferences, char pathSeparator, SessionType type) {
-        this(sessionId, userName, localePreferences, new ArrayList<>(), null, pathSeparator, type);
-    }
-
-    public SimpleMailboxSession(SessionId sessionId, String userName,
-                                List<Locale> localePreferences, List<String> sharedSpaces, String otherUsersSpace, char pathSeparator, SessionType type) {
-        this.sessionId = sessionId;
-        this.userName = userName;
-        this.otherUsersSpace = otherUsersSpace;
-        this.sharedSpaces = sharedSpaces;
-        this.type = type;
-        if (otherUsersSpace == null && (sharedSpaces == null || sharedSpaces.isEmpty())) {
-            this.personalSpace = "";
-        } else {
-            this.personalSpace = MailboxConstants.USER_NAMESPACE;
-        }
-
-        this.localePreferences = localePreferences;
-        this.attributes = new HashMap<>();
-        this.pathSeparator = pathSeparator;
-    }
-
-
-    @Override
-    public void close() {
-        open = false;
-    }
-
-    @Override
-    public SessionId getSessionId() {
-        return sessionId;
-    }
-
-    @Override
-    public boolean isOpen() {
-        return open;
-    }
-
-    /**
-     * Renders suitably for logging.
-     * 
-     * @return a <code>String</code> representation of this object.
-     */
-    public String toString() {
-        final String TAB = " ";
-
-        return "MailboxSession ( " + "sessionId = "
-                + this.sessionId + TAB + "open = " + this.open + TAB + " )";
-    }
-    
-    /**
-     * Gets the user executing this session.
-     * @return not null
-     */
-    @Override
-    public User getUser() {
-        return User.fromUsername(userName);
-    }
-
-    @Override
-    public String getOtherUsersSpace() {
-        return otherUsersSpace;
-    }
-
-    @Override
-    public String getPersonalSpace() {
-        return personalSpace;
-    }
-
-    @Override
-    public Collection<String> getSharedSpaces() {
-        return sharedSpaces;
-    }
-
-    @Override
-    public List<Locale> getLocalePreferences() {
-        return localePreferences;
-    }
-
-    /**
-     * @see org.apache.james.mailbox.MailboxSession#getAttributes()
-     */
-    @Override
-    public Map<Object, Object> getAttributes() {
-        return attributes;
-    }
-
-    @Override
-    public char getPathDelimiter() {
-        return pathSeparator;
-    }
-
-    @Override
-    public SessionType getType() {
-        return type;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/a5982615/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
index fba7edd..45b4fbc 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
@@ -357,7 +357,7 @@ public class StoreMailboxManager implements MailboxManager {
      */
 
     protected MailboxSession createSession(String userName, SessionType type) {
-        return new SimpleMailboxSession(newSessionId(), userName, new ArrayList<>(), getDelimiter(), type);
+        return new MailboxSession(newSessionId(), userName, new ArrayList<>(), getDelimiter(), type);
     }
 
     private MailboxSession.SessionId newSessionId() {


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[07/13] james-project git commit: MAILBOX-365 Get rid of MockMailboxSession

Posted by bt...@apache.org.
MAILBOX-365 Get rid of MockMailboxSession

We can now use the MailboxSession POJO in tests


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/71c5a800
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/71c5a800
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/71c5a800

Branch: refs/heads/master
Commit: 71c5a800171bb16a5974f3d426bc36572010c225
Parents: a598261
Author: Benoit Tellier <bt...@linagora.com>
Authored: Sat Dec 15 16:45:51 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Dec 18 14:48:16 2018 +0700

----------------------------------------------------------------------
 .../apache/james/mailbox/MailboxSession.java    |  20 ++++
 .../AbstractSubscriptionManagerTest.java        |   3 +-
 .../james/mailbox/mock/MockMailboxSession.java  | 105 -------------------
 .../mailbox/backup/MailboxMessageFixture.java   |   3 +-
 .../cassandra/mail/CassandraMapperProvider.java |   3 +-
 .../mail/CassandraMessageIdMapperTest.java      |   4 +-
 .../ElasticSearchIntegrationTest.java           |  14 +--
 ...icSearchListeningMessageSearchIndexTest.java |   3 +-
 .../mailbox/jpa/mail/JPAMapperProvider.java     |   4 +-
 .../LuceneMailboxMessageSearchIndexTest.java    |   3 +-
 .../search/LuceneMessageSearchIndexTest.java    |   4 +-
 .../inmemory/mail/InMemoryMapperProvider.java   |   6 +-
 .../QuotaThresholdListenersTestSystem.java      |   4 +-
 ...ticSearchQuotaSearchTestSystemExtension.java |   4 +-
 .../spamassassin/SpamAssassinListenerTest.java  |   4 +-
 .../store/AbstractCombinationManagerTest.java   |   3 +-
 .../AbstractMailboxManagerAttachmentTest.java   |   3 +-
 .../AbstractMessageIdManagerQuotaTest.java      |   3 +-
 .../AbstractMessageIdManagerSideEffectTest.java |   3 +-
 .../AbstractMessageIdManagerStorageTest.java    |   7 +-
 .../store/AbstractMessageManagerTest.java       |   5 +-
 .../store/MailboxEventDispatcherTest.java       |   3 +-
 .../StoreMailboxManagerAnnotationTest.java      |   5 +-
 .../mailbox/store/StoreMailboxManagerTest.java  |   7 +-
 .../mailbox/store/StoreRightManagerTest.java    |  10 +-
 .../store/SystemMailboxesProviderImplTest.java  |   3 +-
 .../DefaultDelegatingMailboxListenerTest.java   |   3 +-
 .../event/MailboxAnnotationListenerTest.java    |   3 +-
 .../store/event/MessageMoveEventTest.java       |  18 ++--
 .../mailbox/store/mail/MessageUtilsTest.java    |   3 +-
 .../host/ElasticSearchHostSystem.java           |   4 +-
 .../inmemory/host/InMemoryHostSystem.java       |   4 +-
 .../james/imap/api/ImapSessionUtilsTest.java    |   3 +-
 .../decode/parser/CreateCommandParserTest.java  |   3 +-
 .../processor/GetAnnotationProcessorTest.java   |   3 +-
 .../imap/processor/GetQuotaProcessorTest.java   |   9 +-
 .../processor/GetQuotaRootProcessorTest.java    |   9 +-
 .../processor/SetAnnotationProcessorTest.java   |   3 +-
 .../imap/processor/SetQuotaProcessorTest.java   |   3 +-
 .../base/MailboxEventAnalyserTest.java          |   5 +-
 .../mailets/delivery/MailboxAppender.java       |   2 +-
 .../mailets/delivery/LocalDeliveryTest.java     |  12 +--
 .../mailets/delivery/ToRecipientFolderTest.java |  12 +--
 .../DefaultMailboxesProvisioningFilterTest.java |   3 +-
 ...ltMailboxesProvisioningFilterThreadTest.java |   3 +-
 .../james/jmap/UserProvisioningFilterTest.java  |   9 +-
 .../jmap/UserProvisioningFilterThreadTest.java  |   3 +-
 .../event/PropagateLookupRightListenerTest.java |   3 +-
 .../jmap/methods/AttachmentCheckerTest.java     |   3 +-
 .../jmap/methods/GetMailboxesMethodTest.java    |   3 +-
 .../jmap/methods/GetMessagesMethodTest.java     |   3 +-
 .../SetMessagesCreationProcessorTest.java       |   5 +-
 .../apache/james/jmap/model/JmapMDNTest.java    |   4 +-
 .../ElasticSearchQuotaSearchExtension.java      |   4 +-
 .../routes/UserMailboxesRoutesTest.java         |   4 +-
 55 files changed, 130 insertions(+), 252 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
index 0e1cc74..1c4d35f 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
@@ -26,10 +26,12 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Random;
 
 import org.apache.james.core.User;
 import org.apache.james.mailbox.model.MailboxConstants;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
 
 /**
@@ -37,6 +39,23 @@ import com.google.common.base.MoreObjects;
  */
 public class MailboxSession {
 
+    @VisibleForTesting
+    public static MailboxSession create(String username) {
+        return create(username, SessionId.of(RANDOM.nextLong()));
+    }
+
+    @VisibleForTesting
+    public static MailboxSession create(String username, SessionId sessionId) {
+        ArrayList<Locale> locales = new ArrayList<>();
+
+        return new MailboxSession(
+            sessionId,
+            username,
+            locales,
+            MailboxConstants.DEFAULT_DELIMITER,
+            SessionType.User);
+    }
+
     public static class SessionId {
 
         public static SessionId of(long sessionId) {
@@ -80,6 +99,7 @@ public class MailboxSession {
      * Id which will be used for a System session
      */
     public static long SYSTEM_SESSION_ID = 0L;
+    private static final Random RANDOM = new Random();
 
     public enum SessionType {
         /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
index e6da4fc..d42c34a 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
@@ -21,7 +21,6 @@ package org.apache.james.mailbox;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.james.mailbox.exception.SubscriptionException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.junit.Test;
 
 /**
@@ -41,7 +40,7 @@ public abstract class AbstractSubscriptionManagerTest {
 
     public void setup() {
         manager = createSubscriptionManager();
-        session = new MockMailboxSession(USER1);
+        session = MailboxSession.create(USER1);
         manager.startProcessingRequest(session);
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
deleted file mode 100644
index 8bf84f0..0000000
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
+++ /dev/null
@@ -1,105 +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.mailbox.mock;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Random;
-
-import org.apache.james.core.User;
-import org.apache.james.mailbox.MailboxSession;
-
-public class MockMailboxSession implements MailboxSession {
-    private final User user;
-    private final Map<Object, Object> attrs = new HashMap<>();
-    private static final Random RANDOM = new Random();
-    private final SessionId sessionId;
-    private final SessionType type;
-    private boolean open;
-    
-    public MockMailboxSession(String username) {
-        this(username, SessionId.of(RANDOM.nextLong()));
-    }
-
-    public MockMailboxSession(String username, SessionId sessionId) {
-        this.user = User.fromUsername(username);
-        this.sessionId = sessionId;
-        this.open = true;
-        type = SessionType.User;
-    }
-
-    @Override
-    public List<Locale> getLocalePreferences() {
-        return new ArrayList<>();
-    }
-
-    @Override
-    public void close() {
-        this.open = false;
-    }
-
-    @Override
-    public Map<Object, Object> getAttributes() {
-        return attrs;
-    }
-
-    @Override
-    public String getOtherUsersSpace() {
-        return null;
-    }
-
-    @Override
-    public String getPersonalSpace() {
-        return "";
-    }
-
-    @Override
-    public SessionId getSessionId() {
-        return sessionId;
-    }
-
-    @Override
-    public Collection<String> getSharedSpaces() {
-        return new ArrayList<>();
-    }
-
-    @Override
-    public User getUser() {
-        return user;
-    }
-
-    @Override
-    public boolean isOpen() {
-        return open;
-    }
-
-    @Override
-    public char getPathDelimiter() {
-        return '.';
-    }
-
-    @Override
-    public SessionType getType() {
-        return type;
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
----------------------------------------------------------------------
diff --git a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
index c00d8ee..0933c31 100644
--- a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
+++ b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
@@ -29,7 +29,6 @@ import javax.mail.util.SharedByteArrayInputStream;
 
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageId;
@@ -64,7 +63,7 @@ public interface MailboxMessageFixture {
     MailboxId MAILBOX_ID_1 = TestId.of(1L);
     Flags flags1 = new Flags("myFlags");
 
-    MailboxSession MAILBOX_SESSION = new MockMailboxSession("user");
+    MailboxSession MAILBOX_SESSION = MailboxSession.create("user");
     
     Mailbox MAILBOX_1 = new SimpleMailbox(MailboxPath.forUser("user", "mailbox1"), 42, TestId.of(1L));
     Mailbox MAILBOX_1_SUB_1 = new SimpleMailbox(MailboxPath.forUser("user", "mailbox1" + MAILBOX_SESSION.getPathDelimiter() + "sub1"), 420, TestId.of(11L));

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
index e894802..65f54b0 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
@@ -29,7 +29,6 @@ import org.apache.james.mailbox.cassandra.ids.CassandraId;
 import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
 import org.apache.james.mailbox.cassandra.ids.CassandraMessageId.Factory;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.store.mail.AnnotationMapper;
 import org.apache.james.mailbox.store.mail.AttachmentMapper;
@@ -49,7 +48,7 @@ public class CassandraMapperProvider implements MapperProvider {
     private final CassandraCluster cassandra;
     private final MessageUidProvider messageUidProvider;
     private final CassandraModSeqProvider cassandraModSeqProvider;
-    private final MockMailboxSession mailboxSession = new MockMailboxSession("benwa");
+    private final MailboxSession mailboxSession = MailboxSession.create("benwa");
     private CassandraMailboxSessionMapperFactory mapperFactory;
 
     public CassandraMapperProvider(CassandraCluster cassandra) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
index 52488f9..24cbda4 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
@@ -26,11 +26,11 @@ import java.util.List;
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory;
 import org.apache.james.mailbox.cassandra.TestCassandraMailboxSessionMapperFactory;
 import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 import org.apache.james.mailbox.store.mail.model.MessageIdMapperTest;
@@ -45,7 +45,7 @@ import com.google.common.collect.ImmutableList;
 
 public class CassandraMessageIdMapperTest extends MessageIdMapperTest {
 
-    public static final MockMailboxSession MAILBOX_SESSION = new MockMailboxSession("benwa");
+    private static final MailboxSession MAILBOX_SESSION = MailboxSession.create("benwa");
     @ClassRule public static DockerCassandraRule cassandraServer = new DockerCassandraRule();
 
     private static CassandraCluster cassandra;

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
index db68d9d..78d6a8d 100644
--- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
+++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
@@ -30,6 +30,7 @@ import org.apache.james.backends.es.ElasticSearchConfiguration;
 import org.apache.james.backends.es.ElasticSearchIndexer;
 import org.apache.james.backends.es.EmbeddedElasticSearch;
 import org.apache.james.backends.es.utils.TestingClientProvider;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex;
@@ -39,7 +40,6 @@ import org.apache.james.mailbox.elasticsearch.query.QueryConverter;
 import org.apache.james.mailbox.elasticsearch.search.ElasticSearchSearcher;
 import org.apache.james.mailbox.inmemory.InMemoryId;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.ComposedMessageId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.SearchQuery;
@@ -124,14 +124,14 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
             storeMailboxManager.getQuotaManager(),
             storeMailboxManager.getQuotaRootResolver());
         storeMailboxManager.setMessageSearchIndex(elasticSearchListeningMessageSearchIndex);
-        storeMailboxManager.addGlobalListener(elasticSearchListeningMessageSearchIndex, new MockMailboxSession("admin"));
+        storeMailboxManager.addGlobalListener(elasticSearchListeningMessageSearchIndex, MailboxSession.create("admin"));
         this.messageSearchIndex = elasticSearchListeningMessageSearchIndex;
     }
 
     @Test
     public void termsBetweenElasticSearchAndLuceneLimitDueTuNonAsciiCharsShouldBeTruncated() throws Exception {
         MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX);
-        MockMailboxSession session = new MockMailboxSession(USERNAME);
+        MailboxSession session = MailboxSession.create(USERNAME);
         MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session);
 
         String recipient = "benwa@linagora.com";
@@ -150,7 +150,7 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
     @Test
     public void tooLongTermsShouldNotMakeIndexingFail() throws Exception {
         MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX);
-        MockMailboxSession session = new MockMailboxSession(USERNAME);
+        MailboxSession session = MailboxSession.create(USERNAME);
         MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session);
 
         String recipient = "benwa@linagora.com";
@@ -169,7 +169,7 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
     @Test
     public void fieldsExceedingLuceneLimitShouldNotBeIgnored() throws Exception {
         MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX);
-        MockMailboxSession session = new MockMailboxSession(USERNAME);
+        MailboxSession session = MailboxSession.create(USERNAME);
         MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session);
 
         String recipient = "benwa@linagora.com";
@@ -188,7 +188,7 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
     @Test
     public void fieldsWithTooLongTermShouldStillBeIndexed() throws Exception {
         MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX);
-        MockMailboxSession session = new MockMailboxSession(USERNAME);
+        MailboxSession session = MailboxSession.create(USERNAME);
         MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session);
 
         String recipient = "benwa@linagora.com";
@@ -207,7 +207,7 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
     @Test
     public void reasonableLongTermShouldNotBeIgnored() throws Exception {
         MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX);
-        MockMailboxSession session = new MockMailboxSession(USERNAME);
+        MailboxSession session = MailboxSession.create(USERNAME);
         MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session);
 
         String recipient = "benwa@linagora.com";

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
index f04852d..7c66ddb 100644
--- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
+++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
@@ -39,7 +39,6 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.elasticsearch.json.MessageToElasticSearchJson;
 import org.apache.james.mailbox.elasticsearch.search.ElasticSearchSearcher;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.TestId;
 import org.apache.james.mailbox.model.UpdatedFlags;
 import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
@@ -83,7 +82,7 @@ public class ElasticSearchListeningMessageSearchIndexTest {
         
         testee = new ElasticSearchListeningMessageSearchIndex(mapperFactory, elasticSearchIndexer, elasticSearchSearcher,
             messageToElasticSearchJson, mockMailboxManager);
-        session = new MockMailboxSession(USERNAME);
+        session = MailboxSession.create(USERNAME);
         users = ImmutableList.of(User.fromUsername(USERNAME));
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java
index 366b23c..e73e2c0 100644
--- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java
+++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java
@@ -26,10 +26,10 @@ import javax.persistence.EntityManagerFactory;
 
 import org.apache.commons.lang3.NotImplementedException;
 import org.apache.james.backends.jpa.JpaTestCluster;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.jpa.JPAId;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.store.JVMMailboxPathLocker;
@@ -62,7 +62,7 @@ public class JPAMapperProvider implements MapperProvider {
         EntityManagerFactory entityManagerFactory = jpaTestCluster.getEntityManagerFactory();
         JVMMailboxPathLocker locker = new JVMMailboxPathLocker();
 
-        JPAMessageMapper messageMapper = new JPAMessageMapper(new MockMailboxSession("benwa"), 
+        JPAMessageMapper messageMapper = new JPAMessageMapper(MailboxSession.create("benwa"),
             new JPAUidProvider(locker, entityManagerFactory), 
             new JPAModSeqProvider(locker, entityManagerFactory), 
             entityManagerFactory);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
index 5ea228c..4c369f4 100644
--- a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
+++ b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
@@ -34,7 +34,6 @@ import javax.mail.Flags.Flag;
 
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -95,7 +94,7 @@ public class LuceneMailboxMessageSearchIndexTest {
     
     @Before
     public void setUp() throws Exception {
-        session = new MockMailboxSession("username");
+        session = MailboxSession.create("username");
         TestMessageId.Factory factory = new TestMessageId.Factory();
         id1 = factory.generate();
         id2 = factory.generate();

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java
index b9eeaa6..de6d66b 100644
--- a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java
+++ b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java
@@ -19,11 +19,11 @@
 
 package org.apache.james.mailbox.lucene.search;
 
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.InMemoryId;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.store.StoreMessageIdManager;
 import org.apache.james.mailbox.store.search.AbstractMessageSearchIndexTest;
 import org.apache.lucene.store.RAMDirectory;
@@ -52,7 +52,7 @@ public class LuceneMessageSearchIndexTest extends AbstractMessageSearchIndexTest
             storeMailboxManager.getMessageIdFactory(),
             storeMailboxManager);
         storeMailboxManager.setMessageSearchIndex(luceneMessageSearchIndex);
-        storeMailboxManager.addGlobalListener(luceneMessageSearchIndex, new MockMailboxSession("admin"));
+        storeMailboxManager.addGlobalListener(luceneMessageSearchIndex, MailboxSession.create("admin"));
         this.messageSearchIndex = luceneMessageSearchIndex;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
index bbf7406..26eeb41 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
@@ -22,12 +22,12 @@ package org.apache.james.mailbox.inmemory.mail;
 import java.util.List;
 import java.util.Random;
 
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.InMemoryId;
 import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
 import org.apache.james.mailbox.inmemory.InMemoryMessageId;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.store.mail.AnnotationMapper;
 import org.apache.james.mailbox.store.mail.AttachmentMapper;
@@ -42,7 +42,7 @@ import com.google.common.collect.ImmutableList;
 
 public class InMemoryMapperProvider implements MapperProvider {
 
-    private static final MockMailboxSession MAILBOX_SESSION = new MockMailboxSession("user");
+    private static final MailboxSession MAILBOX_SESSION = MailboxSession.create("user");
 
     private final Random random;
     private final MessageId.Factory messageIdFactory;
@@ -64,7 +64,7 @@ public class InMemoryMapperProvider implements MapperProvider {
 
     @Override
     public MessageMapper createMessageMapper() throws MailboxException {
-        return inMemoryMailboxSessionMapperFactory.createMessageMapper(new MockMailboxSession("user"));
+        return inMemoryMailboxSessionMapperFactory.createMessageMapper(MailboxSession.create("user"));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdListenersTestSystem.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdListenersTestSystem.java b/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdListenersTestSystem.java
index 32f19e3..62a4bdb 100644
--- a/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdListenersTestSystem.java
+++ b/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdListenersTestSystem.java
@@ -22,8 +22,8 @@ package org.apache.james.mailbox.quota.mailing.listeners;
 import org.apache.james.eventsourcing.eventstore.EventStore;
 import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.mailbox.Event;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.quota.mailing.QuotaMailingListenerConfiguration;
 import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
 import org.apache.james.server.core.JamesServerResourceLoader;
@@ -43,7 +43,7 @@ public class QuotaThresholdListenersTestSystem {
         QuotaThresholdCrossingListener thresholdCrossingListener =
             new QuotaThresholdCrossingListener(mailetContext, MemoryUsersRepository.withVirtualHosting(), fileSystem, eventStore, configuration);
 
-        MockMailboxSession mailboxSession = new MockMailboxSession("system");
+        MailboxSession mailboxSession = MailboxSession.create("system");
         delegatingListener.addGlobalListener(thresholdCrossingListener, mailboxSession);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearchTestSystemExtension.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearchTestSystemExtension.java b/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearchTestSystemExtension.java
index 872cf33..2477900 100644
--- a/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearchTestSystemExtension.java
+++ b/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearchTestSystemExtension.java
@@ -30,9 +30,9 @@ import org.apache.james.backends.es.EmbeddedElasticSearch;
 import org.apache.james.backends.es.utils.TestingClientProvider;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.memory.MemoryDomainList;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.quota.search.QuotaSearchTestSystem;
 import org.apache.james.quota.search.elasticsearch.events.ElasticSearchQuotaMailboxListener;
 import org.apache.james.quota.search.elasticsearch.json.QuotaRatioToElasticSearchJson;
@@ -79,7 +79,7 @@ public class ElasticSearchQuotaSearchTestSystemExtension implements ParameterRes
                 new QuotaRatioToElasticSearchJson());
 
             resources.getMailboxManager()
-                .addGlobalListener(listener, new MockMailboxSession("ANY"));
+                .addGlobalListener(listener, MailboxSession.create("ANY"));
 
             return new QuotaSearchTestSystem(
                 resources.getMaxQuotaManager(),

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
index 04baa1d..3bbfd62 100644
--- a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
+++ b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
@@ -34,11 +34,11 @@ import javax.mail.util.SharedByteArrayInputStream;
 
 import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.mailbox.MailboxListener;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageMetaData;
@@ -64,7 +64,7 @@ import com.google.common.collect.ImmutableSortedMap;
 public class SpamAssassinListenerTest {
 
     public static final String USER = "user";
-    private static final MockMailboxSession MAILBOX_SESSION = new MockMailboxSession(USER);
+    private static final MailboxSession MAILBOX_SESSION = MailboxSession.create(USER);
     private static final int UID_VALIDITY = 43;
     private static final MessageUid UID = MessageUid.of(45);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
index ac11def..1e20f59 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
@@ -38,7 +38,6 @@ import org.apache.james.mailbox.MessageManager.FlagsUpdateMode;
 import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.fixture.MailboxFixture;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.ComposedMessageId;
 import org.apache.james.mailbox.model.FetchGroupImpl;
 import org.apache.james.mailbox.model.MessageId;
@@ -74,7 +73,7 @@ public abstract class AbstractCombinationManagerTest {
     public abstract CombinationManagerTestSystem createTestingData() throws Exception;
 
     public void setUp() throws Exception {
-        session = new MockMailboxSession(MailboxFixture.ALICE);
+        session = MailboxSession.create(MailboxFixture.ALICE);
         testingData = createTestingData();
 
         mailbox1 = testingData.createMailbox(MailboxFixture.INBOX_ALICE, session);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java
index 562066a..b230fc1 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java
@@ -30,7 +30,6 @@ import java.util.Optional;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageAttachment;
 import org.apache.james.mailbox.model.MessageRange;
@@ -64,7 +63,7 @@ public abstract class AbstractMailboxManagerAttachmentTest {
     protected abstract AttachmentMapperFactory getAttachmentMapperFactory();
     
     public void setUp() throws Exception {
-        mailboxSession = new MockMailboxSession(USERNAME);
+        mailboxSession = MailboxSession.create(USERNAME);
         messageMapper = getMailboxSessionMapperFactory().getMessageMapper(mailboxSession);
         mailboxMapper = getMailboxSessionMapperFactory().getMailboxMapper(mailboxSession);
         inboxPath = MailboxPath.forUser(USERNAME, "INBOX");

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java
index 9571e20..78d48c8 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java
@@ -30,7 +30,6 @@ import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.OverQuotaException;
 import org.apache.james.mailbox.fixture.MailboxFixture;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.quota.CurrentQuotaManager;
 import org.apache.james.mailbox.quota.MaxQuotaManager;
@@ -73,7 +72,7 @@ public abstract class AbstractMessageIdManagerQuotaTest {
         CurrentQuotaManager currentQuotaManager = createCurrentQuotaManager();
         QuotaManager quotaManager = createQuotaManager(maxQuotaManager, currentQuotaManager);
 
-        session = new MockMailboxSession(ALICE);
+        session = MailboxSession.create(ALICE);
         testingData = createTestSystem(quotaManager, currentQuotaManager);
         messageIdManager = testingData.getMessageIdManager();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
index 75df4bc..ab3527f 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
@@ -44,7 +44,6 @@ import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.OverQuotaException;
 import org.apache.james.mailbox.fixture.MailboxFixture;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.FetchGroupImpl;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.MessageResult;
@@ -89,7 +88,7 @@ public abstract class AbstractMessageIdManagerSideEffectTest {
         dispatcher = mock(MailboxEventDispatcher.class);
         quotaManager = mock(QuotaManager.class);
 
-        session = new MockMailboxSession(ALICE);
+        session = MailboxSession.create(ALICE);
         testingData = createTestSystem(quotaManager, dispatcher);
         messageIdManager = testingData.getMessageIdManager();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
index e60c0ff..2c3e7de 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
@@ -36,7 +36,6 @@ import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.fixture.MailboxFixture;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.DeleteResult;
 import org.apache.james.mailbox.model.FetchGroupImpl;
 import org.apache.james.mailbox.model.MailboxACL;
@@ -75,9 +74,9 @@ public abstract class AbstractMessageIdManagerStorageTest {
     protected abstract MessageIdManagerTestSystem createTestingData() throws Exception;
 
     public void setUp() throws Exception {
-        aliceSession = new MockMailboxSession(MailboxFixture.ALICE);
-        bobSession = new MockMailboxSession(MailboxFixture.BOB);
-        systemSession = new MockMailboxSession("systemuser");
+        aliceSession = MailboxSession.create(MailboxFixture.ALICE);
+        bobSession = MailboxSession.create(MailboxFixture.BOB);
+        systemSession = MailboxSession.create("systemuser");
         testingData = createTestingData();
         messageIdManager = testingData.getMessageIdManager();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageManagerTest.java
index ee69a00..0c677ec 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageManagerTest.java
@@ -29,7 +29,6 @@ import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.fixture.MailboxFixture;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.junit.Test;
 
@@ -45,8 +44,8 @@ public abstract class AbstractMessageManagerTest {
     protected abstract MessageManagerTestSystem createTestSystem() throws Exception;
 
     public void setUp() throws Exception {
-        aliceSession = new MockMailboxSession(ALICE);
-        bobSession = new MockMailboxSession(BOB);
+        aliceSession = MailboxSession.create(ALICE);
+        bobSession = MailboxSession.create(BOB);
         testSystem = createTestSystem();
         mailboxManager = testSystem.getMailboxManager();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
index 691ec79..f5354f9 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
@@ -31,7 +31,6 @@ import org.apache.james.mailbox.FlagsBuilder;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageResult;
 import org.apache.james.mailbox.model.TestId;
@@ -64,7 +63,7 @@ public class MailboxEventDispatcherTest {
     private MessageResult result;
     private Mailbox mailbox;
 
-    private MailboxSession session = new MockMailboxSession("test", SESSION_ID);
+    private MailboxSession session = MailboxSession.create("test", SESSION_ID);
 
     @Before
     public void setUp() throws Exception {

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
index 0d48de8..3732848 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
@@ -34,7 +34,6 @@ import java.util.Set;
 
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxAnnotation;
 import org.apache.james.mailbox.model.MailboxAnnotationKey;
@@ -70,7 +69,7 @@ public class StoreMailboxManagerAnnotationTest {
     @Mock private MailboxPath mailboxPath;
     @Mock private Mailbox mailbox;
     @Mock private MailboxId mailboxId;
-    private MockMailboxSession session;
+    private MailboxSession session;
 
     private StoreMailboxAnnotationManager annotationManager;
 
@@ -80,7 +79,7 @@ public class StoreMailboxManagerAnnotationTest {
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
 
-        session = new MockMailboxSession("userName");
+        session = MailboxSession.create("userName");
 
         when(mailboxSessionMapperFactory.getMailboxMapper(eq(session))).thenReturn(mailboxMapper);
         when(mailboxSessionMapperFactory.getAnnotationMapper(eq(session))).thenReturn(annotationMapper);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
index 102bb2a..bd4fddf 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
@@ -33,7 +33,6 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.exception.NotAdminException;
 import org.apache.james.mailbox.exception.UserDoesNotExistException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -67,7 +66,7 @@ public class StoreMailboxManagerTest {
     @Before
     public void setUp() throws MailboxException {
         MailboxSessionMapperFactory mockedMapperFactory = mock(MailboxSessionMapperFactory.class);
-        mockedMailboxSession = new MockMailboxSession(CURRENT_USER);
+        mockedMailboxSession = MailboxSession.create(CURRENT_USER);
         mockedMailboxMapper = mock(MailboxMapper.class);
         when(mockedMapperFactory.getMailboxMapper(mockedMailboxSession))
             .thenReturn(mockedMailboxMapper);
@@ -189,7 +188,7 @@ public class StoreMailboxManagerTest {
     @Test
     public void getPathLikeShouldReturnUserPathLikeWhenNoPrefixDefined() throws Exception {
         //Given
-        MailboxSession session = new MockMailboxSession("user");
+        MailboxSession session = MailboxSession.create("user");
         MailboxQuery.Builder testee = MailboxQuery.builder()
             .expression(new PrefixedRegex(EMPTY_PREFIX, "abc", session.getPathDelimiter()));
         //When
@@ -202,7 +201,7 @@ public class StoreMailboxManagerTest {
     @Test
     public void getPathLikeShouldReturnUserPathLikeWhenPrefixDefined() throws Exception {
         //Given
-        MailboxSession session = new MockMailboxSession("user");
+        MailboxSession session = MailboxSession.create("user");
         MailboxQuery.Builder testee = MailboxQuery.builder()
             .expression(new PrefixedRegex("prefix.", "abc", session.getPathDelimiter()));
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
index 91a481a..52489d6 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
@@ -30,6 +30,7 @@ import static org.mockito.Mockito.when;
 
 import javax.mail.Flags;
 
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.acl.GroupMembershipResolver;
 import org.apache.james.mailbox.acl.MailboxACLResolver;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
@@ -39,7 +40,6 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.exception.UnsupportedRightException;
 import org.apache.james.mailbox.fixture.MailboxFixture;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.ACLCommand;
 import org.apache.james.mailbox.model.MailboxACL.Right;
@@ -56,14 +56,14 @@ public class StoreRightManagerTest {
 
     private static final long UID_VALIDITY = 3421L;
     private StoreRightManager storeRightManager;
-    private MockMailboxSession aliceSession;
+    private MailboxSession aliceSession;
     private MailboxACLResolver mailboxAclResolver;
     private GroupMembershipResolver groupMembershipResolver;
     private MailboxMapper mockedMailboxMapper;
 
     @Before
     public void setup() throws MailboxException {
-        aliceSession = new MockMailboxSession(MailboxFixture.ALICE);
+        aliceSession = MailboxSession.create(MailboxFixture.ALICE);
         MailboxSessionMapperFactory mockedMapperFactory = mock(MailboxSessionMapperFactory.class);
         mockedMailboxMapper = mock(MailboxMapper.class);
         mailboxAclResolver = new UnionMailboxACLResolver();
@@ -218,7 +218,7 @@ public class StoreRightManagerTest {
             .apply(MailboxACL.command().rights(Right.Read, Right.Write).forUser(BOB).asAddition())
             .apply(MailboxACL.command().rights(Right.Read, Right.Write, Right.Administer).forUser(CEDRIC).asAddition());
         MailboxACL actual = StoreRightManager.filteredForSession(
-            new SimpleMailbox(INBOX_ALICE, UID_VALIDITY), acl, new MockMailboxSession(CEDRIC));
+            new SimpleMailbox(INBOX_ALICE, UID_VALIDITY), acl, MailboxSession.create(CEDRIC));
         assertThat(actual).isEqualTo(acl);
     }
 
@@ -228,7 +228,7 @@ public class StoreRightManagerTest {
             .apply(MailboxACL.command().rights(Right.Read, Right.Write).forUser(BOB).asAddition())
             .apply(MailboxACL.command().rights(Right.Read, Right.Write, Right.Administer).forUser(CEDRIC).asAddition());
         MailboxACL actual = StoreRightManager.filteredForSession(
-            new SimpleMailbox(INBOX_ALICE, UID_VALIDITY), acl, new MockMailboxSession(BOB));
+            new SimpleMailbox(INBOX_ALICE, UID_VALIDITY), acl, MailboxSession.create(BOB));
         assertThat(actual.getEntries()).containsKey(MailboxACL.EntryKey.createUserEntryKey(BOB));
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
index ed1c1ee..b8989ba 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
@@ -30,7 +30,6 @@ import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.Role;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.fixture.MailboxFixture;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -38,7 +37,7 @@ import org.junit.rules.ExpectedException;
 
 public class SystemMailboxesProviderImplTest {
 
-    private MailboxSession mailboxSession = new MockMailboxSession(MailboxFixture.ALICE);
+    private MailboxSession mailboxSession = MailboxSession.create(MailboxFixture.ALICE);
     private SystemMailboxesProviderImpl systemMailboxProvider;
 
     private MailboxManager mailboxManager;

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java
index eca8099..0a78e26 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java
@@ -29,7 +29,6 @@ import org.apache.james.core.quota.QuotaSize;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.QuotaRoot;
@@ -167,7 +166,7 @@ public class DefaultDelegatingMailboxListenerTest {
 
     @Test
     public void listenersErrorsShouldNotBePropageted() throws Exception {
-        MailboxSession session = new MockMailboxSession("benwa");
+        MailboxSession session = MailboxSession.create("benwa");
         MailboxListener.MailboxEvent event = new MailboxListener.MailboxEvent(session.getSessionId(),
             session.getUser(), MAILBOX_PATH, MAILBOX_ID) {};
         MailboxListener mockedListener = mock(MailboxListener.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
index 933ed28..84dac7f 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
@@ -33,7 +33,6 @@ import org.apache.james.core.quota.QuotaSize;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxAnnotation;
 import org.apache.james.mailbox.model.MailboxAnnotationKey;
 import org.apache.james.mailbox.model.MailboxId;
@@ -78,7 +77,7 @@ public class MailboxAnnotationListenerTest {
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        mailboxSession = new MockMailboxSession("test");
+        mailboxSession = MailboxSession.create("test");
         listener = new MailboxAnnotationListener(mailboxSessionMapperFactory, mailboxManager);
         eventFactory = new EventFactory();
         mailbox = new SimpleMailbox(MailboxPath.forUser("user", "name"), UID_VALIDITY, mailboxId);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
index 70ac645..9c0c28a 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
@@ -25,8 +25,8 @@ import static org.mockito.Mockito.mock;
 import java.util.Map;
 
 import org.apache.james.core.User;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MessageMoves;
 import org.apache.james.mailbox.model.TestId;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
@@ -51,7 +51,7 @@ public class MessageMoveEventTest {
     @Test
     public void builderShouldThrowWhenMessageMovesIsNull() {
         assertThatThrownBy(() -> MessageMoveEvent.builder()
-                .session(new MockMailboxSession("user@james.org"))
+                .session(MailboxSession.create("user@james.org"))
                 .build())
             .isInstanceOf(NullPointerException.class);
     }
@@ -59,7 +59,7 @@ public class MessageMoveEventTest {
     @Test
     public void builderShouldReturnNoopWhenMessagesIsEmpty() {
         assertThat(MessageMoveEvent.builder()
-                .session(new MockMailboxSession("user@james.org"))
+                .session(MailboxSession.create("user@james.org"))
                 .messageMoves(MessageMoves.builder()
                     .previousMailboxIds(TestId.of(1))
                     .targetMailboxIds(TestId.of(2))
@@ -70,7 +70,7 @@ public class MessageMoveEventTest {
 
     @Test
     public void builderShouldNotBeNoopWhenFieldsAreGiven() {
-        MockMailboxSession session = new MockMailboxSession("user@james.org");
+        MailboxSession session = MailboxSession.create("user@james.org");
         MessageMoves messageMoves = MessageMoves.builder()
             .targetMailboxIds(TestId.of(2))
             .previousMailboxIds(TestId.of(1))
@@ -89,7 +89,7 @@ public class MessageMoveEventTest {
     @Test
     public void builderShouldBuildWhenFieldsAreGiven() {
         String username = "user@james.org";
-        MockMailboxSession session = new MockMailboxSession(username);
+        MailboxSession session = MailboxSession.create(username);
         MessageMoves messageMoves = MessageMoves.builder()
             .targetMailboxIds(TestId.of(2))
             .previousMailboxIds(TestId.of(1))
@@ -110,7 +110,7 @@ public class MessageMoveEventTest {
     @Test
     public void isMoveToShouldReturnFalseWhenMailboxIdIsNotInAddedMailboxIds() {
         MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(new MockMailboxSession("user@james.org"))
+            .session(MailboxSession.create("user@james.org"))
             .messageMoves(MessageMoves.builder()
                     .previousMailboxIds(TestId.of(1))
                     .targetMailboxIds(TestId.of(2))
@@ -125,7 +125,7 @@ public class MessageMoveEventTest {
     public void isMoveToShouldReturnTrueWhenMailboxIdIsInAddedMailboxIds() {
         TestId mailboxId = TestId.of(123);
         MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(new MockMailboxSession("user@james.org"))
+            .session(MailboxSession.create("user@james.org"))
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(TestId.of(1))
                 .targetMailboxIds(TestId.of(2), mailboxId)
@@ -139,7 +139,7 @@ public class MessageMoveEventTest {
     @Test
     public void isMoveFromShouldReturnFalseWhenMailboxIdIsNotInRemovedMailboxIds() {
         MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(new MockMailboxSession("user@james.org"))
+            .session(MailboxSession.create("user@james.org"))
             .messageMoves(MessageMoves.builder()
                     .previousMailboxIds(TestId.of(1))
                     .targetMailboxIds(TestId.of(2))
@@ -154,7 +154,7 @@ public class MessageMoveEventTest {
     public void isMoveFromShouldReturnTrueWhenMailboxIdIsInRemovedMailboxIds() {
         TestId mailboxId = TestId.of(123);
         MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(new MockMailboxSession("user@james.org"))
+            .session(MailboxSession.create("user@james.org"))
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(TestId.of(1), mailboxId)
                 .targetMailboxIds(TestId.of(2))

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java
index 4944ff5..fa06038 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java
@@ -31,7 +31,6 @@ import javax.mail.util.SharedByteArrayInputStream;
 
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
@@ -65,7 +64,7 @@ public class MessageUtilsTest {
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        mailboxSession = new MockMailboxSession("user");
+        mailboxSession = MailboxSession.create("user");
         messageUtils = new MessageUtils(mailboxSession, uidProvider, modSeqProvider);
         message = new SimpleMailboxMessage(MESSAGE_ID, new Date(), CONTENT.length(), BODY_START, new SharedByteArrayInputStream(CONTENT.getBytes()), new Flags(), new PropertyBuilder(), mailbox.getMailboxId());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
index 971c99b..52a2de9 100644
--- a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
+++ b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
@@ -38,6 +38,7 @@ import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
 import org.apache.james.imap.main.DefaultImapDecoderFactory;
 import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
 import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.elasticsearch.IndexAttachments;
 import org.apache.james.mailbox.elasticsearch.MailboxElasticSearchConstants;
@@ -51,7 +52,6 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.InMemoryId;
 import org.apache.james.mailbox.inmemory.InMemoryMessageId;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.store.StoreMailboxManager;
 import org.apache.james.mailbox.store.StoreSubscriptionManager;
 import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
@@ -116,7 +116,7 @@ public class ElasticSearchHostSystem extends JamesImapHostSystem {
             mailboxManager);
 
         mailboxManager.setMessageSearchIndex(searchIndex);
-        mailboxManager.addGlobalListener(searchIndex, new MockMailboxSession("admin"));
+        mailboxManager.addGlobalListener(searchIndex, MailboxSession.create("admin"));
 
         ImapProcessor defaultImapProcessorFactory =
             DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager,

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
index 3c36732..6ae41c4 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
@@ -26,12 +26,12 @@ import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
 import org.apache.james.imap.main.DefaultImapDecoderFactory;
 import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
 import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
 import org.apache.james.mailbox.inmemory.quota.InMemoryCurrentQuotaManager;
 import org.apache.james.mailbox.inmemory.quota.InMemoryPerUserMaxQuotaManager;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
 import org.apache.james.mailbox.store.StoreMailboxManager;
 import org.apache.james.mailbox.store.StoreSubscriptionManager;
@@ -80,7 +80,7 @@ public class InMemoryHostSystem extends JamesImapHostSystem {
         mailboxManager.setQuotaRootResolver(quotaRootResolver);
         mailboxManager.setQuotaManager(quotaManager);
         mailboxManager.setQuotaUpdater(quotaUpdater);
-        mailboxManager.addGlobalListener(quotaUpdater, new MockMailboxSession("admin"));
+        mailboxManager.addGlobalListener(quotaUpdater, MailboxSession.create("admin"));
 
         final ImapProcessor defaultImapProcessorFactory = DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager, new StoreSubscriptionManager(mailboxManager.getMapperFactory()), quotaManager, quotaRootResolver, new DefaultMetricFactory());
         configure(new DefaultImapDecoderFactory().buildImapDecoder(),

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionUtilsTest.java
----------------------------------------------------------------------
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/ImapSessionUtilsTest.java
index 86e3e99..8ec6e66 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/ImapSessionUtilsTest.java
@@ -24,13 +24,12 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import org.apache.james.imap.encode.FakeImapSession;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.junit.Before;
 import org.junit.Test;
 
 public class ImapSessionUtilsTest {
     private static final String USERNAME = "username";
-    private static final MailboxSession MAILBOX_SESSION = new MockMailboxSession(USERNAME);
+    private static final MailboxSession MAILBOX_SESSION = MailboxSession.create(USERNAME);
     private FakeImapSession fakeImapSession;
 
     @Before

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/CreateCommandParserTest.java
----------------------------------------------------------------------
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 bbba010..6d698af 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
@@ -35,7 +35,6 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.decode.ImapRequestStreamLineReader;
 import org.apache.james.imap.message.request.CreateRequest;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.protocols.imap.DecodingException;
 import org.junit.Before;
 import org.junit.Test;
@@ -52,7 +51,7 @@ public class CreateCommandParserTest {
     @Before
     public void setUp() throws Exception {
         mockImapSession = mock(ImapSession.class);
-        mailboxSession = new MockMailboxSession("userName");
+        mailboxSession = MailboxSession.create("userName");
 
         when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java
----------------------------------------------------------------------
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 5a9796a..0523335 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
@@ -50,7 +50,6 @@ import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxAnnotation;
 import org.apache.james.mailbox.model.MailboxAnnotationKey;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -103,7 +102,7 @@ public class GetAnnotationProcessorTest {
         mockResponder = mock(ImapProcessor.Responder.class);
         mockImapSession = mock(ImapSession.class);
 
-        mailboxSession = new MockMailboxSession("username");
+        mailboxSession = MailboxSession.create("username");
         inbox = MailboxPath.inbox(mailboxSession);
         keys = ImmutableSet.of(PRIVATE_KEY);
         annotationRequestBuilder = GetAnnotationRequest.builder()

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaProcessorTest.java
----------------------------------------------------------------------
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 c3136d1..6079b5e 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
@@ -43,7 +43,6 @@ import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.Quota;
@@ -60,10 +59,10 @@ import com.google.common.collect.ImmutableList;
 public class GetQuotaProcessorTest {
 
     private static final QuotaRoot QUOTA_ROOT = QuotaRoot.quotaRoot("plop", Optional.empty());
-    public static final MailboxPath MAILBOX_PATH = new MailboxPath("namespace", "plop", "INBOX");
-    public static final Quota<QuotaCount> MESSAGE_QUOTA =
+    private static final MailboxPath MAILBOX_PATH = new MailboxPath("namespace", "plop", "INBOX");
+    private static final Quota<QuotaCount> MESSAGE_QUOTA =
         Quota.<QuotaCount>builder().used(QuotaCount.count(24)).computedLimit(QuotaCount.count(1589)).build();
-    public static final Quota<QuotaSize> STORAGE_QUOTA =
+    private static final Quota<QuotaSize> STORAGE_QUOTA =
         Quota.<QuotaSize>builder().used(QuotaSize.size(240)).computedLimit(QuotaSize.size(15890)).build();
 
     private GetQuotaProcessor testee;
@@ -76,7 +75,7 @@ public class GetQuotaProcessorTest {
 
     @Before
     public void setUp() throws Exception {
-        mailboxSession = new MockMailboxSession("plop");
+        mailboxSession = MailboxSession.create("plop");
         UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
         mockedImapSession = mock(ImapSession.class);
         mockedQuotaManager = mock(QuotaManager.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaRootProcessorTest.java
----------------------------------------------------------------------
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 a221e72..6558bf8 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
@@ -46,7 +46,6 @@ import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.Quota;
@@ -61,10 +60,10 @@ import org.mockito.ArgumentCaptor;
 public class GetQuotaRootProcessorTest {
 
     private static final QuotaRoot QUOTA_ROOT = QuotaRoot.quotaRoot("plop", Optional.empty());
-    public static final MailboxPath MAILBOX_PATH = MailboxPath.forUser("plop", "INBOX");
-    public static final Quota<QuotaCount> MESSAGE_QUOTA =
+    private static final MailboxPath MAILBOX_PATH = MailboxPath.forUser("plop", "INBOX");
+    private static final Quota<QuotaCount> MESSAGE_QUOTA =
         Quota.<QuotaCount>builder().used(QuotaCount.count(24)).computedLimit(QuotaCount.count(1589)).build();
-    public static final Quota<QuotaSize> STORAGE_QUOTA =
+    private static final Quota<QuotaSize> STORAGE_QUOTA =
         Quota.<QuotaSize>builder().used(QuotaSize.size(240)).computedLimit(QuotaSize.size(15890)).build();
 
     private GetQuotaRootProcessor testee;
@@ -77,7 +76,7 @@ public class GetQuotaRootProcessorTest {
 
     @Before
     public void setUp() {
-        mailboxSession = new MockMailboxSession("plop");
+        mailboxSession = MailboxSession.create("plop");
         UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
         mockedImapSession = mock(ImapSession.class);
         mockedQuotaManager = mock(QuotaManager.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
----------------------------------------------------------------------
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 e9cc6b6..f368d2e 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
@@ -46,7 +46,6 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.AnnotationException;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxAnnotation;
 import org.apache.james.mailbox.model.MailboxAnnotationKey;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -91,7 +90,7 @@ public class SetAnnotationProcessorTest {
         mockResponder = mock(ImapProcessor.Responder.class);
         mockImapSession = mock(ImapSession.class);
 
-        mockMailboxSession = new MockMailboxSession("username");
+        mockMailboxSession = MailboxSession.create("username");
         inbox = MailboxPath.inbox(mockMailboxSession);
         mailboxAnnotations = ImmutableList.of(MailboxAnnotation.newInstance(new MailboxAnnotationKey("/private/key"), "anyValue"));
         request = new SetAnnotationRequest(TAG, ImapCommand.anyStateCommand("Name"), ImapConstants.INBOX_NAME, mailboxAnnotations);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/protocols/imap/src/test/java/org/apache/james/imap/processor/SetQuotaProcessorTest.java
----------------------------------------------------------------------
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 4f6340e..d4cde5c 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
@@ -35,7 +35,6 @@ import org.apache.james.imap.message.request.SetQuotaRequest;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.junit.Before;
 import org.junit.Test;
@@ -50,7 +49,7 @@ public class SetQuotaProcessorTest {
 
     @Before
     public void setUp() {
-        mailboxSession = new MockMailboxSession("plop");
+        mailboxSession = MailboxSession.create("plop");
         UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
         mockedImapSession = mock(ImapSession.class);
         mockedResponder = mock(ImapProcessor.Responder.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
----------------------------------------------------------------------
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 3bc16e9..22b8acb 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
@@ -38,7 +38,6 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageResult;
@@ -90,8 +89,8 @@ public class MailboxEventAnalyserTest {
 
 
     private static final MessageUid MESSAGE_UID = MessageUid.of(1);
-    private static final MockMailboxSession MAILBOX_SESSION = new MockMailboxSession("user");
-    private static final MockMailboxSession OTHER_MAILBOX_SESSION = new MockMailboxSession("user");
+    private static final MailboxSession MAILBOX_SESSION = MailboxSession.create("user");
+    private static final MailboxSession OTHER_MAILBOX_SESSION = MailboxSession.create("user");
     private static final char PATH_DELIMITER = '.';
     private static final MailboxPath MAILBOX_PATH = new MailboxPath("namespace", "user", "name");
     private static final TestId MAILBOX_ID = TestId.of(36);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
index 95e1246..1f19b26 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
@@ -77,7 +77,7 @@ public class MailboxAppender {
         createMailboxIfNotExist(session, path);
         final MessageManager mailbox = mailboxManager.getMailbox(path, session);
         if (mailbox == null) {
-            throw new MessagingException("Mailbox " + path + " for user " + session.getUser().getUserName() + " was not found on this server.");
+            throw new MessagingException("Mailbox " + path + " for user " + session.getUser().asString() + " was not found on this server.");
         }
         return mailbox.appendMessage(MessageManager.AppendCommand.builder()
             .recent()


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[09/13] james-project git commit: MAILBOX-365 Fix checkstyle

Posted by bt...@apache.org.
MAILBOX-365 Fix checkstyle


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/780c38c1
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/780c38c1
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/780c38c1

Branch: refs/heads/master
Commit: 780c38c1415974d9078e6e8c11aa64ce03404713
Parents: 8810856
Author: Benoit Tellier <bt...@linagora.com>
Authored: Sun Dec 16 17:26:39 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Dec 18 14:48:28 2018 +0700

----------------------------------------------------------------------
 .../src/main/java/org/apache/james/mailbox/MailboxSession.java   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/780c38c1/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
index 1c4d35f..933da12 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
@@ -262,9 +262,9 @@ public class MailboxSession {
      * @return a <code>String</code> representation of this object.
      */
     public String toString() {
-        String TAB = " ";
+        String tab = " ";
 
         return "MailboxSession ( " + "sessionId = "
-            + this.sessionId + TAB + "open = " + this.open + TAB + " )";
+            + this.sessionId + tab + "open = " + this.open + tab + " )";
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[08/13] james-project git commit: MAILBOX-365 Get rid of some MailboxSession mocks

Posted by bt...@apache.org.
MAILBOX-365 Get rid of some MailboxSession mocks

We can now use directly the POJO with its testing factory methods


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/88108560
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/88108560
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/88108560

Branch: refs/heads/master
Commit: 8810856058a0263b5916fa61f0a78a5db88e04b4
Parents: 71c5a80
Author: Benoit Tellier <bt...@linagora.com>
Authored: Sat Dec 15 17:01:24 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Dec 18 14:48:24 2018 +0700

----------------------------------------------------------------------
 .../mailbox/store/StoreBlobManagerTest.java     |  2 +-
 .../mailbox/store/mail/model/UsernameTest.java  | 11 ---
 .../apache/james/imap/api/ImapSessionUtils.java |  2 +-
 .../james/imap/processor/LogoutProcessor.java   |  2 +-
 .../james/imap/main/PathConverterTest.java      |  6 +-
 .../james/imap/processor/CopyProcessorTest.java | 97 +++++++++-----------
 .../imap/processor/DeleteACLProcessorTest.java  |  9 +-
 .../imap/processor/GetACLProcessorTest.java     |  8 +-
 .../james/imap/processor/LSubProcessorTest.java | 34 +------
 .../imap/processor/ListRightsProcessorTest.java |  8 +-
 .../james/imap/processor/MoveProcessorTest.java | 96 ++++++++-----------
 .../imap/processor/NamespaceProcessorTest.java  | 24 ++---
 .../imap/processor/SearchProcessorTest.java     |  2 +-
 .../imap/processor/SetACLProcessorTest.java     |  8 +-
 .../base/MailboxEventAnalyserTest.java          |  2 +-
 .../apache/james/jmap/DownloadServletTest.java  |  2 +-
 16 files changed, 107 insertions(+), 206 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java
index 322c8d5..db48237 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java
@@ -66,7 +66,7 @@ public class StoreBlobManagerTest {
     public void setUp() {
         attachmentManager = mock(AttachmentManager.class);
         messageIdManager = mock(MessageIdManager.class);
-        session = mock(MailboxSession.class);
+        session = MailboxSession.create("user");
 
         blobManager = new StoreBlobManager(attachmentManager, messageIdManager, new TestMessageId.Factory());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/UsernameTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/UsernameTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/UsernameTest.java
index 0ec4eed..1f34d74 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/UsernameTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/UsernameTest.java
@@ -57,15 +57,4 @@ public class UsernameTest {
             .isInstanceOf(NullPointerException.class);
     }
 
-    @Test
-    public void fromMailboxSessionShouldThrowOnNullUsername() {
-        MailboxSession mailboxSession = mock(MailboxSession.class);
-        MailboxSession.User user = mock(MailboxSession.User.class);
-        when(mailboxSession.getUser()).thenReturn(user);
-        when(user.getUserName()).thenReturn(null);
-
-        assertThatThrownBy(() -> Username.fromMailboxSession(mailboxSession))
-            .isInstanceOf(NullPointerException.class);
-    }
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/main/java/org/apache/james/imap/api/ImapSessionUtils.java
----------------------------------------------------------------------
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
index 9c8fc44..6d4e25a 100644
--- 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
@@ -39,7 +39,7 @@ public class ImapSessionUtils {
     public static String getUserName(ImapSession imapSession) {
         Preconditions.checkNotNull(imapSession);
         return Optional.ofNullable(getMailboxSession(imapSession))
-            .map(mailboxSession -> mailboxSession.getUser().getUserName())
+            .map(mailboxSession -> mailboxSession.getUser().asString())
             .orElse(null);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
----------------------------------------------------------------------
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 4b9a09a..46e3364 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
@@ -53,7 +53,7 @@ public class LogoutProcessor extends AbstractMailboxProcessor<LogoutRequest> {
             bye(responder);
             okComplete(command, tag, responder);
         } catch (MailboxException e) {
-            LOGGER.error("Logout failed for user {}", mailboxSession.getUser().getUserName(), e);
+            LOGGER.error("Logout failed for user {}", mailboxSession.getUser().asString(), e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java
----------------------------------------------------------------------
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 b395109..e959573 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
@@ -47,13 +47,9 @@ public class PathConverterTest {
     @Before
     public void setUp() {
         imapSession = mock(ImapSession.class);
-        mailboxSession = mock(MailboxSession.class);
-        MailboxSession.User user = mock(MailboxSession.User.class);
+        mailboxSession = MailboxSession.create(USERNAME);
         pathConverter = PathConverter.forSession(imapSession);
         when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
-        when(mailboxSession.getUser()).thenReturn(user);
-        when(mailboxSession.getPathDelimiter()).thenReturn(PATH_DELIMITER);
-        when(user.getUserName()).thenReturn(USERNAME);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java
----------------------------------------------------------------------
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 245f90f..5a097b3 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
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.when;
 
 import java.util.Optional;
 
+import org.apache.james.core.User;
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.ImapSessionState;
@@ -55,9 +56,9 @@ import org.junit.Test;
 import com.google.common.collect.Lists;
 
 public class CopyProcessorTest {
-
     public static final String TAG = "TAG";
-    private static final MailboxSession.SessionId SESSION_ID_42 = MailboxSession.SessionId.of(42L);
+    private static final String USERNAME = "username";
+    private static final User USER = User.fromUsername(USERNAME);
 
     private CopyProcessor testee;
     private ImapProcessor mockNextProcessor;
@@ -65,7 +66,7 @@ public class CopyProcessorTest {
     private StatusResponseFactory mockStatusResponseFactory;
     private ImapProcessor.Responder mockResponder;
     private ImapSession mockImapSession;
-    private MailboxSession mockMailboxSession;
+    private MailboxSession mailboxSession;
 
     @Before
     public void setUp() {
@@ -74,7 +75,7 @@ public class CopyProcessorTest {
         mockStatusResponseFactory = mock(StatusResponseFactory.class);
         mockResponder = mock(ImapProcessor.Responder.class);
         mockImapSession = mock(ImapSession.class);
-        mockMailboxSession = mock(MailboxSession.class);
+        mailboxSession = MailboxSession.create(USER.asString());
 
         testee = new CopyProcessor(mockNextProcessor, mockMailboxManager, mockStatusResponseFactory, new NoopMetricFactory());
     }
@@ -83,35 +84,31 @@ public class CopyProcessorTest {
     public void processShouldWork() throws Exception {
         CopyRequest copyRequest = new CopyRequest(ImapCommand.anyStateCommand("Name"), new IdRange[] {new IdRange(4, 6)}, ImapConstants.INBOX_NAME, true, TAG);
 
-        MailboxSession.User user = mock(MailboxSession.User.class);
-        when(user.getUserName()).thenReturn("username");
-        when(mockMailboxSession.getUser()).thenReturn(user);
-        when(mockMailboxSession.getSessionId()).thenReturn(SESSION_ID_42);
         when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED);
-        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mockMailboxSession);
-        MailboxPath inbox = MailboxPath.inbox(mockMailboxSession);
+        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
+        MailboxPath inbox = MailboxPath.inbox(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);
-        when(mockMailboxManager.mailboxExists(inbox, mockMailboxSession)).thenReturn(true);
+        when(mockMailboxManager.mailboxExists(inbox, mailboxSession)).thenReturn(true);
         MessageManager targetMessageManager = mock(MessageManager.class);
-        when(mockMailboxManager.getMailbox(inbox, mockMailboxSession)).thenReturn(targetMessageManager);
-        when(targetMessageManager.getMetaData(false, mockMailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN)).thenReturn(new MailboxMetaData(null, null, 58L, MessageUid.of(18), 8L, 8L, 8L, MessageUid.of(8), true, true, null));
+        when(mockMailboxManager.getMailbox(inbox, mailboxSession)).thenReturn(targetMessageManager);
+        when(targetMessageManager.getMetaData(false, mailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN)).thenReturn(new MailboxMetaData(null, null, 58L, MessageUid.of(18), 8L, 8L, 8L, MessageUid.of(8), true, true, null));
         StatusResponse okResponse = mock(StatusResponse.class);
         when(mockStatusResponseFactory.taggedOk(any(String.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, mockMailboxSession)).thenReturn(Lists.<MessageRange>newArrayList(MessageRange.range(MessageUid.of(4), MessageUid.of(6))));
+        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);
 
-        verify(mockMailboxManager).startProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).endProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).mailboxExists(inbox, mockMailboxSession);
-        verify(mockMailboxManager).getMailbox(inbox, mockMailboxSession);
-        verify(mockMailboxManager).copyMessages(MessageRange.range(MessageUid.of(4), MessageUid.of(6)), selected, inbox, mockMailboxSession);
-        verify(targetMessageManager).getMetaData(false, mockMailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN);
+        verify(mockMailboxManager).startProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).endProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).mailboxExists(inbox, mailboxSession);
+        verify(mockMailboxManager).getMailbox(inbox, mailboxSession);
+        verify(mockMailboxManager).copyMessages(MessageRange.range(MessageUid.of(4), MessageUid.of(6)), selected, inbox, mailboxSession);
+        verify(targetMessageManager).getMetaData(false, mailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN);
         verify(mockResponder).respond(okResponse);
         verifyNoMoreInteractions(mockMailboxManager, targetMessageManager, mockResponder, mockNextProcessor);
     }
@@ -121,35 +118,31 @@ 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);
 
-        MailboxSession.User user = mock(MailboxSession.User.class);
-        when(user.getUserName()).thenReturn("username");
-        when(mockMailboxSession.getUser()).thenReturn(user);
-        when(mockMailboxSession.getSessionId()).thenReturn(SESSION_ID_42);
         when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED);
-        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mockMailboxSession);
-        MailboxPath inbox = MailboxPath.inbox(mockMailboxSession);
+        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
+        MailboxPath inbox = MailboxPath.inbox(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);
-        when(mockMailboxManager.mailboxExists(inbox, mockMailboxSession)).thenReturn(true);
+        when(mockMailboxManager.mailboxExists(inbox, mailboxSession)).thenReturn(true);
         MessageManager targetMessageManager = mock(MessageManager.class);
-        when(mockMailboxManager.getMailbox(inbox, mockMailboxSession)).thenReturn(targetMessageManager);
-        when(targetMessageManager.getMetaData(false, mockMailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN)).thenReturn(new MailboxMetaData(null, null, 58L, MessageUid.of(18), 8L, 8L, 8L, MessageUid.of(8), true, true, null));
+        when(mockMailboxManager.getMailbox(inbox, mailboxSession)).thenReturn(targetMessageManager);
+        when(targetMessageManager.getMetaData(false, mailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN)).thenReturn(new MailboxMetaData(null, null, 58L, MessageUid.of(18), 8L, 8L, 8L, MessageUid.of(8), true, true, null));
         StatusResponse okResponse = mock(StatusResponse.class);
         when(mockStatusResponseFactory.taggedOk(any(String.class), any(ImapCommand.class), any(HumanReadableText.class), any(StatusResponse.ResponseCode.class))).thenReturn(okResponse);
 
         testee.process(copyRequest, mockResponder, mockImapSession);
 
-        verify(mockMailboxManager).startProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).endProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).mailboxExists(inbox, mockMailboxSession);
-        verify(mockMailboxManager).getMailbox(inbox, mockMailboxSession);
-        verify(mockMailboxManager).copyMessages(MessageRange.range(MessageUid.of(5), MessageUid.of(6)), selected, inbox, mockMailboxSession);
-        verify(mockMailboxManager).copyMessages(MessageRange.range(MessageUid.of(1), MessageUid.of(3)), selected, inbox, mockMailboxSession);
-        verify(targetMessageManager).getMetaData(false, mockMailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN);
+        verify(mockMailboxManager).startProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).endProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).mailboxExists(inbox, mailboxSession);
+        verify(mockMailboxManager).getMailbox(inbox, mailboxSession);
+        verify(mockMailboxManager).copyMessages(MessageRange.range(MessageUid.of(5), MessageUid.of(6)), selected, inbox, mailboxSession);
+        verify(mockMailboxManager).copyMessages(MessageRange.range(MessageUid.of(1), MessageUid.of(3)), selected, inbox, mailboxSession);
+        verify(targetMessageManager).getMetaData(false, mailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN);
         verify(mockResponder).respond(okResponse);
         verifyNoMoreInteractions(mockMailboxManager, targetMessageManager, mockResponder, mockNextProcessor);
     }
@@ -158,29 +151,25 @@ 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);
 
-        MailboxSession.User user = mock(MailboxSession.User.class);
-        when(user.getUserName()).thenReturn("username");
-        when(mockMailboxSession.getUser()).thenReturn(user);
-        when(mockMailboxSession.getSessionId()).thenReturn(SESSION_ID_42);
         when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED);
-        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mockMailboxSession);
-        MailboxPath inbox = MailboxPath.inbox(mockMailboxSession);
+        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
+        MailboxPath inbox = MailboxPath.inbox(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);
-        when(mockMailboxManager.mailboxExists(inbox, mockMailboxSession)).thenReturn(false);
+        when(mockMailboxManager.mailboxExists(inbox, mailboxSession)).thenReturn(false);
 
         StatusResponse noResponse = mock(StatusResponse.class);
         when(mockStatusResponseFactory.taggedNo(any(String.class), any(ImapCommand.class), any(HumanReadableText.class), any(StatusResponse.ResponseCode.class))).thenReturn(noResponse);
 
         testee.process(copyRequest, mockResponder, mockImapSession);
 
-        verify(mockMailboxManager).startProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).endProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).mailboxExists(inbox, mockMailboxSession);
+        verify(mockMailboxManager).startProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).endProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).mailboxExists(inbox, mailboxSession);
         verify(mockResponder).respond(noResponse);
         verifyNoMoreInteractions(mockMailboxManager, mockResponder, mockNextProcessor);
     }
@@ -189,29 +178,25 @@ 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);
 
-        MailboxSession.User user = mock(MailboxSession.User.class);
-        when(user.getUserName()).thenReturn("username");
-        when(mockMailboxSession.getUser()).thenReturn(user);
-        when(mockMailboxSession.getSessionId()).thenReturn(SESSION_ID_42);
         when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED);
-        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mockMailboxSession);
-        MailboxPath inbox = MailboxPath.inbox(mockMailboxSession);
+        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
+        MailboxPath inbox = MailboxPath.inbox(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);
-        when(mockMailboxManager.mailboxExists(inbox, mockMailboxSession)).thenThrow(new MailboxException());
+        when(mockMailboxManager.mailboxExists(inbox, mailboxSession)).thenThrow(new MailboxException());
 
         StatusResponse noResponse = mock(StatusResponse.class);
         when(mockStatusResponseFactory.taggedNo(any(String.class), any(ImapCommand.class), any(HumanReadableText.class))).thenReturn(noResponse);
 
         testee.process(copyRequest, mockResponder, mockImapSession);
 
-        verify(mockMailboxManager).startProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).endProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).mailboxExists(inbox, mockMailboxSession);
+        verify(mockMailboxManager).startProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).endProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).mailboxExists(inbox, mailboxSession);
         verify(mockResponder).respond(noResponse);
         verifyNoMoreInteractions(mockMailboxManager, mockResponder, mockNextProcessor);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
----------------------------------------------------------------------
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 6cc2cbd..fcc7cc4 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
@@ -40,7 +40,6 @@ import org.apache.james.imap.message.request.DeleteACLRequest;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MailboxSession.User;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.MetaData;
 import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
@@ -82,8 +81,8 @@ public class DeleteACLProcessorTest {
         mailboxManager = mock(MailboxManager.class);
         subject = new DeleteACLProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory());
         imapSession = mock(ImapSession.class);
-        mailboxSession = mock(MailboxSession.class);
-        User user1 = mock(User.class);
+        mailboxSession = MailboxSession.create(USER_1);
+
         MessageManager messageManager = mock(MessageManager.class);
         metaData = mock(MetaData.class);
         responder = mock(Responder.class);
@@ -92,10 +91,6 @@ public class DeleteACLProcessorTest {
             .thenReturn(mailboxSession);
         when(imapSession.getState())
             .thenReturn(ImapSessionState.AUTHENTICATED);
-        when(mailboxSession.getUser())
-            .thenReturn(user1);
-        when(user1.getUserName())
-            .thenReturn(USER_1);
         when(messageManager.getMetaData(anyBoolean(), any(MailboxSession.class), any(FetchGroup.class)))
             .thenReturn(metaData);
         when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
----------------------------------------------------------------------
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 8522169..a87d530 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
@@ -41,7 +41,6 @@ import org.apache.james.imap.message.response.ACLResponse;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MailboxSession.User;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.MetaData;
 import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
@@ -79,8 +78,7 @@ public class GetACLProcessorTest {
         mailboxManager = mock(MailboxManager.class);
         subject = new GetACLProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory());
         imapSession = mock(ImapSession.class);
-        mailboxSession = mock(MailboxSession.class);
-        User user1 = mock(User.class);
+        mailboxSession = MailboxSession.create(USER_1);
         MessageManager messageManager = mock(MessageManager.class);
         metaData = mock(MetaData.class);
         responder = mock(Responder.class);
@@ -91,10 +89,6 @@ public class GetACLProcessorTest {
             .thenReturn(mailboxSession);
         when(imapSession.getState())
             .thenReturn(ImapSessionState.AUTHENTICATED);
-        when(mailboxSession.getUser())
-            .thenReturn(user1);
-        when(user1.getUserName())
-            .thenReturn(USER_1);
         when(messageManager.getMetaData(anyBoolean(), any(MailboxSession.class), any(FetchGroup.class)))
             .thenReturn(metaData);
         when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
----------------------------------------------------------------------
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 648d139..bc29406 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
@@ -69,28 +69,7 @@ public class LSubProcessorTest {
     private static final String MAILBOX_A = "A.MAILBOX";
 
     private static final String TAG = "TAG";
-    public static final MailboxSession.User USER = new MailboxSession.User() {
-        @Override
-        public List<Locale> getLocalePreferences() {
-            return new ArrayList<>();
-        }
-
-        @Override
-        public String getPassword() {
-            return "test";
-        }
-
-        @Override
-        public String getUserName() {
-            return "test";
-        }
-
-        @Override
-        public boolean isSameUser(String username) {
-            return "test".equalsIgnoreCase(username);
-        }
-
-    };
+    public static final String USER = "test";
 
     LSubProcessor processor;
     ImapProcessor next;
@@ -117,7 +96,7 @@ public class LSubProcessorTest {
         statusResponse = mock(StatusResponse.class);
         responderImpl = responder;
         manager =  mock(SubscriptionManager.class);
-        mailboxSession = mock(MailboxSession.class);
+        mailboxSession = MailboxSession.create(USER);
         processor = new LSubProcessor(next, mock(MailboxManager.class), manager, serverResponseFactory, new NoopMetricFactory());
     }
 
@@ -130,8 +109,6 @@ public class LSubProcessorTest {
         subscriptions.add(CHILD_ONE);
         subscriptions.add(CHILD_TWO);
 
-        when(mailboxSession.getUser()).thenReturn(USER);
-
         expectSubscriptions();
         when(serverResponseFactory.taggedOk(eq(TAG), same(command), eq(HumanReadableText.COMPLETED)))
             .thenReturn(statusResponse);
@@ -154,8 +131,6 @@ public class LSubProcessorTest {
         subscriptions.add(CHILD_ONE);
         subscriptions.add(CHILD_TWO);
 
-        when(mailboxSession.getUser()).thenReturn(USER);
-
         expectSubscriptions();
         when(serverResponseFactory.taggedOk(eq(TAG), same(command), eq(HumanReadableText.COMPLETED)))
             .thenReturn(statusResponse);
@@ -178,8 +153,6 @@ public class LSubProcessorTest {
         subscriptions.add(CHILD_ONE);
         subscriptions.add(CHILD_TWO);
 
-        when(mailboxSession.getUser()).thenReturn(USER);
-
         expectSubscriptions();
         when(serverResponseFactory.taggedOk(eq(TAG), same(command), eq(HumanReadableText.COMPLETED)))
             .thenReturn(statusResponse);
@@ -197,8 +170,6 @@ public class LSubProcessorTest {
         subscriptions.add(MAILBOX_A);
         subscriptions.add(MAILBOX_B);
         subscriptions.add(MAILBOX_C);
-
-        when(mailboxSession.getUser()).thenReturn(USER);
         expectSubscriptions();
         when(serverResponseFactory.taggedOk(eq(TAG), same(command), eq(HumanReadableText.COMPLETED)))
             .thenReturn(statusResponse);
@@ -214,7 +185,6 @@ public class LSubProcessorTest {
 
     private void expectSubscriptions() throws Exception {
         when(session.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
-        when(mailboxSession.getPathDelimiter()).thenReturn(HIERARCHY_DELIMITER);
         when(manager.subscriptions(mailboxSession)).thenReturn(subscriptions);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
----------------------------------------------------------------------
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 ff7f0e5..b61f2ae 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
@@ -41,7 +41,6 @@ import org.apache.james.imap.message.response.ListRightsResponse;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MailboxSession.User;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.MetaData;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -84,8 +83,7 @@ public class ListRightsProcessorTest {
         mailboxManager = mock(MailboxManager.class);
         subject = new ListRightsProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory());
         imapSession = mock(ImapSession.class);
-        mailboxSession = mock(MailboxSession.class);
-        User user1 = mock(User.class);
+        mailboxSession = MailboxSession.create(USER_1);
         MessageManager messageManager = mock(MessageManager.class);
         metaData = mock(MetaData.class);
         responder = mock(Responder.class);
@@ -96,10 +94,6 @@ public class ListRightsProcessorTest {
             .thenReturn(mailboxSession);
         when(imapSession.getState())
             .thenReturn(ImapSessionState.AUTHENTICATED);
-        when(mailboxSession.getUser())
-            .thenReturn(user1);
-        when(user1.getUserName())
-            .thenReturn(USER_1);
         when(messageManager.getMetaData(anyBoolean(), any(MailboxSession.class), any(MetaData.FetchGroup.class)))
             .thenReturn(metaData);
         when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java
----------------------------------------------------------------------
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 38fb706..244115e 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
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.when;
 
 import java.util.Optional;
 
+import org.apache.james.core.User;
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.ImapSessionState;
@@ -58,9 +59,8 @@ import org.junit.Test;
 import com.google.common.collect.Lists;
 
 public class MoveProcessorTest {
-
     public static final String TAG = "TAG";
-    private static final MailboxSession.SessionId SESSION_ID_42 = MailboxSession.SessionId.of(42L);
+    private static final User USER = User.fromUsername("username");
 
     private MoveProcessor testee;
     private ImapProcessor mockNextProcessor;
@@ -68,7 +68,7 @@ public class MoveProcessorTest {
     private StatusResponseFactory mockStatusResponseFactory;
     private ImapProcessor.Responder mockResponder;
     private ImapSession mockImapSession;
-    private MailboxSession mockMailboxSession;
+    private MailboxSession mailboxSession;
 
     @Before
     public void setUp() {
@@ -77,7 +77,7 @@ public class MoveProcessorTest {
         mockStatusResponseFactory = mock(StatusResponseFactory.class);
         mockResponder = mock(ImapProcessor.Responder.class);
         mockImapSession = mock(ImapSession.class);
-        mockMailboxSession = mock(MailboxSession.class);
+        mailboxSession = MailboxSession.create(USER.asString());
 
         when(mockMailboxManager.hasCapability(eq(MailboxCapabilities.Move))).thenReturn(true);
         testee = new MoveProcessor(mockNextProcessor, mockMailboxManager, mockStatusResponseFactory, new NoopMetricFactory());
@@ -100,37 +100,33 @@ public class MoveProcessorTest {
     public void processShouldWork() throws Exception {
         MoveRequest moveRequest = new MoveRequest(ImapCommand.anyStateCommand("Name"), new IdRange[] {new IdRange(4, 6)}, ImapConstants.INBOX_NAME, true, TAG);
 
-        MailboxSession.User user = mock(MailboxSession.User.class);
-        when(user.getUserName()).thenReturn("username");
-        when(mockMailboxSession.getUser()).thenReturn(user);
-        when(mockMailboxSession.getSessionId()).thenReturn(SESSION_ID_42);
         when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED);
-        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mockMailboxSession);
-        MailboxPath inbox = MailboxPath.inbox(mockMailboxSession);
+        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
+        MailboxPath inbox = MailboxPath.inbox(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);
-        when(mockMailboxManager.mailboxExists(inbox, mockMailboxSession)).thenReturn(true);
+        when(mockMailboxManager.mailboxExists(inbox, mailboxSession)).thenReturn(true);
         MessageManager targetMessageManager = mock(MessageManager.class);
-        when(mockMailboxManager.getMailbox(inbox, mockMailboxSession)).thenReturn(targetMessageManager);
-        when(targetMessageManager.getMetaData(false, mockMailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN))
+        when(mockMailboxManager.getMailbox(inbox, mailboxSession)).thenReturn(targetMessageManager);
+        when(targetMessageManager.getMetaData(false, mailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN))
             .thenReturn(new MailboxMetaData(null, null, 58L, MessageUid.of(18), 8L, 8L, 8L, MessageUid.of(8), true, true, null));
         StatusResponse okResponse = mock(StatusResponse.class);
         when(mockStatusResponseFactory.taggedOk(any(String.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, mockMailboxSession))
+        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);
 
-        verify(mockMailboxManager).startProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).endProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).mailboxExists(inbox, mockMailboxSession);
-        verify(mockMailboxManager).getMailbox(inbox, mockMailboxSession);
-        verify(mockMailboxManager).moveMessages(MessageRange.range(MessageUid.of(4), MessageUid.of(6)), selected, inbox, mockMailboxSession);
-        verify(targetMessageManager).getMetaData(false, mockMailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN);
+        verify(mockMailboxManager).startProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).endProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).mailboxExists(inbox, mailboxSession);
+        verify(mockMailboxManager).getMailbox(inbox, mailboxSession);
+        verify(mockMailboxManager).moveMessages(MessageRange.range(MessageUid.of(4), MessageUid.of(6)), selected, inbox, mailboxSession);
+        verify(targetMessageManager).getMetaData(false, mailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN);
         verify(mockResponder).respond(okResponse);
         verifyNoMoreInteractions(mockMailboxManager, targetMessageManager, mockResponder, mockNextProcessor);
     }
@@ -140,36 +136,32 @@ public class MoveProcessorTest {
     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);
 
-        MailboxSession.User user = mock(MailboxSession.User.class);
-        when(user.getUserName()).thenReturn("username");
-        when(mockMailboxSession.getUser()).thenReturn(user);
-        when(mockMailboxSession.getSessionId()).thenReturn(SESSION_ID_42);
         when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED);
-        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mockMailboxSession);
-        MailboxPath inbox = MailboxPath.inbox(mockMailboxSession);
+        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
+        MailboxPath inbox = MailboxPath.inbox(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);
-        when(mockMailboxManager.mailboxExists(inbox, mockMailboxSession)).thenReturn(true);
+        when(mockMailboxManager.mailboxExists(inbox, mailboxSession)).thenReturn(true);
         MessageManager targetMessageManager = mock(MessageManager.class);
-        when(mockMailboxManager.getMailbox(inbox, mockMailboxSession)).thenReturn(targetMessageManager);
-        when(targetMessageManager.getMetaData(false, mockMailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN))
+        when(mockMailboxManager.getMailbox(inbox, mailboxSession)).thenReturn(targetMessageManager);
+        when(targetMessageManager.getMetaData(false, mailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN))
             .thenReturn(new MailboxMetaData(null, null, 58L, MessageUid.of(18), 8L, 8L, 8L, MessageUid.of(8), true, true, null));
         StatusResponse okResponse = mock(StatusResponse.class);
         when(mockStatusResponseFactory.taggedOk(any(String.class), any(ImapCommand.class), any(HumanReadableText.class), any(StatusResponse.ResponseCode.class))).thenReturn(okResponse);
 
         testee.process(moveRequest, mockResponder, mockImapSession);
 
-        verify(mockMailboxManager).startProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).endProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).mailboxExists(inbox, mockMailboxSession);
-        verify(mockMailboxManager).getMailbox(inbox, mockMailboxSession);
-        verify(mockMailboxManager).moveMessages(MessageRange.range(MessageUid.of(5), MessageUid.of(6)), selected, inbox, mockMailboxSession);
-        verify(mockMailboxManager).moveMessages(MessageRange.range(MessageUid.of(1), MessageUid.of(3)), selected, inbox, mockMailboxSession);
-        verify(targetMessageManager).getMetaData(false, mockMailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN);
+        verify(mockMailboxManager).startProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).endProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).mailboxExists(inbox, mailboxSession);
+        verify(mockMailboxManager).getMailbox(inbox, mailboxSession);
+        verify(mockMailboxManager).moveMessages(MessageRange.range(MessageUid.of(5), MessageUid.of(6)), selected, inbox, mailboxSession);
+        verify(mockMailboxManager).moveMessages(MessageRange.range(MessageUid.of(1), MessageUid.of(3)), selected, inbox, mailboxSession);
+        verify(targetMessageManager).getMetaData(false, mailboxSession, MessageManager.MetaData.FetchGroup.NO_UNSEEN);
         verify(mockResponder).respond(okResponse);
         verifyNoMoreInteractions(mockMailboxManager, targetMessageManager, mockResponder, mockNextProcessor);
     }
@@ -178,29 +170,25 @@ public class MoveProcessorTest {
     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);
 
-        MailboxSession.User user = mock(MailboxSession.User.class);
-        when(user.getUserName()).thenReturn("username");
-        when(mockMailboxSession.getUser()).thenReturn(user);
-        when(mockMailboxSession.getSessionId()).thenReturn(SESSION_ID_42);
         when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED);
-        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mockMailboxSession);
-        MailboxPath inbox = MailboxPath.inbox(mockMailboxSession);
+        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
+        MailboxPath inbox = MailboxPath.inbox(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);
-        when(mockMailboxManager.mailboxExists(inbox, mockMailboxSession)).thenReturn(false);
+        when(mockMailboxManager.mailboxExists(inbox, mailboxSession)).thenReturn(false);
 
         StatusResponse noResponse = mock(StatusResponse.class);
         when(mockStatusResponseFactory.taggedNo(any(String.class), any(ImapCommand.class), any(HumanReadableText.class), any(StatusResponse.ResponseCode.class))).thenReturn(noResponse);
 
         testee.process(moveRequest, mockResponder, mockImapSession);
 
-        verify(mockMailboxManager).startProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).endProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).mailboxExists(inbox, mockMailboxSession);
+        verify(mockMailboxManager).startProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).endProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).mailboxExists(inbox, mailboxSession);
         verify(mockResponder).respond(noResponse);
         verifyNoMoreInteractions(mockMailboxManager, mockResponder, mockNextProcessor);
     }
@@ -209,29 +197,25 @@ public class MoveProcessorTest {
     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);
 
-        MailboxSession.User user = mock(MailboxSession.User.class);
-        when(user.getUserName()).thenReturn("username");
-        when(mockMailboxSession.getUser()).thenReturn(user);
-        when(mockMailboxSession.getSessionId()).thenReturn(SESSION_ID_42);
         when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED);
-        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mockMailboxSession);
-        MailboxPath inbox = MailboxPath.inbox(mockMailboxSession);
+        when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
+        MailboxPath inbox = MailboxPath.inbox(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);
-        when(mockMailboxManager.mailboxExists(inbox, mockMailboxSession)).thenThrow(new MailboxException());
+        when(mockMailboxManager.mailboxExists(inbox, mailboxSession)).thenThrow(new MailboxException());
 
         StatusResponse noResponse = mock(StatusResponse.class);
         when(mockStatusResponseFactory.taggedNo(any(String.class), any(ImapCommand.class), any(HumanReadableText.class))).thenReturn(noResponse);
 
         testee.process(moveRequest, mockResponder, mockImapSession);
 
-        verify(mockMailboxManager).startProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).endProcessingRequest(mockMailboxSession);
-        verify(mockMailboxManager).mailboxExists(inbox, mockMailboxSession);
+        verify(mockMailboxManager).startProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).endProcessingRequest(mailboxSession);
+        verify(mockMailboxManager).mailboxExists(inbox, mailboxSession);
         verify(mockResponder).respond(noResponse);
         verifyNoMoreInteractions(mockMailboxManager, mockResponder, mockNextProcessor);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/test/java/org/apache/james/imap/processor/NamespaceProcessorTest.java
----------------------------------------------------------------------
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 b6162e6..85bef10 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
@@ -59,7 +59,7 @@ public class NamespaceProcessorTest {
     NamespaceProcessor subject;
     StatusResponseFactory statusResponseStub;
     ImapSession imapSessionStub;
-    MailboxSession mailboxSessionStub;
+    MailboxSession mailboxSession;
     NamespaceRequest namespaceRequest;
     Collection<String> sharedSpaces;
     MailboxManager mailboxManagerStub;
@@ -71,7 +71,7 @@ public class NamespaceProcessorTest {
         mailboxManagerStub = mock(MailboxManager.class);
         subject = new NamespaceProcessor(mock(ImapProcessor.class), mailboxManagerStub, statusResponseStub, new NoopMetricFactory());
         imapSessionStub = mock(ImapSession.class);
-        mailboxSessionStub = mock(MailboxSession.class);
+        mailboxSession = mock(MailboxSession.class);
      
         namespaceRequest = new NamespaceRequest(ImapCommand.anyStateCommand("Name"), "TAG");
        
@@ -80,13 +80,13 @@ public class NamespaceProcessorTest {
     @Test
     public void testNamespaceResponseShouldContainPersonalAndUserSpaces() {
         when(imapSessionStub.supportMultipleNamespaces()).thenReturn(true);
-        when(imapSessionStub.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSessionStub);
+        when(imapSessionStub.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
         when(imapSessionStub.getAttribute(EnableProcessor.ENABLED_CAPABILITIES)).thenReturn(null);
 
-        when(mailboxSessionStub.getPersonalSpace()).thenReturn(PERSONAL_PREFIX);
-        when(mailboxSessionStub.getOtherUsersSpace()).thenReturn(USERS_PREFIX);
-        when(mailboxSessionStub.getSharedSpaces()).thenReturn(new ArrayList<>());
-        when(mailboxSessionStub.getPathDelimiter()).thenReturn(MailboxConstants.DEFAULT_DELIMITER);
+        when(mailboxSession.getPersonalSpace()).thenReturn(PERSONAL_PREFIX);
+        when(mailboxSession.getOtherUsersSpace()).thenReturn(USERS_PREFIX);
+        when(mailboxSession.getSharedSpaces()).thenReturn(new ArrayList<>());
+        when(mailboxSession.getPathDelimiter()).thenReturn(MailboxConstants.DEFAULT_DELIMITER);
 
         when(imapSessionStub.getState()).thenReturn(ImapSessionState.AUTHENTICATED);
         when(statusResponseStub.taggedOk(anyString(), any(ImapCommand.class), any(HumanReadableText.class)))
@@ -105,13 +105,13 @@ public class NamespaceProcessorTest {
     @Test
     public void testNamespaceResponseShouldContainSharedSpaces() {
         when(imapSessionStub.supportMultipleNamespaces()).thenReturn(true);
-        when(imapSessionStub.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSessionStub);
+        when(imapSessionStub.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
         when(imapSessionStub.getAttribute(EnableProcessor.ENABLED_CAPABILITIES)).thenReturn(null);
 
-        when(mailboxSessionStub.getPersonalSpace()).thenReturn(PERSONAL_PREFIX);
-        when(mailboxSessionStub.getOtherUsersSpace()).thenReturn(USERS_PREFIX);
-        when(mailboxSessionStub.getSharedSpaces()).thenReturn(Arrays.asList(SHARED_PREFIX));
-        when(mailboxSessionStub.getPathDelimiter()).thenReturn(MailboxConstants.DEFAULT_DELIMITER);
+        when(mailboxSession.getPersonalSpace()).thenReturn(PERSONAL_PREFIX);
+        when(mailboxSession.getOtherUsersSpace()).thenReturn(USERS_PREFIX);
+        when(mailboxSession.getSharedSpaces()).thenReturn(Arrays.asList(SHARED_PREFIX));
+        when(mailboxSession.getPathDelimiter()).thenReturn(MailboxConstants.DEFAULT_DELIMITER);
 
         when(imapSessionStub.getState()).thenReturn(ImapSessionState.AUTHENTICATED);
         when(statusResponseStub.taggedOk(anyString(), any(ImapCommand.class), any(HumanReadableText.class)))

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
----------------------------------------------------------------------
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 fd9be52..38e0186 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
@@ -122,7 +122,7 @@ public class SearchProcessorTest {
         statusResponse = mock(StatusResponse.class);
         mailbox = mock(MessageManager.class);
         mailboxManager = mock(MailboxManager.class);
-        mailboxSession = mock(MailboxSession.class);
+        mailboxSession = MailboxSession.create("user");
         selectedMailbox = mock(SelectedMailbox.class);
         
         processor = new SearchProcessor(next,  mailboxManager, serverResponseFactory, new NoopMetricFactory());

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
----------------------------------------------------------------------
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 8f70752..dccd747 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
@@ -40,7 +40,6 @@ import org.apache.james.imap.message.request.SetACLRequest;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MailboxSession.User;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.MetaData;
 import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
@@ -86,8 +85,7 @@ public class SetACLProcessorTest {
         mailboxManager = mock(MailboxManager.class);
         subject = new SetACLProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory());
         imapSession = mock(ImapSession.class);
-        mailboxSession = mock(MailboxSession.class);
-        User user1 = mock(User.class);
+        mailboxSession = MailboxSession.create(USER_1);
         MessageManager messageManager = mock(MessageManager.class);
         MetaData metaData = mock(MetaData.class);
         responder = mock(Responder.class);
@@ -98,10 +96,6 @@ public class SetACLProcessorTest {
             .thenReturn(mailboxSession);
         when(imapSession.getState())
             .thenReturn(ImapSessionState.AUTHENTICATED);
-        when(mailboxSession.getUser())
-            .thenReturn(user1);
-        when(user1.getUserName())
-            .thenReturn(USER_1);
         when(messageManager.getMetaData(anyBoolean(), any(MailboxSession.class), any(FetchGroup.class)))
             .thenReturn(metaData);
         when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
----------------------------------------------------------------------
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 22b8acb..59cc629 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
@@ -135,7 +135,7 @@ public class MailboxEventAnalyserTest {
     @Test
     public void testShouldBeNoSizeChangeOnOtherEvent() {
         MailboxListener.MailboxEvent event = new MailboxListener.MailboxEvent(MAILBOX_SESSION.getSessionId(),
-            MAILBOX_SESSION.getUser().getCoreUser(), MAILBOX_PATH, MAILBOX_ID) {};
+            MAILBOX_SESSION.getUser(), MAILBOX_PATH, MAILBOX_ID) {};
       
         testee.event(event);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/88108560/server/protocols/jmap/src/test/java/org/apache/james/jmap/DownloadServletTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DownloadServletTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DownloadServletTest.java
index 2943b64..0e69a65 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DownloadServletTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DownloadServletTest.java
@@ -39,7 +39,7 @@ public class DownloadServletTest {
 
     @Test
     public void downloadMayFailWhenUnknownErrorOnAttachmentManager() throws Exception {
-        MailboxSession mailboxSession = mock(MailboxSession.class);
+        MailboxSession mailboxSession = MailboxSession.create("User");
         BlobManager mockedBlobManager = mock(BlobManager.class);
         when(mockedBlobManager.retrieve(any(), eq(mailboxSession)))
             .thenThrow(new MailboxException());


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[12/13] james-project git commit: MAILBOX-363 MessageMoveEvent should not reference full messages

Posted by bt...@apache.org.
MAILBOX-363 MessageMoveEvent should not reference full messages

It makes more sens to reference only their MessageId


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/9cf3186f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/9cf3186f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/9cf3186f

Branch: refs/heads/master
Commit: 9cf3186fe24bde89313593c8b0e387b966ff871a
Parents: d1fdf8b
Author: Benoit Tellier <bt...@linagora.com>
Authored: Mon Dec 17 17:23:24 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Dec 18 14:49:31 2018 +0700

----------------------------------------------------------------------
 .../spamassassin/SpamAssassinListener.java      | 14 +++---
 .../spamassassin/SpamAssassinListenerTest.java  | 49 ++++++++------------
 .../mailbox/store/StoreMessageIdManager.java    |  3 +-
 .../mailbox/store/StoreMessageManager.java      | 13 +++---
 .../james/mailbox/store/event/EventFactory.java |  7 +--
 .../store/event/MailboxEventDispatcher.java     |  7 ++-
 .../mailbox/store/event/MessageMoveEvent.java   | 41 ++++++++--------
 .../store/event/MessageMoveEventTest.java       | 21 ++-------
 8 files changed, 69 insertions(+), 86 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/9cf3186f/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
index 3c5e937..56b512c 100644
--- a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
+++ b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
@@ -83,7 +83,7 @@ public class SpamAssassinListener implements SpamEventListener {
         try {
             MailboxSession session = mailboxManager.createSystemSession(getClass().getCanonicalName());
             if (event instanceof MessageMoveEvent) {
-                handleMessageMove(event, (MessageMoveEvent) event);
+                handleMessageMove(event, session, (MessageMoveEvent) event);
             }
             if (event instanceof Added) {
                 handleAdded(event, session, (Added) event);
@@ -107,14 +107,14 @@ public class SpamAssassinListener implements SpamEventListener {
         }
     }
 
-    private void handleMessageMove(Event event, MessageMoveEvent messageMoveEvent) {
+    private void handleMessageMove(Event event, MailboxSession session, MessageMoveEvent messageMoveEvent) throws MailboxException {
         if (isMessageMovedToSpamMailbox(messageMoveEvent)) {
             LOGGER.debug("Spam event detected");
-            ImmutableList<InputStream> messages = retrieveMessages(messageMoveEvent);
+            ImmutableList<InputStream> messages = retrieveMessages(messageMoveEvent, session);
             spamAssassin.learnSpam(messages, event.getUser());
         }
         if (isMessageMovedOutOfSpamMailbox(messageMoveEvent)) {
-            ImmutableList<InputStream> messages = retrieveMessages(messageMoveEvent);
+            ImmutableList<InputStream> messages = retrieveMessages(messageMoveEvent, session);
             spamAssassin.learnHam(messages, event.getUser());
         }
     }
@@ -138,9 +138,9 @@ public class SpamAssassinListener implements SpamEventListener {
         }
     }
 
-    private ImmutableList<InputStream> retrieveMessages(MessageMoveEvent messageMoveEvent) {
-        return messageMoveEvent.getMessages()
-            .values()
+    private ImmutableList<InputStream> retrieveMessages(MessageMoveEvent messageMoveEvent, MailboxSession session) throws MailboxException {
+        return mapperFactory.getMessageIdMapper(session)
+            .find(messageMoveEvent.getMessageIds(), MessageMapper.FetchType.Full)
             .stream()
             .map(Throwing.function(Message::getFullContent))
             .collect(Guavate.toImmutableList());

http://git-wip-us.apache.org/repos/asf/james-project/blob/9cf3186f/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
index 3fc4cd6..13d1516 100644
--- a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
+++ b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
@@ -59,7 +59,6 @@ import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSortedMap;
 
 public class SpamAssassinListenerTest {
@@ -68,6 +67,7 @@ public class SpamAssassinListenerTest {
     private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create(USER);
     private static final int UID_VALIDITY = 43;
     private static final MessageUid UID = MessageUid.of(45);
+    private static final TestMessageId MESSAGE_ID = TestMessageId.of(45);
 
     private SpamAssassin spamAssassin;
     private SpamAssassinListener listener;
@@ -105,60 +105,56 @@ public class SpamAssassinListenerTest {
     }
 
     @Test
-    public void isEventOnSpamMailboxShouldReturnFalseWhenMessageIsMovedToANonSpamMailbox() throws Exception {
+    public void isEventOnSpamMailboxShouldReturnFalseWhenMessageIsMovedToANonSpamMailbox() {
         MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
             .session(MAILBOX_SESSION)
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(mailboxId1)
                 .targetMailboxIds(mailboxId2)
                 .build())
-            .messages(ImmutableMap.of(UID,
-                createMessage(mailbox2)))
+            .messageId(MESSAGE_ID)
             .build();
 
         assertThat(listener.isMessageMovedToSpamMailbox(messageMoveEvent)).isFalse();
     }
 
     @Test
-    public void isEventOnSpamMailboxShouldReturnTrueWhenMailboxIsSpam() throws Exception {
+    public void isEventOnSpamMailboxShouldReturnTrueWhenMailboxIsSpam() {
         MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
             .session(MAILBOX_SESSION)
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(mailboxId1)
                 .targetMailboxIds(spamMailboxId)
                 .build())
-            .messages(ImmutableMap.of(UID,
-                createMessage(mailbox1)))
+            .messageId(MESSAGE_ID)
             .build();
 
         assertThat(listener.isMessageMovedToSpamMailbox(messageMoveEvent)).isTrue();
     }
 
     @Test
-    public void isEventOnSpamMailboxShouldReturnFalseWhenMailboxIsSpamOtherCase() throws Exception {
+    public void isEventOnSpamMailboxShouldReturnFalseWhenMailboxIsSpamOtherCase() {
         MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
             .session(MAILBOX_SESSION)
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(mailboxId1)
                 .targetMailboxIds(spamCapitalMailboxId)
                 .build())
-            .messages(ImmutableMap.of(UID,
-                createMessage(mailbox1)))
+            .messageId(MESSAGE_ID)
             .build();
 
         assertThat(listener.isMessageMovedToSpamMailbox(messageMoveEvent)).isFalse();
     }
 
     @Test
-    public void eventShouldCallSpamAssassinSpamLearningWhenTheEventMatches() throws Exception {
+    public void eventShouldCallSpamAssassinSpamLearningWhenTheEventMatches() {
         MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
             .session(MAILBOX_SESSION)
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(mailboxId1)
                 .targetMailboxIds(spamMailboxId)
                 .build())
-            .messages(ImmutableMap.of(UID,
-                createMessage(mailbox1)))
+            .messageId(MESSAGE_ID)
             .build();
 
         listener.event(messageMoveEvent);
@@ -167,75 +163,70 @@ public class SpamAssassinListenerTest {
     }
 
     @Test
-    public void isMessageMovedOutOfSpamMailboxShouldReturnFalseWhenMessageMovedBetweenNonSpamMailboxes() throws Exception {
+    public void isMessageMovedOutOfSpamMailboxShouldReturnFalseWhenMessageMovedBetweenNonSpamMailboxes() {
         MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
             .session(MAILBOX_SESSION)
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(mailboxId1)
                 .targetMailboxIds(mailboxId2)
                 .build())
-            .messages(ImmutableMap.of(UID,
-                createMessage(mailbox2)))
+            .messageId(MESSAGE_ID)
             .build();
 
         assertThat(listener.isMessageMovedOutOfSpamMailbox(messageMoveEvent)).isFalse();
     }
 
     @Test
-    public void isMessageMovedOutOfSpamMailboxShouldReturnFalseWhenMessageMovedOutOfCapitalSpamMailbox() throws Exception {
+    public void isMessageMovedOutOfSpamMailboxShouldReturnFalseWhenMessageMovedOutOfCapitalSpamMailbox() {
         MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
             .session(MAILBOX_SESSION)
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(spamCapitalMailboxId)
                 .targetMailboxIds(mailboxId2)
                 .build())
-            .messages(ImmutableMap.of(UID,
-                createMessage(mailbox2)))
+            .messageId(MESSAGE_ID)
             .build();
 
         assertThat(listener.isMessageMovedOutOfSpamMailbox(messageMoveEvent)).isFalse();
     }
 
     @Test
-    public void isMessageMovedOutOfSpamMailboxShouldReturnTrueWhenMessageMovedOutOfSpamMailbox() throws Exception {
+    public void isMessageMovedOutOfSpamMailboxShouldReturnTrueWhenMessageMovedOutOfSpamMailbox() {
         MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
             .session(MAILBOX_SESSION)
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(spamMailboxId)
                 .targetMailboxIds(mailboxId2)
                 .build())
-            .messages(ImmutableMap.of(UID,
-                createMessage(mailbox2)))
+            .messageId(MESSAGE_ID)
             .build();
 
         assertThat(listener.isMessageMovedOutOfSpamMailbox(messageMoveEvent)).isTrue();
     }
 
     @Test
-    public void isMessageMovedOutOfSpamMailboxShouldReturnFalseWhenMessageMovedToTrash() throws Exception {
+    public void isMessageMovedOutOfSpamMailboxShouldReturnFalseWhenMessageMovedToTrash() {
         MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
             .session(MAILBOX_SESSION)
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(spamMailboxId)
                 .targetMailboxIds(trashMailboxId)
                 .build())
-            .messages(ImmutableMap.of(UID,
-                createMessage(mailbox2)))
+            .messageId(MESSAGE_ID)
             .build();
 
         assertThat(listener.isMessageMovedOutOfSpamMailbox(messageMoveEvent)).isFalse();
     }
 
     @Test
-    public void eventShouldCallSpamAssassinHamLearningWhenTheEventMatches() throws Exception {
+    public void eventShouldCallSpamAssassinHamLearningWhenTheEventMatches() {
         MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
             .session(MAILBOX_SESSION)
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(spamMailboxId)
                 .targetMailboxIds(mailboxId1)
                 .build())
-            .messages(ImmutableMap.of(UID,
-                createMessage(mailbox1)))
+            .messageId(MESSAGE_ID)
             .build();
 
         listener.event(messageMoveEvent);
@@ -274,7 +265,7 @@ public class SpamAssassinListenerTest {
         int size = 45;
         int bodyStartOctet = 25;
         byte[] content = "Subject: test\r\n\r\nBody\r\n".getBytes(StandardCharsets.UTF_8);
-        SimpleMailboxMessage message = new SimpleMailboxMessage(TestMessageId.of(58), new Date(),
+        SimpleMailboxMessage message = new SimpleMailboxMessage(MESSAGE_ID, new Date(),
             size, bodyStartOctet, new SharedByteArrayInputStream(content), new Flags(), new PropertyBuilder(),
             mailbox.getMailboxId());
         MessageMetaData messageMetaData = mapperFactory.createMessageMapper(null).add(mailbox, message);

http://git-wip-us.apache.org/repos/asf/james-project/blob/9cf3186f/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
index 0dfda8d..23db5b5 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
@@ -70,7 +70,6 @@ import com.github.fge.lambdas.Throwing;
 import com.github.fge.lambdas.functions.ThrowingFunction;
 import com.github.steveash.guavate.Guavate;
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
 
@@ -281,7 +280,7 @@ public class StoreMessageIdManager implements MessageIdManager {
 
         addMessageToMailboxes(mailboxMessage, messageMoves.addedMailboxIds(), mailboxSession);
         removeMessageFromMailboxes(mailboxMessage, messageMoves.removedMailboxIds(), mailboxSession);
-        dispatcher.moved(mailboxSession, messageMoves, ImmutableMap.of(mailboxMessage.getUid(), mailboxMessage));
+        dispatcher.moved(mailboxSession, messageMoves, ImmutableList.of(mailboxMessage.getMessageId()));
     }
 
     private void removeMessageFromMailboxes(MailboxMessage message, Set<MailboxId> mailboxesToRemove, MailboxSession mailboxSession) throws MailboxException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/9cf3186f/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
index 5e98042..58f0d08 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
@@ -90,7 +90,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
 
 /**
  * Base class for {@link org.apache.james.mailbox.MessageManager}
@@ -735,9 +734,9 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
 
         SortedMap<MessageUid, MessageMetaData> copiedUids = collectMetadata(to.copy(originalRows, session));
 
-        ImmutableMap.Builder<MessageUid, MailboxMessage> messagesMap = ImmutableMap.builder();
+        ImmutableList.Builder<MessageId> messageIds = ImmutableList.builder();
         for (MailboxMessage message : originalRows.getEntriesSeen()) {
-            messagesMap.put(message.getUid(), immutableMailboxMessageFactory.from(to.getMailboxEntity().getMailboxId(), message));
+            messageIds.add(message.getMessageId());
         }
         dispatcher.added(session, copiedUids, to.getMailboxEntity());
         dispatcher.moved(session,
@@ -745,7 +744,7 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
                 .previousMailboxIds(getMailboxEntity().getMailboxId())
                 .targetMailboxIds(to.getMailboxEntity().getMailboxId(), getMailboxEntity().getMailboxId())
                 .build(),
-            messagesMap.build());
+            messageIds.build());
         return copiedUids;
     }
 
@@ -755,9 +754,9 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
         MoveResult moveResult = to.move(originalRows, session);
         SortedMap<MessageUid, MessageMetaData> moveUids = collectMetadata(moveResult.getMovedMessages());
 
-        ImmutableMap.Builder<MessageUid, MailboxMessage> messagesMap = ImmutableMap.builder();
+        ImmutableList.Builder<MessageId> messageIds = ImmutableList.builder();
         for (MailboxMessage message : originalRows.getEntriesSeen()) {
-            messagesMap.put(message.getUid(), immutableMailboxMessageFactory.from(to.getMailboxEntity().getMailboxId(), message));
+            messageIds.add(message.getMessageId());
         }
         dispatcher.added(session, moveUids, to.getMailboxEntity());
         dispatcher.expunged(session, collectMetadata(moveResult.getOriginalMessages()), getMailboxEntity());
@@ -766,7 +765,7 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
                 .previousMailboxIds(getMailboxEntity().getMailboxId())
                 .targetMailboxIds(to.getMailboxEntity().getMailboxId())
                 .build(),
-            messagesMap.build());
+            messageIds.build());
         return moveUids;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/9cf3186f/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
index 51106d9..fca9602 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.mailbox.store.event;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.SortedMap;
@@ -32,12 +33,12 @@ import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.acl.ACLDiff;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.MessageMetaData;
 import org.apache.james.mailbox.model.MessageMoves;
 import org.apache.james.mailbox.model.QuotaRoot;
 import org.apache.james.mailbox.model.UpdatedFlags;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
-import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 
 public class EventFactory {
 
@@ -99,11 +100,11 @@ public class EventFactory {
         return new MailboxListener.MailboxACLUpdated(sessionId, user, mailboxPath, aclDiff, mailboxId);
     }
 
-    public MessageMoveEvent moved(MailboxSession session, MessageMoves messageMoves, Map<MessageUid, MailboxMessage> messages) {
+    public MessageMoveEvent moved(MailboxSession session, MessageMoves messageMoves, Collection<MessageId> messageIds) {
         return MessageMoveEvent.builder()
                 .user(session.getUser())
                 .messageMoves(messageMoves)
-                .messages(messages)
+                .messageId(messageIds)
                 .build();
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9cf3186f/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
index 2d6afd9..4721aa8 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
@@ -20,6 +20,7 @@
 package org.apache.james.mailbox.store.event;
 
 import java.time.Instant;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.SortedMap;
@@ -36,6 +37,7 @@ import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.acl.ACLDiff;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.MessageMetaData;
 import org.apache.james.mailbox.model.MessageMoves;
 import org.apache.james.mailbox.model.Quota;
@@ -163,8 +165,9 @@ public class MailboxEventDispatcher {
         listener.event(eventFactory.aclUpdated(session, mailboxPath, aclDiff, mailboxId));
     }
 
-    public void moved(MailboxSession session, MessageMoves messageMoves, Map<MessageUid, MailboxMessage> messages) {
-        MessageMoveEvent moveEvent = eventFactory.moved(session, messageMoves, messages);
+    public void moved(MailboxSession session, MessageMoves messageMoves, Collection<MessageId> messageIds) {
+        MessageMoveEvent moveEvent = eventFactory.moved(session, messageMoves, messageIds);
+
         if (!moveEvent.isNoop()) {
             listener.event(moveEvent);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9cf3186f/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
index 4fb7be4..4b73263 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
@@ -18,19 +18,18 @@
  ****************************************************************/
 package org.apache.james.mailbox.store.event;
 
-import java.util.Map;
+import java.util.Collection;
 
 import org.apache.james.core.User;
 import org.apache.james.mailbox.Event;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.MessageMoves;
-import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableList;
 
 public class MessageMoveEvent implements Event {
 
@@ -39,13 +38,12 @@ public class MessageMoveEvent implements Event {
     }
 
     public static class Builder {
-
+        private ImmutableList.Builder<MessageId> messageIds;
         private User user;
         private MessageMoves messageMoves;
-        private ImmutableMap.Builder<MessageUid, MailboxMessage> messagesBuilder;
 
         private Builder() {
-            messagesBuilder = ImmutableMap.builder();
+            messageIds = ImmutableList.builder();
         }
 
         public Builder session(MailboxSession session) {
@@ -63,8 +61,13 @@ public class MessageMoveEvent implements Event {
             return this;
         }
 
-        public Builder messages(Map<MessageUid, MailboxMessage> messages) {
-            this.messagesBuilder.putAll(messages);
+        public Builder messageId(MessageId messageId) {
+            this.messageIds.add(messageId);
+            return this;
+        }
+
+        public Builder messageId(Collection<MessageId> messageIds) {
+            this.messageIds.addAll(messageIds);
             return this;
         }
 
@@ -72,25 +75,27 @@ public class MessageMoveEvent implements Event {
             Preconditions.checkNotNull(user, "'user' is mandatory");
             Preconditions.checkNotNull(messageMoves, "'messageMoves' is mandatory");
 
-            ImmutableMap<MessageUid, MailboxMessage> messages = messagesBuilder.build();
-
-            return new MessageMoveEvent(user, messageMoves, messages);
+            return new MessageMoveEvent(user, messageMoves, messageIds.build());
         }
     }
 
     private final User user;
     private final MessageMoves messageMoves;
-    private final Map<MessageUid, MailboxMessage> messages;
+    private final Collection<MessageId> messageIds;
 
     @VisibleForTesting
-    MessageMoveEvent(User user, MessageMoves messageMoves, Map<MessageUid, MailboxMessage> messages) {
+    MessageMoveEvent(User user, MessageMoves messageMoves, Collection<MessageId> messageIds) {
         this.user = user;
         this.messageMoves = messageMoves;
-        this.messages = messages;
+        this.messageIds = messageIds;
     }
 
     public boolean isNoop() {
-        return messages.isEmpty();
+        return messageIds.isEmpty();
+    }
+
+    public Collection<MessageId> getMessageIds() {
+        return messageIds;
     }
 
     @Override
@@ -102,10 +107,6 @@ public class MessageMoveEvent implements Event {
         return messageMoves;
     }
 
-    public Map<MessageUid, MailboxMessage> getMessages() {
-        return messages;
-    }
-
     public boolean isMoveTo(MailboxId mailboxId) {
         return messageMoves.addedMailboxIds()
                 .contains(mailboxId);

http://git-wip-us.apache.org/repos/asf/james-project/blob/9cf3186f/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
index 5d4a68f..e2737ed 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
@@ -20,23 +20,17 @@ package org.apache.james.mailbox.store.event;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.Mockito.mock;
-
-import java.util.Map;
 
 import org.apache.james.core.User;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MailboxSessionUtil;
-import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.MessageMoves;
 import org.apache.james.mailbox.model.TestId;
-import org.apache.james.mailbox.store.mail.model.MailboxMessage;
+import org.apache.james.mailbox.model.TestMessageId;
 import org.assertj.core.api.JUnitSoftAssertions;
 import org.junit.Rule;
 import org.junit.Test;
 
-import com.google.common.collect.ImmutableMap;
-
 public class MessageMoveEventTest {
 
     @Rule
@@ -76,12 +70,11 @@ public class MessageMoveEventTest {
             .targetMailboxIds(TestId.of(2))
             .previousMailboxIds(TestId.of(1))
             .build();
-        Map<MessageUid, MailboxMessage> messages = ImmutableMap.of(MessageUid.of(1), mock(MailboxMessage.class));
 
         MessageMoveEvent event = MessageMoveEvent.builder()
             .session(session)
             .messageMoves(messageMoves)
-            .messages(messages)
+            .messageId(TestMessageId.of(35))
             .build();
 
         assertThat(event.isNoop()).isFalse();
@@ -95,17 +88,17 @@ public class MessageMoveEventTest {
             .targetMailboxIds(TestId.of(2))
             .previousMailboxIds(TestId.of(1))
             .build();
-        Map<MessageUid, MailboxMessage> messages = ImmutableMap.of(MessageUid.of(1), mock(MailboxMessage.class));
 
+        TestMessageId messageId = TestMessageId.of(45);
         MessageMoveEvent event = MessageMoveEvent.builder()
             .session(session)
             .messageMoves(messageMoves)
-            .messages(messages)
+            .messageId(messageId)
             .build();
 
         softly.assertThat(event.getUser()).isEqualTo(User.fromUsername(username));
         softly.assertThat(event.getMessageMoves()).isEqualTo(messageMoves);
-        softly.assertThat(event.getMessages()).isEqualTo(messages);
+        softly.assertThat(event.getMessageIds()).containsExactly(messageId);
     }
 
     @Test
@@ -116,7 +109,6 @@ public class MessageMoveEventTest {
                     .previousMailboxIds(TestId.of(1))
                     .targetMailboxIds(TestId.of(2))
                     .build())
-            .messages(ImmutableMap.of(MessageUid.of(1), mock(MailboxMessage.class)))
             .build();
 
         assertThat(event.isMoveTo(TestId.of(123))).isFalse();
@@ -131,7 +123,6 @@ public class MessageMoveEventTest {
                 .previousMailboxIds(TestId.of(1))
                 .targetMailboxIds(TestId.of(2), mailboxId)
                 .build())
-            .messages(ImmutableMap.of(MessageUid.of(1), mock(MailboxMessage.class)))
             .build();
 
         assertThat(event.isMoveTo(mailboxId)).isTrue();
@@ -145,7 +136,6 @@ public class MessageMoveEventTest {
                     .previousMailboxIds(TestId.of(1))
                     .targetMailboxIds(TestId.of(2))
                     .build())
-            .messages(ImmutableMap.of(MessageUid.of(1), mock(MailboxMessage.class)))
             .build();
 
         assertThat(event.isMoveFrom(TestId.of(123))).isFalse();
@@ -160,7 +150,6 @@ public class MessageMoveEventTest {
                 .previousMailboxIds(TestId.of(1), mailboxId)
                 .targetMailboxIds(TestId.of(2))
                 .build())
-            .messages(ImmutableMap.of(MessageUid.of(1), mock(MailboxMessage.class)))
             .build();
 
         assertThat(event.isMoveFrom(mailboxId)).isTrue();


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[02/13] james-project git commit: MAILBOX-365 Move locale preference from MailboxSession.User to MailboxSession

Posted by bt...@apache.org.
MAILBOX-365 Move locale preference from MailboxSession.User to MailboxSession


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/000f775d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/000f775d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/000f775d

Branch: refs/heads/master
Commit: 000f775d120afc9a442799272b0a3e026c6490b9
Parents: ad104d2
Author: Benoit Tellier <bt...@linagora.com>
Authored: Sat Dec 15 14:10:48 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Dec 18 14:48:05 2018 +0700

----------------------------------------------------------------------
 .../org/apache/james/mailbox/MailboxSession.java   | 17 +++++++++--------
 .../james/mailbox/mock/MockMailboxSession.java     | 15 +++++----------
 .../james/jmap/methods/GetMessagesMethodTest.java  |  6 ------
 3 files changed, 14 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/000f775d/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
index 0b6324a..f81c229 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
@@ -122,6 +122,15 @@ public interface MailboxSession {
     User getUser();
 
     /**
+     * Gets acceptable localisation for this user in preference order.<br>
+     * When localising a phrase, each <code>Locale</code> should be tried in
+     * order until an appropriate translation is obtained.
+     *
+     * @return not null, when empty the default local should be used
+     */
+    List<Locale> getLocalePreferences();
+
+    /**
      * A mailbox user. Useful for specialist mailbox implementation.
      */
     interface User {
@@ -132,14 +141,6 @@ public interface MailboxSession {
          */
         String getUserName();
 
-        /**
-         * Gets acceptable localisation for this user in preference order.<br>
-         * When localising a phrase, each <code>Locale</code> should be tried in
-         * order until an appropriate translation is obtained.
-         * 
-         * @return not null, when empty the default local should be used
-         */
-        List<Locale> getLocalePreferences();
         
         boolean isSameUser(String username);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/000f775d/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
index 608f0a3..8e8e90c 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
@@ -49,16 +49,6 @@ public class MockMailboxSession implements MailboxSession {
             }
 
             @Override
-            public String getPassword() {
-                return null;
-            }
-
-            @Override
-            public List<Locale> getLocalePreferences() {
-                return new ArrayList<>();
-            }
-
-            @Override
             public boolean isSameUser(String other) {
                 if (username == null) {
                     return other == null;
@@ -72,6 +62,11 @@ public class MockMailboxSession implements MailboxSession {
     }
 
     @Override
+    public List<Locale> getLocalePreferences() {
+        return new ArrayList<>();
+    }
+
+    @Override
     public void close() {
         this.open = false;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/000f775d/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
index 4032bd0..a8b845f 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
@@ -26,7 +26,6 @@ import static org.mockito.Mockito.when;
 
 import java.nio.charset.StandardCharsets;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
@@ -101,11 +100,6 @@ public class GetMessagesMethodTest {
         public String getUserName() {
             return username;
         }
-        
-        @Override
-        public List<Locale> getLocalePreferences() {
-            return ImmutableList.of();
-        }
 
         @Override
         public boolean isSameUser(String username) {


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[03/13] james-project git commit: MAILBOX-365 Get rid of MailboxSession.getUser

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/JmapMDN.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/JmapMDN.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/JmapMDN.java
index e162961..54bae07 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/JmapMDN.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/JmapMDN.java
@@ -142,7 +142,7 @@ public class JmapMDN {
 
     public Message generateMDNMessage(Message originalMessage, MailboxSession mailboxSession) throws ParseException, IOException, InvalidOriginMessageForMDNException {
 
-        User user = mailboxSession.getUser().getCoreUser();
+        User user = mailboxSession.getUser();
 
         return MDN.builder()
             .report(generateReport(originalMessage, mailboxSession))
@@ -183,9 +183,9 @@ public class JmapMDN {
         }
         return MDNReport.builder()
             .dispositionField(generateDisposition())
-            .originalRecipientField(mailboxSession.getUser().getUserName())
+            .originalRecipientField(mailboxSession.getUser().asString())
             .originalMessageIdField(originalMessage.getMessageId())
-            .finalRecipientField(mailboxSession.getUser().getUserName())
+            .finalRecipientField(mailboxSession.getUser().asString())
             .reportingUserAgentField(getReportingUA())
             .build();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Rights.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Rights.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Rights.java
index a423928..c0cc6b2 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Rights.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Rights.java
@@ -99,7 +99,7 @@ public class Rights {
         }
 
         public static Username fromSession(MailboxSession mailboxSession) {
-            return new Username(mailboxSession.getUser().getUserName());
+            return new Username(mailboxSession.getUser().asString());
         }
 
         private final String value;

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
index 54b5bb7..4a1df42 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
@@ -137,12 +137,12 @@ public class PostDequeueDecorator extends MailQueueItemDecorator {
     }
 
     private MailboxId getSentMailboxId(MailboxSession session) throws MailboxRoleNotFoundException, MailboxException {
-        return systemMailboxesProvider.findMailbox(Role.SENT, session.getUser().getCoreUser())
+        return systemMailboxesProvider.findMailbox(Role.SENT, session.getUser())
             .getId();
     }
     
     private MailboxId getOutboxMailboxId(MailboxSession session) throws MailboxRoleNotFoundException, MailboxException {
-        return systemMailboxesProvider.findMailbox(Role.OUTBOX, session.getUser().getCoreUser())
+        return systemMailboxesProvider.findMailbox(Role.OUTBOX, session.getUser())
             .getId();
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
index a8b845f..ac0e6df 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
@@ -35,6 +35,7 @@ import javax.mail.Flags;
 import javax.mail.Flags.Flag;
 
 import org.apache.commons.lang.NotImplementedException;
+import org.apache.james.core.User;
 import org.apache.james.jmap.model.ClientId;
 import org.apache.james.jmap.model.GetMessagesRequest;
 import org.apache.james.jmap.model.GetMessagesResponse;
@@ -82,36 +83,14 @@ import com.jayway.jsonpath.JsonPath;
 
 public class GetMessagesMethodTest {
     private static final String FORWARDED = "forwarded";
+    private static final User ROBERT = User.fromUsername("robert");
+
     private MessageIdManager messageIdManager;
     private org.apache.james.mime4j.dom.Message messageContent1;
     private org.apache.james.mime4j.dom.Message messageContent2;
     private org.apache.james.mime4j.dom.Message messageContent3;
-
-    private static class User implements org.apache.james.mailbox.MailboxSession.User {
-        final String username;
-        final String password;
-
-        public User(String username, String password) {
-            this.username = username;
-            this.password = password;
-        }
-        
-        @Override
-        public String getUserName() {
-            return username;
-        }
-
-        @Override
-        public boolean isSameUser(String username) {
-            return this.username.equalsIgnoreCase(username);
-        }
-    }
-    
-    private static final User ROBERT = new User("robert", "secret");
-
     private StoreMailboxManager mailboxManager;
     private GetMessagesMethod testee;
-
     private MailboxSession session;
     private MailboxPath inboxPath;
     private MailboxPath customMailboxPath;
@@ -130,7 +109,7 @@ public class GetMessagesMethodTest {
         GroupMembershipResolver groupMembershipResolver = inMemoryIntegrationResources.createGroupMembershipResolver();
         mailboxManager = inMemoryIntegrationResources.createMailboxManager(groupMembershipResolver);
 
-        session = new MockMailboxSession(ROBERT.username);
+        session = new MockMailboxSession(ROBERT.asString());
         inboxPath = MailboxPath.inbox(session);
         customMailboxPath = new MailboxPath(inboxPath, "custom");
         mailboxManager.createMailbox(inboxPath, session);

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetVacationResponseMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetVacationResponseMethodTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetVacationResponseMethodTest.java
index a9082c7..e3b4752 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetVacationResponseMethodTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetVacationResponseMethodTest.java
@@ -28,6 +28,7 @@ import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.Stream;
 
+import org.apache.james.core.User;
 import org.apache.james.jmap.api.vacation.AccountId;
 import org.apache.james.jmap.api.vacation.Vacation;
 import org.apache.james.jmap.api.vacation.VacationRepository;
@@ -53,7 +54,7 @@ public class GetVacationResponseMethodTest {
     private GetVacationResponseMethod testee;
     private VacationRepository vacationRepository;
     private MailboxSession mailboxSession;
-    private MailboxSession.User user;
+    private User user;
     private ZonedDateTimeProvider zonedDateTimeProvider;
 
     @Before
@@ -61,7 +62,7 @@ public class GetVacationResponseMethodTest {
         zonedDateTimeProvider = mock(ZonedDateTimeProvider.class);
         vacationRepository = mock(VacationRepository.class);
         mailboxSession = mock(MailboxSession.class);
-        user = mock(MailboxSession.User.class);
+        user = User.fromUsername(USERNAME);
         testee = new GetVacationResponseMethod(vacationRepository, zonedDateTimeProvider, new DefaultMetricFactory());
 
         when(zonedDateTimeProvider.get()).thenReturn(DATE_2014);
@@ -99,7 +100,6 @@ public class GetVacationResponseMethodTest {
             .build();
         when(vacationRepository.retrieveVacation(AccountId.fromString(USERNAME))).thenReturn(CompletableFuture.completedFuture(vacation));
         when(mailboxSession.getUser()).thenReturn(user);
-        when(user.getUserName()).thenReturn(USERNAME);
         when(zonedDateTimeProvider.get()).thenReturn(DATE_2015);
 
         GetVacationRequest getVacationRequest = GetVacationRequest.builder().build();
@@ -132,7 +132,6 @@ public class GetVacationResponseMethodTest {
             .build();
         when(vacationRepository.retrieveVacation(AccountId.fromString(USERNAME))).thenReturn(CompletableFuture.completedFuture(vacation));
         when(mailboxSession.getUser()).thenReturn(user);
-        when(user.getUserName()).thenReturn(USERNAME);
         when(zonedDateTimeProvider.get()).thenReturn(DATE_2014);
 
         GetVacationRequest getVacationRequest = GetVacationRequest.builder().build();
@@ -167,7 +166,6 @@ public class GetVacationResponseMethodTest {
             .build();
         when(vacationRepository.retrieveVacation(AccountId.fromString(USERNAME))).thenReturn(CompletableFuture.completedFuture(vacation));
         when(mailboxSession.getUser()).thenReturn(user);
-        when(user.getUserName()).thenReturn(USERNAME);
         when(zonedDateTimeProvider.get()).thenReturn(DATE_2016);
 
         GetVacationRequest getVacationRequest = GetVacationRequest.builder().build();

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetVacationResponseMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetVacationResponseMethodTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetVacationResponseMethodTest.java
index 595567a..beb249f 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetVacationResponseMethodTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetVacationResponseMethodTest.java
@@ -27,12 +27,11 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 
-import java.util.List;
-import java.util.Locale;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.Stream;
 
+import org.apache.james.core.User;
 import org.apache.james.jmap.api.vacation.AccountId;
 import org.apache.james.jmap.api.vacation.NotificationRegistry;
 import org.apache.james.jmap.api.vacation.Vacation;
@@ -52,32 +51,11 @@ import org.junit.Test;
 import com.google.common.collect.ImmutableMap;
 
 public class SetVacationResponseMethodTest {
-
-    public static final String WRONG_ID = "WrongId";
-    public static final String TEXT_BODY = "Text body";
-    public static final String USERNAME = "username";
-    public static final MailboxSession.User USER = new MailboxSession.User() {
-        @Override
-        public String getUserName() {
-            return USERNAME;
-        }
-
-        @Override
-        public String getPassword() {
-            return null;
-        }
-
-        @Override
-        public List<Locale> getLocalePreferences() {
-            return null;
-        }
-
-        @Override
-        public boolean isSameUser(String username) {
-            return USERNAME.equalsIgnoreCase(username);
-        }
-    };
-    public static final String SUBJECT = "subject";
+    private static final String WRONG_ID = "WrongId";
+    private static final String TEXT_BODY = "Text body";
+    private static final String USERNAME = "username";
+    private static final User USER = User.fromUsername(USERNAME);
+    private static final String SUBJECT = "subject";
 
     private SetVacationResponseMethod testee;
     private VacationRepository vacationRepository;


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[13/13] james-project git commit: MAILBOX-363 MessageMoveEvent can now be in `mailbox/api`

Posted by bt...@apache.org.
MAILBOX-363 MessageMoveEvent can now be in `mailbox/api`


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d04e6550
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d04e6550
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d04e6550

Branch: refs/heads/master
Commit: d04e655063ac3a2b2dce13ebdab8dd8e145d5a61
Parents: 9cf3186
Author: Benoit Tellier <bt...@linagora.com>
Authored: Mon Dec 17 09:10:37 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Dec 18 14:49:59 2018 +0700

----------------------------------------------------------------------
 .../apache/james/mailbox/MessageMoveEvent.java  | 117 ++++++++++++++
 .../james/mailbox/MessageMoveEventTest.java     | 157 +++++++++++++++++++
 .../spamassassin/SpamAssassinListener.java      |   2 +-
 .../spamassassin/SpamAssassinListenerTest.java  |   2 +-
 .../james/mailbox/store/event/EventFactory.java |   1 +
 .../store/event/MailboxEventDispatcher.java     |   1 +
 .../mailbox/store/event/MessageMoveEvent.java   | 119 --------------
 .../store/event/MessageMoveEventTest.java       | 157 -------------------
 8 files changed, 278 insertions(+), 278 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/api/src/main/java/org/apache/james/mailbox/MessageMoveEvent.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MessageMoveEvent.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MessageMoveEvent.java
new file mode 100644
index 0000000..226ae47
--- /dev/null
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MessageMoveEvent.java
@@ -0,0 +1,117 @@
+/****************************************************************
+ * 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.mailbox;
+
+import java.util.Collection;
+
+import org.apache.james.core.User;
+import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.mailbox.model.MessageMoves;
+
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+
+public class MessageMoveEvent implements Event {
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public static class Builder {
+        private ImmutableList.Builder<MessageId> messageIds;
+        private User user;
+        private MessageMoves messageMoves;
+
+        private Builder() {
+            messageIds = ImmutableList.builder();
+        }
+
+        public Builder session(MailboxSession session) {
+            this.user = session.getUser();
+            return this;
+        }
+
+        public Builder user(User user) {
+            this.user = user;
+            return this;
+        }
+
+        public Builder messageMoves(MessageMoves messageMoves) {
+            this.messageMoves = messageMoves;
+            return this;
+        }
+
+        public Builder messageId(MessageId messageId) {
+            this.messageIds.add(messageId);
+            return this;
+        }
+
+        public Builder messageId(Collection<MessageId> messageIds) {
+            this.messageIds.addAll(messageIds);
+            return this;
+        }
+
+        public MessageMoveEvent build() {
+            Preconditions.checkNotNull(user, "'user' is mandatory");
+            Preconditions.checkNotNull(messageMoves, "'messageMoves' is mandatory");
+
+            return new MessageMoveEvent(user, messageMoves, messageIds.build());
+        }
+    }
+
+    private final User user;
+    private final MessageMoves messageMoves;
+    private final Collection<MessageId> messageIds;
+
+    @VisibleForTesting
+    MessageMoveEvent(User user, MessageMoves messageMoves, Collection<MessageId> messageIds) {
+        this.user = user;
+        this.messageMoves = messageMoves;
+        this.messageIds = messageIds;
+    }
+
+    public boolean isNoop() {
+        return messageIds.isEmpty();
+    }
+
+    public Collection<MessageId> getMessageIds() {
+        return messageIds;
+    }
+
+    @Override
+    public User getUser() {
+        return user;
+    }
+
+    public MessageMoves getMessageMoves() {
+        return messageMoves;
+    }
+
+    public boolean isMoveTo(MailboxId mailboxId) {
+        return messageMoves.addedMailboxIds()
+                .contains(mailboxId);
+    }
+
+    public boolean isMoveFrom(MailboxId mailboxId) {
+        return messageMoves.removedMailboxIds()
+                .contains(mailboxId);
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java
new file mode 100644
index 0000000..1d217ee
--- /dev/null
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java
@@ -0,0 +1,157 @@
+/****************************************************************
+ * 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.mailbox;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+import org.apache.james.core.User;
+import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
+import org.apache.james.mailbox.model.MessageMoves;
+import org.apache.james.mailbox.model.TestId;
+import org.apache.james.mailbox.model.TestMessageId;
+import org.assertj.core.api.JUnitSoftAssertions;
+import org.junit.Rule;
+import org.junit.Test;
+
+public class MessageMoveEventTest {
+
+    @Rule
+    public JUnitSoftAssertions softly = new JUnitSoftAssertions();
+
+    @Test
+    public void builderShouldThrowWhenSessionIsNull() {
+        assertThatThrownBy(() -> MessageMoveEvent.builder()
+                .build())
+            .isInstanceOf(NullPointerException.class);
+    }
+
+    @Test
+    public void builderShouldThrowWhenMessageMovesIsNull() {
+        assertThatThrownBy(() -> MessageMoveEvent.builder()
+                .session(MailboxSessionUtil.create("user@james.org"))
+                .build())
+            .isInstanceOf(NullPointerException.class);
+    }
+
+    @Test
+    public void builderShouldReturnNoopWhenMessagesIsEmpty() {
+        assertThat(MessageMoveEvent.builder()
+                .session(MailboxSessionUtil.create("user@james.org"))
+                .messageMoves(MessageMoves.builder()
+                    .previousMailboxIds(TestId.of(1))
+                    .targetMailboxIds(TestId.of(2))
+                    .build())
+                .build()
+            .isNoop()).isTrue();
+    }
+
+    @Test
+    public void builderShouldNotBeNoopWhenFieldsAreGiven() {
+        MailboxSession session = MailboxSessionUtil.create("user@james.org");
+        MessageMoves messageMoves = MessageMoves.builder()
+            .targetMailboxIds(TestId.of(2))
+            .previousMailboxIds(TestId.of(1))
+            .build();
+
+        MessageMoveEvent event = MessageMoveEvent.builder()
+            .session(session)
+            .messageMoves(messageMoves)
+            .messageId(TestMessageId.of(35))
+            .build();
+
+        assertThat(event.isNoop()).isFalse();
+    }
+
+    @Test
+    public void builderShouldBuildWhenFieldsAreGiven() {
+        String username = "user@james.org";
+        MailboxSession session = MailboxSessionUtil.create(username);
+        MessageMoves messageMoves = MessageMoves.builder()
+            .targetMailboxIds(TestId.of(2))
+            .previousMailboxIds(TestId.of(1))
+            .build();
+
+        TestMessageId messageId = TestMessageId.of(45);
+        MessageMoveEvent event = MessageMoveEvent.builder()
+            .session(session)
+            .messageMoves(messageMoves)
+            .messageId(messageId)
+            .build();
+
+        softly.assertThat(event.getUser()).isEqualTo(User.fromUsername(username));
+        softly.assertThat(event.getMessageMoves()).isEqualTo(messageMoves);
+        softly.assertThat(event.getMessageIds()).containsExactly(messageId);
+    }
+
+    @Test
+    public void isMoveToShouldReturnFalseWhenMailboxIdIsNotInAddedMailboxIds() {
+        MessageMoveEvent event = MessageMoveEvent.builder()
+            .session(MailboxSessionUtil.create("user@james.org"))
+            .messageMoves(MessageMoves.builder()
+                    .previousMailboxIds(TestId.of(1))
+                    .targetMailboxIds(TestId.of(2))
+                    .build())
+            .build();
+
+        assertThat(event.isMoveTo(TestId.of(123))).isFalse();
+    }
+
+    @Test
+    public void isMoveToShouldReturnTrueWhenMailboxIdIsInAddedMailboxIds() {
+        TestId mailboxId = TestId.of(123);
+        MessageMoveEvent event = MessageMoveEvent.builder()
+            .session(MailboxSessionUtil.create("user@james.org"))
+            .messageMoves(MessageMoves.builder()
+                .previousMailboxIds(TestId.of(1))
+                .targetMailboxIds(TestId.of(2), mailboxId)
+                .build())
+            .build();
+
+        assertThat(event.isMoveTo(mailboxId)).isTrue();
+    }
+
+    @Test
+    public void isMoveFromShouldReturnFalseWhenMailboxIdIsNotInRemovedMailboxIds() {
+        MessageMoveEvent event = MessageMoveEvent.builder()
+            .session(MailboxSessionUtil.create("user@james.org"))
+            .messageMoves(MessageMoves.builder()
+                    .previousMailboxIds(TestId.of(1))
+                    .targetMailboxIds(TestId.of(2))
+                    .build())
+            .build();
+
+        assertThat(event.isMoveFrom(TestId.of(123))).isFalse();
+    }
+
+    @Test
+    public void isMoveFromShouldReturnTrueWhenMailboxIdIsInRemovedMailboxIds() {
+        TestId mailboxId = TestId.of(123);
+        MessageMoveEvent event = MessageMoveEvent.builder()
+            .session(MailboxSessionUtil.create("user@james.org"))
+            .messageMoves(MessageMoves.builder()
+                .previousMailboxIds(TestId.of(1), mailboxId)
+                .targetMailboxIds(TestId.of(2))
+                .build())
+            .build();
+
+        assertThat(event.isMoveFrom(mailboxId)).isTrue();
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
index 56b512c..b6ffcd4 100644
--- a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
+++ b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
@@ -27,13 +27,13 @@ import javax.inject.Inject;
 import org.apache.james.mailbox.Event;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MessageMoveEvent;
 import org.apache.james.mailbox.Role;
 import org.apache.james.mailbox.SystemMailboxesProvider;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.event.MessageMoveEvent;
 import org.apache.james.mailbox.store.event.SpamEventListener;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.model.Mailbox;

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
index 13d1516..dba49a6 100644
--- a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
+++ b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
@@ -36,6 +36,7 @@ import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MailboxSessionUtil;
+import org.apache.james.mailbox.MessageMoveEvent;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -50,7 +51,6 @@ import org.apache.james.mailbox.store.SimpleMessageMetaData;
 import org.apache.james.mailbox.store.StoreMailboxManager;
 import org.apache.james.mailbox.store.SystemMailboxesProviderImpl;
 import org.apache.james.mailbox.store.event.EventFactory;
-import org.apache.james.mailbox.store.event.MessageMoveEvent;
 import org.apache.james.mailbox.store.mail.MailboxMapper;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
index fca9602..433bf8f 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
@@ -29,6 +29,7 @@ import org.apache.james.core.quota.QuotaCount;
 import org.apache.james.core.quota.QuotaSize;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MessageMoveEvent;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.acl.ACLDiff;
 import org.apache.james.mailbox.model.MailboxId;

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
index 4721aa8..1ebe27e 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
@@ -33,6 +33,7 @@ import org.apache.james.core.quota.QuotaSize;
 import org.apache.james.mailbox.Event;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MessageMoveEvent;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.acl.ACLDiff;
 import org.apache.james.mailbox.model.MailboxId;

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
deleted file mode 100644
index 4b73263..0000000
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
+++ /dev/null
@@ -1,119 +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.mailbox.store.event;
-
-import java.util.Collection;
-
-import org.apache.james.core.User;
-import org.apache.james.mailbox.Event;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.model.MailboxId;
-import org.apache.james.mailbox.model.MessageId;
-import org.apache.james.mailbox.model.MessageMoves;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
-
-public class MessageMoveEvent implements Event {
-
-    public static Builder builder() {
-        return new Builder();
-    }
-
-    public static class Builder {
-        private ImmutableList.Builder<MessageId> messageIds;
-        private User user;
-        private MessageMoves messageMoves;
-
-        private Builder() {
-            messageIds = ImmutableList.builder();
-        }
-
-        public Builder session(MailboxSession session) {
-            this.user = session.getUser();
-            return this;
-        }
-
-        public Builder user(User user) {
-            this.user = user;
-            return this;
-        }
-
-        public Builder messageMoves(MessageMoves messageMoves) {
-            this.messageMoves = messageMoves;
-            return this;
-        }
-
-        public Builder messageId(MessageId messageId) {
-            this.messageIds.add(messageId);
-            return this;
-        }
-
-        public Builder messageId(Collection<MessageId> messageIds) {
-            this.messageIds.addAll(messageIds);
-            return this;
-        }
-
-        public MessageMoveEvent build() {
-            Preconditions.checkNotNull(user, "'user' is mandatory");
-            Preconditions.checkNotNull(messageMoves, "'messageMoves' is mandatory");
-
-            return new MessageMoveEvent(user, messageMoves, messageIds.build());
-        }
-    }
-
-    private final User user;
-    private final MessageMoves messageMoves;
-    private final Collection<MessageId> messageIds;
-
-    @VisibleForTesting
-    MessageMoveEvent(User user, MessageMoves messageMoves, Collection<MessageId> messageIds) {
-        this.user = user;
-        this.messageMoves = messageMoves;
-        this.messageIds = messageIds;
-    }
-
-    public boolean isNoop() {
-        return messageIds.isEmpty();
-    }
-
-    public Collection<MessageId> getMessageIds() {
-        return messageIds;
-    }
-
-    @Override
-    public User getUser() {
-        return user;
-    }
-
-    public MessageMoves getMessageMoves() {
-        return messageMoves;
-    }
-
-    public boolean isMoveTo(MailboxId mailboxId) {
-        return messageMoves.addedMailboxIds()
-                .contains(mailboxId);
-    }
-
-    public boolean isMoveFrom(MailboxId mailboxId) {
-        return messageMoves.removedMailboxIds()
-                .contains(mailboxId);
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
deleted file mode 100644
index e2737ed..0000000
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
+++ /dev/null
@@ -1,157 +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.mailbox.store.event;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-
-import org.apache.james.core.User;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MailboxSessionUtil;
-import org.apache.james.mailbox.model.MessageMoves;
-import org.apache.james.mailbox.model.TestId;
-import org.apache.james.mailbox.model.TestMessageId;
-import org.assertj.core.api.JUnitSoftAssertions;
-import org.junit.Rule;
-import org.junit.Test;
-
-public class MessageMoveEventTest {
-
-    @Rule
-    public JUnitSoftAssertions softly = new JUnitSoftAssertions();
-
-    @Test
-    public void builderShouldThrowWhenSessionIsNull() {
-        assertThatThrownBy(() -> MessageMoveEvent.builder()
-                .build())
-            .isInstanceOf(NullPointerException.class);
-    }
-
-    @Test
-    public void builderShouldThrowWhenMessageMovesIsNull() {
-        assertThatThrownBy(() -> MessageMoveEvent.builder()
-                .session(MailboxSessionUtil.create("user@james.org"))
-                .build())
-            .isInstanceOf(NullPointerException.class);
-    }
-
-    @Test
-    public void builderShouldReturnNoopWhenMessagesIsEmpty() {
-        assertThat(MessageMoveEvent.builder()
-                .session(MailboxSessionUtil.create("user@james.org"))
-                .messageMoves(MessageMoves.builder()
-                    .previousMailboxIds(TestId.of(1))
-                    .targetMailboxIds(TestId.of(2))
-                    .build())
-                .build()
-            .isNoop()).isTrue();
-    }
-
-    @Test
-    public void builderShouldNotBeNoopWhenFieldsAreGiven() {
-        MailboxSession session = MailboxSessionUtil.create("user@james.org");
-        MessageMoves messageMoves = MessageMoves.builder()
-            .targetMailboxIds(TestId.of(2))
-            .previousMailboxIds(TestId.of(1))
-            .build();
-
-        MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(session)
-            .messageMoves(messageMoves)
-            .messageId(TestMessageId.of(35))
-            .build();
-
-        assertThat(event.isNoop()).isFalse();
-    }
-
-    @Test
-    public void builderShouldBuildWhenFieldsAreGiven() {
-        String username = "user@james.org";
-        MailboxSession session = MailboxSessionUtil.create(username);
-        MessageMoves messageMoves = MessageMoves.builder()
-            .targetMailboxIds(TestId.of(2))
-            .previousMailboxIds(TestId.of(1))
-            .build();
-
-        TestMessageId messageId = TestMessageId.of(45);
-        MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(session)
-            .messageMoves(messageMoves)
-            .messageId(messageId)
-            .build();
-
-        softly.assertThat(event.getUser()).isEqualTo(User.fromUsername(username));
-        softly.assertThat(event.getMessageMoves()).isEqualTo(messageMoves);
-        softly.assertThat(event.getMessageIds()).containsExactly(messageId);
-    }
-
-    @Test
-    public void isMoveToShouldReturnFalseWhenMailboxIdIsNotInAddedMailboxIds() {
-        MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(MailboxSessionUtil.create("user@james.org"))
-            .messageMoves(MessageMoves.builder()
-                    .previousMailboxIds(TestId.of(1))
-                    .targetMailboxIds(TestId.of(2))
-                    .build())
-            .build();
-
-        assertThat(event.isMoveTo(TestId.of(123))).isFalse();
-    }
-
-    @Test
-    public void isMoveToShouldReturnTrueWhenMailboxIdIsInAddedMailboxIds() {
-        TestId mailboxId = TestId.of(123);
-        MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(MailboxSessionUtil.create("user@james.org"))
-            .messageMoves(MessageMoves.builder()
-                .previousMailboxIds(TestId.of(1))
-                .targetMailboxIds(TestId.of(2), mailboxId)
-                .build())
-            .build();
-
-        assertThat(event.isMoveTo(mailboxId)).isTrue();
-    }
-
-    @Test
-    public void isMoveFromShouldReturnFalseWhenMailboxIdIsNotInRemovedMailboxIds() {
-        MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(MailboxSessionUtil.create("user@james.org"))
-            .messageMoves(MessageMoves.builder()
-                    .previousMailboxIds(TestId.of(1))
-                    .targetMailboxIds(TestId.of(2))
-                    .build())
-            .build();
-
-        assertThat(event.isMoveFrom(TestId.of(123))).isFalse();
-    }
-
-    @Test
-    public void isMoveFromShouldReturnTrueWhenMailboxIdIsInRemovedMailboxIds() {
-        TestId mailboxId = TestId.of(123);
-        MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(MailboxSessionUtil.create("user@james.org"))
-            .messageMoves(MessageMoves.builder()
-                .previousMailboxIds(TestId.of(1), mailboxId)
-                .targetMailboxIds(TestId.of(2))
-                .build())
-            .build();
-
-        assertThat(event.isMoveFrom(mailboxId)).isTrue();
-    }
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[06/13] james-project git commit: MAILBOX-365 Get rid of MockMailboxSession

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
index 5dc037c..897f329 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
@@ -32,6 +32,7 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeBodyPart;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.User;
 import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
@@ -54,9 +55,9 @@ public class LocalDeliveryTest {
     public static final String RECEIVER_DOMAIN_COM = "receiver@domain.com";
     private UsersRepository usersRepository;
     private MailboxManager mailboxManager;
-    private MailboxSession.User user;
     private FakeMailetConfig config;
     private LocalDelivery testee;
+    private MailboxSession session;
 
     @Before
     public void setUp() throws Exception {
@@ -67,11 +68,10 @@ public class LocalDeliveryTest {
         when(metricFactory.generate(anyString())).thenReturn(mock(Metric.class));
         testee = new LocalDelivery(usersRepository, mailboxManager, metricFactory);
 
-        user = mock(MailboxSession.User.class);
-        MailboxSession session = mock(MailboxSession.class);
+        session = mock(MailboxSession.class);
         when(session.getPathDelimiter()).thenReturn('.');
         when(mailboxManager.createSystemSession(any(String.class))).thenReturn(session);
-        when(session.getUser()).thenReturn(user);
+
 
         config = FakeMailetConfig.builder()
             .mailetName("Local delivery")
@@ -89,7 +89,7 @@ public class LocalDeliveryTest {
         when(usersRepository.supportVirtualHosting()).thenReturn(true);
         when(usersRepository.getUser(new MailAddress(username))).thenReturn(username);
         when(mailboxManager.getMailbox(eq(inbox), any(MailboxSession.class))).thenReturn(messageManager);
-        when(user.getUserName()).thenReturn(username);
+        when(session.getUser()).thenReturn(User.fromUsername(username));
 
         // When
         Mail mail = createMail();
@@ -110,7 +110,7 @@ public class LocalDeliveryTest {
         when(usersRepository.getUser(new MailAddress("receiver@localhost"))).thenReturn(username);
         when(usersRepository.getUser(new MailAddress(RECEIVER_DOMAIN_COM))).thenReturn(username);
         when(mailboxManager.getMailbox(eq(inbox), any(MailboxSession.class))).thenReturn(messageManager);
-        when(user.getUserName()).thenReturn(username);
+        when(session.getUser()).thenReturn(User.fromUsername(username));
 
         // When
         Mail mail = createMail();

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
index 50c38b6..bbb6cde 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
@@ -33,6 +33,7 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeBodyPart;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.User;
 import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
@@ -65,8 +66,8 @@ public class ToRecipientFolderTest {
     private UsersRepository usersRepository;
     private MailboxManager mailboxManager;
     private ToRecipientFolder testee;
-    private MailboxSession.User user;
     private FakeMailContext mailetContext;
+    private MailboxSession session;
 
     @Before
     public void setUp() throws Exception {
@@ -74,21 +75,20 @@ public class ToRecipientFolderTest {
         messageManager = mock(MessageManager.class);
         usersRepository = mock(UsersRepository.class);
         mailboxManager = mock(MailboxManager.class);
-        user = mock(MailboxSession.User.class);
 
 
         MetricFactory metricFactory = mock(MetricFactory.class);
         when(metricFactory.generate(anyString())).thenReturn(mock(Metric.class));
         testee = new ToRecipientFolder(mailboxManager, usersRepository, metricFactory);
 
-        MailboxSession session = mock(MailboxSession.class);
+        session = mock(MailboxSession.class);
         when(session.getPathDelimiter()).thenReturn('.');
         try {
             when(mailboxManager.createSystemSession(any(String.class))).thenReturn(session);
         } catch (MailboxException e) {
             throw new RuntimeException(e);
         }
-        when(session.getUser()).thenReturn(user);
+        when(session.getUser()).thenReturn(User.fromUsername(USER));
     }
 
     @Test
@@ -134,7 +134,6 @@ public class ToRecipientFolderTest {
         when(usersRepository.supportVirtualHosting()).thenReturn(true);
         when(usersRepository.getUser(new MailAddress(USER))).thenReturn(USER);
         when(mailboxManager.getMailbox(eq(JUNK_VIRTUAL_HOSTING), any(MailboxSession.class))).thenReturn(messageManager);
-        when(user.getUserName()).thenReturn(USER);
 
         testee.init(FakeMailetConfig.builder()
             .mailetName(MAILET_NAME)
@@ -151,7 +150,6 @@ public class ToRecipientFolderTest {
         when(usersRepository.supportVirtualHosting()).thenReturn(true);
         when(usersRepository.getUser(new MailAddress(USER))).thenReturn(USER);
         when(mailboxManager.getMailbox(eq(INBOX), any(MailboxSession.class))).thenReturn(messageManager);
-        when(user.getUserName()).thenReturn(USER);
 
         testee.init(FakeMailetConfig.builder()
             .mailetName(MAILET_NAME)
@@ -168,7 +166,7 @@ public class ToRecipientFolderTest {
         when(usersRepository.getUser(new MailAddress(USER_LOCAL_PART + "@localhost"))).thenReturn(USER_LOCAL_PART);
         when(usersRepository.getUser(new MailAddress(USER))).thenReturn(USER_LOCAL_PART);
         when(mailboxManager.getMailbox(eq(JUNK), any(MailboxSession.class))).thenReturn(messageManager);
-        when(user.getUserName()).thenReturn(USER_LOCAL_PART);
+        when(session.getUser()).thenReturn(User.fromUsername(USER_LOCAL_PART));
 
         testee.init(FakeMailetConfig.builder()
             .mailetName(MAILET_NAME)

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
index ab88f63..88f61a6 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
@@ -27,7 +27,6 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.store.StoreSubscriptionManager;
 import org.apache.james.metrics.api.NoopMetricFactory;
@@ -48,7 +47,7 @@ public class DefaultMailboxesProvisioningFilterTest {
 
     @Before
     public void before() throws Exception {
-        session = new MockMailboxSession(USERNAME);
+        session = MailboxSession.create(USERNAME);
 
         InMemoryIntegrationResources inMemoryIntegrationResources = new InMemoryIntegrationResources();
         mailboxManager = inMemoryIntegrationResources.createMailboxManager(new SimpleGroupMembershipResolver());

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
index 46f2ef1..2ad136a 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
@@ -31,7 +31,6 @@ import java.util.Optional;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.SubscriptionManager;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.TestId;
 import org.apache.james.metrics.api.NoopMetricFactory;
@@ -50,7 +49,7 @@ public class DefaultMailboxesProvisioningFilterThreadTest {
 
     @Before
     public void before() {
-        session = new MockMailboxSession(USERNAME);
+        session = MailboxSession.create(USERNAME);
         mailboxManager = mock(MailboxManager.class);
         subscriptionManager = mock(SubscriptionManager.class);
         sut = new DefaultMailboxesProvisioningFilter(mailboxManager, subscriptionManager, new NoopMetricFactory());

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java
index 79f1c34..945fefa 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java
@@ -34,7 +34,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
@@ -72,7 +71,7 @@ public class UserProvisioningFilterTest {
     @Test
     public void filterShouldAddUsernameWhenNoVirtualHostingAndMailboxSessionContainsUsername() throws Exception {
         usersRepository.setEnableVirtualHosting(false);
-        MailboxSession mailboxSession = new MockMailboxSession(USERNAME);
+        MailboxSession mailboxSession = MailboxSession.create(USERNAME);
         when(request.getAttribute(AuthenticationFilter.MAILBOX_SESSION))
             .thenReturn(mailboxSession);
 
@@ -85,7 +84,7 @@ public class UserProvisioningFilterTest {
     @Test
     public void filterShouldAddUsernameWhenNoVirtualHostingAndMailboxSessionContainsMail() throws Exception {
         usersRepository.setEnableVirtualHosting(false);
-        MailboxSession mailboxSession = new MockMailboxSession(MAIL);
+        MailboxSession mailboxSession = MailboxSession.create(MAIL);
         when(request.getAttribute(AuthenticationFilter.MAILBOX_SESSION))
             .thenReturn(mailboxSession);
 
@@ -101,7 +100,7 @@ public class UserProvisioningFilterTest {
         when(usersRepository.isReadOnly()).thenReturn(true);
         sut = new UserProvisioningFilter(usersRepository, new NoopMetricFactory());
 
-        MailboxSession mailboxSession = new MockMailboxSession(MAIL);
+        MailboxSession mailboxSession = MailboxSession.create(MAIL);
         when(request.getAttribute(AuthenticationFilter.MAILBOX_SESSION))
             .thenReturn(mailboxSession);
 
@@ -117,7 +116,7 @@ public class UserProvisioningFilterTest {
         when(usersRepository.isReadOnly()).thenReturn(true);
         sut = new UserProvisioningFilter(usersRepository, new NoopMetricFactory());
 
-        MailboxSession mailboxSession = new MockMailboxSession(MAIL);
+        MailboxSession mailboxSession = MailboxSession.create(MAIL);
         when(request.getAttribute(AuthenticationFilter.MAILBOX_SESSION))
             .thenReturn(mailboxSession);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java
index 19389e8..b0738d5 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java
@@ -22,7 +22,6 @@ import java.time.Duration;
 import java.util.concurrent.ExecutionException;
 
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.apache.james.user.memory.MemoryUsersRepository;
 import org.apache.james.util.concurrency.ConcurrentTestRunner;
@@ -38,7 +37,7 @@ public class UserProvisioningFilterThreadTest {
     @Before
     public void before() {
         usersRepository = MemoryUsersRepository.withoutVirtualHosting();
-        session = new MockMailboxSession("username");
+        session = MailboxSession.create("username");
         sut = new UserProvisioningFilter(usersRepository, new NoopMetricFactory());
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
index 2bfdcde..ea92f14 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
@@ -27,7 +27,6 @@ import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.acl.GroupMembershipResolver;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.Entry;
 import org.apache.james.mailbox.model.MailboxACL.EntryKey;
@@ -60,7 +59,7 @@ public class PropagateLookupRightListenerTest {
     private StoreMailboxManager storeMailboxManager;
     private PropagateLookupRightListener testee;
 
-    private MailboxSession mailboxSession = new MockMailboxSession(OWNER_USER);
+    private MailboxSession mailboxSession = MailboxSession.create(OWNER_USER);
 
     private MailboxId parentMailboxId;
     private MailboxId parentMailboxId1;

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/AttachmentCheckerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/AttachmentCheckerTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/AttachmentCheckerTest.java
index f34eff0..f5b236e 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/AttachmentCheckerTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/AttachmentCheckerTest.java
@@ -31,7 +31,6 @@ import org.apache.james.jmap.model.CreationMessageId;
 import org.apache.james.mailbox.AttachmentManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.AttachmentId;
 import org.junit.Before;
 import org.junit.Test;
@@ -55,7 +54,7 @@ public class AttachmentCheckerTest {
 
     @Before
     public void setUp() {
-        session = new MockMailboxSession("Jonhy");
+        session = MailboxSession.create("Jonhy");
         attachmentManager = mock(AttachmentManager.class);
 
         sut = new AttachmentChecker(attachmentManager);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
index 7abe7fb..d8015a2 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
@@ -45,7 +45,6 @@ import org.apache.james.mailbox.acl.GroupMembershipResolver;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.InMemoryId;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.quota.MaxQuotaManager;
 import org.apache.james.mailbox.quota.QuotaManager;
@@ -112,7 +111,7 @@ public class GetMailboxesMethodTest {
         
         GetMailboxesRequest getMailboxesRequest = GetMailboxesRequest.builder()
                 .build();
-        MailboxSession session = new MockMailboxSession(USERNAME);
+        MailboxSession session = MailboxSession.create(USERNAME);
         
         List<JmapResponse> getMailboxesResponse = testee.process(getMailboxesRequest, clientId, session).collect(Collectors.toList());
         

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
index ac0e6df..464b045 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
@@ -53,7 +53,6 @@ import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.AppendCommand;
 import org.apache.james.mailbox.acl.GroupMembershipResolver;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.BlobId;
 import org.apache.james.mailbox.model.ComposedMessageId;
 import org.apache.james.mailbox.model.MailboxId;
@@ -109,7 +108,7 @@ public class GetMessagesMethodTest {
         GroupMembershipResolver groupMembershipResolver = inMemoryIntegrationResources.createGroupMembershipResolver();
         mailboxManager = inMemoryIntegrationResources.createMailboxManager(groupMembershipResolver);
 
-        session = new MockMailboxSession(ROBERT.asString());
+        session = MailboxSession.create(ROBERT.asString());
         inboxPath = MailboxPath.inbox(session);
         customMailboxPath = new MailboxPath(inboxPath, "custom");
         mailboxManager.createMailbox(inboxPath, session);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
index f64a6ea..6c0d042 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
@@ -59,7 +59,6 @@ import org.apache.james.mailbox.SystemMailboxesProvider;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.inmemory.InMemoryId;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.ComposedMessageId;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxId.Factory;
@@ -107,7 +106,7 @@ public class SetMessagesCreationProcessorTest {
     private MessageFactory messageFactory;
     private MailSpool mockedMailSpool;
     private SystemMailboxesProvider fakeSystemMailboxesProvider;
-    private MockMailboxSession session;
+    private MailboxSession session;
     private AttachmentManager mockedAttachmentManager;
     private MailboxManager mockedMailboxManager;
     private Factory mockedMailboxIdFactory;
@@ -141,7 +140,7 @@ public class SetMessagesCreationProcessorTest {
         MessageIdManager mockMessageIdManager = mock(MessageIdManager.class);
         
         fakeSystemMailboxesProvider = new TestSystemMailboxesProvider(() -> optionalOutbox, () -> optionalDrafts);
-        session = new MockMailboxSession(USER);
+        session = MailboxSession.create(USER);
         MIMEMessageConverter mimeMessageConverter = new MIMEMessageConverter();
         messageAppender = new MessageAppender(mockedMailboxManager, mockMessageIdManager, mockedAttachmentManager, mimeMessageConverter);
         messageSender = new MessageSender(mockedMailSpool, mockedMailFactory);

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/JmapMDNTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/JmapMDNTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/JmapMDNTest.java
index 064a0be..e07225c 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/JmapMDNTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/JmapMDNTest.java
@@ -25,7 +25,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import java.nio.charset.StandardCharsets;
 
 import org.apache.james.jmap.exceptions.InvalidOriginMessageForMDNException;
-import org.apache.james.mailbox.mock.MockMailboxSession;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.model.TestMessageId;
 import org.apache.james.mdn.action.mode.DispositionActionMode;
 import org.apache.james.mdn.sending.mode.DispositionSendingMode;
@@ -55,7 +55,7 @@ public class JmapMDNTest {
         .subject(SUBJECT)
         .textBody(TEXT_BODY)
         .build();
-    public static final MockMailboxSession MAILBOX_SESSION = new MockMailboxSession("user@localhost.com");
+    public static final MailboxSession MAILBOX_SESSION = MailboxSession.create("user@localhost.com");
 
     @Test
     public void shouldMatchBeanContract() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java
index 2e9c409..4db4288 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java
@@ -30,9 +30,9 @@ import org.apache.james.backends.es.EmbeddedElasticSearch;
 import org.apache.james.backends.es.utils.TestingClientProvider;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.memory.MemoryDomainList;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.quota.search.QuotaSearchTestSystem;
 import org.apache.james.quota.search.elasticsearch.ElasticSearchQuotaSearcher;
 import org.apache.james.quota.search.elasticsearch.QuotaRatioElasticSearchConstants;
@@ -82,7 +82,7 @@ public class ElasticSearchQuotaSearchExtension implements ParameterResolver, Bef
                 new QuotaRatioToElasticSearchJson());
 
             resources.getMailboxManager()
-                .addGlobalListener(listener, new MockMailboxSession("ANY"));
+                .addGlobalListener(listener, MailboxSession.create("ANY"));
 
             QuotaSearchTestSystem quotaSearchTestSystem = new QuotaSearchTestSystem(
                 resources.getMaxQuotaManager(),

http://git-wip-us.apache.org/repos/asf/james-project/blob/71c5a800/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
index 3e3aaaf..e9164df 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
@@ -35,13 +35,13 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxExistsException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.inmemory.InMemoryId;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.search.MailboxQuery;
@@ -733,7 +733,7 @@ class UserMailboxesRoutesTest {
         @BeforeEach
         void setUp() throws Exception {
             mailboxManager = mock(MailboxManager.class);
-            when(mailboxManager.createSystemSession(any())).thenReturn(new MockMailboxSession(USERNAME));
+            when(mailboxManager.createSystemSession(any())).thenReturn(MailboxSession.create(USERNAME));
 
             createServer(mailboxManager);
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[04/13] james-project git commit: MAILBOX-365 Get rid of MailboxSession.getUser

Posted by bt...@apache.org.
MAILBOX-365 Get rid of MailboxSession.getUser

We should use core.getUser instead


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/46e26b8d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/46e26b8d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/46e26b8d

Branch: refs/heads/master
Commit: 46e26b8d325416b9543184b7a23aa952d84e062f
Parents: 000f775
Author: Benoit Tellier <bt...@linagora.com>
Authored: Sat Dec 15 15:09:27 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Dec 18 14:48:08 2018 +0700

----------------------------------------------------------------------
 .../apache/james/mailbox/MailboxSession.java    | 21 +---------
 .../apache/james/mailbox/model/MailboxPath.java |  4 +-
 .../mailbox/model/search/MailboxQuery.java      |  7 ++--
 .../james/mailbox/MailboxManagerTest.java       |  2 +-
 .../james/mailbox/mock/DataProvisioner.java     |  2 +-
 .../james/mailbox/mock/MockMailboxSession.java  | 17 +-------
 .../cassandra/CassandraSubscriptionManager.java |  2 +-
 ...lasticSearchListeningMessageSearchIndex.java | 14 +++----
 .../elasticsearch/json/IndexableMessage.java    |  4 +-
 .../json/MessageToElasticSearchJson.java        |  5 +--
 ...icSearchListeningMessageSearchIndexTest.java |  4 +-
 .../json/IndexableMessageTest.java              | 39 +++++++++----------
 .../json/MessageToElasticSearchJsonTest.java    | 41 ++++++++++----------
 .../mailbox/jpa/JPASubscriptionManager.java     |  2 +-
 .../lucene/search/LuceneMessageSearchIndex.java |  2 +-
 .../mailbox/store/SimpleMailboxSession.java     | 23 ++---------
 .../mailbox/store/StoreAttachmentManager.java   |  3 +-
 .../mailbox/store/StoreMailboxManager.java      |  6 +--
 .../mailbox/store/StoreMessageIdManager.java    |  4 +-
 .../james/mailbox/store/StoreRightManager.java  |  6 +--
 .../mailbox/store/StoreSubscriptionManager.java |  8 ++--
 .../james/mailbox/store/event/EventFactory.java | 16 ++++----
 .../mailbox/store/event/MessageMoveEvent.java   |  2 +-
 .../mailbox/store/mail/model/Username.java      |  2 +-
 .../mailbox/store/StoreMailboxManagerTest.java  |  4 +-
 .../store/SystemMailboxesProviderImplTest.java  |  4 +-
 .../DefaultDelegatingMailboxListenerTest.java   |  2 +-
 .../DefaultMailboxesProvisioningFilter.java     |  6 +--
 .../org/apache/james/jmap/DownloadServlet.java  |  2 +-
 .../james/jmap/UserProvisioningFilter.java      |  9 ++---
 .../event/PropagateLookupRightListener.java     |  2 +-
 .../james/jmap/methods/GetFilterMethod.java     |  2 +-
 .../jmap/methods/GetVacationResponseMethod.java |  4 +-
 .../james/jmap/methods/MessageSender.java       |  2 +-
 .../james/jmap/methods/RequestHandler.java      |  3 +-
 .../james/jmap/methods/SendMDNProcessor.java    |  2 +-
 .../james/jmap/methods/SetFilterMethod.java     |  2 +-
 .../methods/SetMailboxesCreationProcessor.java  |  4 +-
 .../methods/SetMailboxesUpdateProcessor.java    |  2 +-
 .../methods/SetMessagesCreationProcessor.java   |  7 ++--
 .../methods/SetMessagesUpdateProcessor.java     |  9 +++--
 .../jmap/methods/SetVacationResponseMethod.java |  2 +-
 .../org/apache/james/jmap/model/JmapMDN.java    |  6 +--
 .../apache/james/jmap/model/mailbox/Rights.java |  2 +-
 .../james/jmap/send/PostDequeueDecorator.java   |  4 +-
 .../jmap/methods/GetMessagesMethodTest.java     | 29 ++------------
 .../methods/GetVacationResponseMethodTest.java  |  8 ++--
 .../methods/SetVacationResponseMethodTest.java  | 34 +++-------------
 48 files changed, 148 insertions(+), 239 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
index f81c229..51dd6b3 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
@@ -25,6 +25,8 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 
+import org.apache.james.core.User;
+
 import com.google.common.base.MoreObjects;
 
 /**
@@ -131,25 +133,6 @@ public interface MailboxSession {
     List<Locale> getLocalePreferences();
 
     /**
-     * A mailbox user. Useful for specialist mailbox implementation.
-     */
-    interface User {
-        /**
-         * Gets the name of the user.
-         * 
-         * @return not null
-         */
-        String getUserName();
-
-        
-        boolean isSameUser(String username);
-
-        default org.apache.james.core.User getCoreUser() {
-            return org.apache.james.core.User.fromUsername(getUserName());
-        }
-    }
-
-    /**
      * Gets the <a href='http://www.isi.edu/in-notes/rfc2342.txt' rel='tag'>RFC
      * 2342</a> personal namespace for the current session.<br>
      * Note that though servers may offer multiple personal namespaces, support

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
index 46924a1..2675d7c 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
@@ -41,7 +41,7 @@ public class MailboxPath {
      * @return inbox
      */
     public static MailboxPath inbox(MailboxSession session) {
-        return MailboxPath.forUser(session.getUser().getUserName(), MailboxConstants.INBOX);
+        return MailboxPath.forUser(session.getUser().asString(), MailboxConstants.INBOX);
     }
 
     /**
@@ -101,7 +101,7 @@ public class MailboxPath {
     }
 
     public boolean belongsTo(MailboxSession mailboxSession) {
-        return mailboxSession.getUser().isSameUser(user);
+        return user.equalsIgnoreCase(mailboxSession.getUser().asString());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java
index 2afec92..ed2f747 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java
@@ -21,6 +21,7 @@ package org.apache.james.mailbox.model.search;
 
 import java.util.Optional;
 
+import org.apache.james.core.User;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -42,7 +43,7 @@ public final class MailboxQuery {
     public static Builder privateMailboxesBuilder(MailboxSession session) {
         return builder()
             .namespace(MailboxConstants.USER_NAMESPACE)
-            .username(session.getUser().getUserName())
+            .username(session.getUser().asString())
             .matchesAllMailboxNames();
     }
 
@@ -137,9 +138,9 @@ public final class MailboxQuery {
     }
 
     public boolean isPrivateMailboxes(MailboxSession session) {
-        MailboxSession.User sessionUser = session.getUser();
+        User sessionUser = session.getUser();
         return namespace.map(MailboxConstants.USER_NAMESPACE::equals).orElse(false)
-            && user.map(sessionUser::isSameUser).orElse(false);
+            && user.map(User::fromUsername).map(sessionUser::equals).orElse(false);
     }
 
     @VisibleForTesting

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
index a9a2690..e8dd5a3 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
@@ -1194,7 +1194,7 @@ public abstract class MailboxManagerTest {
         void createUser1SystemSessionShouldReturnValidSession() throws Exception {
             session = mailboxManager.createSystemSession(USER_1);
 
-            assertThat(session.getUser().getUserName()).isEqualTo(USER_1);
+            assertThat(session.getUser().asString()).isEqualTo(USER_1);
         }
 
         @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java
index 8914a6e..674c324 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java
@@ -100,7 +100,7 @@ public class DataProvisioner {
     private static void createSubSubMailboxes(MailboxManager mailboxManager,MailboxSession mailboxSession, String subFolderName) {
         IntStream.range(0, SUB_SUB_MAILBOXES_COUNT)
             .mapToObj(i -> subFolderName + ".SUBSUB_FOLDER_" + i)
-            .forEach(name -> createMailbox(mailboxManager, mailboxSession, MailboxPath.forUser(mailboxSession.getUser().getUserName(), name)));
+            .forEach(name -> createMailbox(mailboxManager, mailboxSession, MailboxPath.forUser(mailboxSession.getUser().asString(), name)));
 
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
index 8e8e90c..8bf84f0 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
@@ -26,6 +26,7 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Random;
 
+import org.apache.james.core.User;
 import org.apache.james.mailbox.MailboxSession;
 
 public class MockMailboxSession implements MailboxSession {
@@ -41,21 +42,7 @@ public class MockMailboxSession implements MailboxSession {
     }
 
     public MockMailboxSession(String username, SessionId sessionId) {
-        this.user = new User() {
-
-            @Override
-            public String getUserName() {
-                return username;
-            }
-
-            @Override
-            public boolean isSameUser(String other) {
-                if (username == null) {
-                    return other == null;
-                }
-                return username.equalsIgnoreCase(other);
-            }
-        };
+        this.user = User.fromUsername(username);
         this.sessionId = sessionId;
         this.open = true;
         type = SessionType.User;

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManager.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManager.java
index f85b4f6..c1da5cd 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManager.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManager.java
@@ -39,6 +39,6 @@ public class CassandraSubscriptionManager extends StoreSubscriptionManager {
 
     @Override
     protected Subscription createSubscription(MailboxSession session, String mailbox) {
-        return new SimpleSubscription(session.getUser().getUserName(), mailbox);
+        return new SimpleSubscription(session.getUser().asString(), mailbox);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
index 8f5edb3..a925c04 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
@@ -123,12 +123,12 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe
     }
 
     @Override
-    public void add(MailboxSession session, Mailbox mailbox, MailboxMessage message) throws MailboxException {
+    public void add(MailboxSession session, Mailbox mailbox, MailboxMessage message) {
         try {
             LOGGER.info("Indexing mailbox {}-{} of user {} on message {}",
                     mailbox.getName(),
                     mailbox.getMailboxId(),
-                    session.getUser().getUserName(),
+                    session.getUser().asString(),
                     message.getUid());
             elasticSearchIndexer.index(indexIdFor(mailbox, message.getUid()), messageToElasticSearchJson.convertToJson(message, ImmutableList.of(session.getUser())));
         } catch (Exception e) {
@@ -136,7 +136,7 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe
                 LOGGER.warn("Indexing mailbox {}-{} of user {} on message {} without attachments ",
                         mailbox.getName(),
                         mailbox.getMailboxId().serialize(),
-                        session.getUser().getUserName(),
+                        session.getUser().asString(),
                         message.getUid(),
                         e);
                 elasticSearchIndexer.index(indexIdFor(mailbox, message.getUid()), messageToElasticSearchJson.convertToJsonWithoutAttachment(message, ImmutableList.of(session.getUser())));
@@ -144,7 +144,7 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe
                 LOGGER.error("Error when indexing mailbox {}-{} of user {} on message {} without its attachment",
                         mailbox.getName(),
                         mailbox.getMailboxId().serialize(),
-                        session.getUser().getUserName(),
+                        session.getUser().asString(),
                         message.getUid(),
                         e1);
             }
@@ -152,7 +152,7 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe
     }
     
     @Override
-    public void delete(MailboxSession session, Mailbox mailbox, Collection<MessageUid> expungedUids) throws MailboxException {
+    public void delete(MailboxSession session, Mailbox mailbox, Collection<MessageUid> expungedUids) {
         try {
             elasticSearchIndexer.delete(expungedUids.stream()
                 .map(uid ->  indexIdFor(mailbox, uid))
@@ -165,7 +165,7 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe
     }
 
     @Override
-    public void deleteAll(MailboxSession session, Mailbox mailbox) throws MailboxException {
+    public void deleteAll(MailboxSession session, Mailbox mailbox) {
         try {
             elasticSearchIndexer.deleteAllMatchingQuery(
                 termQuery(
@@ -177,7 +177,7 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe
     }
 
     @Override
-    public void update(MailboxSession session, Mailbox mailbox, List<UpdatedFlags> updatedFlagsList) throws MailboxException {
+    public void update(MailboxSession session, Mailbox mailbox, List<UpdatedFlags> updatedFlagsList) {
         try {
             elasticSearchIndexer.update(updatedFlagsList.stream()
                 .map(updatedFlags -> createUpdatedDocumentPartFromUpdatedFlags(mailbox, updatedFlags))

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessage.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessage.java
index b6d9527..5517ebc 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessage.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessage.java
@@ -28,7 +28,7 @@ import java.util.Optional;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import org.apache.james.mailbox.MailboxSession.User;
+import org.apache.james.core.User;
 import org.apache.james.mailbox.elasticsearch.IndexAttachments;
 import org.apache.james.mailbox.elasticsearch.query.DateResolutionFormater;
 import org.apache.james.mailbox.extractor.TextExtractor;
@@ -119,7 +119,7 @@ public class IndexableMessage {
             MimePart parsingResult = new MimePartParser(message, textExtractor).parse();
 
             List<String> stringifiedUsers = users.stream()
-                    .map(User::getUserName)
+                    .map(User::asString)
                     .collect(Guavate.toImmutableList());
 
             Optional<String> bodyText = parsingResult.locateFirstTextBody();

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJson.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJson.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJson.java
index aacd790..48b5baf 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJson.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJson.java
@@ -25,8 +25,7 @@ import java.util.List;
 import javax.inject.Inject;
 import javax.mail.Flags;
 
-import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.MailboxSession.User;
+import org.apache.james.core.User;
 import org.apache.james.mailbox.elasticsearch.IndexAttachments;
 import org.apache.james.mailbox.extractor.TextExtractor;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
@@ -54,7 +53,7 @@ public class MessageToElasticSearchJson {
     }
 
     @Inject
-    public MessageToElasticSearchJson(TextExtractor textExtractor, IndexAttachments indexAttachments, MailboxManager mailboxManager) {
+    public MessageToElasticSearchJson(TextExtractor textExtractor, IndexAttachments indexAttachments) {
         this(textExtractor, ZoneId.systemDefault(), indexAttachments);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
index d8ed910..f04852d 100644
--- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
+++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
@@ -33,9 +33,9 @@ import javax.mail.Flags;
 
 import org.apache.james.backends.es.ElasticSearchIndexer;
 import org.apache.james.backends.es.UpdatedRepresentation;
+import org.apache.james.core.User;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MailboxSession.User;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.elasticsearch.json.MessageToElasticSearchJson;
 import org.apache.james.mailbox.elasticsearch.search.ElasticSearchSearcher;
@@ -84,7 +84,7 @@ public class ElasticSearchListeningMessageSearchIndexTest {
         testee = new ElasticSearchListeningMessageSearchIndex(mapperFactory, elasticSearchIndexer, elasticSearchSearcher,
             messageToElasticSearchJson, mockMailboxManager);
         session = new MockMailboxSession(USERNAME);
-        users = ImmutableList.of(session.getUser());
+        users = ImmutableList.of(User.fromUsername(USERNAME));
     }
     
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java
index 40b641e..9723cb2 100644
--- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java
+++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java
@@ -31,12 +31,12 @@ import java.util.Optional;
 
 import javax.mail.Flags;
 
+import org.apache.james.core.User;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.elasticsearch.IndexAttachments;
 import org.apache.james.mailbox.extractor.ParsedContent;
 import org.apache.james.mailbox.extractor.TextExtractor;
 import org.apache.james.mailbox.inmemory.InMemoryMessageId;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.TestId;
 import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
@@ -57,8 +57,7 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 
 public class IndexableMessageTest {
-
-    public static final MessageUid MESSAGE_UID = MessageUid.of(154);
+    private static final MessageUid MESSAGE_UID = MessageUid.of(154);
 
     @ClassRule
     public static TikaContainerSingletonRule tika = TikaContainerSingletonRule.rule;
@@ -91,7 +90,7 @@ public class IndexableMessageTest {
 
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.NO)
@@ -117,7 +116,7 @@ public class IndexableMessageTest {
 
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.NO)
@@ -143,7 +142,7 @@ public class IndexableMessageTest {
 
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.NO)
@@ -169,7 +168,7 @@ public class IndexableMessageTest {
 
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.NO)
@@ -195,7 +194,7 @@ public class IndexableMessageTest {
 
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.NO)
@@ -221,7 +220,7 @@ public class IndexableMessageTest {
 
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.NO)
@@ -247,7 +246,7 @@ public class IndexableMessageTest {
 
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.NO)
@@ -273,7 +272,7 @@ public class IndexableMessageTest {
 
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.NO)
@@ -310,7 +309,7 @@ public class IndexableMessageTest {
         // When
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.YES)
@@ -341,7 +340,7 @@ public class IndexableMessageTest {
         // When
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.NO)
@@ -372,7 +371,7 @@ public class IndexableMessageTest {
         // When
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.NO)
@@ -401,7 +400,7 @@ public class IndexableMessageTest {
         // When
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.NO)
@@ -430,7 +429,7 @@ public class IndexableMessageTest {
         // When
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(new DefaultTextExtractor())
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.YES)
@@ -465,7 +464,7 @@ public class IndexableMessageTest {
         // When
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(textExtractor)
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.YES)
@@ -506,7 +505,7 @@ public class IndexableMessageTest {
         // When
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(textExtractor)
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.YES)
@@ -538,7 +537,7 @@ public class IndexableMessageTest {
 
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(textExtractor)
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.YES)
@@ -567,7 +566,7 @@ public class IndexableMessageTest {
 
         IndexableMessage indexableMessage = IndexableMessage.builder()
                 .message(mailboxMessage)
-                .users(ImmutableList.of(new MockMailboxSession("username").getUser()))
+                .users(ImmutableList.of(User.fromUsername("username")))
                 .extractor(textExtractor)
                 .zoneId(ZoneId.of("Europe/Paris"))
                 .indexAttachments(IndexAttachments.YES)

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java
index fa080f3..b38076b 100644
--- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java
+++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java
@@ -32,12 +32,11 @@ import java.util.Date;
 import javax.mail.Flags;
 import javax.mail.util.SharedByteArrayInputStream;
 
+import org.apache.james.core.User;
 import org.apache.james.mailbox.FlagsBuilder;
-import org.apache.james.mailbox.MailboxSession.User;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.elasticsearch.IndexAttachments;
 import org.apache.james.mailbox.extractor.TextExtractor;
-import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.TestId;
 import org.apache.james.mailbox.model.TestMessageId;
@@ -58,14 +57,14 @@ import org.junit.Test;
 import com.google.common.collect.ImmutableList;
 
 public class MessageToElasticSearchJsonTest {
-
-    public static final int SIZE = 25;
-    public static final int BODY_START_OCTET = 100;
-    public static final TestId MAILBOX_ID = TestId.of(18L);
-    public static final MessageId MESSAGE_ID = TestMessageId.of(184L);
-    public static final long MOD_SEQ = 42L;
-    public static final MessageUid UID = MessageUid.of(25);
-    public static final MockMailboxSession MAILBOX_SESSION = new MockMailboxSession("username");
+    private static final int SIZE = 25;
+    private static final int BODY_START_OCTET = 100;
+    private static final TestId MAILBOX_ID = TestId.of(18L);
+    private static final MessageId MESSAGE_ID = TestMessageId.of(184L);
+    private static final long MOD_SEQ = 42L;
+    private static final MessageUid UID = MessageUid.of(25);
+    private static final String USERNAME = "username";
+    private static final User USER = User.fromUsername(USERNAME);
 
     private TextExtractor textExtractor;
 
@@ -125,7 +124,7 @@ public class MessageToElasticSearchJsonTest {
                 MAILBOX_ID);
         spamMail.setUid(UID);
         spamMail.setModSeq(MOD_SEQ);
-        assertThatJson(messageToElasticSearchJson.convertToJson(spamMail, ImmutableList.of(MAILBOX_SESSION.getUser())))
+        assertThatJson(messageToElasticSearchJson.convertToJson(spamMail, ImmutableList.of(USER)))
             .when(IGNORING_ARRAY_ORDER)
             .isEqualTo(ClassLoaderUtils.getSystemResourceAsString("eml/spamMail.json"));
     }
@@ -145,7 +144,7 @@ public class MessageToElasticSearchJsonTest {
                 MAILBOX_ID);
         htmlMail.setModSeq(MOD_SEQ);
         htmlMail.setUid(UID);
-        assertThatJson(messageToElasticSearchJson.convertToJson(htmlMail, ImmutableList.of(MAILBOX_SESSION.getUser())))
+        assertThatJson(messageToElasticSearchJson.convertToJson(htmlMail, ImmutableList.of(USER)))
             .when(IGNORING_ARRAY_ORDER)
             .isEqualTo(ClassLoaderUtils.getSystemResourceAsString("eml/htmlMail.json"));
     }
@@ -165,7 +164,7 @@ public class MessageToElasticSearchJsonTest {
                 MAILBOX_ID);
         pgpSignedMail.setModSeq(MOD_SEQ);
         pgpSignedMail.setUid(UID);
-        assertThatJson(messageToElasticSearchJson.convertToJson(pgpSignedMail, ImmutableList.of(MAILBOX_SESSION.getUser())))
+        assertThatJson(messageToElasticSearchJson.convertToJson(pgpSignedMail, ImmutableList.of(USER)))
             .when(IGNORING_ARRAY_ORDER)
             .isEqualTo(ClassLoaderUtils.getSystemResourceAsString("eml/pgpSignedMail.json"));
     }
@@ -186,7 +185,7 @@ public class MessageToElasticSearchJsonTest {
         mail.setModSeq(MOD_SEQ);
         mail.setUid(UID);
         assertThatJson(messageToElasticSearchJson.convertToJson(mail,
-                ImmutableList.of(new MockMailboxSession("user1").getUser(), new MockMailboxSession("user2").getUser())))
+                ImmutableList.of(User.fromUsername("user1"), User.fromUsername("user2"))))
             .when(IGNORING_ARRAY_ORDER).when(IGNORING_VALUES)
             .isEqualTo(ClassLoaderUtils.getSystemResourceAsString("eml/mail.json"));
     }
@@ -206,7 +205,7 @@ public class MessageToElasticSearchJsonTest {
                 MAILBOX_ID);
         recursiveMail.setModSeq(MOD_SEQ);
         recursiveMail.setUid(UID);
-        assertThatJson(messageToElasticSearchJson.convertToJson(recursiveMail, ImmutableList.of(MAILBOX_SESSION.getUser())))
+        assertThatJson(messageToElasticSearchJson.convertToJson(recursiveMail, ImmutableList.of(USER)))
             .when(IGNORING_ARRAY_ORDER).when(IGNORING_VALUES)
             .isEqualTo(ClassLoaderUtils.getSystemResourceAsString("eml/recursiveMail.json"));
     }
@@ -226,7 +225,7 @@ public class MessageToElasticSearchJsonTest {
                 MAILBOX_ID);
         mailWithNoInternalDate.setModSeq(MOD_SEQ);
         mailWithNoInternalDate.setUid(UID);
-        assertThatJson(messageToElasticSearchJson.convertToJson(mailWithNoInternalDate, ImmutableList.of(MAILBOX_SESSION.getUser())))
+        assertThatJson(messageToElasticSearchJson.convertToJson(mailWithNoInternalDate, ImmutableList.of(USER)))
             .when(IGNORING_ARRAY_ORDER)
             .when(IGNORING_VALUES)
             .isEqualTo(ClassLoaderUtils.getSystemResourceAsString("eml/recursiveMail.json"));
@@ -251,7 +250,7 @@ public class MessageToElasticSearchJsonTest {
             new DefaultTextExtractor(),
             ZoneId.of("Europe/Paris"),
             IndexAttachments.YES);
-        String convertToJson = messageToElasticSearchJson.convertToJson(mailWithNoInternalDate, ImmutableList.of(MAILBOX_SESSION.getUser()));
+        String convertToJson = messageToElasticSearchJson.convertToJson(mailWithNoInternalDate, ImmutableList.of(USER));
 
         // Then
         assertThatJson(convertToJson)
@@ -279,7 +278,7 @@ public class MessageToElasticSearchJsonTest {
             new DefaultTextExtractor(),
             ZoneId.of("Europe/Paris"),
             IndexAttachments.NO);
-        String convertToJson = messageToElasticSearchJson.convertToJson(mailWithNoInternalDate, ImmutableList.of(MAILBOX_SESSION.getUser()));
+        String convertToJson = messageToElasticSearchJson.convertToJson(mailWithNoInternalDate, ImmutableList.of(USER));
 
         // Then
         assertThatJson(convertToJson)
@@ -304,7 +303,7 @@ public class MessageToElasticSearchJsonTest {
         mailWithNoMailboxId.setUid(UID);
 
         assertThatThrownBy(() ->
-            messageToElasticSearchJson.convertToJson(mailWithNoMailboxId, ImmutableList.of(MAILBOX_SESSION.getUser())))
+            messageToElasticSearchJson.convertToJson(mailWithNoMailboxId, ImmutableList.of(USER)))
             .isInstanceOf(NullPointerException.class);
     }
 
@@ -353,7 +352,7 @@ public class MessageToElasticSearchJsonTest {
         spamMail.setUid(UID);
         spamMail.setModSeq(MOD_SEQ);
 
-        assertThatJson(messageToElasticSearchJson.convertToJson(spamMail, ImmutableList.of(MAILBOX_SESSION.getUser())))
+        assertThatJson(messageToElasticSearchJson.convertToJson(spamMail, ImmutableList.of(USER)))
             .when(IGNORING_ARRAY_ORDER)
             .isEqualTo(
                 ClassLoaderUtils.getSystemResourceAsString("eml/nonTextual.json", StandardCharsets.UTF_8));
@@ -378,7 +377,7 @@ public class MessageToElasticSearchJsonTest {
                 new DefaultTextExtractor(),
                 ZoneId.of("Europe/Paris"),
                 IndexAttachments.NO);
-        String convertToJsonWithoutAttachment = messageToElasticSearchJson.convertToJsonWithoutAttachment(message, ImmutableList.of(MAILBOX_SESSION.getUser()));
+        String convertToJsonWithoutAttachment = messageToElasticSearchJson.convertToJsonWithoutAttachment(message, ImmutableList.of(USER));
 
         // Then
         assertThatJson(convertToJsonWithoutAttachment)

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPASubscriptionManager.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPASubscriptionManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPASubscriptionManager.java
index bd6a1a8..fae41ba 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPASubscriptionManager.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPASubscriptionManager.java
@@ -38,6 +38,6 @@ public class JPASubscriptionManager extends StoreSubscriptionManager {
     
     @Override
     protected Subscription createSubscription(MailboxSession session, String mailbox) {
-        return new JPASubscription(session.getUser().getUserName(), mailbox);
+        return new JPASubscription(session.getUser().asString(), mailbox);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
----------------------------------------------------------------------
diff --git a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
index b89ec37..63af04e 100644
--- a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
+++ b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
@@ -543,7 +543,7 @@ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex {
     private Document createMessageDocument(final MailboxSession session, final MailboxMessage membership) throws MailboxException {
         final Document doc = new Document();
         // TODO: Better handling
-        doc.add(new Field(USERS, session.getUser().getUserName().toUpperCase(Locale.US), Store.YES, Index.NOT_ANALYZED));
+        doc.add(new Field(USERS, session.getUser().asString().toUpperCase(Locale.US), Store.YES, Index.NOT_ANALYZED));
         doc.add(new Field(MAILBOX_ID_FIELD, membership.getMailboxId().serialize().toUpperCase(Locale.US), Store.YES, Index.NOT_ANALYZED));
         doc.add(new NumericField(UID_FIELD,Store.YES, true).setLongValue(membership.getUid().asLong()));
         doc.add(new Field(HAS_ATTACHMENT_FIELD, Boolean.toString(hasAttachment(membership)), Store.YES, Index.NOT_ANALYZED));

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
index 7f08b47..2e3f159 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
@@ -26,13 +26,14 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
+import org.apache.james.core.User;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.model.MailboxConstants;
 
 /**
  * Describes a mailbox session.
  */
-public class SimpleMailboxSession implements MailboxSession, MailboxSession.User {
+public class SimpleMailboxSession implements MailboxSession {
 
     private final Collection<String> sharedSpaces;
 
@@ -112,17 +113,7 @@ public class SimpleMailboxSession implements MailboxSession, MailboxSession.User
      */
     @Override
     public User getUser() {
-        return this;
-    }
-    
-    /**
-     * Gets the name of the user executing this session.
-     * 
-     * @return not null
-     */
-    @Override
-    public String getUserName() {
-        return userName;
+        return User.fromUsername(userName);
     }
 
     @Override
@@ -163,12 +154,4 @@ public class SimpleMailboxSession implements MailboxSession, MailboxSession.User
         return type;
     }
 
-    @Override
-    public boolean isSameUser(String username) {
-        if (this.userName == null) {
-            return username == null;
-        }
-        return this.userName.equalsIgnoreCase(username);
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreAttachmentManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreAttachmentManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreAttachmentManager.java
index b4cd5e6..3fbb36c 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreAttachmentManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreAttachmentManager.java
@@ -24,6 +24,7 @@ import java.util.List;
 
 import javax.inject.Inject;
 
+import org.apache.james.core.User;
 import org.apache.james.mailbox.AttachmentManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageIdManager;
@@ -105,7 +106,7 @@ public class StoreAttachmentManager implements AttachmentManager {
         Collection<Username> explicitOwners = attachmentMapperFactory.getAttachmentMapper(mailboxSession)
             .getOwners(attachmentId);
         return explicitOwners.stream()
-            .anyMatch(username -> mailboxSession.getUser().isSameUser(username.getValue()));
+            .anyMatch(username -> mailboxSession.getUser().equals(User.fromUsername(username.getValue())));
     }
 
     private Collection<MessageId> getRelatedMessageIds(AttachmentId attachmentId, MailboxSession mailboxSession) throws MailboxException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
index 4b322de..fba7edd 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
@@ -598,7 +598,7 @@ public class StoreMailboxManager implements MailboxManager {
 
     private void assertIsOwner(MailboxSession mailboxSession, MailboxPath mailboxPath) throws MailboxNotFoundException {
         if (!mailboxPath.belongsTo(mailboxSession)) {
-            LOGGER.info("Mailbox {} does not belong to {}", mailboxPath.asString(), mailboxSession.getUser().getUserName());
+            LOGGER.info("Mailbox {} does not belong to {}", mailboxPath.asString(), mailboxSession.getUser().asString());
             throw new MailboxNotFoundException(mailboxPath.asString());
         }
     }
@@ -700,7 +700,7 @@ public class StoreMailboxManager implements MailboxManager {
             + SQL_WILDCARD_CHAR;
         MailboxPath base = new MailboxPath(
             mailboxQuery.getNamespace().orElse(MailboxConstants.USER_NAMESPACE),
-            mailboxQuery.getUser().orElse(mailboxSession.getUser().getUserName()),
+            mailboxQuery.getUser().orElse(mailboxSession.getUser().asString()),
             combinedName);
         return new MailboxPath(base, combinedName);
     }
@@ -710,7 +710,7 @@ public class StoreMailboxManager implements MailboxManager {
         if (mailboxQuery.isPrivateMailboxes(session)) {
             return Stream.of();
         }
-        return mailboxMapper.findNonPersonalMailboxes(session.getUser().getUserName(), right).stream();
+        return mailboxMapper.findNonPersonalMailboxes(session.getUser().asString(), right).stream();
     }
 
     private SimpleMailboxMetaData toMailboxMetadata(MailboxSession session, List<Mailbox> mailboxes, Mailbox mailbox) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
index 1a5f789..0dfda8d 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
@@ -230,7 +230,7 @@ public class StoreMessageIdManager implements MessageIdManager {
         List<MailboxMessage> currentMailboxMessages = findRelatedMailboxMessages(messageId, mailboxSession);
 
         if (currentMailboxMessages.isEmpty()) {
-            LOGGER.info("Tried to access {} not accessible for {}", messageId, mailboxSession.getUser().getUserName());
+            LOGGER.info("Tried to access {} not accessible for {}", messageId, mailboxSession.getUser().asString());
             return;
         }
 
@@ -399,7 +399,7 @@ public class StoreMessageIdManager implements MessageIdManager {
             .findFirst();
 
         if (mailboxForbidden.isPresent()) {
-            LOGGER.info("Mailbox with Id {} does not belong to {}", mailboxForbidden.get(), mailboxSession.getUser().getUserName());
+            LOGGER.info("Mailbox with Id {} does not belong to {}", mailboxForbidden.get(), mailboxSession.getUser().asString());
             throw new MailboxNotFoundException(mailboxForbidden.get());
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
index 5fd6491..b97793f 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
@@ -99,12 +99,12 @@ public class StoreRightManager implements RightManager {
     }
 
     public Rfc4314Rights myRights(Mailbox mailbox, MailboxSession session) throws UnsupportedRightException {
-        MailboxSession.User user = session.getUser();
+        User user = session.getUser();
 
         return Optional.ofNullable(user)
             .map(Throwing.function(value ->
                 aclResolver.resolveRights(
-                    user.getUserName(),
+                    user.asString(),
                     groupMembershipResolver,
                     mailbox.getACL(),
                     mailbox.getUser(),
@@ -246,7 +246,7 @@ public class StoreRightManager implements RightManager {
             return acl;
         }
 
-        MailboxACL.EntryKey userAsKey = MailboxACL.EntryKey.createUserEntryKey(mailboxSession.getUser().getUserName());
+        MailboxACL.EntryKey userAsKey = MailboxACL.EntryKey.createUserEntryKey(mailboxSession.getUser().asString());
         Rfc4314Rights rights = acl.getEntries().getOrDefault(userAsKey, new Rfc4314Rights());
         if (rights.contains(MailboxACL.Right.Administer)) {
             return acl;

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreSubscriptionManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreSubscriptionManager.java
index 60afcca..2e46cde 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreSubscriptionManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreSubscriptionManager.java
@@ -54,7 +54,7 @@ public class StoreSubscriptionManager implements SubscriptionManager {
         final SubscriptionMapper mapper = mapperFactory.getSubscriptionMapper(session);
         try {
             mapper.execute(Mapper.toTransaction(() -> {
-                Subscription subscription = mapper.findMailboxSubscriptionForUser(session.getUser().getUserName(), mailbox);
+                Subscription subscription = mapper.findMailboxSubscriptionForUser(session.getUser().asString(), mailbox);
                 if (subscription == null) {
                     Subscription newSubscription = createSubscription(session, mailbox);
                     mapper.save(newSubscription);
@@ -75,13 +75,13 @@ public class StoreSubscriptionManager implements SubscriptionManager {
      * @return subscription 
      */
     protected Subscription createSubscription(MailboxSession session, String mailbox) {
-        return new SimpleSubscription(session.getUser().getUserName(), mailbox);
+        return new SimpleSubscription(session.getUser().asString(), mailbox);
     }
 
     @Override
     public Collection<String> subscriptions(MailboxSession session) throws SubscriptionException {
         return mapperFactory.getSubscriptionMapper(session)
-            .findSubscriptionsForUser(session.getUser().getUserName())
+            .findSubscriptionsForUser(session.getUser().asString())
             .stream()
             .map(Subscription::getMailbox)
             .collect(Collectors.toCollection(() -> new HashSet<>(INITIAL_SIZE)));
@@ -92,7 +92,7 @@ public class StoreSubscriptionManager implements SubscriptionManager {
         final SubscriptionMapper mapper = mapperFactory.getSubscriptionMapper(session);
         try {
             mapper.execute(Mapper.toTransaction(() -> {
-                Subscription subscription = mapper.findMailboxSubscriptionForUser(session.getUser().getUserName(), mailbox);
+                Subscription subscription = mapper.findMailboxSubscriptionForUser(session.getUser().asString(), mailbox);
                 if (subscription != null) {
                     mapper.delete(subscription);
                 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
index d9c087b..51106d9 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
@@ -42,7 +42,7 @@ import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 public class EventFactory {
 
     public MailboxListener.Added added(MailboxSession session, SortedMap<MessageUid, MessageMetaData> uids, Mailbox mailbox) {
-        return added(session.getSessionId(), session.getUser().getCoreUser(), uids, mailbox);
+        return added(session.getSessionId(), session.getUser(), uids, mailbox);
     }
 
     public MailboxListener.Added added(MailboxSession.SessionId sessionId, User user, SortedMap<MessageUid, MessageMetaData> uids, Mailbox mailbox) {
@@ -50,7 +50,7 @@ public class EventFactory {
     }
 
     public MailboxListener.Expunged expunged(MailboxSession session,  Map<MessageUid, MessageMetaData> uids, Mailbox mailbox) {
-        return expunged(session.getSessionId(), session.getUser().getCoreUser(), uids, mailbox);
+        return expunged(session.getSessionId(), session.getUser(), uids, mailbox);
     }
 
     public MailboxListener.Expunged expunged(MailboxSession.SessionId sessionId, User user, Map<MessageUid, MessageMetaData> uids, Mailbox mailbox) {
@@ -58,7 +58,7 @@ public class EventFactory {
     }
 
     public MailboxListener.FlagsUpdated flagsUpdated(MailboxSession session, List<MessageUid> uids, Mailbox mailbox, List<UpdatedFlags> uflags) {
-        return flagsUpdated(session.getSessionId(), session.getUser().getCoreUser(), uids, mailbox, uflags);
+        return flagsUpdated(session.getSessionId(), session.getUser(), uids, mailbox, uflags);
     }
 
     public MailboxListener.FlagsUpdated flagsUpdated(MailboxSession.SessionId sessionId, User user, List<MessageUid> uids, Mailbox mailbox, List<UpdatedFlags> uflags) {
@@ -66,7 +66,7 @@ public class EventFactory {
     }
 
     public MailboxListener.MailboxRenamed mailboxRenamed(MailboxSession session, MailboxPath from, Mailbox to) {
-        return mailboxRenamed(session.getSessionId(), session.getUser().getCoreUser(), from, to);
+        return mailboxRenamed(session.getSessionId(), session.getUser(), from, to);
     }
 
     public MailboxListener.MailboxRenamed mailboxRenamed(MailboxSession.SessionId sessionId, User user, MailboxPath from, Mailbox to) {
@@ -75,7 +75,7 @@ public class EventFactory {
 
     public MailboxListener.MailboxDeletion mailboxDeleted(MailboxSession session, Mailbox mailbox, QuotaRoot quotaRoot,
                                                           QuotaCount deletedMessageCount, QuotaSize totalDeletedSize) {
-        return mailboxDeleted(session.getSessionId(), session.getUser().getCoreUser(), mailbox, quotaRoot, deletedMessageCount, totalDeletedSize);
+        return mailboxDeleted(session.getSessionId(), session.getUser(), mailbox, quotaRoot, deletedMessageCount, totalDeletedSize);
     }
 
     public MailboxListener.MailboxDeletion mailboxDeleted(MailboxSession.SessionId sessionId, User user, Mailbox mailbox, QuotaRoot quotaRoot,
@@ -84,7 +84,7 @@ public class EventFactory {
     }
 
     public MailboxListener.MailboxAdded mailboxAdded(MailboxSession session, Mailbox mailbox) {
-        return mailboxAdded(session.getSessionId(), session.getUser().getCoreUser(), mailbox);
+        return mailboxAdded(session.getSessionId(), session.getUser(), mailbox);
     }
 
     public MailboxListener.MailboxAdded mailboxAdded(MailboxSession.SessionId sessionId, User user, Mailbox mailbox) {
@@ -92,7 +92,7 @@ public class EventFactory {
     }
 
     public MailboxListener.MailboxACLUpdated aclUpdated(MailboxSession session, MailboxPath mailboxPath, ACLDiff aclDiff, MailboxId mailboxId) {
-        return aclUpdated(session.getSessionId(), session.getUser().getCoreUser(), mailboxPath, aclDiff, mailboxId);
+        return aclUpdated(session.getSessionId(), session.getUser(), mailboxPath, aclDiff, mailboxId);
     }
 
     public MailboxListener.MailboxACLUpdated aclUpdated(MailboxSession.SessionId sessionId, User user, MailboxPath mailboxPath, ACLDiff aclDiff, MailboxId mailboxId) {
@@ -101,7 +101,7 @@ public class EventFactory {
 
     public MessageMoveEvent moved(MailboxSession session, MessageMoves messageMoves, Map<MessageUid, MailboxMessage> messages) {
         return MessageMoveEvent.builder()
-                .user(session.getUser().getCoreUser())
+                .user(session.getUser())
                 .messageMoves(messageMoves)
                 .messages(messages)
                 .build();

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
index 022303e..4fb7be4 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
@@ -49,7 +49,7 @@ public class MessageMoveEvent implements Event {
         }
 
         public Builder session(MailboxSession session) {
-            this.user = session.getUser().getCoreUser();
+            this.user = session.getUser();
             return this;
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Username.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Username.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Username.java
index 5dacc38..e2346d8 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Username.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Username.java
@@ -31,7 +31,7 @@ public class Username {
         Preconditions.checkNotNull(mailboxSession);
         Preconditions.checkNotNull(mailboxSession.getUser());
 
-        return fromRawValue(mailboxSession.getUser().getUserName());
+        return fromRawValue(mailboxSession.getUser().asString());
     }
 
     public static Username fromRawValue(String value) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
index 3707b98..102bb2a 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
@@ -141,7 +141,7 @@ public class StoreMailboxManagerTest {
     public void loginShouldCreateSessionWhenGoodPassword() throws Exception {
         MailboxSession expected = storeMailboxManager.login(CURRENT_USER, CURRENT_USER_PASSWORD);
 
-        assertThat(expected.getUser().getUserName()).isEqualTo(CURRENT_USER);
+        assertThat(expected.getUser().asString()).isEqualTo(CURRENT_USER);
     }
 
     @Test(expected = BadCredentialsException.class)
@@ -183,7 +183,7 @@ public class StoreMailboxManagerTest {
     public void loginAsOtherUserShouldCreateUserSessionWhenAdminWithGoodPassword() throws Exception {
         MailboxSession expected = storeMailboxManager.loginAsOtherUser(ADMIN, ADMIN_PASSWORD, CURRENT_USER);
 
-        assertThat(expected.getUser().getUserName()).isEqualTo(CURRENT_USER);
+        assertThat(expected.getUser().asString()).isEqualTo(CURRENT_USER);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
index 0041f07..ed1c1ee 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
@@ -61,7 +61,7 @@ public class SystemMailboxesProviderImplTest {
         when(mailboxManager.createSystemSession(MailboxFixture.ALICE)).thenReturn(mailboxSession);
         when(mailboxManager.getMailbox(eq(MailboxFixture.INBOX_ALICE), eq(mailboxSession))).thenThrow(MailboxNotFoundException.class);
 
-        assertThat(systemMailboxProvider.getMailboxByRole(Role.INBOX, mailboxSession.getUser().getCoreUser())).isEmpty();
+        assertThat(systemMailboxProvider.getMailboxByRole(Role.INBOX, mailboxSession.getUser())).isEmpty();
     }
 
     @Test
@@ -69,7 +69,7 @@ public class SystemMailboxesProviderImplTest {
         when(mailboxManager.createSystemSession(MailboxFixture.ALICE)).thenReturn(mailboxSession);
         when(mailboxManager.getMailbox(eq(MailboxFixture.INBOX_ALICE), eq(mailboxSession))).thenReturn(inboxMessageManager);
 
-        assertThat(systemMailboxProvider.getMailboxByRole(Role.INBOX, mailboxSession.getUser().getCoreUser()))
+        assertThat(systemMailboxProvider.getMailboxByRole(Role.INBOX, mailboxSession.getUser()))
             .hasSize(1)
             .containsOnly(inboxMessageManager);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java
index a5657de..eca8099 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java
@@ -169,7 +169,7 @@ public class DefaultDelegatingMailboxListenerTest {
     public void listenersErrorsShouldNotBePropageted() throws Exception {
         MailboxSession session = new MockMailboxSession("benwa");
         MailboxListener.MailboxEvent event = new MailboxListener.MailboxEvent(session.getSessionId(),
-            session.getUser().getCoreUser(), MAILBOX_PATH, MAILBOX_ID) {};
+            session.getUser(), MAILBOX_PATH, MAILBOX_ID) {};
         MailboxListener mockedListener = mock(MailboxListener.class);
         when(mockedListener.getType()).thenReturn(MailboxListener.ListenerType.ONCE);
         doThrow(new RuntimeException()).when(mockedListener).event(event);

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java
index 4ddbfb9..b876ee9 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java
@@ -30,10 +30,10 @@ import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 
+import org.apache.james.core.User;
 import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MailboxSession.User;
 import org.apache.james.mailbox.SubscriptionManager;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxExistsException;
@@ -88,7 +88,7 @@ public class DefaultMailboxesProvisioningFilter implements Filter {
     }
 
     private void createDefaultMailboxes(User user) throws MailboxException {
-        MailboxSession session = mailboxManager.createSystemSession(user.getUserName());
+        MailboxSession session = mailboxManager.createSystemSession(user.asString());
         DefaultMailboxes.DEFAULT_MAILBOXES.stream()
             .map(toMailboxPath(session))
             .filter(mailboxPath -> mailboxDoesntExist(mailboxPath, session))
@@ -104,7 +104,7 @@ public class DefaultMailboxesProvisioningFilter implements Filter {
     }
 
     private Function<String, MailboxPath> toMailboxPath(MailboxSession session) {
-        return mailbox -> MailboxPath.forUser(session.getUser().getUserName(), mailbox);
+        return mailbox -> MailboxPath.forUser(session.getUser().asString(), mailbox);
     }
     
     private void createMailbox(MailboxPath mailboxPath, MailboxSession session) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/DownloadServlet.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/DownloadServlet.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/DownloadServlet.java
index f70d407..6e2b272 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/DownloadServlet.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/DownloadServlet.java
@@ -90,7 +90,7 @@ public class DownloadServlet extends HttpServlet {
                 return;
             }
             resp.setContentType(TEXT_PLAIN_CONTENT_TYPE);
-            resp.getOutputStream().print(simpleTokenFactory.generateAttachmentAccessToken(mailboxSession.getUser().getUserName(), blobId).serialize());
+            resp.getOutputStream().print(simpleTokenFactory.generateAttachmentAccessToken(mailboxSession.getUser().asString(), blobId).serialize());
             resp.setStatus(SC_OK);
         } catch (MailboxException | IOException e) {
             LOGGER.error("Error while asking attachment access token", e);

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/UserProvisioningFilter.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/UserProvisioningFilter.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/UserProvisioningFilter.java
index b52d649..157f652 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/UserProvisioningFilter.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/UserProvisioningFilter.java
@@ -31,9 +31,8 @@ import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 
-import org.apache.james.core.MailAddress;
+import org.apache.james.core.User;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MailboxSession.User;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
 import org.apache.james.user.api.AlreadyExistInUsersRepositoryException;
@@ -93,9 +92,9 @@ public class UserProvisioningFilter implements Filter {
 
     private String getUsername(User user) throws UsersRepositoryException {
         try {
-            return usersRepository.getUser(new MailAddress(user.getUserName()));
-        } catch (AddressException e) {
-            return user.getUserName();
+            return usersRepository.getUser(user.asMailAddress());
+        } catch (IllegalStateException | AddressException e) {
+            return user.asString();
         }
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/event/PropagateLookupRightListener.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/event/PropagateLookupRightListener.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/event/PropagateLookupRightListener.java
index cdf1701..f890c4a 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/event/PropagateLookupRightListener.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/event/PropagateLookupRightListener.java
@@ -127,7 +127,7 @@ public class PropagateLookupRightListener implements MailboxListener {
         } catch (MailboxException e) {
             LOGGER.error(String.format("Mailbox '%s' does not exist, user '%s' cannot share mailbox",
                 mailboxPath,
-                session.getUser().getUserName()), e);
+                session.getUser().asString()), e);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetFilterMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetFilterMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetFilterMethod.java
index 275417e..56a3cd7 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetFilterMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetFilterMethod.java
@@ -81,7 +81,7 @@ public class GetFilterMethod implements Method {
 
     private Stream<JmapResponse> process(ClientId clientId, MailboxSession mailboxSession, GetFilterRequest request) {
         try {
-            return retrieveFilter(clientId, mailboxSession.getUser().getCoreUser());
+            return retrieveFilter(clientId, mailboxSession.getUser());
         } catch (Exception e) {
             LOGGER.warn("Failed to retrieve filter");
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetVacationResponseMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetVacationResponseMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetVacationResponseMethod.java
index e242c7d..445c760 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetVacationResponseMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetVacationResponseMethod.java
@@ -82,9 +82,9 @@ public class GetVacationResponseMethod implements Method {
     }
 
     private GetVacationResponse process(MailboxSession mailboxSession) {
-        Vacation vacation = vacationRepository.retrieveVacation(AccountId.fromString(mailboxSession.getUser().getUserName())).join();
+        Vacation vacation = vacationRepository.retrieveVacation(AccountId.fromString(mailboxSession.getUser().asString())).join();
         return GetVacationResponse.builder()
-            .accountId(mailboxSession.getUser().getUserName())
+            .accountId(mailboxSession.getUser().asString())
             .vacationResponse(VacationResponse.builder()
                 .fromVacation(vacation)
                 .activated(vacation.isActiveAtDate(zonedDateTimeProvider.get()))

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MessageSender.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MessageSender.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MessageSender.java
index d9d69a9..cab1956 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MessageSender.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MessageSender.java
@@ -56,7 +56,7 @@ public class MessageSender {
     public void sendMessage(MessageId messageId,
                             Mail mail,
                             MailboxSession session) throws MessagingException {
-        MailMetadata metadata = new MailMetadata(messageId, session.getUser().getUserName());
+        MailMetadata metadata = new MailMetadata(messageId, session.getUser().asString());
         mailSpool.send(mail, metadata);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/RequestHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/RequestHandler.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/RequestHandler.java
index a8c42f3..09a70aa 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/RequestHandler.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/RequestHandler.java
@@ -30,6 +30,7 @@ import java.util.stream.Stream;
 
 import javax.inject.Inject;
 
+import org.apache.james.core.User;
 import org.apache.james.jmap.JmapFieldNotSupportedException;
 import org.apache.james.jmap.model.AuthenticatedProtocolRequest;
 import org.apache.james.jmap.model.ProtocolResponse;
@@ -58,7 +59,7 @@ public class RequestHandler {
         Optional<MailboxSession> mailboxSession = Optional.ofNullable(request.getMailboxSession());
         try (Closeable closeable =
                  MDCBuilder.create()
-                     .addContext(MDCBuilder.USER, mailboxSession.map(MailboxSession::getUser).map(MailboxSession.User::getUserName))
+                     .addContext(MDCBuilder.USER, mailboxSession.map(MailboxSession::getUser).map(User::asString))
                      .addContext(MDCBuilder.SESSION_ID, mailboxSession.map(MailboxSession::getSessionId))
                      .addContext(MDCBuilder.ACTION, request.getMethodName().getName())
                      .build()) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SendMDNProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SendMDNProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SendMDNProcessor.java
index 086c7dd..6ec6098 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SendMDNProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SendMDNProcessor.java
@@ -189,7 +189,7 @@ public class SendMDNProcessor implements SetMessagesProcessor {
 
 
     private MessageManager getOutbox(MailboxSession mailboxSession) throws MailboxException {
-        return systemMailboxesProvider.getMailboxByRole(Role.OUTBOX, mailboxSession.getUser().getCoreUser())
+        return systemMailboxesProvider.getMailboxByRole(Role.OUTBOX, mailboxSession.getUser())
             .findAny()
             .orElseThrow(() -> new IllegalStateException("User don't have an Outbox"));
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetFilterMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetFilterMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetFilterMethod.java
index 72397ca..221638c 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetFilterMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetFilterMethod.java
@@ -121,7 +121,7 @@ public class SetFilterMethod implements Method {
 
     private Stream<JmapResponse> process(ClientId clientId, MailboxSession mailboxSession, SetFilterRequest request) {
         try {
-            return updateFilter(clientId, request, mailboxSession.getUser().getCoreUser());
+            return updateFilter(clientId, request, mailboxSession.getUser());
         } catch (MultipleMailboxIdException e) {
             LOGGER.debug("Rule targeting several mailboxes", e);
             return Stream.of(multipleMailboxesError(clientId, e));

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
index 323df90..6113171 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
@@ -178,10 +178,10 @@ public class SetMailboxesCreationProcessor implements SetMailboxesProcessor {
 
             assertBelongsToUser(parentPath, mailboxSession);
 
-            return MailboxPath.forUser(mailboxSession.getUser().getUserName(),
+            return MailboxPath.forUser(mailboxSession.getUser().asString(),
                 parentPath.getName() + mailboxSession.getPathDelimiter() + mailboxRequest.getName());
         }
-        return MailboxPath.forUser(mailboxSession.getUser().getUserName(), mailboxRequest.getName());
+        return MailboxPath.forUser(mailboxSession.getUser().asString(), mailboxRequest.getName());
     }
 
     private void assertBelongsToUser(MailboxPath mailboxPath, MailboxSession mailboxSession) throws MailboxNotOwnedException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java
index 819a601..fcc122c 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java
@@ -284,7 +284,7 @@ public class SetMailboxesUpdateProcessor implements SetMailboxesProcessor {
         Optional<MailboxId> parentId = updateRequest.getParentId();
         if (parentId == null) {
             return MailboxPath.forUser(
-                mailboxSession.getUser().getUserName(),
+                mailboxSession.getUser().asString(),
                 updateRequest.getName().orElse(mailbox.getName()));
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
index dc135e6..627e9a8 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
@@ -29,6 +29,7 @@ import java.util.stream.Collectors;
 import javax.inject.Inject;
 import javax.mail.MessagingException;
 
+import org.apache.james.core.User;
 import org.apache.james.jmap.exceptions.AttachmentsNotFoundException;
 import org.apache.james.jmap.exceptions.InvalidDraftKeywordsException;
 import org.apache.james.jmap.exceptions.InvalidMailboxForCreationException;
@@ -283,9 +284,9 @@ public class SetMessagesCreationProcessor implements SetMessagesProcessor {
 
     private void assertUserIsSender(MailboxSession session, Optional<DraftEmailer> from) throws MailboxSendingNotAllowedException {
         if (!from.flatMap(DraftEmailer::getEmail)
-                .filter(email -> session.getUser().isSameUser(email))
+                .filter(email -> session.getUser().equals(User.fromUsername(email)))
                 .isPresent()) {
-            String allowedSender = session.getUser().getUserName();
+            String allowedSender = session.getUser().asString();
             throw new MailboxSendingNotAllowedException(allowedSender);
         }
     }
@@ -309,7 +310,7 @@ public class SetMessagesCreationProcessor implements SetMessagesProcessor {
     }
 
     private Optional<MessageManager> getMailboxWithRole(MailboxSession mailboxSession, Role role) throws MailboxException {
-        return systemMailboxesProvider.getMailboxByRole(role, mailboxSession.getUser().getCoreUser()).findFirst();
+        return systemMailboxesProvider.getMailboxByRole(role, mailboxSession.getUser()).findFirst();
     }
     
     private SetError buildSetErrorFromValidationResult(List<ValidationResult> validationErrors) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
index 17a081a..14d88df 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
@@ -36,6 +36,7 @@ import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.User;
 import org.apache.james.jmap.exceptions.DraftMessageMailboxUpdateException;
 import org.apache.james.jmap.exceptions.InvalidOutboxMoveException;
 import org.apache.james.jmap.model.Keyword;
@@ -190,11 +191,11 @@ public class SetMessagesUpdateProcessor implements SetMessagesProcessor {
     }
 
     private void assertUserIsSender(MailboxSession session, Optional<MailAddress> sender) throws MailboxSendingNotAllowedException {
-        boolean userIsSender = sender.map(address -> session.getUser().isSameUser(address.asString()))
+        boolean userIsSender = sender.map(address -> session.getUser().equals(User.fromMailAddress(address)))
             .orElse(false);
 
         if (!userIsSender) {
-            String allowedSender = session.getUser().getUserName();
+            String allowedSender = session.getUser().asString();
             throw new MailboxSendingNotAllowedException(allowedSender);
         }
     }
@@ -245,7 +246,7 @@ public class SetMessagesUpdateProcessor implements SetMessagesProcessor {
     }
 
     private List<MailboxId> mailboxIdFor(Role role, MailboxSession session) throws MailboxException {
-        return systemMailboxesProvider.getMailboxByRole(role, session.getUser().getCoreUser())
+        return systemMailboxesProvider.getMailboxByRole(role, session.getUser())
             .map(MessageManager::getId)
             .collect(Guavate.toImmutableList());
     }
@@ -273,7 +274,7 @@ public class SetMessagesUpdateProcessor implements SetMessagesProcessor {
     }
 
     private Set<MailboxId> listMailboxIdsForRole(MailboxSession session, Role role) throws MailboxException {
-        return systemMailboxesProvider.getMailboxByRole(role, session.getUser().getCoreUser())
+        return systemMailboxesProvider.getMailboxByRole(role, session.getUser())
             .map(MessageManager::getId)
             .collect(Guavate.toImmutableSet());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/46e26b8d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetVacationResponseMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetVacationResponseMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetVacationResponseMethod.java
index d10cc3f..3cc6266 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetVacationResponseMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetVacationResponseMethod.java
@@ -97,7 +97,7 @@ public class SetVacationResponseMethod implements Method {
         }
 
         return process(clientId,
-            AccountId.fromString(mailboxSession.getUser().getUserName()),
+            AccountId.fromString(mailboxSession.getUser().asString()),
             setVacationRequest.getUpdate().get(Vacation.ID));
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[11/13] james-project git commit: MAILBOX-365 Rely on MailboxSessionUtil for creating a MailboxSession in tests

Posted by bt...@apache.org.
MAILBOX-365 Rely on MailboxSessionUtil for creating a MailboxSession in tests


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d1fdf8bc
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d1fdf8bc
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d1fdf8bc

Branch: refs/heads/master
Commit: d1fdf8bca8b779c0fdc341dfd3dd5656288b0b85
Parents: 780c38c
Author: Benoit Tellier <bt...@linagora.com>
Authored: Mon Dec 17 18:07:29 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Dec 18 14:48:31 2018 +0700

----------------------------------------------------------------------
 .../apache/james/mailbox/MailboxSession.java    | 20 --------
 .../AbstractSubscriptionManagerTest.java        |  2 +-
 .../james/mailbox/MailboxSessionUtil.java       | 48 ++++++++++++++++++++
 .../mailbox/backup/MailboxMessageFixture.java   |  3 +-
 .../cassandra/mail/CassandraMapperProvider.java |  3 +-
 .../mail/CassandraMessageIdMapperTest.java      |  3 +-
 .../ElasticSearchIntegrationTest.java           | 13 +++---
 ...icSearchListeningMessageSearchIndexTest.java |  3 +-
 .../mailbox/jpa/mail/JPAMapperProvider.java     |  4 +-
 .../LuceneMailboxMessageSearchIndexTest.java    |  3 +-
 .../search/LuceneMessageSearchIndexTest.java    |  4 +-
 .../inmemory/mail/InMemoryMapperProvider.java   |  5 +-
 .../QuotaThresholdListenersTestSystem.java      |  3 +-
 ...ticSearchQuotaSearchTestSystemExtension.java |  4 +-
 .../spamassassin/SpamAssassinListenerTest.java  |  3 +-
 .../store/AbstractCombinationManagerTest.java   |  3 +-
 .../AbstractMailboxManagerAttachmentTest.java   |  3 +-
 .../AbstractMessageIdManagerQuotaTest.java      |  3 +-
 .../AbstractMessageIdManagerSideEffectTest.java |  3 +-
 .../AbstractMessageIdManagerStorageTest.java    |  7 +--
 .../store/AbstractMessageManagerTest.java       |  5 +-
 .../store/MailboxEventDispatcherTest.java       |  3 +-
 .../mailbox/store/StoreBlobManagerTest.java     |  3 +-
 .../StoreMailboxManagerAnnotationTest.java      |  3 +-
 .../mailbox/store/StoreMailboxManagerTest.java  |  7 +--
 .../mailbox/store/StoreRightManagerTest.java    |  7 +--
 .../store/SystemMailboxesProviderImplTest.java  |  3 +-
 .../DefaultDelegatingMailboxListenerTest.java   |  3 +-
 .../event/MailboxAnnotationListenerTest.java    |  3 +-
 .../store/event/MessageMoveEventTest.java       | 17 +++----
 .../mailbox/store/mail/MessageUtilsTest.java    |  3 +-
 .../host/ElasticSearchHostSystem.java           |  4 +-
 .../inmemory/host/InMemoryHostSystem.java       |  4 +-
 .../james/imap/api/ImapSessionUtilsTest.java    |  3 +-
 .../decode/parser/CreateCommandParserTest.java  |  3 +-
 .../james/imap/main/PathConverterTest.java      |  3 +-
 .../james/imap/processor/CopyProcessorTest.java |  3 +-
 .../imap/processor/DeleteACLProcessorTest.java  |  3 +-
 .../imap/processor/GetACLProcessorTest.java     |  3 +-
 .../processor/GetAnnotationProcessorTest.java   |  3 +-
 .../imap/processor/GetQuotaProcessorTest.java   |  3 +-
 .../processor/GetQuotaRootProcessorTest.java    |  3 +-
 .../james/imap/processor/LSubProcessorTest.java |  5 +-
 .../imap/processor/ListRightsProcessorTest.java |  3 +-
 .../james/imap/processor/MoveProcessorTest.java |  3 +-
 .../imap/processor/SearchProcessorTest.java     |  3 +-
 .../imap/processor/SetACLProcessorTest.java     |  3 +-
 .../processor/SetAnnotationProcessorTest.java   |  3 +-
 .../imap/processor/SetQuotaProcessorTest.java   |  3 +-
 .../base/MailboxEventAnalyserTest.java          |  5 +-
 .../DefaultMailboxesProvisioningFilterTest.java |  3 +-
 ...ltMailboxesProvisioningFilterThreadTest.java |  3 +-
 .../apache/james/jmap/DownloadServletTest.java  |  3 +-
 .../james/jmap/UserProvisioningFilterTest.java  |  9 ++--
 .../jmap/UserProvisioningFilterThreadTest.java  |  3 +-
 .../event/PropagateLookupRightListenerTest.java |  3 +-
 .../jmap/methods/AttachmentCheckerTest.java     |  3 +-
 .../jmap/methods/GetMailboxesMethodTest.java    |  3 +-
 .../jmap/methods/GetMessagesMethodTest.java     |  3 +-
 .../SetMessagesCreationProcessorTest.java       |  3 +-
 .../apache/james/jmap/model/JmapMDNTest.java    |  3 +-
 .../ElasticSearchQuotaSearchExtension.java      |  4 +-
 .../routes/UserMailboxesRoutesTest.java         |  4 +-
 63 files changed, 193 insertions(+), 114 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
index 933da12..1a39081 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
@@ -26,12 +26,10 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Random;
 
 import org.apache.james.core.User;
 import org.apache.james.mailbox.model.MailboxConstants;
 
-import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
 
 /**
@@ -39,23 +37,6 @@ import com.google.common.base.MoreObjects;
  */
 public class MailboxSession {
 
-    @VisibleForTesting
-    public static MailboxSession create(String username) {
-        return create(username, SessionId.of(RANDOM.nextLong()));
-    }
-
-    @VisibleForTesting
-    public static MailboxSession create(String username, SessionId sessionId) {
-        ArrayList<Locale> locales = new ArrayList<>();
-
-        return new MailboxSession(
-            sessionId,
-            username,
-            locales,
-            MailboxConstants.DEFAULT_DELIMITER,
-            SessionType.User);
-    }
-
     public static class SessionId {
 
         public static SessionId of(long sessionId) {
@@ -99,7 +80,6 @@ public class MailboxSession {
      * Id which will be used for a System session
      */
     public static long SYSTEM_SESSION_ID = 0L;
-    private static final Random RANDOM = new Random();
 
     public enum SessionType {
         /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
index d42c34a..d482116 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
@@ -40,7 +40,7 @@ public abstract class AbstractSubscriptionManagerTest {
 
     public void setup() {
         manager = createSubscriptionManager();
-        session = MailboxSession.create(USER1);
+        session = MailboxSessionUtil.create(USER1);
         manager.startProcessingRequest(session);
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxSessionUtil.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxSessionUtil.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxSessionUtil.java
new file mode 100644
index 0000000..a307020
--- /dev/null
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxSessionUtil.java
@@ -0,0 +1,48 @@
+/****************************************************************
+ * 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.mailbox;
+
+import java.util.ArrayList;
+import java.util.Locale;
+import java.util.Random;
+
+import org.apache.james.mailbox.model.MailboxConstants;
+
+import com.google.common.annotations.VisibleForTesting;
+
+public class MailboxSessionUtil {
+    private static final Random RANDOM = new Random();
+
+    public static MailboxSession create(String username) {
+        return create(username, MailboxSession.SessionId.of(RANDOM.nextLong()));
+    }
+
+    @VisibleForTesting
+    public static MailboxSession create(String username, MailboxSession.SessionId sessionId) {
+        ArrayList<Locale> locales = new ArrayList<>();
+
+        return new MailboxSession(
+            sessionId,
+            username,
+            locales,
+            MailboxConstants.DEFAULT_DELIMITER,
+            MailboxSession.SessionType.User);
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
----------------------------------------------------------------------
diff --git a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
index 0933c31..098a858 100644
--- a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
+++ b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
@@ -28,6 +28,7 @@ import javax.mail.Flags;
 import javax.mail.util.SharedByteArrayInputStream;
 
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -63,7 +64,7 @@ public interface MailboxMessageFixture {
     MailboxId MAILBOX_ID_1 = TestId.of(1L);
     Flags flags1 = new Flags("myFlags");
 
-    MailboxSession MAILBOX_SESSION = MailboxSession.create("user");
+    MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create("user");
     
     Mailbox MAILBOX_1 = new SimpleMailbox(MailboxPath.forUser("user", "mailbox1"), 42, TestId.of(1L));
     Mailbox MAILBOX_1_SUB_1 = new SimpleMailbox(MailboxPath.forUser("user", "mailbox1" + MAILBOX_SESSION.getPathDelimiter() + "sub1"), 420, TestId.of(11L));

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
index 65f54b0..95df7fb 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
@@ -22,6 +22,7 @@ import java.util.List;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory;
 import org.apache.james.mailbox.cassandra.TestCassandraMailboxSessionMapperFactory;
@@ -48,7 +49,7 @@ public class CassandraMapperProvider implements MapperProvider {
     private final CassandraCluster cassandra;
     private final MessageUidProvider messageUidProvider;
     private final CassandraModSeqProvider cassandraModSeqProvider;
-    private final MailboxSession mailboxSession = MailboxSession.create("benwa");
+    private final MailboxSession mailboxSession = MailboxSessionUtil.create("benwa");
     private CassandraMailboxSessionMapperFactory mapperFactory;
 
     public CassandraMapperProvider(CassandraCluster cassandra) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
index 24cbda4..7a47973 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
@@ -27,6 +27,7 @@ import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory;
 import org.apache.james.mailbox.cassandra.TestCassandraMailboxSessionMapperFactory;
 import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
@@ -45,7 +46,7 @@ import com.google.common.collect.ImmutableList;
 
 public class CassandraMessageIdMapperTest extends MessageIdMapperTest {
 
-    private static final MailboxSession MAILBOX_SESSION = MailboxSession.create("benwa");
+    private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create("benwa");
     @ClassRule public static DockerCassandraRule cassandraServer = new DockerCassandraRule();
 
     private static CassandraCluster cassandra;

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
index 78d6a8d..bb8b1bf 100644
--- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
+++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
@@ -31,6 +31,7 @@ import org.apache.james.backends.es.ElasticSearchIndexer;
 import org.apache.james.backends.es.EmbeddedElasticSearch;
 import org.apache.james.backends.es.utils.TestingClientProvider;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex;
@@ -124,14 +125,14 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
             storeMailboxManager.getQuotaManager(),
             storeMailboxManager.getQuotaRootResolver());
         storeMailboxManager.setMessageSearchIndex(elasticSearchListeningMessageSearchIndex);
-        storeMailboxManager.addGlobalListener(elasticSearchListeningMessageSearchIndex, MailboxSession.create("admin"));
+        storeMailboxManager.addGlobalListener(elasticSearchListeningMessageSearchIndex, MailboxSessionUtil.create("admin"));
         this.messageSearchIndex = elasticSearchListeningMessageSearchIndex;
     }
 
     @Test
     public void termsBetweenElasticSearchAndLuceneLimitDueTuNonAsciiCharsShouldBeTruncated() throws Exception {
         MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX);
-        MailboxSession session = MailboxSession.create(USERNAME);
+        MailboxSession session = MailboxSessionUtil.create(USERNAME);
         MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session);
 
         String recipient = "benwa@linagora.com";
@@ -150,7 +151,7 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
     @Test
     public void tooLongTermsShouldNotMakeIndexingFail() throws Exception {
         MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX);
-        MailboxSession session = MailboxSession.create(USERNAME);
+        MailboxSession session = MailboxSessionUtil.create(USERNAME);
         MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session);
 
         String recipient = "benwa@linagora.com";
@@ -169,7 +170,7 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
     @Test
     public void fieldsExceedingLuceneLimitShouldNotBeIgnored() throws Exception {
         MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX);
-        MailboxSession session = MailboxSession.create(USERNAME);
+        MailboxSession session = MailboxSessionUtil.create(USERNAME);
         MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session);
 
         String recipient = "benwa@linagora.com";
@@ -188,7 +189,7 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
     @Test
     public void fieldsWithTooLongTermShouldStillBeIndexed() throws Exception {
         MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX);
-        MailboxSession session = MailboxSession.create(USERNAME);
+        MailboxSession session = MailboxSessionUtil.create(USERNAME);
         MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session);
 
         String recipient = "benwa@linagora.com";
@@ -207,7 +208,7 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
     @Test
     public void reasonableLongTermShouldNotBeIgnored() throws Exception {
         MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX);
-        MailboxSession session = MailboxSession.create(USERNAME);
+        MailboxSession session = MailboxSessionUtil.create(USERNAME);
         MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session);
 
         String recipient = "benwa@linagora.com";

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
index 7c66ddb..2d6f18d 100644
--- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
+++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
@@ -36,6 +36,7 @@ import org.apache.james.backends.es.UpdatedRepresentation;
 import org.apache.james.core.User;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.elasticsearch.json.MessageToElasticSearchJson;
 import org.apache.james.mailbox.elasticsearch.search.ElasticSearchSearcher;
@@ -82,7 +83,7 @@ public class ElasticSearchListeningMessageSearchIndexTest {
         
         testee = new ElasticSearchListeningMessageSearchIndex(mapperFactory, elasticSearchIndexer, elasticSearchSearcher,
             messageToElasticSearchJson, mockMailboxManager);
-        session = MailboxSession.create(USERNAME);
+        session = MailboxSessionUtil.create(USERNAME);
         users = ImmutableList.of(User.fromUsername(USERNAME));
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java
index e73e2c0..64348ff 100644
--- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java
+++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java
@@ -26,7 +26,7 @@ import javax.persistence.EntityManagerFactory;
 
 import org.apache.commons.lang3.NotImplementedException;
 import org.apache.james.backends.jpa.JpaTestCluster;
-import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.jpa.JPAId;
@@ -62,7 +62,7 @@ public class JPAMapperProvider implements MapperProvider {
         EntityManagerFactory entityManagerFactory = jpaTestCluster.getEntityManagerFactory();
         JVMMailboxPathLocker locker = new JVMMailboxPathLocker();
 
-        JPAMessageMapper messageMapper = new JPAMessageMapper(MailboxSession.create("benwa"),
+        JPAMessageMapper messageMapper = new JPAMessageMapper(MailboxSessionUtil.create("benwa"),
             new JPAUidProvider(locker, entityManagerFactory), 
             new JPAModSeqProvider(locker, entityManagerFactory), 
             entityManagerFactory);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
index 4c369f4..b891945 100644
--- a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
+++ b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
@@ -33,6 +33,7 @@ import javax.mail.Flags;
 import javax.mail.Flags.Flag;
 
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxId;
@@ -94,7 +95,7 @@ public class LuceneMailboxMessageSearchIndexTest {
     
     @Before
     public void setUp() throws Exception {
-        session = MailboxSession.create("username");
+        session = MailboxSessionUtil.create("username");
         TestMessageId.Factory factory = new TestMessageId.Factory();
         id1 = factory.generate();
         id2 = factory.generate();

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java
index de6d66b..45b5093 100644
--- a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java
+++ b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.james.mailbox.lucene.search;
 
-import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.InMemoryId;
@@ -52,7 +52,7 @@ public class LuceneMessageSearchIndexTest extends AbstractMessageSearchIndexTest
             storeMailboxManager.getMessageIdFactory(),
             storeMailboxManager);
         storeMailboxManager.setMessageSearchIndex(luceneMessageSearchIndex);
-        storeMailboxManager.addGlobalListener(luceneMessageSearchIndex, MailboxSession.create("admin"));
+        storeMailboxManager.addGlobalListener(luceneMessageSearchIndex, MailboxSessionUtil.create("admin"));
         this.messageSearchIndex = luceneMessageSearchIndex;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
index 26eeb41..c6af73d 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
@@ -23,6 +23,7 @@ import java.util.List;
 import java.util.Random;
 
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.InMemoryId;
@@ -42,7 +43,7 @@ import com.google.common.collect.ImmutableList;
 
 public class InMemoryMapperProvider implements MapperProvider {
 
-    private static final MailboxSession MAILBOX_SESSION = MailboxSession.create("user");
+    private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create("user");
 
     private final Random random;
     private final MessageId.Factory messageIdFactory;
@@ -64,7 +65,7 @@ public class InMemoryMapperProvider implements MapperProvider {
 
     @Override
     public MessageMapper createMessageMapper() throws MailboxException {
-        return inMemoryMailboxSessionMapperFactory.createMessageMapper(MailboxSession.create("user"));
+        return inMemoryMailboxSessionMapperFactory.createMessageMapper(MailboxSessionUtil.create("user"));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdListenersTestSystem.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdListenersTestSystem.java b/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdListenersTestSystem.java
index 62a4bdb..fc5f31c 100644
--- a/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdListenersTestSystem.java
+++ b/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdListenersTestSystem.java
@@ -23,6 +23,7 @@ import org.apache.james.eventsourcing.eventstore.EventStore;
 import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.mailbox.Event;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.quota.mailing.QuotaMailingListenerConfiguration;
 import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
@@ -43,7 +44,7 @@ public class QuotaThresholdListenersTestSystem {
         QuotaThresholdCrossingListener thresholdCrossingListener =
             new QuotaThresholdCrossingListener(mailetContext, MemoryUsersRepository.withVirtualHosting(), fileSystem, eventStore, configuration);
 
-        MailboxSession mailboxSession = MailboxSession.create("system");
+        MailboxSession mailboxSession = MailboxSessionUtil.create("system");
         delegatingListener.addGlobalListener(thresholdCrossingListener, mailboxSession);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearchTestSystemExtension.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearchTestSystemExtension.java b/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearchTestSystemExtension.java
index 2477900..aba78c9 100644
--- a/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearchTestSystemExtension.java
+++ b/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearchTestSystemExtension.java
@@ -30,7 +30,7 @@ import org.apache.james.backends.es.EmbeddedElasticSearch;
 import org.apache.james.backends.es.utils.TestingClientProvider;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.memory.MemoryDomainList;
-import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
 import org.apache.james.quota.search.QuotaSearchTestSystem;
@@ -79,7 +79,7 @@ public class ElasticSearchQuotaSearchTestSystemExtension implements ParameterRes
                 new QuotaRatioToElasticSearchJson());
 
             resources.getMailboxManager()
-                .addGlobalListener(listener, MailboxSession.create("ANY"));
+                .addGlobalListener(listener, MailboxSessionUtil.create("ANY"));
 
             return new QuotaSearchTestSystem(
                 resources.getMaxQuotaManager(),

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
index 3bbfd62..3fc4cd6 100644
--- a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
+++ b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
@@ -35,6 +35,7 @@ import javax.mail.util.SharedByteArrayInputStream;
 import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -64,7 +65,7 @@ import com.google.common.collect.ImmutableSortedMap;
 public class SpamAssassinListenerTest {
 
     public static final String USER = "user";
-    private static final MailboxSession MAILBOX_SESSION = MailboxSession.create(USER);
+    private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create(USER);
     private static final int UID_VALIDITY = 43;
     private static final MessageUid UID = MessageUid.of(45);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
index 1e20f59..0ed6dda 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
@@ -32,6 +32,7 @@ import org.apache.james.mailbox.ApplicableFlagBuilder;
 import org.apache.james.mailbox.FlagsBuilder;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.FlagsUpdateMode;
@@ -73,7 +74,7 @@ public abstract class AbstractCombinationManagerTest {
     public abstract CombinationManagerTestSystem createTestingData() throws Exception;
 
     public void setUp() throws Exception {
-        session = MailboxSession.create(MailboxFixture.ALICE);
+        session = MailboxSessionUtil.create(MailboxFixture.ALICE);
         testingData = createTestingData();
 
         mailbox1 = testingData.createMailbox(MailboxFixture.INBOX_ALICE, session);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java
index b230fc1..637cc69 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java
@@ -29,6 +29,7 @@ import java.util.Optional;
 
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageAttachment;
@@ -63,7 +64,7 @@ public abstract class AbstractMailboxManagerAttachmentTest {
     protected abstract AttachmentMapperFactory getAttachmentMapperFactory();
     
     public void setUp() throws Exception {
-        mailboxSession = MailboxSession.create(USERNAME);
+        mailboxSession = MailboxSessionUtil.create(USERNAME);
         messageMapper = getMailboxSessionMapperFactory().getMessageMapper(mailboxSession);
         mailboxMapper = getMailboxSessionMapperFactory().getMailboxMapper(mailboxSession);
         inboxPath = MailboxPath.forUser(USERNAME, "INBOX");

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java
index 78d48c8..067f445 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java
@@ -26,6 +26,7 @@ import javax.mail.Flags;
 import org.apache.james.core.quota.QuotaCount;
 import org.apache.james.core.quota.QuotaSize;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.OverQuotaException;
@@ -72,7 +73,7 @@ public abstract class AbstractMessageIdManagerQuotaTest {
         CurrentQuotaManager currentQuotaManager = createCurrentQuotaManager();
         QuotaManager quotaManager = createQuotaManager(maxQuotaManager, currentQuotaManager);
 
-        session = MailboxSession.create(ALICE);
+        session = MailboxSessionUtil.create(ALICE);
         testingData = createTestSystem(quotaManager, currentQuotaManager);
         messageIdManager = testingData.getMessageIdManager();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
index ab3527f..b2a3050 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
@@ -37,6 +37,7 @@ import javax.mail.Flags;
 import org.apache.james.core.quota.QuotaCount;
 import org.apache.james.core.quota.QuotaSize;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.FlagsUpdateMode;
@@ -88,7 +89,7 @@ public abstract class AbstractMessageIdManagerSideEffectTest {
         dispatcher = mock(MailboxEventDispatcher.class);
         quotaManager = mock(QuotaManager.class);
 
-        session = MailboxSession.create(ALICE);
+        session = MailboxSessionUtil.create(ALICE);
         testingData = createTestSystem(quotaManager, dispatcher);
         messageIdManager = testingData.getMessageIdManager();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
index 2c3e7de..66e1cc0 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
@@ -30,6 +30,7 @@ import java.util.function.Predicate;
 import javax.mail.Flags;
 
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
@@ -74,9 +75,9 @@ public abstract class AbstractMessageIdManagerStorageTest {
     protected abstract MessageIdManagerTestSystem createTestingData() throws Exception;
 
     public void setUp() throws Exception {
-        aliceSession = MailboxSession.create(MailboxFixture.ALICE);
-        bobSession = MailboxSession.create(MailboxFixture.BOB);
-        systemSession = MailboxSession.create("systemuser");
+        aliceSession = MailboxSessionUtil.create(MailboxFixture.ALICE);
+        bobSession = MailboxSessionUtil.create(MailboxFixture.BOB);
+        systemSession = MailboxSessionUtil.create("systemuser");
         testingData = createTestingData();
         messageIdManager = testingData.getMessageIdManager();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageManagerTest.java
index 0c677ec..0d517df 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageManagerTest.java
@@ -27,6 +27,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.fixture.MailboxFixture;
 import org.apache.james.mailbox.model.MailboxACL;
@@ -44,8 +45,8 @@ public abstract class AbstractMessageManagerTest {
     protected abstract MessageManagerTestSystem createTestSystem() throws Exception;
 
     public void setUp() throws Exception {
-        aliceSession = MailboxSession.create(ALICE);
-        bobSession = MailboxSession.create(BOB);
+        aliceSession = MailboxSessionUtil.create(ALICE);
+        bobSession = MailboxSessionUtil.create(BOB);
         testSystem = createTestSystem();
         mailboxManager = testSystem.getMailboxManager();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
index f5354f9..d681c9a 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
@@ -30,6 +30,7 @@ import org.apache.james.mailbox.Event;
 import org.apache.james.mailbox.FlagsBuilder;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageResult;
@@ -63,7 +64,7 @@ public class MailboxEventDispatcherTest {
     private MessageResult result;
     private Mailbox mailbox;
 
-    private MailboxSession session = MailboxSession.create("test", SESSION_ID);
+    private MailboxSession session = MailboxSessionUtil.create("test", SESSION_ID);
 
     @Before
     public void setUp() throws Exception {

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java
index db48237..7837d7e 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java
@@ -31,6 +31,7 @@ import java.nio.charset.StandardCharsets;
 
 import org.apache.james.mailbox.AttachmentManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.exception.AttachmentNotFoundException;
 import org.apache.james.mailbox.exception.BlobNotFoundException;
@@ -66,7 +67,7 @@ public class StoreBlobManagerTest {
     public void setUp() {
         attachmentManager = mock(AttachmentManager.class);
         messageIdManager = mock(MessageIdManager.class);
-        session = MailboxSession.create("user");
+        session = MailboxSessionUtil.create("user");
 
         blobManager = new StoreBlobManager(attachmentManager, messageIdManager, new TestMessageId.Factory());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
index 3732848..b2010bd 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
@@ -33,6 +33,7 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxAnnotation;
@@ -79,7 +80,7 @@ public class StoreMailboxManagerAnnotationTest {
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
 
-        session = MailboxSession.create("userName");
+        session = MailboxSessionUtil.create("userName");
 
         when(mailboxSessionMapperFactory.getMailboxMapper(eq(session))).thenReturn(mailboxMapper);
         when(mailboxSessionMapperFactory.getAnnotationMapper(eq(session))).thenReturn(annotationMapper);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
index bd4fddf..1d29356 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
@@ -66,7 +67,7 @@ public class StoreMailboxManagerTest {
     @Before
     public void setUp() throws MailboxException {
         MailboxSessionMapperFactory mockedMapperFactory = mock(MailboxSessionMapperFactory.class);
-        mockedMailboxSession = MailboxSession.create(CURRENT_USER);
+        mockedMailboxSession = MailboxSessionUtil.create(CURRENT_USER);
         mockedMailboxMapper = mock(MailboxMapper.class);
         when(mockedMapperFactory.getMailboxMapper(mockedMailboxSession))
             .thenReturn(mockedMailboxMapper);
@@ -188,7 +189,7 @@ public class StoreMailboxManagerTest {
     @Test
     public void getPathLikeShouldReturnUserPathLikeWhenNoPrefixDefined() throws Exception {
         //Given
-        MailboxSession session = MailboxSession.create("user");
+        MailboxSession session = MailboxSessionUtil.create("user");
         MailboxQuery.Builder testee = MailboxQuery.builder()
             .expression(new PrefixedRegex(EMPTY_PREFIX, "abc", session.getPathDelimiter()));
         //When
@@ -201,7 +202,7 @@ public class StoreMailboxManagerTest {
     @Test
     public void getPathLikeShouldReturnUserPathLikeWhenPrefixDefined() throws Exception {
         //Given
-        MailboxSession session = MailboxSession.create("user");
+        MailboxSession session = MailboxSessionUtil.create("user");
         MailboxQuery.Builder testee = MailboxQuery.builder()
             .expression(new PrefixedRegex("prefix.", "abc", session.getPathDelimiter()));
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
index 52489d6..0902262 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
@@ -31,6 +31,7 @@ import static org.mockito.Mockito.when;
 import javax.mail.Flags;
 
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.acl.GroupMembershipResolver;
 import org.apache.james.mailbox.acl.MailboxACLResolver;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
@@ -63,7 +64,7 @@ public class StoreRightManagerTest {
 
     @Before
     public void setup() throws MailboxException {
-        aliceSession = MailboxSession.create(MailboxFixture.ALICE);
+        aliceSession = MailboxSessionUtil.create(MailboxFixture.ALICE);
         MailboxSessionMapperFactory mockedMapperFactory = mock(MailboxSessionMapperFactory.class);
         mockedMailboxMapper = mock(MailboxMapper.class);
         mailboxAclResolver = new UnionMailboxACLResolver();
@@ -218,7 +219,7 @@ public class StoreRightManagerTest {
             .apply(MailboxACL.command().rights(Right.Read, Right.Write).forUser(BOB).asAddition())
             .apply(MailboxACL.command().rights(Right.Read, Right.Write, Right.Administer).forUser(CEDRIC).asAddition());
         MailboxACL actual = StoreRightManager.filteredForSession(
-            new SimpleMailbox(INBOX_ALICE, UID_VALIDITY), acl, MailboxSession.create(CEDRIC));
+            new SimpleMailbox(INBOX_ALICE, UID_VALIDITY), acl, MailboxSessionUtil.create(CEDRIC));
         assertThat(actual).isEqualTo(acl);
     }
 
@@ -228,7 +229,7 @@ public class StoreRightManagerTest {
             .apply(MailboxACL.command().rights(Right.Read, Right.Write).forUser(BOB).asAddition())
             .apply(MailboxACL.command().rights(Right.Read, Right.Write, Right.Administer).forUser(CEDRIC).asAddition());
         MailboxACL actual = StoreRightManager.filteredForSession(
-            new SimpleMailbox(INBOX_ALICE, UID_VALIDITY), acl, MailboxSession.create(BOB));
+            new SimpleMailbox(INBOX_ALICE, UID_VALIDITY), acl, MailboxSessionUtil.create(BOB));
         assertThat(actual.getEntries()).containsKey(MailboxACL.EntryKey.createUserEntryKey(BOB));
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
index b8989ba..c83f1b1 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.when;
 
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.Role;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
@@ -37,7 +38,7 @@ import org.junit.rules.ExpectedException;
 
 public class SystemMailboxesProviderImplTest {
 
-    private MailboxSession mailboxSession = MailboxSession.create(MailboxFixture.ALICE);
+    private MailboxSession mailboxSession = MailboxSessionUtil.create(MailboxFixture.ALICE);
     private SystemMailboxesProviderImpl systemMailboxProvider;
 
     private MailboxManager mailboxManager;

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java
index 0a78e26..4f19fe9 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/DefaultDelegatingMailboxListenerTest.java
@@ -28,6 +28,7 @@ import org.apache.james.core.quota.QuotaCount;
 import org.apache.james.core.quota.QuotaSize;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -166,7 +167,7 @@ public class DefaultDelegatingMailboxListenerTest {
 
     @Test
     public void listenersErrorsShouldNotBePropageted() throws Exception {
-        MailboxSession session = MailboxSession.create("benwa");
+        MailboxSession session = MailboxSessionUtil.create("benwa");
         MailboxListener.MailboxEvent event = new MailboxListener.MailboxEvent(session.getSessionId(),
             session.getUser(), MAILBOX_PATH, MAILBOX_ID) {};
         MailboxListener mockedListener = mock(MailboxListener.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
index 84dac7f..f643cf4 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
@@ -33,6 +33,7 @@ import org.apache.james.core.quota.QuotaSize;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.model.MailboxAnnotation;
 import org.apache.james.mailbox.model.MailboxAnnotationKey;
 import org.apache.james.mailbox.model.MailboxId;
@@ -77,7 +78,7 @@ public class MailboxAnnotationListenerTest {
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        mailboxSession = MailboxSession.create("test");
+        mailboxSession = MailboxSessionUtil.create("test");
         listener = new MailboxAnnotationListener(mailboxSessionMapperFactory, mailboxManager);
         eventFactory = new EventFactory();
         mailbox = new SimpleMailbox(MailboxPath.forUser("user", "name"), UID_VALIDITY, mailboxId);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
index 9c0c28a..5d4a68f 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
@@ -26,6 +26,7 @@ import java.util.Map;
 
 import org.apache.james.core.User;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.MessageMoves;
 import org.apache.james.mailbox.model.TestId;
@@ -51,7 +52,7 @@ public class MessageMoveEventTest {
     @Test
     public void builderShouldThrowWhenMessageMovesIsNull() {
         assertThatThrownBy(() -> MessageMoveEvent.builder()
-                .session(MailboxSession.create("user@james.org"))
+                .session(MailboxSessionUtil.create("user@james.org"))
                 .build())
             .isInstanceOf(NullPointerException.class);
     }
@@ -59,7 +60,7 @@ public class MessageMoveEventTest {
     @Test
     public void builderShouldReturnNoopWhenMessagesIsEmpty() {
         assertThat(MessageMoveEvent.builder()
-                .session(MailboxSession.create("user@james.org"))
+                .session(MailboxSessionUtil.create("user@james.org"))
                 .messageMoves(MessageMoves.builder()
                     .previousMailboxIds(TestId.of(1))
                     .targetMailboxIds(TestId.of(2))
@@ -70,7 +71,7 @@ public class MessageMoveEventTest {
 
     @Test
     public void builderShouldNotBeNoopWhenFieldsAreGiven() {
-        MailboxSession session = MailboxSession.create("user@james.org");
+        MailboxSession session = MailboxSessionUtil.create("user@james.org");
         MessageMoves messageMoves = MessageMoves.builder()
             .targetMailboxIds(TestId.of(2))
             .previousMailboxIds(TestId.of(1))
@@ -89,7 +90,7 @@ public class MessageMoveEventTest {
     @Test
     public void builderShouldBuildWhenFieldsAreGiven() {
         String username = "user@james.org";
-        MailboxSession session = MailboxSession.create(username);
+        MailboxSession session = MailboxSessionUtil.create(username);
         MessageMoves messageMoves = MessageMoves.builder()
             .targetMailboxIds(TestId.of(2))
             .previousMailboxIds(TestId.of(1))
@@ -110,7 +111,7 @@ public class MessageMoveEventTest {
     @Test
     public void isMoveToShouldReturnFalseWhenMailboxIdIsNotInAddedMailboxIds() {
         MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(MailboxSession.create("user@james.org"))
+            .session(MailboxSessionUtil.create("user@james.org"))
             .messageMoves(MessageMoves.builder()
                     .previousMailboxIds(TestId.of(1))
                     .targetMailboxIds(TestId.of(2))
@@ -125,7 +126,7 @@ public class MessageMoveEventTest {
     public void isMoveToShouldReturnTrueWhenMailboxIdIsInAddedMailboxIds() {
         TestId mailboxId = TestId.of(123);
         MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(MailboxSession.create("user@james.org"))
+            .session(MailboxSessionUtil.create("user@james.org"))
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(TestId.of(1))
                 .targetMailboxIds(TestId.of(2), mailboxId)
@@ -139,7 +140,7 @@ public class MessageMoveEventTest {
     @Test
     public void isMoveFromShouldReturnFalseWhenMailboxIdIsNotInRemovedMailboxIds() {
         MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(MailboxSession.create("user@james.org"))
+            .session(MailboxSessionUtil.create("user@james.org"))
             .messageMoves(MessageMoves.builder()
                     .previousMailboxIds(TestId.of(1))
                     .targetMailboxIds(TestId.of(2))
@@ -154,7 +155,7 @@ public class MessageMoveEventTest {
     public void isMoveFromShouldReturnTrueWhenMailboxIdIsInRemovedMailboxIds() {
         TestId mailboxId = TestId.of(123);
         MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(MailboxSession.create("user@james.org"))
+            .session(MailboxSessionUtil.create("user@james.org"))
             .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(TestId.of(1), mailboxId)
                 .targetMailboxIds(TestId.of(2))

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java
index fa06038..0dc3c8d 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java
@@ -30,6 +30,7 @@ import javax.mail.Flags;
 import javax.mail.util.SharedByteArrayInputStream;
 
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
@@ -64,7 +65,7 @@ public class MessageUtilsTest {
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        mailboxSession = MailboxSession.create("user");
+        mailboxSession = MailboxSessionUtil.create("user");
         messageUtils = new MessageUtils(mailboxSession, uidProvider, modSeqProvider);
         message = new SimpleMailboxMessage(MESSAGE_ID, new Date(), CONTENT.length(), BODY_START, new SharedByteArrayInputStream(CONTENT.getBytes()), new Flags(), new PropertyBuilder(), mailbox.getMailboxId());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
index 52a2de9..302a7f7 100644
--- a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
+++ b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
@@ -38,7 +38,7 @@ import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
 import org.apache.james.imap.main.DefaultImapDecoderFactory;
 import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
 import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.elasticsearch.IndexAttachments;
 import org.apache.james.mailbox.elasticsearch.MailboxElasticSearchConstants;
@@ -116,7 +116,7 @@ public class ElasticSearchHostSystem extends JamesImapHostSystem {
             mailboxManager);
 
         mailboxManager.setMessageSearchIndex(searchIndex);
-        mailboxManager.addGlobalListener(searchIndex, MailboxSession.create("admin"));
+        mailboxManager.addGlobalListener(searchIndex, MailboxSessionUtil.create("admin"));
 
         ImapProcessor defaultImapProcessorFactory =
             DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager,

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
index 6ae41c4..aa8bc22 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
@@ -26,7 +26,7 @@ import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
 import org.apache.james.imap.main.DefaultImapDecoderFactory;
 import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
 import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
@@ -80,7 +80,7 @@ public class InMemoryHostSystem extends JamesImapHostSystem {
         mailboxManager.setQuotaRootResolver(quotaRootResolver);
         mailboxManager.setQuotaManager(quotaManager);
         mailboxManager.setQuotaUpdater(quotaUpdater);
-        mailboxManager.addGlobalListener(quotaUpdater, MailboxSession.create("admin"));
+        mailboxManager.addGlobalListener(quotaUpdater, MailboxSessionUtil.create("admin"));
 
         final ImapProcessor defaultImapProcessorFactory = DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager, new StoreSubscriptionManager(mailboxManager.getMapperFactory()), quotaManager, quotaRootResolver, new DefaultMetricFactory());
         configure(new DefaultImapDecoderFactory().buildImapDecoder(),

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionUtilsTest.java
----------------------------------------------------------------------
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/ImapSessionUtilsTest.java
index 8ec6e66..59999ba 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/ImapSessionUtilsTest.java
@@ -24,12 +24,13 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import org.apache.james.imap.encode.FakeImapSession;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.junit.Before;
 import org.junit.Test;
 
 public class ImapSessionUtilsTest {
     private static final String USERNAME = "username";
-    private static final MailboxSession MAILBOX_SESSION = MailboxSession.create(USERNAME);
+    private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create(USERNAME);
     private FakeImapSession fakeImapSession;
 
     @Before

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/CreateCommandParserTest.java
----------------------------------------------------------------------
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 6d698af..852dc16 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
@@ -35,6 +35,7 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.decode.ImapRequestStreamLineReader;
 import org.apache.james.imap.message.request.CreateRequest;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.protocols.imap.DecodingException;
 import org.junit.Before;
 import org.junit.Test;
@@ -51,7 +52,7 @@ public class CreateCommandParserTest {
     @Before
     public void setUp() throws Exception {
         mockImapSession = mock(ImapSession.class);
-        mailboxSession = MailboxSession.create("userName");
+        mailboxSession = MailboxSessionUtil.create("userName");
 
         when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java
----------------------------------------------------------------------
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 e959573..893e59b 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
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.when;
 import org.apache.james.imap.api.ImapSessionUtils;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.junit.Before;
@@ -47,7 +48,7 @@ public class PathConverterTest {
     @Before
     public void setUp() {
         imapSession = mock(ImapSession.class);
-        mailboxSession = MailboxSession.create(USERNAME);
+        mailboxSession = MailboxSessionUtil.create(USERNAME);
         pathConverter = PathConverter.forSession(imapSession);
         when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java
----------------------------------------------------------------------
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 5a097b3..fc17daa 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
@@ -43,6 +43,7 @@ import org.apache.james.imap.message.request.CopyRequest;
 import org.apache.james.imap.message.request.MoveRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -75,7 +76,7 @@ public class CopyProcessorTest {
         mockStatusResponseFactory = mock(StatusResponseFactory.class);
         mockResponder = mock(ImapProcessor.Responder.class);
         mockImapSession = mock(ImapSession.class);
-        mailboxSession = MailboxSession.create(USER.asString());
+        mailboxSession = MailboxSessionUtil.create(USER.asString());
 
         testee = new CopyProcessor(mockNextProcessor, mockMailboxManager, mockStatusResponseFactory, new NoopMetricFactory());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
----------------------------------------------------------------------
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 fcc7cc4..a593290 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
@@ -40,6 +40,7 @@ import org.apache.james.imap.message.request.DeleteACLRequest;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.MetaData;
 import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
@@ -81,7 +82,7 @@ public class DeleteACLProcessorTest {
         mailboxManager = mock(MailboxManager.class);
         subject = new DeleteACLProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory());
         imapSession = mock(ImapSession.class);
-        mailboxSession = MailboxSession.create(USER_1);
+        mailboxSession = MailboxSessionUtil.create(USER_1);
 
         MessageManager messageManager = mock(MessageManager.class);
         metaData = mock(MetaData.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
----------------------------------------------------------------------
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 a87d530..b9241a0 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
@@ -41,6 +41,7 @@ import org.apache.james.imap.message.response.ACLResponse;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.MetaData;
 import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
@@ -78,7 +79,7 @@ public class GetACLProcessorTest {
         mailboxManager = mock(MailboxManager.class);
         subject = new GetACLProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory());
         imapSession = mock(ImapSession.class);
-        mailboxSession = MailboxSession.create(USER_1);
+        mailboxSession = MailboxSessionUtil.create(USER_1);
         MessageManager messageManager = mock(MessageManager.class);
         metaData = mock(MetaData.class);
         responder = mock(Responder.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java
----------------------------------------------------------------------
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 0523335..df6821f 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
@@ -48,6 +48,7 @@ import org.apache.james.imap.message.request.GetAnnotationRequest.Depth;
 import org.apache.james.imap.message.response.AnnotationResponse;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.model.MailboxAnnotation;
@@ -102,7 +103,7 @@ public class GetAnnotationProcessorTest {
         mockResponder = mock(ImapProcessor.Responder.class);
         mockImapSession = mock(ImapSession.class);
 
-        mailboxSession = MailboxSession.create("username");
+        mailboxSession = MailboxSessionUtil.create("username");
         inbox = MailboxPath.inbox(mailboxSession);
         keys = ImmutableSet.of(PRIVATE_KEY);
         annotationRequestBuilder = GetAnnotationRequest.builder()

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaProcessorTest.java
----------------------------------------------------------------------
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 6079b5e..dfca8d0 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
@@ -42,6 +42,7 @@ import org.apache.james.imap.message.response.QuotaResponse;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -75,7 +76,7 @@ public class GetQuotaProcessorTest {
 
     @Before
     public void setUp() throws Exception {
-        mailboxSession = MailboxSession.create("plop");
+        mailboxSession = MailboxSessionUtil.create("plop");
         UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
         mockedImapSession = mock(ImapSession.class);
         mockedQuotaManager = mock(QuotaManager.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaRootProcessorTest.java
----------------------------------------------------------------------
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 6558bf8..54ba87c 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
@@ -45,6 +45,7 @@ import org.apache.james.imap.message.response.QuotaRootResponse;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -76,7 +77,7 @@ public class GetQuotaRootProcessorTest {
 
     @Before
     public void setUp() {
-        mailboxSession = MailboxSession.create("plop");
+        mailboxSession = MailboxSessionUtil.create("plop");
         UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
         mockedImapSession = mock(ImapSession.class);
         mockedQuotaManager = mock(QuotaManager.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
----------------------------------------------------------------------
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 bc29406..acb122c 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
@@ -27,8 +27,6 @@ import static org.mockito.Mockito.when;
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
-import java.util.Locale;
 
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapSessionUtils;
@@ -41,6 +39,7 @@ import org.apache.james.imap.message.request.LsubRequest;
 import org.apache.james.imap.message.response.LSubResponse;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.SubscriptionManager;
 import org.apache.james.mailbox.model.MailboxMetaData;
 import org.apache.james.metrics.api.NoopMetricFactory;
@@ -96,7 +95,7 @@ public class LSubProcessorTest {
         statusResponse = mock(StatusResponse.class);
         responderImpl = responder;
         manager =  mock(SubscriptionManager.class);
-        mailboxSession = MailboxSession.create(USER);
+        mailboxSession = MailboxSessionUtil.create(USER);
         processor = new LSubProcessor(next, mock(MailboxManager.class), manager, serverResponseFactory, new NoopMetricFactory());
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
----------------------------------------------------------------------
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 b61f2ae..fda80f7 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
@@ -41,6 +41,7 @@ import org.apache.james.imap.message.response.ListRightsResponse;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.MetaData;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -83,7 +84,7 @@ public class ListRightsProcessorTest {
         mailboxManager = mock(MailboxManager.class);
         subject = new ListRightsProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory());
         imapSession = mock(ImapSession.class);
-        mailboxSession = MailboxSession.create(USER_1);
+        mailboxSession = MailboxSessionUtil.create(USER_1);
         MessageManager messageManager = mock(MessageManager.class);
         metaData = mock(MetaData.class);
         responder = mock(Responder.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java
----------------------------------------------------------------------
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 244115e..359ff60 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
@@ -46,6 +46,7 @@ import org.apache.james.imap.message.request.MoveRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxManager.MailboxCapabilities;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -77,7 +78,7 @@ public class MoveProcessorTest {
         mockStatusResponseFactory = mock(StatusResponseFactory.class);
         mockResponder = mock(ImapProcessor.Responder.class);
         mockImapSession = mock(ImapSession.class);
-        mailboxSession = MailboxSession.create(USER.asString());
+        mailboxSession = MailboxSessionUtil.create(USER.asString());
 
         when(mockMailboxManager.hasCapability(eq(MailboxCapabilities.Move))).thenReturn(true);
         testee = new MoveProcessor(mockNextProcessor, mockMailboxManager, mockStatusResponseFactory, new NoopMetricFactory());

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
----------------------------------------------------------------------
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 38e0186..532a79a 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
@@ -55,6 +55,7 @@ import org.apache.james.imap.message.request.SearchRequest;
 import org.apache.james.imap.message.response.SearchResponse;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -122,7 +123,7 @@ public class SearchProcessorTest {
         statusResponse = mock(StatusResponse.class);
         mailbox = mock(MessageManager.class);
         mailboxManager = mock(MailboxManager.class);
-        mailboxSession = MailboxSession.create("user");
+        mailboxSession = MailboxSessionUtil.create("user");
         selectedMailbox = mock(SelectedMailbox.class);
         
         processor = new SearchProcessor(next,  mailboxManager, serverResponseFactory, new NoopMetricFactory());

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
----------------------------------------------------------------------
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 dccd747..621ae3d 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
@@ -40,6 +40,7 @@ import org.apache.james.imap.message.request.SetACLRequest;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.MetaData;
 import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
@@ -85,7 +86,7 @@ public class SetACLProcessorTest {
         mailboxManager = mock(MailboxManager.class);
         subject = new SetACLProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory());
         imapSession = mock(ImapSession.class);
-        mailboxSession = MailboxSession.create(USER_1);
+        mailboxSession = MailboxSessionUtil.create(USER_1);
         MessageManager messageManager = mock(MessageManager.class);
         MetaData metaData = mock(MetaData.class);
         responder = mock(Responder.class);


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[10/13] james-project git commit: MAILBOX-365 Rely on MailboxSessionUtil for creating a MailboxSession in tests

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
----------------------------------------------------------------------
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 f368d2e..d7afcfd 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
@@ -43,6 +43,7 @@ import org.apache.james.imap.encode.FakeImapSession;
 import org.apache.james.imap.message.request.SetAnnotationRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.exception.AnnotationException;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
@@ -90,7 +91,7 @@ public class SetAnnotationProcessorTest {
         mockResponder = mock(ImapProcessor.Responder.class);
         mockImapSession = mock(ImapSession.class);
 
-        mockMailboxSession = MailboxSession.create("username");
+        mockMailboxSession = MailboxSessionUtil.create("username");
         inbox = MailboxPath.inbox(mockMailboxSession);
         mailboxAnnotations = ImmutableList.of(MailboxAnnotation.newInstance(new MailboxAnnotationKey("/private/key"), "anyValue"));
         request = new SetAnnotationRequest(TAG, ImapCommand.anyStateCommand("Name"), ImapConstants.INBOX_NAME, mailboxAnnotations);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/SetQuotaProcessorTest.java
----------------------------------------------------------------------
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 d4cde5c..b03bbfd 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
@@ -35,6 +35,7 @@ import org.apache.james.imap.message.request.SetQuotaRequest;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.junit.Before;
 import org.junit.Test;
@@ -49,7 +50,7 @@ public class SetQuotaProcessorTest {
 
     @Before
     public void setUp() {
-        mailboxSession = MailboxSession.create("plop");
+        mailboxSession = MailboxSessionUtil.create("plop");
         UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
         mockedImapSession = mock(ImapSession.class);
         mockedResponder = mock(ImapProcessor.Responder.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
----------------------------------------------------------------------
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 59cc629..55e4d0c 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
@@ -35,6 +35,7 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -89,8 +90,8 @@ public class MailboxEventAnalyserTest {
 
 
     private static final MessageUid MESSAGE_UID = MessageUid.of(1);
-    private static final MailboxSession MAILBOX_SESSION = MailboxSession.create("user");
-    private static final MailboxSession OTHER_MAILBOX_SESSION = MailboxSession.create("user");
+    private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create("user");
+    private static final MailboxSession OTHER_MAILBOX_SESSION = MailboxSessionUtil.create("user");
     private static final char PATH_DELIMITER = '.';
     private static final MailboxPath MAILBOX_PATH = new MailboxPath("namespace", "user", "name");
     private static final TestId MAILBOX_ID = TestId.of(36);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
index 88f61a6..44509e8 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
@@ -24,6 +24,7 @@ import java.time.Duration;
 
 import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
@@ -47,7 +48,7 @@ public class DefaultMailboxesProvisioningFilterTest {
 
     @Before
     public void before() throws Exception {
-        session = MailboxSession.create(USERNAME);
+        session = MailboxSessionUtil.create(USERNAME);
 
         InMemoryIntegrationResources inMemoryIntegrationResources = new InMemoryIntegrationResources();
         mailboxManager = inMemoryIntegrationResources.createMailboxManager(new SimpleGroupMembershipResolver());

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
index 2ad136a..f90adab 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
@@ -30,6 +30,7 @@ import java.util.Optional;
 
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.SubscriptionManager;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.TestId;
@@ -49,7 +50,7 @@ public class DefaultMailboxesProvisioningFilterThreadTest {
 
     @Before
     public void before() {
-        session = MailboxSession.create(USERNAME);
+        session = MailboxSessionUtil.create(USERNAME);
         mailboxManager = mock(MailboxManager.class);
         subscriptionManager = mock(SubscriptionManager.class);
         sut = new DefaultMailboxesProvisioningFilter(mailboxManager, subscriptionManager, new NoopMetricFactory());

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/jmap/src/test/java/org/apache/james/jmap/DownloadServletTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DownloadServletTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DownloadServletTest.java
index 0e69a65..99804a6 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DownloadServletTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DownloadServletTest.java
@@ -31,6 +31,7 @@ import org.apache.james.jmap.api.SimpleTokenFactory;
 import org.apache.james.jmap.utils.DownloadPath;
 import org.apache.james.mailbox.BlobManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.junit.Test;
@@ -39,7 +40,7 @@ public class DownloadServletTest {
 
     @Test
     public void downloadMayFailWhenUnknownErrorOnAttachmentManager() throws Exception {
-        MailboxSession mailboxSession = MailboxSession.create("User");
+        MailboxSession mailboxSession = MailboxSessionUtil.create("User");
         BlobManager mockedBlobManager = mock(BlobManager.class);
         when(mockedBlobManager.retrieve(any(), eq(mailboxSession)))
             .thenThrow(new MailboxException());

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java
index 945fefa..bc66447 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java
@@ -34,6 +34,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
@@ -71,7 +72,7 @@ public class UserProvisioningFilterTest {
     @Test
     public void filterShouldAddUsernameWhenNoVirtualHostingAndMailboxSessionContainsUsername() throws Exception {
         usersRepository.setEnableVirtualHosting(false);
-        MailboxSession mailboxSession = MailboxSession.create(USERNAME);
+        MailboxSession mailboxSession = MailboxSessionUtil.create(USERNAME);
         when(request.getAttribute(AuthenticationFilter.MAILBOX_SESSION))
             .thenReturn(mailboxSession);
 
@@ -84,7 +85,7 @@ public class UserProvisioningFilterTest {
     @Test
     public void filterShouldAddUsernameWhenNoVirtualHostingAndMailboxSessionContainsMail() throws Exception {
         usersRepository.setEnableVirtualHosting(false);
-        MailboxSession mailboxSession = MailboxSession.create(MAIL);
+        MailboxSession mailboxSession = MailboxSessionUtil.create(MAIL);
         when(request.getAttribute(AuthenticationFilter.MAILBOX_SESSION))
             .thenReturn(mailboxSession);
 
@@ -100,7 +101,7 @@ public class UserProvisioningFilterTest {
         when(usersRepository.isReadOnly()).thenReturn(true);
         sut = new UserProvisioningFilter(usersRepository, new NoopMetricFactory());
 
-        MailboxSession mailboxSession = MailboxSession.create(MAIL);
+        MailboxSession mailboxSession = MailboxSessionUtil.create(MAIL);
         when(request.getAttribute(AuthenticationFilter.MAILBOX_SESSION))
             .thenReturn(mailboxSession);
 
@@ -116,7 +117,7 @@ public class UserProvisioningFilterTest {
         when(usersRepository.isReadOnly()).thenReturn(true);
         sut = new UserProvisioningFilter(usersRepository, new NoopMetricFactory());
 
-        MailboxSession mailboxSession = MailboxSession.create(MAIL);
+        MailboxSession mailboxSession = MailboxSessionUtil.create(MAIL);
         when(request.getAttribute(AuthenticationFilter.MAILBOX_SESSION))
             .thenReturn(mailboxSession);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java
index b0738d5..0caeecd 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java
@@ -22,6 +22,7 @@ import java.time.Duration;
 import java.util.concurrent.ExecutionException;
 
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.apache.james.user.memory.MemoryUsersRepository;
 import org.apache.james.util.concurrency.ConcurrentTestRunner;
@@ -37,7 +38,7 @@ public class UserProvisioningFilterThreadTest {
     @Before
     public void before() {
         usersRepository = MemoryUsersRepository.withoutVirtualHosting();
-        session = MailboxSession.create("username");
+        session = MailboxSessionUtil.create("username");
         sut = new UserProvisioningFilter(usersRepository, new NoopMetricFactory());
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
index ea92f14..e3ddb29 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.acl.GroupMembershipResolver;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
@@ -59,7 +60,7 @@ public class PropagateLookupRightListenerTest {
     private StoreMailboxManager storeMailboxManager;
     private PropagateLookupRightListener testee;
 
-    private MailboxSession mailboxSession = MailboxSession.create(OWNER_USER);
+    private MailboxSession mailboxSession = MailboxSessionUtil.create(OWNER_USER);
 
     private MailboxId parentMailboxId;
     private MailboxId parentMailboxId1;

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/AttachmentCheckerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/AttachmentCheckerTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/AttachmentCheckerTest.java
index f5b236e..d0c181c 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/AttachmentCheckerTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/AttachmentCheckerTest.java
@@ -30,6 +30,7 @@ import org.apache.james.jmap.model.CreationMessage;
 import org.apache.james.jmap.model.CreationMessageId;
 import org.apache.james.mailbox.AttachmentManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.AttachmentId;
 import org.junit.Before;
@@ -54,7 +55,7 @@ public class AttachmentCheckerTest {
 
     @Before
     public void setUp() {
-        session = MailboxSession.create("Jonhy");
+        session = MailboxSessionUtil.create("Jonhy");
         attachmentManager = mock(AttachmentManager.class);
 
         sut = new AttachmentChecker(attachmentManager);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
index d8015a2..3fa7278 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
@@ -39,6 +39,7 @@ import org.apache.james.jmap.model.mailbox.Mailbox;
 import org.apache.james.jmap.model.mailbox.SortOrder;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.Role;
 import org.apache.james.mailbox.acl.GroupMembershipResolver;
@@ -111,7 +112,7 @@ public class GetMailboxesMethodTest {
         
         GetMailboxesRequest getMailboxesRequest = GetMailboxesRequest.builder()
                 .build();
-        MailboxSession session = MailboxSession.create(USERNAME);
+        MailboxSession session = MailboxSessionUtil.create(USERNAME);
         
         List<JmapResponse> getMailboxesResponse = testee.process(getMailboxesRequest, clientId, session).collect(Collectors.toList());
         

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
index 464b045..0bd939a 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java
@@ -48,6 +48,7 @@ import org.apache.james.jmap.utils.JsoupHtmlTextExtractor;
 import org.apache.james.mailbox.BlobManager;
 import org.apache.james.mailbox.FlagsBuilder;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.AppendCommand;
@@ -108,7 +109,7 @@ public class GetMessagesMethodTest {
         GroupMembershipResolver groupMembershipResolver = inMemoryIntegrationResources.createGroupMembershipResolver();
         mailboxManager = inMemoryIntegrationResources.createMailboxManager(groupMembershipResolver);
 
-        session = MailboxSession.create(ROBERT.asString());
+        session = MailboxSessionUtil.create(ROBERT.asString());
         inboxPath = MailboxPath.inbox(session);
         customMailboxPath = new MailboxPath(inboxPath, "custom");
         mailboxManager.createMailbox(inboxPath, session);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
index 6c0d042..381ebd1 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
@@ -51,6 +51,7 @@ import org.apache.james.mailbox.AttachmentManager;
 import org.apache.james.mailbox.BlobManager;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
@@ -140,7 +141,7 @@ public class SetMessagesCreationProcessorTest {
         MessageIdManager mockMessageIdManager = mock(MessageIdManager.class);
         
         fakeSystemMailboxesProvider = new TestSystemMailboxesProvider(() -> optionalOutbox, () -> optionalDrafts);
-        session = MailboxSession.create(USER);
+        session = MailboxSessionUtil.create(USER);
         MIMEMessageConverter mimeMessageConverter = new MIMEMessageConverter();
         messageAppender = new MessageAppender(mockedMailboxManager, mockMessageIdManager, mockedAttachmentManager, mimeMessageConverter);
         messageSender = new MessageSender(mockedMailSpool, mockedMailFactory);

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/JmapMDNTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/JmapMDNTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/JmapMDNTest.java
index e07225c..7736737 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/JmapMDNTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/JmapMDNTest.java
@@ -26,6 +26,7 @@ import java.nio.charset.StandardCharsets;
 
 import org.apache.james.jmap.exceptions.InvalidOriginMessageForMDNException;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.model.TestMessageId;
 import org.apache.james.mdn.action.mode.DispositionActionMode;
 import org.apache.james.mdn.sending.mode.DispositionSendingMode;
@@ -55,7 +56,7 @@ public class JmapMDNTest {
         .subject(SUBJECT)
         .textBody(TEXT_BODY)
         .build();
-    public static final MailboxSession MAILBOX_SESSION = MailboxSession.create("user@localhost.com");
+    public static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create("user@localhost.com");
 
     @Test
     public void shouldMatchBeanContract() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java
index 4db4288..a833156 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java
@@ -30,7 +30,7 @@ import org.apache.james.backends.es.EmbeddedElasticSearch;
 import org.apache.james.backends.es.utils.TestingClientProvider;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.memory.MemoryDomainList;
-import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
 import org.apache.james.quota.search.QuotaSearchTestSystem;
@@ -82,7 +82,7 @@ public class ElasticSearchQuotaSearchExtension implements ParameterResolver, Bef
                 new QuotaRatioToElasticSearchJson());
 
             resources.getMailboxManager()
-                .addGlobalListener(listener, MailboxSession.create("ANY"));
+                .addGlobalListener(listener, MailboxSessionUtil.create("ANY"));
 
             QuotaSearchTestSystem quotaSearchTestSystem = new QuotaSearchTestSystem(
                 resources.getMaxQuotaManager(),

http://git-wip-us.apache.org/repos/asf/james-project/blob/d1fdf8bc/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
index e9164df..4081afd 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
@@ -35,7 +35,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxExistsException;
@@ -733,7 +733,7 @@ class UserMailboxesRoutesTest {
         @BeforeEach
         void setUp() throws Exception {
             mailboxManager = mock(MailboxManager.class);
-            when(mailboxManager.createSystemSession(any())).thenReturn(MailboxSession.create(USERNAME));
+            when(mailboxManager.createSystemSession(any())).thenReturn(MailboxSessionUtil.create(USERNAME));
 
             createServer(mailboxManager);
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org