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/01/15 03:21:47 UTC
[12/30] james-project git commit: JAMES-2641 Stop lazy initialization
of Quota components in MailboxManager
JAMES-2641 Stop lazy initialization of Quota components in MailboxManager
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/14ca4fe2
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/14ca4fe2
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/14ca4fe2
Branch: refs/heads/master
Commit: 14ca4fe21e4a390f119f333cf44c88e9b4fec8c4
Parents: f7f7f73
Author: Benoit Tellier <bt...@linagora.com>
Authored: Tue Jan 8 17:26:39 2019 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Jan 15 10:10:04 2019 +0700
----------------------------------------------------------------------
.../mailbox/manager/IntegrationResources.java | 9 +-
.../mailbox/manager/ManagerTestResources.java | 11 ++-
.../cassandra/CassandraMailboxManager.java | 7 +-
.../CassandraMailboxManagerProvider.java | 12 ++-
.../CassandraMessageIdManagerTestSystem.java | 2 +-
.../cassandra/CassandraTestSystemFixture.java | 24 ++---
.../CassandraMailboxManagerAttachmentTest.java | 6 +-
.../ElasticSearchIntegrationTest.java | 6 +-
.../james/mailbox/jpa/JPAMailboxManager.java | 6 +-
.../jpa/openjpa/OpenJPAMailboxManager.java | 11 ++-
.../mailbox/jpa/JpaMailboxManagerProvider.java | 5 +-
.../search/LuceneMessageSearchIndexTest.java | 6 +-
.../maildir/MaildirMailboxManagerProvider.java | 4 +-
.../inmemory/InMemoryMailboxManager.java | 10 +-
.../quota/InMemoryCurrentQuotaManager.java | 6 +-
.../InMemoryMailboxManagerAttachmentTest.java | 6 +-
.../manager/InMemoryIntegrationResources.java | 97 ++++++--------------
.../InMemoryMessageIdManagerSideEffectTest.java | 11 ++-
.../InMemoryQuotaMailboxMessageManagerTest.java | 2 +-
.../quota/InMemoryCurrentQuotaManagerTest.java | 5 +-
.../search/SimpleMessageSearchIndexTest.java | 4 +-
.../mailbox/store/StoreMailboxManager.java | 53 ++++-------
.../mailbox/store/quota/QuotaComponents.java | 64 +++++++++++++
.../mailbox/store/StoreMailboxManagerTest.java | 4 +-
.../cassandra/host/CassandraHostSystem.java | 14 +--
.../inmemory/host/InMemoryHostSystem.java | 32 +------
.../mpt/imapmailbox/jpa/host/JPAHostSystem.java | 11 +--
.../maildir/host/MaildirHostSystem.java | 10 +-
.../modules/mailbox/CassandraMailboxModule.java | 9 +-
.../james/modules/mailbox/JPAMailboxModule.java | 9 +-
.../james/modules/ConfigurationProbe.java | 4 +-
.../modules/mailbox/MemoryMailboxModule.java | 9 +-
.../jmap/methods/GetMailboxesMethodTest.java | 6 +-
.../james/jmap/model/MailboxFactoryTest.java | 6 +-
34 files changed, 230 insertions(+), 251 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/api/src/test/java/org/apache/james/mailbox/manager/IntegrationResources.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/manager/IntegrationResources.java b/mailbox/api/src/test/java/org/apache/james/mailbox/manager/IntegrationResources.java
index bb1a868..f68f1c9 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/manager/IntegrationResources.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/manager/IntegrationResources.java
@@ -23,7 +23,6 @@ import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MessageIdManager;
import org.apache.james.mailbox.acl.GroupMembershipResolver;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.quota.CurrentQuotaManager;
import org.apache.james.mailbox.quota.MaxQuotaManager;
import org.apache.james.mailbox.quota.QuotaManager;
import org.apache.james.mailbox.quota.QuotaRootResolver;
@@ -35,13 +34,11 @@ public interface IntegrationResources<T extends MailboxManager> {
T createMailboxManager(GroupMembershipResolver groupMembershipResolver) throws MailboxException;
- QuotaManager createQuotaManager(MaxQuotaManager maxQuotaManager, T mailboxManager) throws Exception;
+ QuotaManager retrieveQuotaManager(T mailboxManager) throws Exception;
- MaxQuotaManager createMaxQuotaManager() throws Exception;
+ MaxQuotaManager retrieveMaxQuotaManager(T mailboxManager) throws Exception;
- CurrentQuotaManager createCurrentQuotaManager(T mailboxManager) throws Exception;
-
- QuotaRootResolver createQuotaRootResolver(T mailboxManager) throws Exception;
+ QuotaRootResolver retrieveQuotaRootResolver(T mailboxManager) throws Exception;
GroupMembershipResolver createGroupMembershipResolver() throws Exception;
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java b/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java
index 58b7292..516b01d 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java
@@ -21,6 +21,7 @@ package org.apache.james.mailbox.manager;
import java.io.ByteArrayInputStream;
import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
import java.util.Calendar;
import javax.mail.Flags;
@@ -67,11 +68,13 @@ public class ManagerTestResources<T extends MailboxManager> {
public ManagerTestResources(IntegrationResources<T> integrationResources) throws Exception {
this.integrationResources = integrationResources;
- maxQuotaManager = integrationResources.createMaxQuotaManager();
groupMembershipResolver = integrationResources.createGroupMembershipResolver();
mailboxManager = integrationResources.createMailboxManager(groupMembershipResolver);
- quotaRootResolver = integrationResources.createQuotaRootResolver(mailboxManager);
- quotaManager = integrationResources.createQuotaManager(maxQuotaManager, mailboxManager);
+
+ maxQuotaManager = integrationResources.retrieveMaxQuotaManager(mailboxManager);
+ quotaRootResolver = integrationResources.retrieveQuotaRootResolver(mailboxManager);
+ quotaManager = integrationResources.retrieveQuotaManager(mailboxManager);
+
integrationResources.init();
session = mailboxManager.login(USER, USER_PASS);
inbox = MailboxPath.inbox(session);
@@ -141,7 +144,7 @@ public class ManagerTestResources<T extends MailboxManager> {
}
public MessageUid appendMessage(MessageManager messageManager, MailboxSession session, Flags flags) throws MailboxException, UnsupportedEncodingException {
- return messageManager.appendMessage(new ByteArrayInputStream(MockMail.MAIL_TEXT_PLAIN.getBytes("UTF-8")),
+ return messageManager.appendMessage(new ByteArrayInputStream(MockMail.MAIL_TEXT_PLAIN.getBytes(StandardCharsets.UTF_8)),
Calendar.getInstance().getTime(), session, true, flags).getUid();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
----------------------------------------------------------------------
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 9dc55dd..a54331f 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
@@ -39,6 +39,7 @@ import org.apache.james.mailbox.store.event.DelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.apache.james.mailbox.store.search.MessageSearchIndex;
/**
@@ -62,6 +63,7 @@ public class CassandraMailboxManager extends StoreMailboxManager {
MailboxPathLocker locker, MessageParser messageParser,
MessageId.Factory messageIdFactory, DelegatingMailboxListener delegatingMailboxListener,
StoreMailboxAnnotationManager annotationManager, StoreRightManager storeRightManager,
+ QuotaComponents quotaComponents,
MailboxManagerConfiguration configuration) {
super(mapperFactory,
sessionProvider,
@@ -71,6 +73,7 @@ public class CassandraMailboxManager extends StoreMailboxManager {
annotationManager,
delegatingMailboxListener,
storeRightManager,
+ quotaComponents,
configuration);
this.locker = locker;
this.mapperFactory = mapperFactory;
@@ -106,8 +109,8 @@ public class CassandraMailboxManager extends StoreMailboxManager {
getDelegationListener(),
this.locker,
mailboxRow,
- getQuotaManager(),
- getQuotaRootResolver(),
+ getQuotaComponents().getQuotaManager(),
+ getQuotaComponents().getQuotaRootResolver(),
getMessageParser(),
getMessageIdFactory(),
configuration.getBatchSizes(),
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java
----------------------------------------------------------------------
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 38c5ca4..26bf3a9 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
@@ -43,6 +43,7 @@ import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
import org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.apache.james.mailbox.store.quota.StoreQuotaManager;
import com.datastax.driver.core.Session;
@@ -71,18 +72,19 @@ public class CassandraMailboxManagerProvider {
LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE);
SessionProvider sessionProvider = new SessionProvider(noAuthenticator, noAuthorizator);
-
- CassandraMailboxManager manager = new CassandraMailboxManager(mapperFactory, sessionProvider, new NoMailboxPathLocker(),
- messageParser, messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager, MailboxManagerConfiguration.DEFAULT);
-
CassandraPerUserMaxQuotaManager maxQuotaManager = new CassandraPerUserMaxQuotaManager(new CassandraPerUserMaxQuotaDao(session),
new CassandraPerDomainMaxQuotaDao(session),
new CassandraGlobalMaxQuotaDao(session));
CassandraCurrentQuotaManager currentQuotaUpdater = new CassandraCurrentQuotaManager(session);
StoreQuotaManager storeQuotaManager = new StoreQuotaManager(currentQuotaUpdater, maxQuotaManager);
QuotaRootResolver quotaRootResolver = new DefaultUserQuotaRootResolver(sessionProvider, mapperFactory);
-
ListeningCurrentQuotaUpdater quotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaUpdater, quotaRootResolver, delegatingMailboxListener, storeQuotaManager);
+ QuotaComponents quotaComponents = new QuotaComponents(maxQuotaManager, storeQuotaManager, quotaRootResolver, quotaUpdater);
+
+ CassandraMailboxManager manager = new CassandraMailboxManager(mapperFactory, sessionProvider, new NoMailboxPathLocker(),
+ messageParser, messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager,
+ quotaComponents, MailboxManagerConfiguration.DEFAULT);
+
manager.setQuotaManager(storeQuotaManager);
manager.setQuotaUpdater(quotaUpdater);
manager.setQuotaRootResolver(quotaRootResolver);
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
index 34e6236..ede1fe2 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
@@ -46,7 +46,7 @@ public class CassandraMessageIdManagerTestSystem {
CassandraMailboxManager mailboxManager = CassandraTestSystemFixture.createMailboxManager(mapperFactory);
ListeningCurrentQuotaUpdater listeningCurrentQuotaUpdater = new ListeningCurrentQuotaUpdater(
(StoreCurrentQuotaManager) currentQuotaManager,
- mailboxManager.getQuotaRootResolver(), mailboxManager.getDelegationListener(), quotaManager);
+ mailboxManager.getQuotaComponents().getQuotaRootResolver(), mailboxManager.getDelegationListener(), quotaManager);
mailboxManager.addGlobalListener(listeningCurrentQuotaUpdater, mailboxManager.createSystemSession("System"));
return new MessageIdManagerTestSystem(CassandraTestSystemFixture.createMessageIdManager(mapperFactory, quotaManager, mailboxManager.getDelegationListener()),
new CassandraMessageId.Factory(),
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
----------------------------------------------------------------------
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 b5657ae..5f7c87a 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
@@ -45,13 +45,11 @@ import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
import org.apache.james.mailbox.store.event.DelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
-import org.apache.james.mailbox.store.quota.StoreQuotaManager;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
-public class CassandraTestSystemFixture {
-
- public static final int MOD_SEQ = 452;
+class CassandraTestSystemFixture {
- public static CassandraMailboxSessionMapperFactory createMapperFactory(CassandraCluster cassandra) {
+ static CassandraMailboxSessionMapperFactory createMapperFactory(CassandraCluster cassandra) {
CassandraMessageId.Factory messageIdFactory = new CassandraMessageId.Factory();
return TestCassandraMailboxSessionMapperFactory.forTests(
@@ -60,21 +58,23 @@ public class CassandraTestSystemFixture {
messageIdFactory);
}
- public static CassandraMailboxManager createMailboxManager(CassandraMailboxSessionMapperFactory mapperFactory) throws Exception {
+ static CassandraMailboxManager createMailboxManager(CassandraMailboxSessionMapperFactory mapperFactory) throws Exception {
DefaultDelegatingMailboxListener delegatingMailboxListener = new DefaultDelegatingMailboxListener();
StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver(), delegatingMailboxListener);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mapperFactory, storeRightManager);
SessionProvider sessionProvider = new SessionProvider(mock(Authenticator.class), mock(Authorizator.class));
+
+ QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mapperFactory);
CassandraMailboxManager cassandraMailboxManager = new CassandraMailboxManager(mapperFactory, sessionProvider,
new NoMailboxPathLocker(), new MessageParser(), new CassandraMessageId.Factory(),
- delegatingMailboxListener, annotationManager, storeRightManager, MailboxManagerConfiguration.DEFAULT);
+ delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
cassandraMailboxManager.init();
return cassandraMailboxManager;
}
- public static StoreMessageIdManager createMessageIdManager(CassandraMailboxSessionMapperFactory mapperFactory, QuotaManager quotaManager, DelegatingMailboxListener delegatingMailboxListener) throws Exception {
+ static StoreMessageIdManager createMessageIdManager(CassandraMailboxSessionMapperFactory mapperFactory, QuotaManager quotaManager, DelegatingMailboxListener delegatingMailboxListener) throws Exception {
CassandraMailboxManager mailboxManager = createMailboxManager(mapperFactory);
return new StoreMessageIdManager(
mailboxManager,
@@ -85,19 +85,15 @@ public class CassandraTestSystemFixture {
new DefaultUserQuotaRootResolver(mailboxManager.getSessionProvider(), mapperFactory));
}
- public static MaxQuotaManager createMaxQuotaManager(CassandraCluster cassandra) {
+ static MaxQuotaManager createMaxQuotaManager(CassandraCluster cassandra) {
return new CassandraPerUserMaxQuotaManager(
new CassandraPerUserMaxQuotaDao(cassandra.getConf()),
new CassandraPerDomainMaxQuotaDao(cassandra.getConf()),
new CassandraGlobalMaxQuotaDao(cassandra.getConf()));
}
- public static CurrentQuotaManager createCurrentQuotaManager(CassandraCluster cassandra) {
+ static CurrentQuotaManager createCurrentQuotaManager(CassandraCluster cassandra) {
return new CassandraCurrentQuotaManager(cassandra.getConf());
}
- public static QuotaManager createQuotaManager(CassandraCluster cassandra, MaxQuotaManager maxQuotaManager) {
- return new StoreQuotaManager(new CassandraCurrentQuotaManager(cassandra.getConf()), maxQuotaManager);
- }
-
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
----------------------------------------------------------------------
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 6a0e60b..6fe8d71 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
@@ -43,6 +43,7 @@ import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.AttachmentMapperFactory;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
@@ -93,16 +94,17 @@ public class CassandraMailboxManagerAttachmentTest extends AbstractMailboxManage
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
SessionProvider sessionProvider = new SessionProvider(noAuthenticator, noAuthorizator);
+ QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mailboxSessionMapperFactory);
mailboxManager = new CassandraMailboxManager(mailboxSessionMapperFactory, sessionProvider, new NoMailboxPathLocker(), new MessageParser(),
- messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager, MailboxManagerConfiguration.DEFAULT);
+ messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
mailboxManager.init();
MessageParser failingMessageParser = mock(MessageParser.class);
when(failingMessageParser.retrieveAttachments(any()))
.thenThrow(new RuntimeException("Message parser set to fail"));
parseFailingMailboxManager = new CassandraMailboxManager(mailboxSessionMapperFactory, sessionProvider,
new NoMailboxPathLocker(), failingMessageParser, messageIdFactory,
- delegatingMailboxListener, annotationManager, storeRightManager, MailboxManagerConfiguration.DEFAULT);
+ delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
parseFailingMailboxManager.init();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/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 f31e363..13aa203 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
@@ -45,6 +45,7 @@ import org.apache.james.mailbox.model.ComposedMessageId;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.SearchQuery;
import org.apache.james.mailbox.store.StoreMessageIdManager;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.apache.james.mailbox.store.search.AbstractMessageSearchIndexTest;
import org.apache.james.mailbox.tika.TikaConfiguration;
import org.apache.james.mailbox.tika.TikaContainerSingletonRule;
@@ -117,13 +118,14 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
new MessageToElasticSearchJson(textExtractor, ZoneId.of("Europe/Paris"), IndexAttachments.YES),
storeMailboxManager);
+ QuotaComponents quotaComponents = storeMailboxManager.getQuotaComponents();
messageIdManager = new StoreMessageIdManager(
storeMailboxManager,
storeMailboxManager.getMapperFactory(),
storeMailboxManager.getDelegationListener(),
storeMailboxManager.getMessageIdFactory(),
- storeMailboxManager.getQuotaManager(),
- storeMailboxManager.getQuotaRootResolver());
+ quotaComponents.getQuotaManager(),
+ quotaComponents.getQuotaRootResolver());
storeMailboxManager.setMessageSearchIndex(elasticSearchListeningMessageSearchIndex);
storeMailboxManager.addGlobalListener(elasticSearchListeningMessageSearchIndex, MailboxSessionUtil.create("admin"));
this.messageSearchIndex = elasticSearchListeningMessageSearchIndex;
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java
----------------------------------------------------------------------
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 c3af7db..70a4e1f 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
@@ -35,6 +35,7 @@ import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.apache.james.mailbox.store.transaction.Mapper;
/**
@@ -54,10 +55,11 @@ public abstract class JPAMailboxManager extends StoreMailboxManager {
MessageId.Factory messageIdFactory,
DelegatingMailboxListener delegatingMailboxListener,
StoreMailboxAnnotationManager annotationManager,
- StoreRightManager storeRightManager) {
+ StoreRightManager storeRightManager,
+ QuotaComponents quotaComponents) {
super(mailboxSessionMapperFactory, sessionProvider, locker,
messageParser, messageIdFactory, annotationManager,
- delegatingMailboxListener, storeRightManager, MailboxManagerConfiguration.DEFAULT);
+ delegatingMailboxListener, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
----------------------------------------------------------------------
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 bedd47f..77c2fcd 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
@@ -34,6 +34,7 @@ import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
/**
* OpenJPA implementation of MailboxManager
@@ -48,9 +49,11 @@ public class OpenJPAMailboxManager extends JPAMailboxManager {
MessageId.Factory messageIdFactory,
DelegatingMailboxListener delegatingMailboxListener,
StoreMailboxAnnotationManager annotationManager,
- StoreRightManager storeRightManager) {
+ StoreRightManager storeRightManager,
+ QuotaComponents quotaComponents) {
super(mapperFactory, sessionProvider, new JVMMailboxPathLocker(), messageParser,
- messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager);
+ messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager,
+ quotaComponents);
}
protected AdvancedFeature getAdvancedFeature() {
@@ -65,8 +68,8 @@ public class OpenJPAMailboxManager extends JPAMailboxManager {
getLocker(),
mailboxRow,
getAdvancedFeature(),
- getQuotaManager(),
- getQuotaRootResolver(),
+ getQuotaComponents().getQuotaManager(),
+ getQuotaComponents().getQuotaRootResolver(),
getMessageParser(),
getMessageIdFactory(),
configuration.getBatchSizes(),
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerProvider.java
----------------------------------------------------------------------
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 960db5e..bdaf958 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
@@ -39,6 +39,7 @@ import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
public class JpaMailboxManagerProvider {
@@ -61,10 +62,12 @@ public class JpaMailboxManagerProvider {
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mf, storeRightManager,
LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE);
SessionProvider sessionProvider = new SessionProvider(noAuthenticator, noAuthorizator);
+ QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mf);
+
OpenJPAMailboxManager openJPAMailboxManager = new OpenJPAMailboxManager(mf, sessionProvider,
messageParser, new DefaultMessageId.Factory(),
delegatingListener, annotationManager,
- storeRightManager);
+ storeRightManager, quotaComponents);
try {
openJPAMailboxManager.init();
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/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 ac4ac1e..7853d32 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
@@ -25,6 +25,7 @@ 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.store.StoreMessageIdManager;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.apache.james.mailbox.store.search.AbstractMessageSearchIndexTest;
import org.apache.lucene.store.RAMDirectory;
import org.junit.Ignore;
@@ -40,13 +41,14 @@ public class LuceneMessageSearchIndexTest extends AbstractMessageSearchIndexTest
storeMailboxManager = new InMemoryIntegrationResources()
.createMailboxManager(new SimpleGroupMembershipResolver());
+ QuotaComponents quotaComponents = storeMailboxManager.getQuotaComponents();
messageIdManager = new StoreMessageIdManager(
storeMailboxManager,
storeMailboxManager.getMapperFactory(),
storeMailboxManager.getDelegationListener(),
storeMailboxManager.getMessageIdFactory(),
- storeMailboxManager.getQuotaManager(),
- storeMailboxManager.getQuotaRootResolver());
+ quotaComponents.getQuotaManager(),
+ quotaComponents.getQuotaRootResolver());
LuceneMessageSearchIndex luceneMessageSearchIndex = new LuceneMessageSearchIndex(
storeMailboxManager.getMapperFactory(), new InMemoryId.Factory(), new RAMDirectory(),
storeMailboxManager.getMessageIdFactory(),
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerProvider.java
----------------------------------------------------------------------
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 c071e39..604039b 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
@@ -38,6 +38,7 @@ import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.junit.rules.TemporaryFolder;
public class MaildirMailboxManagerProvider {
@@ -60,8 +61,9 @@ public class MaildirMailboxManagerProvider {
SessionProvider sessionProvider = new SessionProvider(noAuthenticator, noAuthorizator);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mf, storeRightManager);
+ QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mf);
StoreMailboxManager manager = new StoreMailboxManager(mf, sessionProvider, new JVMMailboxPathLocker(),
- messageParser, new DefaultMessageId.Factory(), annotationManager, delegatingListener, storeRightManager, MailboxManagerConfiguration.DEFAULT);
+ messageParser, new DefaultMessageId.Factory(), annotationManager, delegatingListener, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
manager.init();
return manager;
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java
----------------------------------------------------------------------
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 9fc1763..f2ef014 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
@@ -36,6 +36,7 @@ import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.apache.james.mailbox.store.search.MessageSearchIndex;
public class InMemoryMailboxManager extends StoreMailboxManager {
@@ -53,9 +54,10 @@ public class InMemoryMailboxManager extends StoreMailboxManager {
MailboxPathLocker locker, MessageParser messageParser, MessageId.Factory messageIdFactory,
DelegatingMailboxListener delegatingMailboxListener,
StoreMailboxAnnotationManager annotationManager,
- StoreRightManager storeRightManager) {
+ StoreRightManager storeRightManager,
+ QuotaComponents quotaComponents) {
super(mailboxSessionMapperFactory, sessionProvider, locker, messageParser, messageIdFactory,
- annotationManager, delegatingMailboxListener, storeRightManager, MailboxManagerConfiguration.DEFAULT);
+ annotationManager, delegatingMailboxListener, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
}
@Override
@@ -81,8 +83,8 @@ public class InMemoryMailboxManager extends StoreMailboxManager {
getDelegationListener(),
getLocker(),
mailbox,
- getQuotaManager(),
- getQuotaRootResolver(),
+ getQuotaComponents().getQuotaManager(),
+ getQuotaComponents().getQuotaRootResolver(),
getMessageParser(),
getMessageIdFactory(),
configuration.getBatchSizes(),
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
----------------------------------------------------------------------
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 673ac44..3bc7d36 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.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.MailboxListener;
-import org.apache.james.mailbox.MailboxManager;
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;
@@ -43,11 +43,11 @@ public class InMemoryCurrentQuotaManager implements StoreCurrentQuotaManager {
private final LoadingCache<QuotaRoot, Entry> quotaCache;
@Inject
- public InMemoryCurrentQuotaManager(final CurrentQuotaCalculator quotaCalculator, final MailboxManager mailboxManager) {
+ public InMemoryCurrentQuotaManager(CurrentQuotaCalculator quotaCalculator, SessionProvider sessionProvider) {
this.quotaCache = CacheBuilder.newBuilder().build(new CacheLoader<QuotaRoot, Entry>() {
@Override
public Entry load(QuotaRoot quotaRoot) throws Exception {
- return new Entry(quotaCalculator.recalculateCurrentQuotas(quotaRoot, mailboxManager.createSystemSession(quotaRoot.getValue())));
+ return new Entry(quotaCalculator.recalculateCurrentQuotas(quotaRoot, sessionProvider.createSystemSession(quotaRoot.getValue())));
}
});
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxManagerAttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxManagerAttachmentTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxManagerAttachmentTest.java
index 11cb4b6..9ce53e0 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxManagerAttachmentTest.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxManagerAttachmentTest.java
@@ -43,6 +43,7 @@ import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.AttachmentMapperFactory;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.junit.Before;
public class InMemoryMailboxManagerAttachmentTest extends AbstractMailboxManagerAttachmentTest {
@@ -65,16 +66,17 @@ public class InMemoryMailboxManagerAttachmentTest extends AbstractMailboxManager
StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, aclResolver, groupMembershipResolver, delegatingListener);
SessionProvider sessionProvider = new SessionProvider(noAuthenticator, noAuthorizator);
+ QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mailboxSessionMapperFactory);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, sessionProvider, new NoMailboxPathLocker(),
- new MessageParser(), messageIdFactory, delegatingListener, annotationManager, storeRightManager);
+ new MessageParser(), messageIdFactory, delegatingListener, annotationManager, storeRightManager, quotaComponents);
mailboxManager.init();
MessageParser failingMessageParser = mock(MessageParser.class);
when(failingMessageParser.retrieveAttachments(any(InputStream.class)))
.thenThrow(new RuntimeException("Message parser set to fail"));
parseFailingMailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, sessionProvider, new NoMailboxPathLocker(),
- failingMessageParser, messageIdFactory, delegatingListener, annotationManager, storeRightManager);
+ failingMessageParser, messageIdFactory, delegatingListener, annotationManager, storeRightManager, quotaComponents);
parseFailingMailboxManager.init();
super.setUp();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
----------------------------------------------------------------------
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 d736813..27f3c9d 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
@@ -53,25 +53,18 @@ import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator;
import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
import org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.apache.james.mailbox.store.quota.StoreQuotaManager;
public class InMemoryIntegrationResources implements IntegrationResources<StoreMailboxManager> {
public static class Resources {
private final InMemoryMailboxManager mailboxManager;
- private final MaxQuotaManager maxQuotaManager;
- private final QuotaManager quotaManager;
- private final InMemoryCurrentQuotaManager currentQuotaManager;
- private final DefaultUserQuotaRootResolver quotaRootResolver;
private final StoreRightManager storeRightManager;
private final MessageId.Factory messageIdFactory;
- public Resources(InMemoryMailboxManager mailboxManager, MaxQuotaManager maxQuotaManager, QuotaManager quotaManager, InMemoryCurrentQuotaManager currentQuotaManager, DefaultUserQuotaRootResolver quotaRootResolver, StoreRightManager storeRightManager, MessageId.Factory messageIdFactory) {
+ Resources(InMemoryMailboxManager mailboxManager, StoreRightManager storeRightManager, MessageId.Factory messageIdFactory) {
this.mailboxManager = mailboxManager;
- this.maxQuotaManager = maxQuotaManager;
- this.quotaManager = quotaManager;
- this.currentQuotaManager = currentQuotaManager;
- this.quotaRootResolver = quotaRootResolver;
this.storeRightManager = storeRightManager;
this.messageIdFactory = messageIdFactory;
}
@@ -80,20 +73,8 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
return mailboxManager;
}
- public MaxQuotaManager getMaxQuotaManager() {
- return maxQuotaManager;
- }
-
- public QuotaManager getQuotaManager() {
- return quotaManager;
- }
-
- public DefaultUserQuotaRootResolver getQuotaRootResolver() {
- return quotaRootResolver;
- }
-
public InMemoryCurrentQuotaManager getCurrentQuotaManager() {
- return currentQuotaManager;
+ return (InMemoryCurrentQuotaManager) mailboxManager.getQuotaComponents().getMaxQuotaManager();
}
public StoreRightManager getStoreRightManager() {
@@ -106,13 +87,10 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
}
private SimpleGroupMembershipResolver groupMembershipResolver;
- private DefaultUserQuotaRootResolver quotaRootResolver;
- private InMemoryCurrentQuotaManager currentQuotaManager;
@Override
public InMemoryMailboxManager createMailboxManager(GroupMembershipResolver groupMembershipResolver) throws MailboxException {
- return createResources(groupMembershipResolver)
- .mailboxManager;
+ return createResources(groupMembershipResolver).mailboxManager;
}
public Resources createResources(GroupMembershipResolver groupMembershipResolver) throws MailboxException {
@@ -147,6 +125,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
.apply(storeRightManager, mailboxSessionMapperFactory);
SessionProvider sessionProvider = new SessionProvider(fakeAuthenticator, FakeAuthorizator.defaultReject());
+ QuotaComponents quotaComponents = createQuotaComponents(mailboxSessionMapperFactory, delegatingListener, sessionProvider);
InMemoryMailboxManager manager = new InMemoryMailboxManager(
mailboxSessionMapperFactory,
@@ -156,24 +135,25 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
new InMemoryMessageId.Factory(),
delegatingListener,
annotationManager,
- storeRightManager);
+ storeRightManager,
+ quotaComponents);
manager.init();
- MaxQuotaManager maxQuotaManager = createMaxQuotaManager();
try {
- QuotaManager quotaManager = createQuotaManager(maxQuotaManager, manager);
- return new Resources(
- manager,
- maxQuotaManager,
- quotaManager,
- currentQuotaManager,
- quotaRootResolver,
- storeRightManager,
- new InMemoryMessageId.Factory());
+ return new Resources(manager, storeRightManager, new InMemoryMessageId.Factory());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
+ private QuotaComponents createQuotaComponents(InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory, DefaultDelegatingMailboxListener delegatingListener, SessionProvider sessionProvider) {
+ MaxQuotaManager maxQuotaManager = new InMemoryPerUserMaxQuotaManager();
+ QuotaRootResolver quotaRootResolver = new DefaultUserQuotaRootResolver(sessionProvider, mailboxSessionMapperFactory);
+ InMemoryCurrentQuotaManager currentQuotaManager = new InMemoryCurrentQuotaManager(new CurrentQuotaCalculator(mailboxSessionMapperFactory, quotaRootResolver), sessionProvider);
+ StoreQuotaManager quotaManager = new StoreQuotaManager(currentQuotaManager, maxQuotaManager);
+ ListeningCurrentQuotaUpdater listeningCurrentQuotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaManager, quotaRootResolver, delegatingListener, quotaManager);
+ return new QuotaComponents(maxQuotaManager, quotaManager, quotaRootResolver, listeningCurrentQuotaUpdater);
+ }
+
public StoreMailboxManager createMailboxManager(GroupMembershipResolver groupMembershipResolver,
Authenticator authenticator, Authorizator authorizator) throws MailboxException {
InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory();
@@ -182,6 +162,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
SessionProvider sessionProvider = new SessionProvider(authenticator, authorizator);
+ QuotaComponents quotaComponents = createQuotaComponents(mailboxSessionMapperFactory, delegatingListener, sessionProvider);
StoreMailboxManager manager = new InMemoryMailboxManager(
mailboxSessionMapperFactory,
@@ -191,7 +172,8 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
new InMemoryMessageId.Factory(),
delegatingListener,
annotationManager,
- storeRightManager);
+ storeRightManager,
+ quotaComponents);
manager.init();
return manager;
}
@@ -202,42 +184,29 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
}
public MessageIdManager createMessageIdManager(StoreMailboxManager mailboxManager, MessageId.Factory factory) {
+ QuotaComponents quotaComponents = mailboxManager.getQuotaComponents();
return new StoreMessageIdManager(
mailboxManager,
mailboxManager.getMapperFactory(),
mailboxManager.getDelegationListener(),
factory,
- mailboxManager.getQuotaManager(),
- mailboxManager.getQuotaRootResolver());
+ quotaComponents.getQuotaManager(),
+ quotaComponents.getQuotaRootResolver());
}
@Override
- public QuotaManager createQuotaManager(MaxQuotaManager maxQuotaManager, StoreMailboxManager mailboxManager) throws Exception {
-
- QuotaRootResolver quotaRootResolver = createQuotaRootResolver(mailboxManager);
-
- InMemoryCurrentQuotaManager currentQuotaManager = createCurrentQuotaManager(mailboxManager);
-
- StoreQuotaManager quotaManager = new StoreQuotaManager(currentQuotaManager, maxQuotaManager);
- ListeningCurrentQuotaUpdater listeningCurrentQuotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaManager, quotaRootResolver, mailboxManager.getDelegationListener(), quotaManager);
- mailboxManager.setQuotaManager(quotaManager);
- mailboxManager.addGlobalListener(listeningCurrentQuotaUpdater, null);
- return quotaManager;
+ public QuotaManager retrieveQuotaManager(StoreMailboxManager mailboxManager) {
+ return mailboxManager.getQuotaComponents().getQuotaManager();
}
@Override
- public InMemoryCurrentQuotaManager createCurrentQuotaManager(StoreMailboxManager mailboxManager) {
- if (currentQuotaManager == null) {
- currentQuotaManager = new InMemoryCurrentQuotaManager(
- new CurrentQuotaCalculator(mailboxManager.getMapperFactory(), createQuotaRootResolver(mailboxManager)),
- mailboxManager);
- }
- return currentQuotaManager;
+ public MaxQuotaManager retrieveMaxQuotaManager(StoreMailboxManager mailboxManager) {
+ return mailboxManager.getQuotaComponents().getMaxQuotaManager();
}
@Override
- public MaxQuotaManager createMaxQuotaManager() {
- return new InMemoryPerUserMaxQuotaManager();
+ public DefaultUserQuotaRootResolver retrieveQuotaRootResolver(StoreMailboxManager mailboxManager) {
+ return (DefaultUserQuotaRootResolver) mailboxManager.getQuotaComponents().getQuotaRootResolver();
}
@Override
@@ -247,14 +216,6 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
}
@Override
- public DefaultUserQuotaRootResolver createQuotaRootResolver(StoreMailboxManager mailboxManager) {
- if (quotaRootResolver == null) {
- quotaRootResolver = new DefaultUserQuotaRootResolver(mailboxManager.getSessionProvider(), mailboxManager.getMapperFactory());
- }
- return quotaRootResolver;
- }
-
- @Override
public void init() {
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryMessageIdManagerSideEffectTest.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryMessageIdManagerSideEffectTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryMessageIdManagerSideEffectTest.java
index d95f40b..28cdc0c 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryMessageIdManagerSideEffectTest.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryMessageIdManagerSideEffectTest.java
@@ -38,6 +38,9 @@ import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
+import org.apache.james.mailbox.store.quota.NoMaxQuotaManager;
+import org.apache.james.mailbox.store.quota.NoQuotaUpdater;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.junit.Before;
public class InMemoryMessageIdManagerSideEffectTest extends AbstractMessageIdManagerSideEffectTest {
@@ -61,6 +64,9 @@ public class InMemoryMessageIdManagerSideEffectTest extends AbstractMessageIdMan
JVMMailboxPathLocker locker = new JVMMailboxPathLocker();
InMemoryMessageId.Factory messageIdFactory = new InMemoryMessageId.Factory();
SessionProvider sessionProvider = new SessionProvider(fakeAuthenticator, fakeAuthorizator);
+
+ QuotaComponents quotaComponents = new QuotaComponents(new NoMaxQuotaManager(), quotaManager, new DefaultUserQuotaRootResolver(sessionProvider, mapperFactory), new NoQuotaUpdater());
+
InMemoryMailboxManager mailboxManager = new InMemoryMailboxManager(mapperFactory,
sessionProvider,
locker,
@@ -68,14 +74,15 @@ public class InMemoryMessageIdManagerSideEffectTest extends AbstractMessageIdMan
messageIdFactory,
delegatingMailboxListener,
new StoreMailboxAnnotationManager(mapperFactory, rightManager),
- rightManager);
+ rightManager,
+ quotaComponents);
StoreMessageIdManager messageIdManager = new StoreMessageIdManager(
mailboxManager,
mapperFactory,
delegatingMailboxListener,
messageIdFactory,
quotaManager,
- new DefaultUserQuotaRootResolver(sessionProvider, mapperFactory));
+ quotaComponents.getQuotaRootResolver());
return new MessageIdManagerTestSystem(messageIdManager, messageIdFactory, mapperFactory, mailboxManager);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryQuotaMailboxMessageManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryQuotaMailboxMessageManagerTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryQuotaMailboxMessageManagerTest.java
index 2f3a0c9..4929584 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryQuotaMailboxMessageManagerTest.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryQuotaMailboxMessageManagerTest.java
@@ -32,7 +32,7 @@ public class InMemoryQuotaMailboxMessageManagerTest extends QuotaMessageManagerT
@Override
protected ManagerTestResources<StoreMailboxManager> createResources() throws Exception {
- return new ManagerTestResources<StoreMailboxManager>(new InMemoryIntegrationResources());
+ return new ManagerTestResources<>(new InMemoryIntegrationResources());
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java
----------------------------------------------------------------------
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 4707ea4..1446af8 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.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
-import org.apache.james.mailbox.MailboxManager;
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;
@@ -43,8 +43,7 @@ public class InMemoryCurrentQuotaManagerTest {
@Before
public void setUp() throws Exception {
mockedCurrentQuotaCalculator = mock(CurrentQuotaCalculator.class);
- MailboxManager mockedMailboxManager = mock(MailboxManager.class);
- testee = new InMemoryCurrentQuotaManager(mockedCurrentQuotaCalculator, mockedMailboxManager);
+ testee = new InMemoryCurrentQuotaManager(mockedCurrentQuotaCalculator, mock(SessionProvider.class));
}
@Test
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git a/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java b/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java
index 3691e39..30f6880 100644
--- a/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java
+++ b/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java
@@ -46,8 +46,8 @@ public class SimpleMessageSearchIndexTest extends AbstractMessageSearchIndexTest
storeMailboxManager.getMapperFactory(),
storeMailboxManager.getDelegationListener(),
storeMailboxManager.getMessageIdFactory(),
- storeMailboxManager.getQuotaManager(),
- storeMailboxManager.getQuotaRootResolver());
+ storeMailboxManager.getQuotaComponents().getQuotaManager(),
+ storeMailboxManager.getQuotaComponents().getQuotaRootResolver());
storeMailboxManager.setMessageSearchIndex(messageSearchIndex);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/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 4ebb875..388c81b 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
@@ -73,8 +73,7 @@ import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.Message;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
-import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
-import org.apache.james.mailbox.store.quota.NoQuotaManager;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.apache.james.mailbox.store.quota.QuotaUpdater;
import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex;
import org.apache.james.mailbox.store.search.MessageSearchIndex;
@@ -113,19 +112,20 @@ public class StoreMailboxManager implements MailboxManager {
private final MessageParser messageParser;
private final Factory messageIdFactory;
private final SessionProvider sessionProvider;
+ private final QuotaManager quotaManager;
+ private final QuotaRootResolver quotaRootResolver;
+ private final QuotaUpdater quotaUpdater;
+ private final QuotaComponents quotaComponents;
protected final MailboxManagerConfiguration configuration;
private MessageSearchIndex index;
- private QuotaManager quotaManager;
- private QuotaRootResolver quotaRootResolver;
- private QuotaUpdater quotaUpdater;
@Inject
public StoreMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, SessionProvider sessionProvider,
MailboxPathLocker locker, MessageParser messageParser,
MessageId.Factory messageIdFactory, MailboxAnnotationManager annotationManager,
DelegatingMailboxListener delegatingListener, StoreRightManager storeRightManager,
- MailboxManagerConfiguration configuration) {
+ QuotaComponents quotaComponents, MailboxManagerConfiguration configuration) {
Preconditions.checkNotNull(delegatingListener);
Preconditions.checkNotNull(mailboxSessionMapperFactory);
@@ -137,23 +137,19 @@ public class StoreMailboxManager implements MailboxManager {
this.messageIdFactory = messageIdFactory;
this.delegatingListener = delegatingListener;
this.storeRightManager = storeRightManager;
+ this.quotaUpdater = quotaComponents.getQuotaUpdater();
+ this.quotaRootResolver = quotaComponents.getQuotaRootResolver();
+ this.quotaManager = quotaComponents.getQuotaManager();
+ this.quotaComponents = quotaComponents;
this.configuration = configuration;
}
- public Factory getMessageIdFactory() {
- return messageIdFactory;
+ public QuotaComponents getQuotaComponents() {
+ return quotaComponents;
}
- public void setQuotaManager(QuotaManager quotaManager) {
- this.quotaManager = quotaManager;
- }
-
- public void setQuotaRootResolver(QuotaRootResolver quotaRootResolver) {
- this.quotaRootResolver = quotaRootResolver;
- }
-
- public void setQuotaUpdater(QuotaUpdater quotaUpdater) {
- this.quotaUpdater = quotaUpdater;
+ public Factory getMessageIdFactory() {
+ return messageIdFactory;
}
public SessionProvider getSessionProvider() {
@@ -174,12 +170,6 @@ public class StoreMailboxManager implements MailboxManager {
if (index instanceof ListeningMessageSearchIndex) {
this.addGlobalListener((MailboxListener) index, session);
}
- if (quotaManager == null) {
- quotaManager = new NoQuotaManager();
- }
- if (quotaRootResolver == null) {
- quotaRootResolver = new DefaultUserQuotaRootResolver(sessionProvider, mailboxSessionMapperFactory);
- }
if (quotaUpdater != null && quotaUpdater instanceof MailboxListener) {
this.addGlobalListener((MailboxListener) quotaUpdater, session);
}
@@ -202,7 +192,6 @@ public class StoreMailboxManager implements MailboxManager {
public EnumSet<SearchCapabilities> getSupportedSearchCapabilities() {
return index.getSupportedCapabilities(getSupportedMessageCapabilities());
}
-
/**
* Return the {@link DelegatingMailboxListener} which is used by this {@link MailboxManager}
@@ -213,7 +202,6 @@ public class StoreMailboxManager implements MailboxManager {
return delegatingListener;
}
-
/**
* Return the {@link MessageSearchIndex} used by this {@link MailboxManager}
*
@@ -223,15 +211,6 @@ public class StoreMailboxManager implements MailboxManager {
return index;
}
- public QuotaRootResolver getQuotaRootResolver() {
- return quotaRootResolver;
- }
-
- public QuotaManager getQuotaManager() {
- return quotaManager;
- }
-
-
/**
* Return the {@link MailboxSessionMapperFactory} used by this {@link MailboxManager}
*
@@ -310,8 +289,8 @@ public class StoreMailboxManager implements MailboxManager {
*/
protected StoreMessageManager createMessageManager(Mailbox mailbox, MailboxSession session) throws MailboxException {
return new StoreMessageManager(DEFAULT_NO_MESSAGE_CAPABILITIES, getMapperFactory(), getMessageSearchIndex(), getDelegationListener(),
- getLocker(), mailbox, getQuotaManager(),
- getQuotaRootResolver(), getMessageParser(), getMessageIdFactory(), configuration.getBatchSizes(),
+ getLocker(), mailbox, quotaManager,
+ getQuotaComponents().getQuotaRootResolver(), getMessageParser(), getMessageIdFactory(), configuration.getBatchSizes(),
getStoreRightManager());
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaComponents.java
----------------------------------------------------------------------
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
new file mode 100644
index 0000000..35326bc
--- /dev/null
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaComponents.java
@@ -0,0 +1,64 @@
+/****************************************************************
+ * 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.quota;
+
+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 final QuotaComponents disabled(SessionProvider sessionProvider, MailboxSessionMapperFactory mailboxSessionMapperFactory) {
+ return new QuotaComponents(
+ new NoMaxQuotaManager(),
+ new NoQuotaManager(),
+ new DefaultUserQuotaRootResolver(sessionProvider, mailboxSessionMapperFactory),
+ new NoQuotaUpdater());
+ }
+
+ private final MaxQuotaManager maxQuotaManager;
+ private final QuotaManager quotaManager;
+ private final QuotaRootResolver quotaRootResolver;
+ private final QuotaUpdater quotaUpdater;
+
+ public QuotaComponents(MaxQuotaManager maxQuotaManager, QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, QuotaUpdater quotaUpdater) {
+ this.maxQuotaManager = maxQuotaManager;
+ this.quotaManager = quotaManager;
+ this.quotaRootResolver = quotaRootResolver;
+ this.quotaUpdater = quotaUpdater;
+ }
+
+ public MaxQuotaManager getMaxQuotaManager() {
+ return maxQuotaManager;
+ }
+
+ public QuotaManager getQuotaManager() {
+ return quotaManager;
+ }
+
+ public QuotaRootResolver getQuotaRootResolver() {
+ return quotaRootResolver;
+ }
+
+ public QuotaUpdater getQuotaUpdater() {
+ return quotaUpdater;
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/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 760d9d5..6cc0f59 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
@@ -46,6 +46,7 @@ import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
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.MessageParser;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.junit.Before;
import org.junit.Test;
@@ -82,9 +83,10 @@ public class StoreMailboxManagerTest {
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mockedMapperFactory, storeRightManager);
SessionProvider sessionProvider = new SessionProvider(authenticator, FakeAuthorizator.forUserAndAdmin(ADMIN, CURRENT_USER));
+ QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mockedMapperFactory);
storeMailboxManager = new StoreMailboxManager(mockedMapperFactory, sessionProvider,
new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory,
- annotationManager, delegatingListener, storeRightManager, MailboxManagerConfiguration.DEFAULT);
+ annotationManager, delegatingListener, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
storeMailboxManager.init();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
----------------------------------------------------------------------
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 ed2e5cc..937e572 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
@@ -49,6 +49,7 @@ import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
import org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.apache.james.mailbox.store.quota.StoreQuotaManager;
import org.apache.james.metrics.logger.DefaultMetricFactory;
import org.apache.james.mpt.api.ImapFeatures;
@@ -91,24 +92,19 @@ public class CassandraHostSystem extends JamesImapHostSystem {
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mapperFactory, storeRightManager);
SessionProvider sessionProvider = new SessionProvider(authenticator, authorizator);
QuotaRootResolver quotaRootResolver = new DefaultUserQuotaRootResolver(sessionProvider, mapperFactory);
- mailboxManager = new CassandraMailboxManager(mapperFactory, sessionProvider,
- new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory,
- delegatingMailboxListener, annotationManager, storeRightManager, MailboxManagerConfiguration.DEFAULT);
perUserMaxQuotaManager = new CassandraPerUserMaxQuotaManager(
new CassandraPerUserMaxQuotaDao(session),
new CassandraPerDomainMaxQuotaDao(cassandra.getConf()),
new CassandraGlobalMaxQuotaDao(session));
-
CassandraCurrentQuotaManager currentQuotaManager = new CassandraCurrentQuotaManager(session);
-
StoreQuotaManager quotaManager = new StoreQuotaManager(currentQuotaManager, perUserMaxQuotaManager);
-
ListeningCurrentQuotaUpdater quotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaManager, quotaRootResolver, delegatingMailboxListener, quotaManager);
+ QuotaComponents quotaComponents = new QuotaComponents(perUserMaxQuotaManager, quotaManager, quotaRootResolver, quotaUpdater);
- mailboxManager.setQuotaRootResolver(quotaRootResolver);
- mailboxManager.setQuotaManager(quotaManager);
- mailboxManager.setQuotaUpdater(quotaUpdater);
+ mailboxManager = new CassandraMailboxManager(mapperFactory, sessionProvider,
+ new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory,
+ delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
mailboxManager.init();
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/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 ff04b10..0880cda 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
@@ -27,19 +27,11 @@ 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.MailboxSessionUtil;
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.quota.QuotaRootResolver;
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
-import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator;
-import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
-import org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater;
-import org.apache.james.mailbox.store.quota.StoreQuotaManager;
import org.apache.james.metrics.logger.DefaultMetricFactory;
import org.apache.james.mpt.api.ImapFeatures;
import org.apache.james.mpt.api.ImapFeatures.Feature;
@@ -56,34 +48,18 @@ public class InMemoryHostSystem extends JamesImapHostSystem {
private StoreMailboxManager mailboxManager;
private InMemoryPerUserMaxQuotaManager perUserMaxQuotaManager;
-
- public static JamesImapHostSystem build() throws Exception {
- return new InMemoryHostSystem();
- }
@Override
public void beforeTest() throws Exception {
super.beforeTest();
this.mailboxManager = new InMemoryIntegrationResources()
.createMailboxManager(new SimpleGroupMembershipResolver(), authenticator, authorizator);
- QuotaRootResolver quotaRootResolver = new DefaultUserQuotaRootResolver(mailboxManager, mailboxManager.getMapperFactory());
-
- perUserMaxQuotaManager = new InMemoryPerUserMaxQuotaManager();
-
- InMemoryCurrentQuotaManager currentQuotaManager = new InMemoryCurrentQuotaManager(
- new CurrentQuotaCalculator(mailboxManager.getMapperFactory(), quotaRootResolver),
- mailboxManager);
-
- StoreQuotaManager quotaManager = new StoreQuotaManager(currentQuotaManager, perUserMaxQuotaManager);
- ListeningCurrentQuotaUpdater quotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaManager, quotaRootResolver, mailboxManager.getDelegationListener(), quotaManager);
+ perUserMaxQuotaManager = (InMemoryPerUserMaxQuotaManager) mailboxManager.getQuotaComponents().getMaxQuotaManager();
- mailboxManager.setQuotaRootResolver(quotaRootResolver);
- mailboxManager.setQuotaManager(quotaManager);
- mailboxManager.setQuotaUpdater(quotaUpdater);
- mailboxManager.addGlobalListener(quotaUpdater, MailboxSessionUtil.create("admin"));
+ ImapProcessor defaultImapProcessorFactory = DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager, new StoreSubscriptionManager(mailboxManager.getMapperFactory()),
+ mailboxManager.getQuotaComponents().getQuotaManager(), mailboxManager.getQuotaComponents().getQuotaRootResolver(), new DefaultMetricFactory());
- final ImapProcessor defaultImapProcessorFactory = DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager, new StoreSubscriptionManager(mailboxManager.getMapperFactory()), quotaManager, quotaRootResolver, new DefaultMetricFactory());
configure(new DefaultImapDecoderFactory().buildImapDecoder(),
new DefaultImapEncoderFactory().buildImapEncoder(),
defaultImapProcessorFactory);
@@ -100,7 +76,7 @@ public class InMemoryHostSystem extends JamesImapHostSystem {
}
@Override
- public void setQuotaLimits(QuotaCount maxMessageQuota, QuotaSize maxStorageQuota) throws MailboxException {
+ public void setQuotaLimits(QuotaCount maxMessageQuota, QuotaSize maxStorageQuota) {
perUserMaxQuotaManager.setGlobalMaxMessage(maxMessageQuota);
perUserMaxQuotaManager.setGlobalMaxStorage(maxStorageQuota);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
----------------------------------------------------------------------
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 84afd80..15dfb64 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
@@ -53,6 +53,7 @@ import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
import org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.apache.james.mailbox.store.quota.StoreQuotaManager;
import org.apache.james.metrics.logger.DefaultMetricFactory;
import org.apache.james.mpt.api.ImapFeatures;
@@ -100,18 +101,16 @@ public class JPAHostSystem extends JamesImapHostSystem {
StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, aclResolver, groupMembershipResolver, delegatingListener);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mapperFactory, storeRightManager);
SessionProvider sessionProvider = new SessionProvider(authenticator, authorizator);
- mailboxManager = new OpenJPAMailboxManager(mapperFactory, sessionProvider,
- messageParser, new DefaultMessageId.Factory(), delegatingListener, annotationManager, storeRightManager);
-
DefaultUserQuotaRootResolver quotaRootResolver = new DefaultUserQuotaRootResolver(mailboxManager.getSessionProvider(), mapperFactory);
JpaCurrentQuotaManager currentQuotaManager = new JpaCurrentQuotaManager(entityManagerFactory);
maxQuotaManager = new JPAPerUserMaxQuotaManager(new JPAPerUserMaxQuotaDAO(entityManagerFactory));
StoreQuotaManager storeQuotaManager = new StoreQuotaManager(currentQuotaManager, maxQuotaManager);
ListeningCurrentQuotaUpdater quotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaManager, quotaRootResolver, delegatingListener, storeQuotaManager);
+ QuotaComponents quotaComponents = new QuotaComponents(maxQuotaManager, storeQuotaManager, quotaRootResolver, quotaUpdater);
+
+ mailboxManager = new OpenJPAMailboxManager(mapperFactory, sessionProvider,
+ messageParser, new DefaultMessageId.Factory(), delegatingListener, annotationManager, storeRightManager, quotaComponents);
- mailboxManager.setQuotaManager(storeQuotaManager);
- mailboxManager.setQuotaUpdater(quotaUpdater);
- mailboxManager.setQuotaRootResolver(quotaRootResolver);
mailboxManager.init();
SubscriptionManager subscriptionManager = new JPASubscriptionManager(mapperFactory);
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java
----------------------------------------------------------------------
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 942935c..6eb7fc3 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
@@ -45,8 +45,7 @@ import org.apache.james.mailbox.store.StoreSubscriptionManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
-import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
-import org.apache.james.mailbox.store.quota.NoQuotaManager;
+import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.apache.james.metrics.logger.DefaultMetricFactory;
import org.apache.james.mpt.api.ImapFeatures;
import org.apache.james.mpt.api.ImapFeatures.Feature;
@@ -80,16 +79,17 @@ public class MaildirHostSystem extends JamesImapHostSystem {
StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, aclResolver, groupMembershipResolver, delegatingListener);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
SessionProvider sessionProvider = new SessionProvider(authenticator, authorizator);
+ QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mailboxSessionMapperFactory);
mailboxManager = new StoreMailboxManager(mailboxSessionMapperFactory, sessionProvider, locker,
- messageParser, new DefaultMessageId.Factory(), annotationManager, delegatingListener, storeRightManager, MailboxManagerConfiguration.DEFAULT);
+ messageParser, new DefaultMessageId.Factory(), annotationManager, delegatingListener, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
mailboxManager.init();
ImapProcessor defaultImapProcessorFactory =
DefaultImapProcessorFactory.createDefaultProcessor(
mailboxManager,
sm,
- new NoQuotaManager(),
- new DefaultUserQuotaRootResolver(sessionProvider, mailboxSessionMapperFactory),
+ quotaComponents.getQuotaManager(),
+ quotaComponents.getQuotaRootResolver(),
new DefaultMetricFactory());
configure(new DefaultImapDecoderFactory().buildImapDecoder(),
new DefaultImapEncoderFactory().buildImapEncoder(),
http://git-wip-us.apache.org/repos/asf/james-project/blob/14ca4fe2/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
----------------------------------------------------------------------
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 07aaf33..3383951 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
@@ -72,8 +72,6 @@ import org.apache.james.mailbox.indexer.MessageIdReIndexer;
import org.apache.james.mailbox.indexer.ReIndexer;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MessageId;
-import org.apache.james.mailbox.quota.QuotaManager;
-import org.apache.james.mailbox.quota.QuotaRootResolver;
import org.apache.james.mailbox.store.Authenticator;
import org.apache.james.mailbox.store.Authorizator;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
@@ -88,7 +86,6 @@ import org.apache.james.mailbox.store.mail.MailboxMapperFactory;
import org.apache.james.mailbox.store.mail.MessageMapperFactory;
import org.apache.james.mailbox.store.mail.ModSeqProvider;
import org.apache.james.mailbox.store.mail.UidProvider;
-import org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater;
import org.apache.james.modules.Names;
import org.apache.james.utils.MailboxManagerDefinition;
import org.apache.mailbox.tools.indexer.MessageIdReIndexerImpl;
@@ -191,11 +188,7 @@ public class CassandraMailboxModule extends AbstractModule {
@Provides
@Named(Names.MAILBOXMANAGER_NAME)
@Singleton
- public MailboxManager provideMailboxManager(CassandraMailboxManager cassandraMailboxManager, ListeningCurrentQuotaUpdater quotaUpdater,
- QuotaManager quotaManager, QuotaRootResolver quotaRootResolver) throws MailboxException {
- cassandraMailboxManager.setQuotaUpdater(quotaUpdater);
- cassandraMailboxManager.setQuotaManager(quotaManager);
- cassandraMailboxManager.setQuotaRootResolver(quotaRootResolver);
+ public MailboxManager provideMailboxManager(CassandraMailboxManager cassandraMailboxManager) throws MailboxException {
cassandraMailboxManager.init();
return cassandraMailboxManager;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org