You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/12/06 02:34:30 UTC
[james-project] 20/21: JAMES-2991 SessionProvider should be usable
from mailbox-api
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 8439e21937c9c2038ff2c22e9c559df51e6088ae
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Dec 3 17:57:41 2019 +0700
JAMES-2991 SessionProvider should be usable from mailbox-api
---
.../org/apache/james/mailbox/MailboxManager.java | 69 +--------------
.../org/apache/james/mailbox/SessionProvider.java | 98 ++++++++++++++++++++++
.../mailbox/cassandra/CassandraMailboxManager.java | 2 +-
.../cassandra/CassandraMailboxManagerProvider.java | 4 +-
.../cassandra/CassandraTestSystemFixture.java | 4 +-
.../CassandraMailboxManagerAttachmentTest.java | 4 +-
.../ElasticSearchListeningMessageSearchIndex.java | 2 +-
...asticSearchListeningMessageSearchIndexTest.java | 6 +-
.../james/mailbox/jpa/JPAMailboxManager.java | 2 +-
.../mailbox/jpa/openjpa/OpenJPAMailboxManager.java | 2 +-
.../mailbox/jpa/JpaMailboxManagerProvider.java | 4 +-
.../lucene/search/LuceneMessageSearchIndex.java | 2 +-
.../META-INF/spring/mailbox-index-lucene.xml | 93 ++++++++++----------
.../maildir/MaildirMailboxManagerProvider.java | 4 +-
.../mailbox/inmemory/InMemoryMailboxManager.java | 2 +-
.../quota/InMemoryCurrentQuotaManager.java | 2 +-
.../manager/InMemoryIntegrationResources.java | 10 +--
.../quota/InMemoryCurrentQuotaManagerTest.java | 2 +-
.../james/vault/DeletedMessageVaultHook.java | 2 +-
.../james/mailbox/spring/MailboxInitializer.java | 2 +-
.../resources/META-INF/spring/spring-mailbox.xml | 2 +-
...ssionProvider.java => SessionProviderImpl.java} | 10 ++-
.../james/mailbox/store/StoreMailboxManager.java | 6 +-
.../store/event/MailboxAnnotationListener.java | 2 +-
.../store/quota/DefaultUserQuotaRootResolver.java | 2 +-
.../james/mailbox/store/quota/QuotaComponents.java | 2 +-
.../store/search/LazyMessageSearchIndex.java | 2 +-
.../store/search/ListeningMessageSearchIndex.java | 2 +-
.../mailbox/store/StoreMailboxManagerTest.java | 2 +-
.../store/event/MailboxAnnotationListenerTest.java | 2 +-
.../quota/DefaultUserQuotaRootResolverTest.java | 2 +-
.../cassandra/host/CassandraHostSystem.java | 4 +-
.../mpt/imapmailbox/jpa/host/JPAHostSystem.java | 4 +-
.../maildir/host/MaildirHostSystem.java | 4 +-
.../modules/mailbox/CassandraMailboxModule.java | 4 +
.../james/modules/mailbox/JPAMailboxModule.java | 4 +
.../james/modules/mailbox/MemoryMailboxModule.java | 4 +
.../mailets/delivery/MailboxAppender.java | 11 +--
.../mailets/delivery/ToRecipientFolderTest.java | 7 +-
server/protocols/jmap-draft/pom.xml | 4 -
.../draft/AccessTokenAuthenticationStrategy.java | 10 +--
.../jmap/draft/JWTAuthenticationStrategy.java | 9 +-
...ParameterAccessTokenAuthenticationStrategy.java | 15 +---
.../ComputeMessageFastViewProjectionListener.java | 2 +-
.../AccessTokenAuthenticationStrategyTest.java | 25 +-----
.../jmap/draft/JWTAuthenticationStrategyTest.java | 24 +-----
...meterAccessTokenAuthenticationStrategyTest.java | 33 +-------
...mputeMessageFastViewProjectionListenerTest.java | 4 +-
48 files changed, 232 insertions(+), 286 deletions(-)
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
index a69a60c..b1c7134 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
@@ -23,8 +23,6 @@ import java.util.EnumSet;
import java.util.List;
import java.util.Optional;
-import org.apache.james.core.Username;
-import org.apache.james.mailbox.exception.BadCredentialsException;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxExistsException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
@@ -69,7 +67,7 @@ import org.apache.james.mailbox.model.search.MailboxQuery;
* </p>
*/
-public interface MailboxManager extends RequestAware, RightManager, MailboxAnnotationManager {
+public interface MailboxManager extends RequestAware, RightManager, MailboxAnnotationManager, SessionProvider {
int MAX_MAILBOX_NAME_LENGTH = 200;
@@ -108,14 +106,6 @@ public interface MailboxManager extends RequestAware, RightManager, MailboxAnnot
EnumSet<SearchCapabilities> getSupportedSearchCapabilities();
-
- /**
- * Return the delimiter to use for folders
- *
- * @return delimiter
- */
- char getDelimiter();
-
/**
* Gets an object managing the given mailbox.
*
@@ -261,59 +251,6 @@ public interface MailboxManager extends RequestAware, RightManager, MailboxAnnot
}
/**
- * Creates a new system session.<br>
- * A system session is intended to be used for programmatic access.<br>
- * Use {@link #login(Username, String)} when accessing this API from a
- * protocol.
- *
- * @param userName
- * the name of the user whose session is being created
- * @return <code>MailboxSession</code>, not null
- * @throws BadCredentialsException
- * when system access is not allowed for the given user
- * @throws MailboxException
- * when the creation fails for other reasons
- */
- MailboxSession createSystemSession(Username userName) throws BadCredentialsException, MailboxException;
-
- /**
- * Autenticates the given user against the given password.<br>
- * When authenticated and authorized, a session will be supplied
- *
- * @param userid
- * user name
- * @param passwd
- * password supplied
- * @return a <code>MailboxSession</code> when the user is authenticated and
- * authorized to access
- * @throws BadCredentialsException
- * when system access is denied for the given user
- * @throws MailboxException
- * when the creation fails for other reasons
- */
- MailboxSession login(Username userid, String passwd) throws BadCredentialsException, MailboxException;
-
- /**
- * Autenticates the given administrator against the given password,
- * then switch to an other user<br>
- * When authenticated and authorized, a session for the other user will be supplied
- *
- * @param adminUserId
- * user name of the admin user, matching the credentials
- * @param passwd
- * password supplied for the admin user
- * @param otherUserId
- * user name of the real user
- * @return a <code>MailboxSession</code> for the real user
- * when the admin is authenticated and authorized to access
- * @throws BadCredentialsException
- * when system access is denied for the given user
- * @throws MailboxException
- * when the creation fails for other reasons
- */
- MailboxSession loginAsOtherUser(Username adminUserId, String passwd, Username otherUserId) throws BadCredentialsException, MailboxException;
-
- /**
* <p>
* Logs the session out, freeing any resources. Clients who open session
* should make best efforts to call this when the session is closed.
@@ -337,7 +274,9 @@ public interface MailboxManager extends RequestAware, RightManager, MailboxAnnot
* @throws MailboxException
* when logout fails
*/
- void logout(MailboxSession session, boolean force) throws MailboxException;
+ default void logout(MailboxSession session, boolean force) throws MailboxException {
+ logout(session);
+ }
/**
* Return a unmodifiable {@link List} of {@link MailboxPath} objects
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/SessionProvider.java b/mailbox/api/src/main/java/org/apache/james/mailbox/SessionProvider.java
new file mode 100644
index 0000000..8a92df3
--- /dev/null
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/SessionProvider.java
@@ -0,0 +1,98 @@
+/****************************************************************
+ * 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 org.apache.james.core.Username;
+import org.apache.james.mailbox.exception.MailboxException;
+
+public interface SessionProvider {
+ /**
+ * Return the delimiter to use for folders
+ *
+ * @return delimiter
+ */
+ char getDelimiter();
+
+ /**
+ * Creates a new system session.<br>
+ * A system session is intended to be used for programmatic access.<br>
+ * Use {@link #login(Username, String)} when accessing this API from a
+ * protocol.
+ *
+ * @param userName
+ * the name of the user whose session is being created
+ * @return <code>MailboxSession</code>, not null
+ */
+ MailboxSession createSystemSession(Username userName);
+
+ /**
+ * Autenticates the given user against the given password.<br>
+ * When authenticated and authorized, a session will be supplied
+ *
+ * @param userid
+ * user name
+ * @param passwd
+ * password supplied
+ * @return a <code>MailboxSession</code> when the user is authenticated and
+ * authorized to access
+ * @throws MailboxException
+ * when the creation fails for other reasons
+ */
+ MailboxSession login(Username userid, String passwd) throws MailboxException;
+
+ /**
+ * Autenticates the given administrator against the given password,
+ * then switch to an other user<br>
+ * When authenticated and authorized, a session for the other user will be supplied
+ *
+ * @param adminUserid
+ * user name of the admin user, matching the credentials
+ * @param passwd
+ * password supplied for the admin user
+ * @param otherUserId
+ * user name of the real user
+ * @return a <code>MailboxSession</code> for the real user
+ * when the admin is authenticated and authorized to access
+ * @throws MailboxException
+ * when the creation fails for other reasons
+ */
+ MailboxSession loginAsOtherUser(Username adminUserid, String passwd, Username otherUserId) throws MailboxException;
+
+ /**
+ * <p>
+ * Logs the session out, freeing any resources. Clients who open session
+ * should make best efforts to call this when the session is closed.
+ * </p>
+ * <p>
+ * Note that clients may not always be able to call logout (whether forced
+ * or not). Mailboxes that create sessions which are expensive to maintain
+ * <code>MUST</code> retain a reference and periodically check
+ * {@link MailboxSession#isOpen()}.
+ * </p>
+ * <p>
+ * Note that implementations much be aware that it is possible that this
+ * method may be called more than once with the same session.
+ * </p>
+ *
+ * @param session
+ * not null
+ */
+ void logout(MailboxSession session);
+}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
index c0f8006..f765922 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
@@ -26,12 +26,12 @@ import javax.inject.Inject;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxPathLocker;
import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.events.EventBus;
import org.apache.james.mailbox.model.Mailbox;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.MailboxManagerConfiguration;
import org.apache.james.mailbox.store.PreDeletionHooks;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreMessageManager;
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java
index fbf3791..f28d275 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java
@@ -38,7 +38,7 @@ import org.apache.james.mailbox.store.Authorizator;
import org.apache.james.mailbox.store.MailboxManagerConfiguration;
import org.apache.james.mailbox.store.NoMailboxPathLocker;
import org.apache.james.mailbox.store.PreDeletionHooks;
-import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
@@ -78,7 +78,7 @@ public class CassandraMailboxManagerProvider {
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mapperFactory, storeRightManager,
LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE);
- SessionProvider sessionProvider = new SessionProvider(noAuthenticator, noAuthorizator);
+ SessionProviderImpl sessionProvider = new SessionProviderImpl(noAuthenticator, noAuthorizator);
CassandraPerUserMaxQuotaManager maxQuotaManager = new CassandraPerUserMaxQuotaManager(new CassandraPerUserMaxQuotaDao(session),
new CassandraPerDomainMaxQuotaDao(session),
new CassandraGlobalMaxQuotaDao(session));
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
index 4b1c956..b42d708 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
@@ -41,7 +41,7 @@ import org.apache.james.mailbox.store.Authorizator;
import org.apache.james.mailbox.store.MailboxManagerConfiguration;
import org.apache.james.mailbox.store.NoMailboxPathLocker;
import org.apache.james.mailbox.store.PreDeletionHooks;
-import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreMessageIdManager;
import org.apache.james.mailbox.store.StoreRightManager;
@@ -70,7 +70,7 @@ class CassandraTestSystemFixture {
StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver(), eventBus);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mapperFactory, storeRightManager);
- SessionProvider sessionProvider = new SessionProvider(mock(Authenticator.class), mock(Authorizator.class));
+ SessionProviderImpl sessionProvider = new SessionProviderImpl(mock(Authenticator.class), mock(Authorizator.class));
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mapperFactory);
MessageSearchIndex index = new SimpleMessageSearchIndex(mapperFactory, mapperFactory, new DefaultTextExtractor());
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
index dacea2b..8cef993 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
@@ -40,7 +40,7 @@ import org.apache.james.mailbox.store.MailboxManagerConfiguration;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.NoMailboxPathLocker;
import org.apache.james.mailbox.store.PreDeletionHooks;
-import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
@@ -83,7 +83,7 @@ class CassandraMailboxManagerAttachmentTest extends AbstractMailboxManagerAttach
StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver(), eventBus);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
- SessionProvider sessionProvider = new SessionProvider(noAuthenticator, noAuthorizator);
+ SessionProviderImpl sessionProvider = new SessionProviderImpl(noAuthenticator, noAuthorizator);
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mailboxSessionMapperFactory);
MessageSearchIndex index = new SimpleMessageSearchIndex(mailboxSessionMapperFactory, mailboxSessionMapperFactory, new DefaultTextExtractor());
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 7cf681a..c3d8595 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
@@ -38,6 +38,7 @@ import org.apache.james.mailbox.MailboxManager.MessageCapabilities;
import org.apache.james.mailbox.MailboxManager.SearchCapabilities;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.elasticsearch.MailboxElasticSearchConstants;
import org.apache.james.mailbox.elasticsearch.json.JsonMessageConstants;
import org.apache.james.mailbox.elasticsearch.json.MessageToElasticSearchJson;
@@ -49,7 +50,6 @@ import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.model.SearchQuery;
import org.apache.james.mailbox.model.UpdatedFlags;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex;
import org.apache.james.util.OptionalUtils;
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 b7ec704..8b227f5 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
@@ -67,7 +67,7 @@ import org.apache.james.mailbox.store.Authorizator;
import org.apache.james.mailbox.store.FakeAuthenticator;
import org.apache.james.mailbox.store.FakeAuthorizator;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
@@ -138,7 +138,7 @@ public class ElasticSearchListeningMessageSearchIndexTest {
private MailboxSessionMapperFactory mapperFactory;
private ElasticSearchIndexer elasticSearchIndexer;
private ElasticSearchSearcher elasticSearchSearcher;
- private SessionProvider sessionProvider;
+ private SessionProviderImpl sessionProvider;
@Rule
public DockerElasticSearchRule elasticSearch = new DockerElasticSearchRule();
@@ -169,7 +169,7 @@ public class ElasticSearchListeningMessageSearchIndexTest {
FakeAuthenticator fakeAuthenticator = new FakeAuthenticator();
fakeAuthenticator.addUser(ManagerTestProvisionner.USER, ManagerTestProvisionner.USER_PASS);
Authorizator authorizator = FakeAuthorizator.defaultReject();
- sessionProvider = new SessionProvider(fakeAuthenticator, authorizator);
+ sessionProvider = new SessionProviderImpl(fakeAuthenticator, authorizator);
elasticSearchIndexer = new ElasticSearchIndexer(client, MailboxElasticSearchConstants.DEFAULT_MAILBOX_WRITE_ALIAS);
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java
index e6e0265..1c606c4 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java
@@ -21,11 +21,11 @@ package org.apache.james.mailbox.jpa;
import java.util.EnumSet;
import org.apache.james.mailbox.MailboxPathLocker;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.events.EventBus;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.MailboxManagerConfiguration;
import org.apache.james.mailbox.store.PreDeletionHooks;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreRightManager;
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
index e750306..5db577c 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
@@ -22,6 +22,7 @@ package org.apache.james.mailbox.jpa.openjpa;
import javax.inject.Inject;
import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.events.EventBus;
import org.apache.james.mailbox.jpa.JPAMailboxManager;
import org.apache.james.mailbox.jpa.JPAMailboxSessionMapperFactory;
@@ -29,7 +30,6 @@ import org.apache.james.mailbox.jpa.openjpa.OpenJPAMessageManager.AdvancedFeatur
import org.apache.james.mailbox.model.Mailbox;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreMessageManager;
import org.apache.james.mailbox.store.StoreRightManager;
diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerProvider.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerProvider.java
index 2c850b0..7dfcf74 100644
--- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerProvider.java
+++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerProvider.java
@@ -33,7 +33,7 @@ import org.apache.james.mailbox.jpa.mail.JPAUidProvider;
import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager;
import org.apache.james.mailbox.store.Authenticator;
import org.apache.james.mailbox.store.Authorizator;
-import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
@@ -64,7 +64,7 @@ public class JpaMailboxManagerProvider {
StoreRightManager storeRightManager = new StoreRightManager(mf, aclResolver, groupMembershipResolver, eventBus);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mf, storeRightManager,
LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE);
- SessionProvider sessionProvider = new SessionProvider(noAuthenticator, noAuthorizator);
+ SessionProviderImpl sessionProvider = new SessionProviderImpl(noAuthenticator, noAuthorizator);
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mf);
MessageSearchIndex index = new SimpleMessageSearchIndex(mf, mf, new DefaultTextExtractor());
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 b3a8167..b93306b 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
@@ -46,6 +46,7 @@ import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxManager.SearchCapabilities;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.UnsupportedSearchException;
import org.apache.james.mailbox.model.Mailbox;
@@ -68,7 +69,6 @@ import org.apache.james.mailbox.model.SearchQuery.UidCriterion;
import org.apache.james.mailbox.model.SearchQuery.UidRange;
import org.apache.james.mailbox.model.UpdatedFlags;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex;
diff --git a/mailbox/lucene/src/main/resources/META-INF/spring/mailbox-index-lucene.xml b/mailbox/lucene/src/main/resources/META-INF/spring/mailbox-index-lucene.xml
index 5896181..16d332e 100644
--- a/mailbox/lucene/src/main/resources/META-INF/spring/mailbox-index-lucene.xml
+++ b/mailbox/lucene/src/main/resources/META-INF/spring/mailbox-index-lucene.xml
@@ -1,46 +1,47 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
- <!--
- Mailbox Lucene
- -->
-
- <bean id="lazyIndex" class="org.apache.james.mailbox.store.search.LazyMessageSearchIndex">
- <constructor-arg index="0" ref="luceneIndex"/>
- <constructor-arg index="1" ref="messageMapperFactory"/>
- <constructor-arg index="2" ref="sessionProvider"/>
- </bean>
- <bean id="luceneIndex" class="org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex">
- <constructor-arg index="0" ref="messageMapperFactory"/>
- <constructor-arg index="1" ref="mailboxIdFactory"/>
- <constructor-arg index="2" type="org.apache.lucene.store.Directory" ref="fsDirectory"/>
- <constructor-arg index="3" ref="messageIdFactory"/>
- <property name="enableSuffixMatch" value="true"/>
- </bean>
- <bean id="fsDirectory" class="org.apache.lucene.store.FSDirectory" factory-method="open">
- <constructor-arg index="0" value="../var/store/lucene"/>
- </bean>
-
-</beans>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+ <!--
+ Mailbox Lucene
+ -->
+
+ <bean id="lazyIndex" class="org.apache.james.mailbox.store.search.LazyMessageSearchIndex">
+ <constructor-arg index="0" ref="luceneIndex"/>
+ <constructor-arg index="1" ref="messageMapperFactory"/>
+ <constructor-arg index="2" ref="sessionProvider"/>
+ </bean>
+ <bean id="luceneIndex" class="org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex">
+ <constructor-arg index="0" ref="messageMapperFactory"/>
+ <constructor-arg index="1" ref="mailboxIdFactory"/>
+ <constructor-arg index="2" type="org.apache.lucene.store.Directory" ref="fsDirectory"/>
+ <constructor-arg index="3" ref="messageIdFactory"/>
+ <constructor-arg index="4" ref="sessionProvider"/>
+ <property name="enableSuffixMatch" value="true"/>
+ </bean>
+ <bean id="fsDirectory" class="org.apache.lucene.store.FSDirectory" factory-method="open">
+ <constructor-arg index="0" value="../var/store/lucene"/>
+ </bean>
+
+</beans>
diff --git a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerProvider.java b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerProvider.java
index 6e8a407..3b4e17c 100644
--- a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerProvider.java
+++ b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerProvider.java
@@ -34,7 +34,7 @@ import org.apache.james.mailbox.store.Authorizator;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
import org.apache.james.mailbox.store.MailboxManagerConfiguration;
import org.apache.james.mailbox.store.PreDeletionHooks;
-import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreRightManager;
@@ -65,7 +65,7 @@ public class MaildirMailboxManagerProvider {
Authenticator noAuthenticator = null;
Authorizator noAuthorizator = null;
- SessionProvider sessionProvider = new SessionProvider(noAuthenticator, noAuthorizator);
+ SessionProviderImpl sessionProvider = new SessionProviderImpl(noAuthenticator, noAuthorizator);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mf, storeRightManager);
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mf);
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java
index 0dc4337..6ec12db 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java
@@ -25,13 +25,13 @@ import javax.inject.Inject;
import org.apache.james.mailbox.MailboxPathLocker;
import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.events.EventBus;
import org.apache.james.mailbox.model.Mailbox;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.MailboxManagerConfiguration;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.PreDeletionHooks;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreMessageManager;
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
index 5df517f..eeed222 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
@@ -27,9 +27,9 @@ import javax.inject.Inject;
import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCountUsage;
import org.apache.james.core.quota.QuotaSizeUsage;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.QuotaRoot;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator;
import org.apache.james.mailbox.store.quota.StoreCurrentQuotaManager;
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
index 59e1a88..e229849 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
@@ -49,7 +49,7 @@ import org.apache.james.mailbox.store.FakeAuthenticator;
import org.apache.james.mailbox.store.FakeAuthorizator;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
import org.apache.james.mailbox.store.PreDeletionHooks;
-import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreAttachmentManager;
import org.apache.james.mailbox.store.StoreBlobManager;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
@@ -298,7 +298,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory,
storeRightManager, limitAnnotationCount.get(), limitAnnotationSize.get());
- SessionProvider sessionProvider = new SessionProvider(authenticator.get(), authorizator.get());
+ SessionProviderImpl sessionProvider = new SessionProviderImpl(authenticator.get(), authorizator.get());
InMemoryPerUserMaxQuotaManager maxQuotaManager = new InMemoryPerUserMaxQuotaManager();
DefaultUserQuotaRootResolver quotaRootResolver = new DefaultUserQuotaRootResolver(sessionProvider, mailboxSessionMapperFactory);
@@ -360,9 +360,9 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
public static class MailboxManagerPreInstanciationStage {
private final InMemoryMailboxSessionMapperFactory mapperFactory;
- private final SessionProvider sessionProvider;
+ private final SessionProviderImpl sessionProvider;
- public MailboxManagerPreInstanciationStage(InMemoryMailboxSessionMapperFactory mapperFactory, SessionProvider sessionProvider) {
+ public MailboxManagerPreInstanciationStage(InMemoryMailboxSessionMapperFactory mapperFactory, SessionProviderImpl sessionProvider) {
this.mapperFactory = mapperFactory;
this.sessionProvider = sessionProvider;
}
@@ -371,7 +371,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
return mapperFactory;
}
- public SessionProvider getSessionProvider() {
+ public SessionProviderImpl getSessionProvider() {
return sessionProvider;
}
}
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java
index 95aa1b4..3c60d77 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java
@@ -27,8 +27,8 @@ import java.util.Optional;
import org.apache.james.core.quota.QuotaCountUsage;
import org.apache.james.core.quota.QuotaSizeUsage;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.model.QuotaRoot;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator;
import org.junit.Before;
import org.junit.Test;
diff --git a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVaultHook.java b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVaultHook.java
index 36b60e9..a69b4bd 100644
--- a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVaultHook.java
+++ b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVaultHook.java
@@ -32,12 +32,12 @@ import org.apache.commons.lang3.tuple.Pair;
import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MetadataWithMailboxId;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.extension.PreDeletionHook;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.reactivestreams.Publisher;
diff --git a/mailbox/spring/src/main/java/org/apache/james/mailbox/spring/MailboxInitializer.java b/mailbox/spring/src/main/java/org/apache/james/mailbox/spring/MailboxInitializer.java
index 49029e6..7d8453b 100644
--- a/mailbox/spring/src/main/java/org/apache/james/mailbox/spring/MailboxInitializer.java
+++ b/mailbox/spring/src/main/java/org/apache/james/mailbox/spring/MailboxInitializer.java
@@ -22,9 +22,9 @@ package org.apache.james.mailbox.spring;
import javax.inject.Inject;
import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.events.EventBus;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
import org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater;
import org.apache.james.mailbox.store.quota.QuotaUpdater;
diff --git a/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml b/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml
index 294ea5d..a9af953 100644
--- a/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml
+++ b/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml
@@ -66,7 +66,7 @@
<constructor-arg index="3" ref="event-bus" />
</bean>
- <bean id="sessionProvider" class="org.apache.james.mailbox.store.SessionProvider" >
+ <bean id="sessionProvider" class="org.apache.james.mailbox.store.SessionProviderImpl" >
<constructor-arg index="0" ref="authenticator" />
<constructor-arg index="1" ref="authorizator" />
</bean>
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SessionProvider.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SessionProviderImpl.java
similarity index 94%
rename from mailbox/store/src/main/java/org/apache/james/mailbox/store/SessionProvider.java
rename to mailbox/store/src/main/java/org/apache/james/mailbox/store/SessionProviderImpl.java
index 368f367..4ced852 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SessionProvider.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SessionProviderImpl.java
@@ -26,32 +26,36 @@ import javax.inject.Inject;
import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionIdGenerator;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.exception.BadCredentialsException;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.NotAdminException;
import org.apache.james.mailbox.exception.UserDoesNotExistException;
import org.apache.james.mailbox.model.MailboxConstants;
-public class SessionProvider {
+public class SessionProviderImpl implements SessionProvider {
private final MailboxSessionIdGenerator idGenerator;
private final Authenticator authenticator;
private final Authorizator authorizator;
@Inject
- public SessionProvider(Authenticator authenticator, Authorizator authorizator) {
+ public SessionProviderImpl(Authenticator authenticator, Authorizator authorizator) {
this.idGenerator = new RandomMailboxSessionIdGenerator();
this.authenticator = authenticator;
this.authorizator = authorizator;
}
+ @Override
public char getDelimiter() {
return MailboxConstants.DEFAULT_DELIMITER;
}
+ @Override
public MailboxSession createSystemSession(Username userName) {
return createSession(userName, MailboxSession.SessionType.System);
}
+ @Override
public MailboxSession login(Username userid, String passwd) throws MailboxException {
if (isValidLogin(userid, passwd)) {
return createSession(userid, MailboxSession.SessionType.User);
@@ -60,6 +64,7 @@ public class SessionProvider {
}
}
+ @Override
public MailboxSession loginAsOtherUser(Username adminUserid, String passwd, Username otherUserId) throws MailboxException {
if (! isValidLogin(adminUserid, passwd)) {
throw new BadCredentialsException();
@@ -77,6 +82,7 @@ public class SessionProvider {
}
}
+ @Override
public void logout(MailboxSession session) {
if (session != null) {
session.close();
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 444bf47..c54e09e 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
@@ -42,6 +42,7 @@ import org.apache.james.mailbox.MailboxPathLocker.LockAwareExecution;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.MetadataWithMailboxId;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.events.EventBus;
import org.apache.james.mailbox.events.MailboxIdRegistrationKey;
import org.apache.james.mailbox.exception.InboxAlreadyCreated;
@@ -240,11 +241,8 @@ public class StoreMailboxManager implements MailboxManager {
return sessionProvider.loginAsOtherUser(adminUserid, passwd, otherUserId);
}
- /**
- * Close the {@link MailboxSession} if not null
- */
@Override
- public void logout(MailboxSession session, boolean force) {
+ public void logout(MailboxSession session) {
sessionProvider.logout(session);
}
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java
index a058294..1b09103 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java
@@ -23,6 +23,7 @@ import java.util.List;
import javax.inject.Inject;
import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.events.Event;
import org.apache.james.mailbox.events.Group;
import org.apache.james.mailbox.events.MailboxListener;
@@ -30,7 +31,6 @@ import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MailboxAnnotation;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.mail.AnnotationMapper;
public class MailboxAnnotationListener implements MailboxListener.GroupMailboxListener {
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolver.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolver.java
index 6f5ed08..c501f5e 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolver.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolver.java
@@ -26,6 +26,7 @@ import javax.inject.Inject;
import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Mailbox;
import org.apache.james.mailbox.model.MailboxConstants;
@@ -36,7 +37,6 @@ import org.apache.james.mailbox.model.search.MailboxQuery;
import org.apache.james.mailbox.quota.QuotaRootDeserializer;
import org.apache.james.mailbox.quota.UserQuotaRootResolver;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SessionProvider;
import com.google.common.base.Preconditions;
import com.google.common.base.Splitter;
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaComponents.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaComponents.java
index 4d39c30..a1c9c5c 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaComponents.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaComponents.java
@@ -21,11 +21,11 @@ package org.apache.james.mailbox.store.quota;
import javax.inject.Inject;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.quota.MaxQuotaManager;
import org.apache.james.mailbox.quota.QuotaManager;
import org.apache.james.mailbox.quota.QuotaRootResolver;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SessionProvider;
public class QuotaComponents {
public static QuotaComponents disabled(SessionProvider sessionProvider, MailboxSessionMapperFactory mailboxSessionMapperFactory) {
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
index 6a0bf49..4a06c64 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
@@ -29,6 +29,7 @@ import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxManager.SearchCapabilities;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.events.Group;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.UnsupportedSearchException;
@@ -39,7 +40,6 @@ import org.apache.james.mailbox.model.MessageRange;
import org.apache.james.mailbox.model.SearchQuery;
import org.apache.james.mailbox.model.UpdatedFlags;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.mail.MessageMapper.FetchType;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.slf4j.Logger;
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
index a04f94a..e38c8cd 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
@@ -24,6 +24,7 @@ import java.util.stream.Stream;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.events.Event;
import org.apache.james.mailbox.events.MailboxListener;
import org.apache.james.mailbox.model.Mailbox;
@@ -31,7 +32,6 @@ import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MessageRange;
import org.apache.james.mailbox.model.UpdatedFlags;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.mail.MessageMapper.FetchType;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.util.streams.Iterators;
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 45e922c..745c8d5 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
@@ -89,7 +89,7 @@ public class StoreMailboxManagerTest {
new SimpleGroupMembershipResolver(), eventBus);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mockedMapperFactory, storeRightManager);
- SessionProvider sessionProvider = new SessionProvider(authenticator, FakeAuthorizator.forUserAndAdmin(ADMIN, CURRENT_USER));
+ SessionProviderImpl sessionProvider = new SessionProviderImpl(authenticator, FakeAuthorizator.forUserAndAdmin(ADMIN, CURRENT_USER));
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mockedMapperFactory);
MessageSearchIndex index = new SimpleMessageSearchIndex(mockedMapperFactory, mockedMapperFactory, new DefaultTextExtractor());
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 6be4aad..3aad5ba 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
@@ -35,6 +35,7 @@ import org.apache.james.core.quota.QuotaCountUsage;
import org.apache.james.core.quota.QuotaSizeUsage;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.events.Event;
import org.apache.james.mailbox.events.Group;
import org.apache.james.mailbox.events.MailboxListener;
@@ -45,7 +46,6 @@ import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.QuotaRoot;
import org.apache.james.mailbox.model.TestId;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.mail.AnnotationMapper;
import org.junit.Before;
import org.junit.Test;
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java
index 688c8ca..89f5967 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java
@@ -28,6 +28,7 @@ import java.util.Optional;
import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Mailbox;
import org.apache.james.mailbox.model.MailboxId;
@@ -35,7 +36,6 @@ import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.QuotaRoot;
import org.apache.james.mailbox.model.TestId;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.mail.MailboxMapper;
import org.junit.Before;
import org.junit.Test;
diff --git a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
index a4b2155..ff27ab1 100644
--- a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
+++ b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
@@ -44,7 +44,7 @@ import org.apache.james.mailbox.quota.QuotaRootResolver;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
import org.apache.james.mailbox.store.MailboxManagerConfiguration;
import org.apache.james.mailbox.store.PreDeletionHooks;
-import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
@@ -97,7 +97,7 @@ public class CassandraHostSystem extends JamesImapHostSystem {
StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver(), eventBus);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mapperFactory, storeRightManager);
- SessionProvider sessionProvider = new SessionProvider(authenticator, authorizator);
+ SessionProviderImpl sessionProvider = new SessionProviderImpl(authenticator, authorizator);
QuotaRootResolver quotaRootResolver = new DefaultUserQuotaRootResolver(sessionProvider, mapperFactory);
perUserMaxQuotaManager = new CassandraPerUserMaxQuotaManager(
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
index afcef57..c48356d 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
@@ -44,7 +44,7 @@ import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager;
import org.apache.james.mailbox.jpa.quota.JPAPerUserMaxQuotaDAO;
import org.apache.james.mailbox.jpa.quota.JPAPerUserMaxQuotaManager;
import org.apache.james.mailbox.jpa.quota.JpaCurrentQuotaManager;
-import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
@@ -104,7 +104,7 @@ public class JPAHostSystem extends JamesImapHostSystem {
InVMEventBus eventBus = new InVMEventBus(new InVmEventDelivery(new NoopMetricFactory()));
StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, aclResolver, groupMembershipResolver, eventBus);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mapperFactory, storeRightManager);
- SessionProvider sessionProvider = new SessionProvider(authenticator, authorizator);
+ SessionProviderImpl sessionProvider = new SessionProviderImpl(authenticator, authorizator);
DefaultUserQuotaRootResolver quotaRootResolver = new DefaultUserQuotaRootResolver(sessionProvider, mapperFactory);
JpaCurrentQuotaManager currentQuotaManager = new JpaCurrentQuotaManager(entityManagerFactory);
maxQuotaManager = new JPAPerUserMaxQuotaManager(new JPAPerUserMaxQuotaDAO(entityManagerFactory));
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java
index 7ac5da9..65b8f07 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java
@@ -40,7 +40,7 @@ import org.apache.james.mailbox.maildir.MaildirStore;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
import org.apache.james.mailbox.store.MailboxManagerConfiguration;
import org.apache.james.mailbox.store.PreDeletionHooks;
-import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreRightManager;
@@ -80,7 +80,7 @@ public class MaildirHostSystem extends JamesImapHostSystem {
InVMEventBus eventBus = new InVMEventBus(new InVmEventDelivery(new NoopMetricFactory()));
StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, aclResolver, groupMembershipResolver, eventBus);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
- SessionProvider sessionProvider = new SessionProvider(authenticator, authorizator);
+ SessionProviderImpl sessionProvider = new SessionProviderImpl(authenticator, authorizator);
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mailboxSessionMapperFactory);
MessageSearchIndex index = new SimpleMessageSearchIndex(mailboxSessionMapperFactory, mailboxSessionMapperFactory, new DefaultTextExtractor());
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
index 81d0ca3..2733ac6 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
@@ -31,6 +31,7 @@ import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxPathLocker;
import org.apache.james.mailbox.MessageIdManager;
import org.apache.james.mailbox.RightManager;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.SubscriptionManager;
import org.apache.james.mailbox.cassandra.CassandraMailboxManager;
import org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory;
@@ -77,6 +78,7 @@ import org.apache.james.mailbox.store.Authenticator;
import org.apache.james.mailbox.store.Authorizator;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.NoMailboxPathLocker;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreAttachmentManager;
import org.apache.james.mailbox.store.StoreBlobManager;
import org.apache.james.mailbox.store.StoreMailboxManager;
@@ -131,6 +133,7 @@ public class CassandraMailboxModule extends AbstractModule {
bind(StoreBlobManager.class).in(Scopes.SINGLETON);
bind(StoreMessageIdManager.class).in(Scopes.SINGLETON);
bind(StoreRightManager.class).in(Scopes.SINGLETON);
+ bind(SessionProviderImpl.class).in(Scopes.SINGLETON);
bind(CassandraACLMapper.class).in(Scopes.SINGLETON);
bind(CassandraMailboxMapper.class).in(Scopes.SINGLETON);
@@ -167,6 +170,7 @@ public class CassandraMailboxModule extends AbstractModule {
bind(MessageIdManager.class).to(StoreMessageIdManager.class);
bind(AttachmentManager.class).to(StoreAttachmentManager.class);
bind(RightManager.class).to(StoreRightManager.class);
+ bind(SessionProvider.class).to(SessionProviderImpl.class);
bind(ReIndexer.class).to(ReIndexerImpl.class);
bind(MessageIdReIndexer.class).to(MessageIdReIndexerImpl.class);
diff --git a/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/JPAMailboxModule.java b/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/JPAMailboxModule.java
index 16dce61..f405a03 100644
--- a/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/JPAMailboxModule.java
+++ b/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/JPAMailboxModule.java
@@ -26,6 +26,7 @@ import org.apache.james.adapter.mailbox.store.UserRepositoryAuthenticator;
import org.apache.james.adapter.mailbox.store.UserRepositoryAuthorizator;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxPathLocker;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.SubscriptionManager;
import org.apache.james.mailbox.acl.GroupMembershipResolver;
import org.apache.james.mailbox.acl.MailboxACLResolver;
@@ -45,6 +46,7 @@ import org.apache.james.mailbox.store.Authorizator;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
import org.apache.james.mailbox.store.MailboxManagerConfiguration;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
@@ -85,6 +87,7 @@ public class JPAMailboxModule extends AbstractModule {
bind(UnionMailboxACLResolver.class).in(Scopes.SINGLETON);
bind(DefaultMessageId.Factory.class).in(Scopes.SINGLETON);
bind(ReIndexerImpl.class).in(Scopes.SINGLETON);
+ bind(SessionProviderImpl.class).in(Scopes.SINGLETON);
bind(SubscriptionMapperFactory.class).to(JPAMailboxSessionMapperFactory.class);
bind(MessageMapperFactory.class).to(JPAMailboxSessionMapperFactory.class);
@@ -99,6 +102,7 @@ public class JPAMailboxModule extends AbstractModule {
bind(Authenticator.class).to(UserRepositoryAuthenticator.class);
bind(MailboxManager.class).to(OpenJPAMailboxManager.class);
bind(StoreMailboxManager.class).to(OpenJPAMailboxManager.class);
+ bind(SessionProvider.class).to(SessionProviderImpl.class);
bind(Authorizator.class).to(UserRepositoryAuthorizator.class);
bind(MailboxId.Factory.class).to(JPAId.Factory.class);
bind(GroupMembershipResolver.class).to(SimpleGroupMembershipResolver.class);
diff --git a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/mailbox/MemoryMailboxModule.java b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/mailbox/MemoryMailboxModule.java
index 48d369e..b683510 100644
--- a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/mailbox/MemoryMailboxModule.java
+++ b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/mailbox/MemoryMailboxModule.java
@@ -31,6 +31,7 @@ import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxPathLocker;
import org.apache.james.mailbox.MessageIdManager;
import org.apache.james.mailbox.RightManager;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.SubscriptionManager;
import org.apache.james.mailbox.events.MailboxListener;
import org.apache.james.mailbox.extractor.TextExtractor;
@@ -47,6 +48,7 @@ import org.apache.james.mailbox.store.Authorizator;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
import org.apache.james.mailbox.store.MailboxManagerConfiguration;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreAttachmentManager;
import org.apache.james.mailbox.store.StoreBlobManager;
import org.apache.james.mailbox.store.StoreMailboxManager;
@@ -102,6 +104,7 @@ public class MemoryMailboxModule extends AbstractModule {
bind(StoreMailboxManager.class).to(InMemoryMailboxManager.class);
bind(MessageIdManager.class).to(StoreMessageIdManager.class);
bind(AttachmentManager.class).to(StoreAttachmentManager.class);
+ bind(SessionProvider.class).to(SessionProviderImpl.class);
bind(MessageSearchIndex.class).to(SimpleMessageSearchIndex.class);
bind(TextExtractor.class).to(JsoupTextExtractor.class);
@@ -123,6 +126,7 @@ public class MemoryMailboxModule extends AbstractModule {
bind(StoreAttachmentManager.class).in(Scopes.SINGLETON);
bind(StoreRightManager.class).in(Scopes.SINGLETON);
bind(MemoryDeletedMessageMetadataVault.class).in(Scopes.SINGLETON);
+ bind(SessionProviderImpl.class).in(Scopes.SINGLETON);
Multibinder.newSetBinder(binder(), MailboxManagerDefinition.class)
.addBinding()
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 172f906..db0e89d 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
@@ -26,7 +26,6 @@ import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.exception.BadCredentialsException;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxExistsException;
import org.apache.james.mailbox.model.ComposedMessageId;
@@ -96,14 +95,8 @@ public class MailboxAppender {
}
}
- public MailboxSession createMailboxSession(Username user) throws MessagingException {
- try {
- return mailboxManager.createSystemSession(user);
- } catch (BadCredentialsException e) {
- throw new MessagingException("Unable to authenticate to mailbox", e);
- } catch (MailboxException e) {
- throw new MessagingException("Can not access mailbox", e);
- }
+ public MailboxSession createMailboxSession(Username user) {
+ return mailboxManager.createSystemSession(user);
}
private void closeProcessing(MailboxSession session) throws MessagingException {
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 1889a75..35f59bc 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
@@ -37,7 +37,6 @@ import org.apache.james.core.builder.MimeMessageBuilder;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.metrics.api.MetricFactory;
import org.apache.james.metrics.api.NoopMetricFactory;
@@ -83,11 +82,7 @@ public class ToRecipientFolderTest {
session = mock(MailboxSession.class);
when(session.getPathDelimiter()).thenReturn('.');
- try {
- when(mailboxManager.createSystemSession(any(Username.class))).thenReturn(session);
- } catch (MailboxException e) {
- throw new RuntimeException(e);
- }
+ when(mailboxManager.createSystemSession(any(Username.class))).thenReturn(session);
when(session.getUser()).thenReturn(Username.of(USER));
}
diff --git a/server/protocols/jmap-draft/pom.xml b/server/protocols/jmap-draft/pom.xml
index 479beed..c5734e8 100644
--- a/server/protocols/jmap-draft/pom.xml
+++ b/server/protocols/jmap-draft/pom.xml
@@ -60,10 +60,6 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
- <artifactId>apache-james-mailbox-store</artifactId>
- </dependency>
- <dependency>
- <groupId>${james.groupId}</groupId>
<artifactId>apache-mailet-test</artifactId>
<scope>test</scope>
</dependency>
diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/AccessTokenAuthenticationStrategy.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/AccessTokenAuthenticationStrategy.java
index 60d81e0..6334a11 100644
--- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/AccessTokenAuthenticationStrategy.java
+++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/AccessTokenAuthenticationStrategy.java
@@ -26,12 +26,10 @@ import javax.servlet.http.HttpServletRequest;
import org.apache.james.core.Username;
import org.apache.james.jmap.api.access.AccessToken;
import org.apache.james.jmap.draft.api.AccessTokenManager;
-import org.apache.james.jmap.draft.exceptions.MailboxSessionCreationException;
import org.apache.james.jmap.draft.exceptions.NoValidAuthHeaderException;
import org.apache.james.jmap.draft.utils.HeadersAuthenticationExtractor;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.exception.MailboxException;
import com.google.common.annotations.VisibleForTesting;
@@ -50,7 +48,7 @@ public class AccessTokenAuthenticationStrategy implements AuthenticationStrategy
}
@Override
- public MailboxSession createMailboxSession(HttpServletRequest httpRequest) throws MailboxSessionCreationException, NoValidAuthHeaderException {
+ public MailboxSession createMailboxSession(HttpServletRequest httpRequest) throws NoValidAuthHeaderException {
Optional<Username> username = authenticationExtractor.authHeaders(httpRequest)
.map(AccessToken::fromString)
@@ -59,11 +57,7 @@ public class AccessTokenAuthenticationStrategy implements AuthenticationStrategy
.findFirst();
if (username.isPresent()) {
- try {
- return mailboxManager.createSystemSession(username.get());
- } catch (MailboxException e) {
- throw new MailboxSessionCreationException(e);
- }
+ return mailboxManager.createSystemSession(username.get());
}
throw new NoValidAuthHeaderException();
}
diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JWTAuthenticationStrategy.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JWTAuthenticationStrategy.java
index 7a6dfa3..8f88f06 100644
--- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JWTAuthenticationStrategy.java
+++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JWTAuthenticationStrategy.java
@@ -30,7 +30,6 @@ import org.apache.james.jmap.draft.utils.HeadersAuthenticationExtractor;
import org.apache.james.jwt.JwtTokenVerifier;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.user.api.UsersRepository;
import org.apache.james.user.api.UsersRepositoryException;
@@ -69,13 +68,7 @@ public class JWTAuthenticationStrategy implements AuthenticationStrategy {
});
Stream<MailboxSession> mailboxSessionStream = userLoginStream
- .map(login -> {
- try {
- return mailboxManager.createSystemSession(login);
- } catch (MailboxException e) {
- throw new MailboxSessionCreationException(e);
- }
- });
+ .map(mailboxManager::createSystemSession);
return mailboxSessionStream
.findFirst()
diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/QueryParameterAccessTokenAuthenticationStrategy.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/QueryParameterAccessTokenAuthenticationStrategy.java
index 997afd4..ec615c8 100644
--- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/QueryParameterAccessTokenAuthenticationStrategy.java
+++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/QueryParameterAccessTokenAuthenticationStrategy.java
@@ -25,14 +25,11 @@ import javax.servlet.http.HttpServletRequest;
import org.apache.james.core.Username;
import org.apache.james.jmap.draft.api.SimpleTokenManager;
-import org.apache.james.jmap.draft.exceptions.MailboxSessionCreationException;
-import org.apache.james.jmap.draft.exceptions.NoValidAuthHeaderException;
import org.apache.james.jmap.draft.exceptions.UnauthorizedException;
import org.apache.james.jmap.draft.model.AttachmentAccessToken;
import org.apache.james.jmap.draft.utils.DownloadPath;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.exception.MailboxException;
import com.google.common.annotations.VisibleForTesting;
@@ -50,24 +47,16 @@ public class QueryParameterAccessTokenAuthenticationStrategy implements Authenti
}
@Override
- public MailboxSession createMailboxSession(HttpServletRequest httpRequest) throws MailboxSessionCreationException, NoValidAuthHeaderException {
+ public MailboxSession createMailboxSession(HttpServletRequest httpRequest) {
return getAccessToken(httpRequest)
.filter(tokenManager::isValid)
.map(AttachmentAccessToken::getUsername)
.map(Username::of)
- .map(this::createSystemSession)
+ .map(mailboxManager::createSystemSession)
.orElseThrow(UnauthorizedException::new);
}
- private MailboxSession createSystemSession(Username username) {
- try {
- return mailboxManager.createSystemSession(username);
- } catch (MailboxException e) {
- throw new MailboxSessionCreationException(e);
- }
- }
-
private Optional<AttachmentAccessToken> getAccessToken(HttpServletRequest httpRequest) {
try {
return Optional.of(AttachmentAccessToken.from(httpRequest.getParameter(AUTHENTICATION_PARAMETER), getBlobId(httpRequest)));
diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListener.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListener.java
index 9bd0794..877f05b 100644
--- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListener.java
+++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListener.java
@@ -31,13 +31,13 @@ import org.apache.james.jmap.draft.model.message.view.MessageFullView;
import org.apache.james.jmap.draft.model.message.view.MessageFullViewFactory;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageIdManager;
+import org.apache.james.mailbox.SessionProvider;
import org.apache.james.mailbox.events.Event;
import org.apache.james.mailbox.events.Group;
import org.apache.james.mailbox.events.MailboxListener;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.FetchGroup;
import org.apache.james.mailbox.model.MessageResult;
-import org.apache.james.mailbox.store.SessionProvider;
import org.parboiled.common.ImmutableList;
import com.github.fge.lambdas.Throwing;
diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/AccessTokenAuthenticationStrategyTest.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/AccessTokenAuthenticationStrategyTest.java
index 897be6e..296222b 100644
--- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/AccessTokenAuthenticationStrategyTest.java
+++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/AccessTokenAuthenticationStrategyTest.java
@@ -33,12 +33,10 @@ import org.apache.james.core.Username;
import org.apache.james.jmap.api.access.AccessToken;
import org.apache.james.jmap.api.access.exceptions.NotAnAccessTokenException;
import org.apache.james.jmap.draft.crypto.AccessTokenManagerImpl;
-import org.apache.james.jmap.draft.exceptions.MailboxSessionCreationException;
import org.apache.james.jmap.draft.exceptions.NoValidAuthHeaderException;
import org.apache.james.jmap.draft.utils.HeadersAuthenticationExtractor;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.exception.MailboxException;
import org.junit.Before;
import org.junit.Test;
@@ -79,7 +77,7 @@ public class AccessTokenAuthenticationStrategyTest {
}
@Test
- public void createMailboxSessionShouldThrowWhenAuthHeaderIsInvalid() throws Exception {
+ public void createMailboxSessionShouldThrowWhenAuthHeaderIsInvalid() {
Username username = Username.of("123456789");
MailboxSession fakeMailboxSession = mock(MailboxSession.class);
@@ -98,26 +96,7 @@ public class AccessTokenAuthenticationStrategyTest {
}
@Test
- public void createMailboxSessionShouldThrowWhenMailboxExceptionHasOccurred() throws Exception {
- Username username = Username.of("username");
- when(mockedMailboxManager.createSystemSession(eq(username)))
- .thenThrow(new MailboxException());
-
- UUID authHeader = UUID.randomUUID();
- AccessToken accessToken = AccessToken.fromString(authHeader.toString());
- when(mockedAccessTokenManager.getUsernameFromToken(accessToken))
- .thenReturn(username);
- when(mockAuthenticationExtractor.authHeaders(request))
- .thenReturn(Stream.of(authHeader.toString()));
- when(mockedAccessTokenManager.isValid(accessToken))
- .thenReturn(true);
-
- assertThatThrownBy(() -> testee.createMailboxSession(request))
- .isExactlyInstanceOf(MailboxSessionCreationException.class);
- }
-
- @Test
- public void createMailboxSessionShouldReturnWhenAuthHeadersAreValid() throws Exception {
+ public void createMailboxSessionShouldReturnWhenAuthHeadersAreValid() {
Username username = Username.of("123456789");
MailboxSession fakeMailboxSession = mock(MailboxSession.class);
diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/JWTAuthenticationStrategyTest.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/JWTAuthenticationStrategyTest.java
index 733b626..5cd9e0f 100644
--- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/JWTAuthenticationStrategyTest.java
+++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/JWTAuthenticationStrategyTest.java
@@ -36,7 +36,6 @@ import org.apache.james.jmap.draft.utils.HeadersAuthenticationExtractor;
import org.apache.james.jwt.JwtTokenVerifier;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.user.memory.MemoryUsersRepository;
import org.junit.Before;
import org.junit.Test;
@@ -72,7 +71,7 @@ public class JWTAuthenticationStrategyTest {
}
@Test
- public void createMailboxSessionShouldThrownWhenAuthHeadersIsInvalid() throws Exception {
+ public void createMailboxSessionShouldThrownWhenAuthHeadersIsInvalid() {
String username = "123456789";
String validAuthHeader = "valid";
String fakeAuthHeaderWithPrefix = JWTAuthenticationStrategy.AUTHORIZATION_HEADER_PREFIX + validAuthHeader;
@@ -100,24 +99,7 @@ public class JWTAuthenticationStrategyTest {
}
@Test
- public void createMailboxSessionShouldThrowWhenMailboxExceptionHasOccurred() throws Exception {
- String username = "username";
- String validAuthHeader = "valid";
- String fakeAuthHeaderWithPrefix = JWTAuthenticationStrategy.AUTHORIZATION_HEADER_PREFIX + validAuthHeader;
-
- when(stubTokenVerifier.verify(validAuthHeader)).thenReturn(true);
- when(stubTokenVerifier.extractLogin(validAuthHeader)).thenReturn(username);
- when(mockedMailboxManager.createSystemSession(eq(Username.of(username))))
- .thenThrow(new MailboxException());
- when(mockAuthenticationExtractor.authHeaders(request))
- .thenReturn(Stream.of(fakeAuthHeaderWithPrefix));
-
- assertThatThrownBy(() -> testee.createMailboxSession(request))
- .isExactlyInstanceOf(MailboxSessionCreationException.class);
- }
-
- @Test
- public void createMailboxSessionShouldReturnWhenAuthHeadersAreValid() throws Exception {
+ public void createMailboxSessionShouldReturnWhenAuthHeadersAreValid(){
String username = "123456789";
String validAuthHeader = "valid";
String fakeAuthHeaderWithPrefix = JWTAuthenticationStrategy.AUTHORIZATION_HEADER_PREFIX + validAuthHeader;
@@ -136,7 +118,7 @@ public class JWTAuthenticationStrategyTest {
}
@Test
- public void createMailboxSessionShouldThrowUponInvalidVirtualHosting() throws Exception {
+ public void createMailboxSessionShouldThrowUponInvalidVirtualHosting() {
String username = "123456789@domain.tld";
String validAuthHeader = "valid";
String fakeAuthHeaderWithPrefix = JWTAuthenticationStrategy.AUTHORIZATION_HEADER_PREFIX + validAuthHeader;
diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/QueryParameterAccessTokenAuthenticationStrategyTest.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/QueryParameterAccessTokenAuthenticationStrategyTest.java
index 60046ae..e1fc93c 100644
--- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/QueryParameterAccessTokenAuthenticationStrategyTest.java
+++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/QueryParameterAccessTokenAuthenticationStrategyTest.java
@@ -24,33 +24,21 @@ import static org.mockito.Mockito.when;
import javax.servlet.http.HttpServletRequest;
-import org.apache.james.core.Username;
-import org.apache.james.jmap.draft.QueryParameterAccessTokenAuthenticationStrategy;
import org.apache.james.jmap.draft.api.SimpleTokenManager;
-import org.apache.james.jmap.draft.exceptions.MailboxSessionCreationException;
import org.apache.james.jmap.draft.exceptions.UnauthorizedException;
-import org.apache.james.jmap.draft.model.AttachmentAccessToken;
import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.exception.MailboxException;
import org.junit.Before;
import org.junit.Test;
public class QueryParameterAccessTokenAuthenticationStrategyTest {
- private static final Username USERNAME = Username.of("usera@domain.tld");
- private static final String VALID_ATTACHMENT_TOKEN = "usera@domain.tld_"
- + "2016-06-29T13:41:22.124Z_"
- + "DiZa0O14MjLWrAA8P6MG35Gt5CBp7mt5U1EH/M++rIoZK7nlGJ4dPW0dvZD7h4m3o5b/Yd8DXU5x2x4+s0HOOKzD7X0RMlsU7JHJMNLvTvRGWF/C+MUyC8Zce7DtnRVPEQX2uAZhL2PBABV07Vpa8kH+NxoS9CL955Bc1Obr4G+KN2JorADlocFQA6ElXryF5YS/HPZSvq1MTC6aJIP0ku8WRpRnbwgwJnn26YpcHXcJjbkCBtd9/BhlMV6xNd2hTBkfZmYdoNo+UKBaXWzLxAlbLuxjpxwvDNJfOEyWFPgHDoRvzP+G7KzhVWjanHAHrhF0GilEa/MKpOI1qHBSwA==";
-
- private SimpleTokenManager mockedSimpleTokenManager;
- private MailboxManager mockedMailboxManager;
private QueryParameterAccessTokenAuthenticationStrategy testee;
private HttpServletRequest request;
@Before
public void setup() {
- mockedSimpleTokenManager = mock(SimpleTokenManager.class);
- mockedMailboxManager = mock(MailboxManager.class);
+ SimpleTokenManager mockedSimpleTokenManager = mock(SimpleTokenManager.class);
+ MailboxManager mockedMailboxManager = mock(MailboxManager.class);
request = mock(HttpServletRequest.class);
testee = new QueryParameterAccessTokenAuthenticationStrategy(mockedSimpleTokenManager, mockedMailboxManager);
@@ -73,21 +61,4 @@ public class QueryParameterAccessTokenAuthenticationStrategyTest {
assertThatThrownBy(() -> testee.createMailboxSession(request))
.isExactlyInstanceOf(UnauthorizedException.class);
}
-
- @Test
- public void createMailboxSessionShouldThrowWhenMailboxExceptionHasOccurred() throws Exception {
- when(mockedMailboxManager.createSystemSession(USERNAME))
- .thenThrow(new MailboxException());
-
- when(request.getParameter("access_token"))
- .thenReturn(VALID_ATTACHMENT_TOKEN);
- when(request.getPathInfo())
- .thenReturn("/blobId");
-
- when(mockedSimpleTokenManager.isValid(AttachmentAccessToken.from(VALID_ATTACHMENT_TOKEN, "blobId")))
- .thenReturn(true);
-
- assertThatThrownBy(() -> testee.createMailboxSession(request))
- .isExactlyInstanceOf(MailboxSessionCreationException.class);
- }
}
\ No newline at end of file
diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListenerTest.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListenerTest.java
index a605e3e..51f2858 100644
--- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListenerTest.java
+++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListenerTest.java
@@ -55,7 +55,7 @@ import org.apache.james.mailbox.model.MessageRange;
import org.apache.james.mailbox.model.MessageResult;
import org.apache.james.mailbox.store.FakeAuthenticator;
import org.apache.james.mailbox.store.FakeAuthorizator;
-import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.SessionProviderImpl;
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.metrics.api.NoopMetricFactory;
import org.apache.james.mime4j.dom.Message;
@@ -119,7 +119,7 @@ class ComputeMessageFastViewProjectionListenerTest {
FakeAuthenticator authenticator = new FakeAuthenticator();
authenticator.addUser(BOB, "12345");
- SessionProvider sessionProvider = new SessionProvider(authenticator, FakeAuthorizator.defaultReject());
+ SessionProviderImpl sessionProvider = new SessionProviderImpl(authenticator, FakeAuthorizator.defaultReject());
listener = spy(new ComputeMessageFastViewProjectionListener(sessionProvider, messageIdManager,
messageFastViewProjection, messageFullViewFactory));
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org