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:57 UTC
[22/30] james-project git commit: JAMES-2641 Finally remove
StoreMailboxManager::init()
JAMES-2641 Finally remove StoreMailboxManager::init()
It's last responsibility, registrating listeners, needs to be performed explicitly
That way StoreMailboxListener no more need knowledge about components composing it.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/61dd6e21
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/61dd6e21
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/61dd6e21
Branch: refs/heads/master
Commit: 61dd6e21161b20b503233f34a4cdd1a1aed759e6
Parents: c06c13a
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Jan 9 10:53:23 2019 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Jan 15 10:10:05 2019 +0700
----------------------------------------------------------------------
.../CassandraMailboxManagerProvider.java | 4 ++-
.../cassandra/CassandraTestSystemFixture.java | 4 ++-
.../CassandraMailboxManagerAttachmentTest.java | 2 --
.../mailbox/jpa/JpaMailboxManagerProvider.java | 11 +--------
.../maildir/MaildirMailboxManagerProvider.java | 1 -
.../InMemoryMailboxManagerAttachmentTest.java | 2 --
.../manager/InMemoryIntegrationResources.java | 10 ++++++--
.../mailbox/store/StoreMailboxManager.java | 26 --------------------
.../mailbox/store/StoreMailboxManagerTest.java | 1 -
.../mailbox/tools/copier/MailboxCopierTest.java | 8 ------
.../cassandra/host/CassandraHostSystem.java | 2 +-
.../mpt/imapmailbox/jpa/host/JPAHostSystem.java | 4 ++-
.../host/LuceneSearchHostSystem.java | 2 +-
.../maildir/host/MaildirHostSystem.java | 1 -
.../modules/mailbox/CassandraMailboxModule.java | 21 ++++++++--------
.../modules/mailbox/CassandraQuotaModule.java | 9 +++++++
.../mailbox/ElasticSearchMailboxModule.java | 6 +++++
.../james/modules/mailbox/JPAMailboxModule.java | 23 ++++++++---------
.../james/modules/mailbox/JpaQuotaModule.java | 10 ++++++++
.../mailbox/LuceneSearchMailboxModule.java | 6 +++++
.../modules/mailbox/MemoryMailboxModule.java | 23 ++++++++---------
.../modules/mailbox/MemoryQuotaModule.java | 10 ++++++++
22 files changed, 95 insertions(+), 91 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 3f06277..1c7f467 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
@@ -40,6 +40,7 @@ import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
+import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
@@ -90,7 +91,8 @@ public class CassandraMailboxManagerProvider {
messageParser, messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager,
quotaComponents, index, MailboxManagerConfiguration.DEFAULT);
try {
- manager.init();
+ delegatingMailboxListener.addGlobalListener(quotaUpdater, sessionProvider.createSystemSession("admin"));
+ delegatingMailboxListener.addGlobalListener(new MailboxAnnotationListener(mapperFactory, sessionProvider), sessionProvider.createSystemSession("admin"));
} catch (MailboxException e) {
throw new RuntimeException(e);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 5ccb8c0..f8e45bc 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
@@ -43,6 +43,7 @@ import org.apache.james.mailbox.store.StoreMessageIdManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
import org.apache.james.mailbox.store.event.DelegatingMailboxListener;
+import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
@@ -73,7 +74,8 @@ class CassandraTestSystemFixture {
CassandraMailboxManager cassandraMailboxManager = new CassandraMailboxManager(mapperFactory, sessionProvider,
new NoMailboxPathLocker(), new MessageParser(), new CassandraMessageId.Factory(),
delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents, index, MailboxManagerConfiguration.DEFAULT);
- cassandraMailboxManager.init();
+
+ delegatingMailboxListener.addGlobalListener(new MailboxAnnotationListener(mapperFactory, sessionProvider), sessionProvider.createSystemSession("admin"));
return cassandraMailboxManager;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 61b15d6..9402a41 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
@@ -103,14 +103,12 @@ public class CassandraMailboxManagerAttachmentTest extends AbstractMailboxManage
mailboxManager = new CassandraMailboxManager(mailboxSessionMapperFactory, sessionProvider, new NoMailboxPathLocker(), new MessageParser(),
messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents,
index, 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, quotaComponents, index, MailboxManagerConfiguration.DEFAULT);
- parseFailingMailboxManager.init();
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 6687e68..27f0662 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
@@ -26,7 +26,6 @@ import org.apache.james.mailbox.acl.GroupMembershipResolver;
import org.apache.james.mailbox.acl.MailboxACLResolver;
import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
-import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.jpa.mail.JPAModSeqProvider;
import org.apache.james.mailbox.jpa.mail.JPAUidProvider;
import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager;
@@ -68,17 +67,9 @@ public class JpaMailboxManagerProvider {
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mf);
MessageSearchIndex index = new SimpleMessageSearchIndex(mf, mf, new DefaultTextExtractor());
- OpenJPAMailboxManager openJPAMailboxManager = new OpenJPAMailboxManager(mf, sessionProvider,
+ return new OpenJPAMailboxManager(mf, sessionProvider,
messageParser, new DefaultMessageId.Factory(),
delegatingListener, annotationManager,
storeRightManager, quotaComponents, index);
-
- try {
- openJPAMailboxManager.init();
- } catch (MailboxException e) {
- throw new RuntimeException(e);
- }
-
- return openJPAMailboxManager;
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 88284af..365967f 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
@@ -70,7 +70,6 @@ public class MaildirMailboxManagerProvider {
StoreMailboxManager manager = new StoreMailboxManager(mf, sessionProvider, new JVMMailboxPathLocker(),
messageParser, new DefaultMessageId.Factory(), annotationManager, delegatingListener, storeRightManager,
quotaComponents, index, MailboxManagerConfiguration.DEFAULT);
- manager.init();
return manager;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 bc348e9..668cfbe 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
@@ -75,13 +75,11 @@ public class InMemoryMailboxManagerAttachmentTest extends AbstractMailboxManager
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, sessionProvider, new NoMailboxPathLocker(),
new MessageParser(), messageIdFactory, delegatingListener, annotationManager, storeRightManager, quotaComponents, index);
- 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, quotaComponents, index);
- parseFailingMailboxManager.init();
super.setUp();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 94b04fc..ef0d21b 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
@@ -48,6 +48,7 @@ import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreMessageIdManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
+import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator;
@@ -127,7 +128,10 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
storeRightManager,
quotaComponents,
index);
- manager.init();
+
+ delegatingListener.addGlobalListener((ListeningCurrentQuotaUpdater) quotaComponents.getQuotaUpdater(), sessionProvider.createSystemSession("admin"));
+ delegatingListener.addGlobalListener(new MailboxAnnotationListener(mailboxSessionMapperFactory, sessionProvider), sessionProvider.createSystemSession("admin"));
+
try {
return new Resources(manager, storeRightManager, new InMemoryMessageId.Factory());
} catch (Exception e) {
@@ -167,7 +171,9 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
storeRightManager,
quotaComponents,
index);
- manager.init();
+
+ delegatingListener.addGlobalListener((ListeningCurrentQuotaUpdater) quotaComponents.getQuotaUpdater(), sessionProvider.createSystemSession("admin"));
+ delegatingListener.addGlobalListener(new MailboxAnnotationListener(mailboxSessionMapperFactory, sessionProvider), sessionProvider.createSystemSession("admin"));
return manager;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 65d4923..c097f99 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
@@ -27,7 +27,6 @@ import java.util.Optional;
import java.util.Set;
import java.util.stream.Stream;
-import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.apache.james.core.quota.QuotaCount;
@@ -65,7 +64,6 @@ import org.apache.james.mailbox.quota.QuotaManager;
import org.apache.james.mailbox.quota.QuotaRootResolver;
import org.apache.james.mailbox.store.event.DelegatingMailboxListener;
import org.apache.james.mailbox.store.event.EventFactory;
-import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
import org.apache.james.mailbox.store.mail.MailboxMapper;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.model.Mailbox;
@@ -73,8 +71,6 @@ 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.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;
import org.apache.james.mailbox.store.transaction.Mapper;
import org.apache.james.util.streams.Iterators;
@@ -112,12 +108,10 @@ public class StoreMailboxManager implements MailboxManager {
private final SessionProvider sessionProvider;
private final QuotaManager quotaManager;
private final QuotaRootResolver quotaRootResolver;
- private final QuotaUpdater quotaUpdater;
private final QuotaComponents quotaComponents;
private final MessageSearchIndex index;
protected final MailboxManagerConfiguration configuration;
-
@Inject
public StoreMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, SessionProvider sessionProvider,
MailboxPathLocker locker, MessageParser messageParser,
@@ -135,7 +129,6 @@ 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;
@@ -155,25 +148,6 @@ public class StoreMailboxManager implements MailboxManager {
return sessionProvider;
}
- /**
- * Init the {@link MailboxManager}
- *
- * @throws MailboxException
- */
- @PostConstruct
- public void init() throws MailboxException {
- MailboxSession session = createSystemSession("storeMailboxManager");
- if (index instanceof ListeningMessageSearchIndex) {
- this.addGlobalListener((MailboxListener) index, session);
- }
- if (quotaUpdater != null && quotaUpdater instanceof MailboxListener) {
- this.addGlobalListener((MailboxListener) quotaUpdater, session);
- }
- if (hasCapability(MailboxCapabilities.Annotation)) {
- this.addGlobalListener(new MailboxAnnotationListener(mailboxSessionMapperFactory, sessionProvider), session);
- }
- }
-
@Override
public EnumSet<MailboxCapabilities> getSupportedMailboxCapabilities() {
return EnumSet.noneOf(MailboxCapabilities.class);
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 9ada55f..86d4df3 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
@@ -92,7 +92,6 @@ public class StoreMailboxManagerTest {
storeMailboxManager = new StoreMailboxManager(mockedMapperFactory, sessionProvider,
new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory,
annotationManager, delegatingListener, storeRightManager, quotaComponents, index, MailboxManagerConfiguration.DEFAULT);
- storeMailboxManager.init();
}
@Test(expected = MailboxNotFoundException.class)
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java b/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java
index 6c6db9c..1144b16 100644
--- a/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java
+++ b/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java
@@ -33,7 +33,6 @@ import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
import org.apache.james.mailbox.mock.DataProvisioner;
import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.store.StoreMailboxManager;
import org.junit.Before;
import org.junit.Test;
@@ -91,13 +90,6 @@ public class MailboxCopierTest {
*/
@Test
public void testMailboxCopy() throws MailboxException, IOException {
- if (srcMemMailboxManager instanceof StoreMailboxManager) {
- ((StoreMailboxManager) srcMemMailboxManager).init();
- }
- if (dstMemMailboxManager instanceof StoreMailboxManager) {
- ((StoreMailboxManager) dstMemMailboxManager).init();
- }
-
DataProvisioner.feedMailboxManager(srcMemMailboxManager);
assertMailboxManagerSize(srcMemMailboxManager, 1);
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 bc4f33f..5ce4b21 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
@@ -111,7 +111,7 @@ public class CassandraHostSystem extends JamesImapHostSystem {
new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory,
delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents, index, MailboxManagerConfiguration.DEFAULT);
- mailboxManager.init();
+ delegatingMailboxListener.addGlobalListener(quotaUpdater, sessionProvider.createSystemSession("admin"));
SubscriptionManager subscriptionManager = new StoreSubscriptionManager(mapperFactory);
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 6aef8bc..4fd803c 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
@@ -49,6 +49,7 @@ import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
+import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
@@ -115,7 +116,8 @@ public class JPAHostSystem extends JamesImapHostSystem {
mailboxManager = new OpenJPAMailboxManager(mapperFactory, sessionProvider, messageParser, new DefaultMessageId.Factory(),
delegatingListener, annotationManager, storeRightManager, quotaComponents, index);
- mailboxManager.init();
+ delegatingListener.addGlobalListener(quotaUpdater, sessionProvider.createSystemSession("admin"));
+ delegatingListener.addGlobalListener(new MailboxAnnotationListener(mapperFactory, sessionProvider), sessionProvider.createSystemSession("admin"));
SubscriptionManager subscriptionManager = new JPASubscriptionManager(mapperFactory);
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
index fac28bb..8163306 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
@@ -121,7 +121,7 @@ public class LuceneSearchHostSystem extends JamesImapHostSystem {
searchIndex.setEnableSuffixMatch(true);
- mailboxManager.init();
+ delegatingMailboxListener.addGlobalListener(searchIndex, sessionProvider.createSystemSession("admin"));
SubscriptionManager subscriptionManager = new StoreSubscriptionManager(mapperFactory);
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 4dc20d9..de93a3d 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
@@ -88,7 +88,6 @@ public class MaildirHostSystem extends JamesImapHostSystem {
mailboxManager = new StoreMailboxManager(mailboxSessionMapperFactory, sessionProvider, locker,
messageParser, new DefaultMessageId.Factory(), annotationManager, delegatingListener, storeRightManager, quotaComponents,
index, MailboxManagerConfiguration.DEFAULT);
- mailboxManager.init();
ImapProcessor defaultImapProcessorFactory =
DefaultImapProcessorFactory.createDefaultProcessor(
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/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 3383951..c9a8f4c 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
@@ -18,6 +18,8 @@
****************************************************************/
package org.apache.james.modules.mailbox;
+import static org.apache.james.modules.Names.MAILBOXMANAGER_NAME;
+
import javax.inject.Singleton;
import org.apache.james.adapter.mailbox.store.UserRepositoryAuthenticator;
@@ -25,6 +27,7 @@ import org.apache.james.adapter.mailbox.store.UserRepositoryAuthorizator;
import org.apache.james.backends.cassandra.components.CassandraModule;
import org.apache.james.mailbox.AttachmentManager;
import org.apache.james.mailbox.BlobManager;
+import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxPathLocker;
import org.apache.james.mailbox.MessageIdManager;
@@ -67,7 +70,6 @@ import org.apache.james.mailbox.cassandra.modules.CassandraMessageModule;
import org.apache.james.mailbox.cassandra.modules.CassandraModSeqModule;
import org.apache.james.mailbox.cassandra.modules.CassandraSubscriptionModule;
import org.apache.james.mailbox.cassandra.modules.CassandraUidModule;
-import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.indexer.MessageIdReIndexer;
import org.apache.james.mailbox.indexer.ReIndexer;
import org.apache.james.mailbox.model.MailboxId;
@@ -81,22 +83,21 @@ import org.apache.james.mailbox.store.StoreBlobManager;
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreMessageIdManager;
import org.apache.james.mailbox.store.StoreRightManager;
+import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
import org.apache.james.mailbox.store.mail.AttachmentMapperFactory;
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.modules.Names;
import org.apache.james.utils.MailboxManagerDefinition;
import org.apache.mailbox.tools.indexer.MessageIdReIndexerImpl;
import org.apache.mailbox.tools.indexer.ReIndexerImpl;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
-import com.google.inject.Provides;
import com.google.inject.Scopes;
import com.google.inject.multibindings.Multibinder;
-import com.google.inject.name.Named;
+import com.google.inject.name.Names;
public class CassandraMailboxModule extends AbstractModule {
@@ -183,14 +184,12 @@ public class CassandraMailboxModule extends AbstractModule {
cassandraDataDefinitions.addBinding().toInstance(CassandraUidModule.MODULE);
Multibinder.newSetBinder(binder(), MailboxManagerDefinition.class).addBinding().to(CassandraMailboxManagerDefinition.class);
- }
- @Provides
- @Named(Names.MAILBOXMANAGER_NAME)
- @Singleton
- public MailboxManager provideMailboxManager(CassandraMailboxManager cassandraMailboxManager) throws MailboxException {
- cassandraMailboxManager.init();
- return cassandraMailboxManager;
+ Multibinder.newSetBinder(binder(), MailboxListener.class)
+ .addBinding()
+ .to(MailboxAnnotationListener.class);
+
+ bind(MailboxManager.class).annotatedWith(Names.named(MAILBOXMANAGER_NAME)).to(MailboxManager.class);
}
@Singleton
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaModule.java
index dcbdcb9..6cdef0f 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaModule.java
@@ -20,6 +20,7 @@
package org.apache.james.modules.mailbox;
import org.apache.james.backends.cassandra.components.CassandraModule;
+import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.cassandra.quota.CassandraCurrentQuotaManager;
import org.apache.james.mailbox.cassandra.quota.CassandraGlobalMaxQuotaDao;
import org.apache.james.mailbox.cassandra.quota.CassandraPerDomainMaxQuotaDao;
@@ -31,6 +32,8 @@ import org.apache.james.mailbox.quota.QuotaManager;
import org.apache.james.mailbox.quota.QuotaRootResolver;
import org.apache.james.mailbox.quota.UserQuotaRootResolver;
import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
+import org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater;
+import org.apache.james.mailbox.store.quota.QuotaUpdater;
import org.apache.james.mailbox.store.quota.StoreCurrentQuotaManager;
import org.apache.james.mailbox.store.quota.StoreQuotaManager;
@@ -59,5 +62,11 @@ public class CassandraQuotaModule extends AbstractModule {
Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class);
cassandraDataDefinitions.addBinding().toInstance(org.apache.james.mailbox.cassandra.modules.CassandraQuotaModule.MODULE);
+
+ bind(ListeningCurrentQuotaUpdater.class).in(Scopes.SINGLETON);
+ bind(QuotaUpdater.class).to(ListeningCurrentQuotaUpdater.class);
+ Multibinder.newSetBinder(binder(), MailboxListener.class)
+ .addBinding()
+ .to(ListeningCurrentQuotaUpdater.class);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
index 56b7fbc..eaadda6 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
@@ -34,6 +34,7 @@ import org.apache.commons.configuration.ConfigurationException;
import org.apache.james.backends.es.ClientProviderImpl;
import org.apache.james.backends.es.ElasticSearchConfiguration;
import org.apache.james.backends.es.ElasticSearchIndexer;
+import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.elasticsearch.ElasticSearchMailboxConfiguration;
import org.apache.james.mailbox.elasticsearch.IndexAttachments;
import org.apache.james.mailbox.elasticsearch.MailboxElasticSearchConstants;
@@ -57,6 +58,7 @@ import org.slf4j.LoggerFactory;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.Scopes;
+import com.google.inject.multibindings.Multibinder;
import com.nurkiewicz.asyncretry.AsyncRetryExecutor;
public class ElasticSearchMailboxModule extends AbstractModule {
@@ -71,6 +73,10 @@ public class ElasticSearchMailboxModule extends AbstractModule {
bind(ElasticSearchListeningMessageSearchIndex.class).in(Scopes.SINGLETON);
bind(MessageSearchIndex.class).to(ElasticSearchListeningMessageSearchIndex.class);
bind(ListeningMessageSearchIndex.class).to(ElasticSearchListeningMessageSearchIndex.class);
+
+ Multibinder.newSetBinder(binder(), MailboxListener.class)
+ .addBinding()
+ .to(ElasticSearchListeningMessageSearchIndex.class);
}
@Provides
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/JPAMailboxModule.java
----------------------------------------------------------------------
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 a858d6b..bbe0590 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
@@ -18,10 +18,13 @@
****************************************************************/
package org.apache.james.modules.mailbox;
+import static org.apache.james.modules.Names.MAILBOXMANAGER_NAME;
+
import javax.inject.Singleton;
import org.apache.james.adapter.mailbox.store.UserRepositoryAuthenticator;
import org.apache.james.adapter.mailbox.store.UserRepositoryAuthorizator;
+import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxPathLocker;
import org.apache.james.mailbox.SubscriptionManager;
@@ -29,7 +32,6 @@ import org.apache.james.mailbox.acl.GroupMembershipResolver;
import org.apache.james.mailbox.acl.MailboxACLResolver;
import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
-import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.indexer.ReIndexer;
import org.apache.james.mailbox.jpa.JPAId;
import org.apache.james.mailbox.jpa.JPAMailboxSessionMapperFactory;
@@ -42,24 +44,24 @@ import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.Authenticator;
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.StoreMailboxManager;
+import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
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.mail.model.DefaultMessageId;
-import org.apache.james.modules.Names;
import org.apache.james.modules.data.JPAEntityManagerModule;
import org.apache.james.utils.MailboxManagerDefinition;
import org.apache.mailbox.tools.indexer.ReIndexerImpl;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
-import com.google.inject.Provides;
import com.google.inject.Scopes;
import com.google.inject.multibindings.Multibinder;
-import com.google.inject.name.Named;
+import com.google.inject.name.Names;
public class JPAMailboxModule extends AbstractModule {
@@ -103,14 +105,13 @@ public class JPAMailboxModule extends AbstractModule {
bind(ReIndexer.class).to(ReIndexerImpl.class);
Multibinder.newSetBinder(binder(), MailboxManagerDefinition.class).addBinding().to(JPAMailboxManagerDefinition.class);
- }
- @Provides
- @Named(Names.MAILBOXMANAGER_NAME)
- @Singleton
- public MailboxManager provideMailboxManager(OpenJPAMailboxManager jpaMailboxManager) throws MailboxException {
- jpaMailboxManager.init();
- return jpaMailboxManager;
+ Multibinder.newSetBinder(binder(), MailboxListener.class)
+ .addBinding()
+ .to(MailboxAnnotationListener.class);
+
+ bind(MailboxManager.class).annotatedWith(Names.named(MAILBOXMANAGER_NAME)).to(MailboxManager.class);
+ bind(MailboxManagerConfiguration.class).toInstance(MailboxManagerConfiguration.DEFAULT);
}
@Singleton
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/JpaQuotaModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/JpaQuotaModule.java b/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/JpaQuotaModule.java
index 6cd825c..118adf1 100644
--- a/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/JpaQuotaModule.java
+++ b/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/JpaQuotaModule.java
@@ -19,6 +19,7 @@
package org.apache.james.modules.mailbox;
+import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.jpa.quota.JPAPerUserMaxQuotaManager;
import org.apache.james.mailbox.jpa.quota.JpaCurrentQuotaManager;
import org.apache.james.mailbox.quota.CurrentQuotaManager;
@@ -27,11 +28,14 @@ import org.apache.james.mailbox.quota.QuotaManager;
import org.apache.james.mailbox.quota.QuotaRootResolver;
import org.apache.james.mailbox.quota.UserQuotaRootResolver;
import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
+import org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater;
+import org.apache.james.mailbox.store.quota.QuotaUpdater;
import org.apache.james.mailbox.store.quota.StoreCurrentQuotaManager;
import org.apache.james.mailbox.store.quota.StoreQuotaManager;
import com.google.inject.AbstractModule;
import com.google.inject.Scopes;
+import com.google.inject.multibindings.Multibinder;
public class JpaQuotaModule extends AbstractModule {
@@ -48,5 +52,11 @@ public class JpaQuotaModule extends AbstractModule {
bind(QuotaManager.class).to(StoreQuotaManager.class);
bind(CurrentQuotaManager.class).to(JpaCurrentQuotaManager.class);
bind(StoreCurrentQuotaManager.class).to(JpaCurrentQuotaManager.class);
+
+ bind(ListeningCurrentQuotaUpdater.class).in(Scopes.SINGLETON);
+ bind(QuotaUpdater.class).to(ListeningCurrentQuotaUpdater.class);
+ Multibinder.newSetBinder(binder(), MailboxListener.class)
+ .addBinding()
+ .to(ListeningCurrentQuotaUpdater.class);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java b/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
index 55996fd..79ea234 100644
--- a/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
+++ b/server/container/guice/jpa-guice/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
@@ -22,6 +22,7 @@ package org.apache.james.modules.mailbox;
import java.io.IOException;
import org.apache.james.filesystem.api.FileSystem;
+import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex;
import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex;
import org.apache.james.mailbox.store.search.MessageSearchIndex;
@@ -32,6 +33,7 @@ import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.Scopes;
import com.google.inject.Singleton;
+import com.google.inject.multibindings.Multibinder;
public class LuceneSearchMailboxModule extends AbstractModule {
@@ -40,6 +42,10 @@ public class LuceneSearchMailboxModule extends AbstractModule {
bind(LuceneMessageSearchIndex.class).in(Scopes.SINGLETON);
bind(MessageSearchIndex.class).to(LuceneMessageSearchIndex.class);
bind(ListeningMessageSearchIndex.class).to(LuceneMessageSearchIndex.class);
+
+ Multibinder.newSetBinder(binder(), MailboxListener.class)
+ .addBinding()
+ .to(LuceneMessageSearchIndex.class);
}
@Provides
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/mailbox/MemoryMailboxModule.java
----------------------------------------------------------------------
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 598c7c8..2432baa 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
@@ -19,18 +19,20 @@
package org.apache.james.modules.mailbox;
+import static org.apache.james.modules.Names.MAILBOXMANAGER_NAME;
+
import javax.inject.Singleton;
import org.apache.james.adapter.mailbox.store.UserRepositoryAuthenticator;
import org.apache.james.adapter.mailbox.store.UserRepositoryAuthorizator;
import org.apache.james.mailbox.AttachmentManager;
import org.apache.james.mailbox.BlobManager;
+import org.apache.james.mailbox.MailboxListener;
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.SubscriptionManager;
-import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.extractor.TextExtractor;
import org.apache.james.mailbox.inmemory.InMemoryId;
import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
@@ -44,6 +46,7 @@ import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.Authenticator;
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.StoreAttachmentManager;
import org.apache.james.mailbox.store.StoreBlobManager;
@@ -51,6 +54,7 @@ import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreMessageIdManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
+import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
import org.apache.james.mailbox.store.mail.AttachmentMapperFactory;
import org.apache.james.mailbox.store.mail.MailboxMapperFactory;
import org.apache.james.mailbox.store.mail.MessageMapperFactory;
@@ -59,15 +63,13 @@ import org.apache.james.mailbox.store.mail.UidProvider;
import org.apache.james.mailbox.store.search.MessageSearchIndex;
import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
import org.apache.james.mailbox.store.user.SubscriptionMapperFactory;
-import org.apache.james.modules.Names;
import org.apache.james.utils.MailboxManagerDefinition;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
-import com.google.inject.Provides;
import com.google.inject.Scopes;
import com.google.inject.multibindings.Multibinder;
-import com.google.inject.name.Named;
+import com.google.inject.name.Names;
public class MemoryMailboxModule extends AbstractModule {
@@ -119,14 +121,13 @@ public class MemoryMailboxModule extends AbstractModule {
Multibinder.newSetBinder(binder(), MailboxManagerDefinition.class)
.addBinding()
.to(MemoryMailboxManagerDefinition.class);
- }
- @Provides
- @Named(Names.MAILBOXMANAGER_NAME)
- @Singleton
- public MailboxManager provideMailboxManager(InMemoryMailboxManager mailboxManager) throws MailboxException {
- mailboxManager.init();
- return mailboxManager;
+ Multibinder.newSetBinder(binder(), MailboxListener.class)
+ .addBinding()
+ .to(MailboxAnnotationListener.class);
+
+ bind(MailboxManager.class).annotatedWith(Names.named(MAILBOXMANAGER_NAME)).to(MailboxManager.class);
+ bind(MailboxManagerConfiguration.class).toInstance(MailboxManagerConfiguration.DEFAULT);
}
@Singleton
http://git-wip-us.apache.org/repos/asf/james-project/blob/61dd6e21/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/mailbox/MemoryQuotaModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/mailbox/MemoryQuotaModule.java b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/mailbox/MemoryQuotaModule.java
index bf2e1f0..5bd73fc 100644
--- a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/mailbox/MemoryQuotaModule.java
+++ b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/mailbox/MemoryQuotaModule.java
@@ -19,6 +19,7 @@
package org.apache.james.modules.mailbox;
+import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.inmemory.quota.InMemoryCurrentQuotaManager;
import org.apache.james.mailbox.inmemory.quota.InMemoryPerUserMaxQuotaManager;
import org.apache.james.mailbox.quota.CurrentQuotaManager;
@@ -27,11 +28,14 @@ import org.apache.james.mailbox.quota.QuotaManager;
import org.apache.james.mailbox.quota.QuotaRootResolver;
import org.apache.james.mailbox.quota.UserQuotaRootResolver;
import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
+import org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater;
+import org.apache.james.mailbox.store.quota.QuotaUpdater;
import org.apache.james.mailbox.store.quota.StoreCurrentQuotaManager;
import org.apache.james.mailbox.store.quota.StoreQuotaManager;
import com.google.inject.AbstractModule;
import com.google.inject.Scopes;
+import com.google.inject.multibindings.Multibinder;
public class MemoryQuotaModule extends AbstractModule {
@@ -48,5 +52,11 @@ public class MemoryQuotaModule extends AbstractModule {
bind(QuotaManager.class).to(StoreQuotaManager.class);
bind(CurrentQuotaManager.class).to(InMemoryCurrentQuotaManager.class);
bind(StoreCurrentQuotaManager.class).to(InMemoryCurrentQuotaManager.class);
+
+ bind(ListeningCurrentQuotaUpdater.class).in(Scopes.SINGLETON);
+ bind(QuotaUpdater.class).to(ListeningCurrentQuotaUpdater.class);
+ Multibinder.newSetBinder(binder(), MailboxListener.class)
+ .addBinding()
+ .to(ListeningCurrentQuotaUpdater.class);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org