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:22:03 UTC
[28/30] james-project git commit: JAMES-2641 Search indexes should
not be initialized in StoreMailboxManager::init()
JAMES-2641 Search indexes should not be initialized in StoreMailboxManager::init()
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c06c13aa
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c06c13aa
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c06c13aa
Branch: refs/heads/master
Commit: c06c13aa5a49def4f56ed2d94c1eb07255a706c2
Parents: 59910ec
Author: Benoit Tellier <bt...@linagora.com>
Authored: Tue Jan 8 17:48:31 2019 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Jan 15 10:10:05 2019 +0700
----------------------------------------------------------------------
.../cassandra/CassandraMailboxManager.java | 9 +---
.../CassandraMailboxManagerProvider.java | 11 +++--
.../cassandra/CassandraTestSystemFixture.java | 6 ++-
.../CassandraMailboxManagerAttachmentTest.java | 9 +++-
.../ElasticSearchIntegrationTest.java | 46 ++++++++++++++----
.../james/mailbox/jpa/JPAMailboxManager.java | 7 ++-
.../jpa/openjpa/OpenJPAMailboxManager.java | 6 ++-
.../mailbox/jpa/JpaMailboxManagerProvider.java | 6 ++-
.../search/LuceneMessageSearchIndexTest.java | 49 ++++++++++++++++----
.../maildir/MaildirMailboxManagerProvider.java | 8 +++-
.../inmemory/InMemoryMailboxManager.java | 11 ++---
.../InMemoryMailboxManagerAttachmentTest.java | 8 +++-
.../manager/InMemoryIntegrationResources.java | 12 ++++-
.../InMemoryMessageIdManagerSideEffectTest.java | 7 ++-
.../search/SimpleMessageSearchIndexTest.java | 2 -
.../mailbox/store/StoreMailboxManager.java | 20 ++------
.../mailbox/store/StoreMailboxManagerTest.java | 7 ++-
.../cassandra/host/CassandraHostSystem.java | 7 ++-
.../host/ElasticSearchHostSystem.java | 38 ++++++++++++---
.../mpt/imapmailbox/jpa/host/JPAHostSystem.java | 8 +++-
.../host/LuceneSearchHostSystem.java | 11 +++--
.../maildir/host/MaildirHostSystem.java | 8 +++-
22 files changed, 209 insertions(+), 87 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 a54331f..8b5623c 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
@@ -63,7 +63,7 @@ public class CassandraMailboxManager extends StoreMailboxManager {
MailboxPathLocker locker, MessageParser messageParser,
MessageId.Factory messageIdFactory, DelegatingMailboxListener delegatingMailboxListener,
StoreMailboxAnnotationManager annotationManager, StoreRightManager storeRightManager,
- QuotaComponents quotaComponents,
+ QuotaComponents quotaComponents, MessageSearchIndex index,
MailboxManagerConfiguration configuration) {
super(mapperFactory,
sessionProvider,
@@ -74,18 +74,13 @@ public class CassandraMailboxManager extends StoreMailboxManager {
delegatingMailboxListener,
storeRightManager,
quotaComponents,
+ index,
configuration);
this.locker = locker;
this.mapperFactory = mapperFactory;
}
@Override
- @Inject
- public void setMessageSearchIndex(MessageSearchIndex index) {
- super.setMessageSearchIndex(index);
- }
-
- @Override
public EnumSet<MailboxManager.MailboxCapabilities> getSupportedMailboxCapabilities() {
return MAILBOX_CAPABILITIES;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 26bf3a9..3f06277 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,11 +40,14 @@ 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.extractor.DefaultTextExtractor;
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.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
import com.datastax.driver.core.Session;
@@ -81,13 +84,11 @@ public class CassandraMailboxManagerProvider {
ListeningCurrentQuotaUpdater quotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaUpdater, quotaRootResolver, delegatingMailboxListener, storeQuotaManager);
QuotaComponents quotaComponents = new QuotaComponents(maxQuotaManager, storeQuotaManager, quotaRootResolver, quotaUpdater);
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mapperFactory, mapperFactory, new DefaultTextExtractor());
+
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);
+ quotaComponents, index, MailboxManagerConfiguration.DEFAULT);
try {
manager.init();
} catch (MailboxException e) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 5f7c87a..5ccb8c0 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,9 +43,12 @@ 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.extractor.DefaultTextExtractor;
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.QuotaComponents;
+import org.apache.james.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
class CassandraTestSystemFixture {
@@ -66,9 +69,10 @@ class CassandraTestSystemFixture {
SessionProvider sessionProvider = new SessionProvider(mock(Authenticator.class), mock(Authorizator.class));
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mapperFactory);
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mapperFactory, mapperFactory, new DefaultTextExtractor());
CassandraMailboxManager cassandraMailboxManager = new CassandraMailboxManager(mapperFactory, sessionProvider,
new NoMailboxPathLocker(), new MessageParser(), new CassandraMessageId.Factory(),
- delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
+ delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents, index, MailboxManagerConfiguration.DEFAULT);
cassandraMailboxManager.init();
return cassandraMailboxManager;
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 6fe8d71..61b15d6 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
@@ -41,9 +41,12 @@ 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.extractor.DefaultTextExtractor;
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.apache.james.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
@@ -95,16 +98,18 @@ public class CassandraMailboxManagerAttachmentTest extends AbstractMailboxManage
SessionProvider sessionProvider = new SessionProvider(noAuthenticator, noAuthorizator);
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mailboxSessionMapperFactory);
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mailboxSessionMapperFactory, mailboxSessionMapperFactory, new DefaultTextExtractor());
mailboxManager = new CassandraMailboxManager(mailboxSessionMapperFactory, sessionProvider, new NoMailboxPathLocker(), new MessageParser(),
- messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
+ 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, MailboxManagerConfiguration.DEFAULT);
+ delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents, index, MailboxManagerConfiguration.DEFAULT);
parseFailingMailboxManager.init();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 e85582b..b68f310 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
@@ -34,20 +34,29 @@ import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
+import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
import org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex;
import org.apache.james.mailbox.elasticsearch.json.MessageToElasticSearchJson;
import org.apache.james.mailbox.elasticsearch.query.CriterionConverter;
import org.apache.james.mailbox.elasticsearch.query.QueryConverter;
import org.apache.james.mailbox.elasticsearch.search.ElasticSearchSearcher;
import org.apache.james.mailbox.inmemory.InMemoryId;
-import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
+import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
+import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
+import org.apache.james.mailbox.inmemory.InMemoryMessageId;
+import org.apache.james.mailbox.manager.ManagerTestResources;
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.FakeAuthenticator;
import org.apache.james.mailbox.store.FakeAuthorizator;
+import org.apache.james.mailbox.store.JVMMailboxPathLocker;
import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreMessageIdManager;
+import org.apache.james.mailbox.store.StoreRightManager;
+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.QuotaComponents;
import org.apache.james.mailbox.store.search.AbstractMessageSearchIndexTest;
import org.apache.james.mailbox.tika.TikaConfiguration;
@@ -103,25 +112,46 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
new TestingClientProvider(embeddedElasticSearch.getNode()).get(),
ElasticSearchConfiguration.DEFAULT_CONFIGURATION);
- storeMailboxManager = new InMemoryIntegrationResources()
- .createMailboxManager(new SimpleGroupMembershipResolver());
+ FakeAuthenticator fakeAuthenticator = new FakeAuthenticator();
+ fakeAuthenticator.addUser(ManagerTestResources.USER, ManagerTestResources.USER_PASS);
+ fakeAuthenticator.addUser(ManagerTestResources.OTHER_USER, ManagerTestResources.OTHER_USER_PASS);
+ InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory();
+ DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
+ StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, new UnionMailboxACLResolver(),
+ new SimpleGroupMembershipResolver(), delegatingListener);
+ StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
+ InMemoryMessageId.Factory messageIdFactory = new InMemoryMessageId.Factory();
+
+ SessionProvider sessionProvider = new SessionProvider(fakeAuthenticator, FakeAuthorizator.defaultReject());
+ QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mailboxSessionMapperFactory);
ThreadFactory threadFactory = NamedThreadFactory.withClassName(getClass());
ElasticSearchListeningMessageSearchIndex elasticSearchListeningMessageSearchIndex = new ElasticSearchListeningMessageSearchIndex(
- storeMailboxManager.getMapperFactory(),
+ mailboxSessionMapperFactory,
new ElasticSearchIndexer(client,
Executors.newSingleThreadExecutor(threadFactory),
MailboxElasticSearchConstants.DEFAULT_MAILBOX_WRITE_ALIAS,
MailboxElasticSearchConstants.MESSAGE_TYPE,
BATCH_SIZE),
new ElasticSearchSearcher(client, new QueryConverter(new CriterionConverter()), SEARCH_SIZE,
- new InMemoryId.Factory(), storeMailboxManager.getMessageIdFactory(),
+ new InMemoryId.Factory(), messageIdFactory,
MailboxElasticSearchConstants.DEFAULT_MAILBOX_READ_ALIAS,
MailboxElasticSearchConstants.MESSAGE_TYPE),
new MessageToElasticSearchJson(textExtractor, ZoneId.of("Europe/Paris"), IndexAttachments.YES),
new SessionProvider(new FakeAuthenticator(), FakeAuthorizator.defaultReject()));
- QuotaComponents quotaComponents = storeMailboxManager.getQuotaComponents();
+ storeMailboxManager = new InMemoryMailboxManager(
+ mailboxSessionMapperFactory,
+ sessionProvider,
+ new JVMMailboxPathLocker(),
+ new MessageParser(),
+ messageIdFactory,
+ delegatingListener,
+ annotationManager,
+ storeRightManager,
+ quotaComponents,
+ elasticSearchListeningMessageSearchIndex);
+
messageIdManager = new StoreMessageIdManager(
storeMailboxManager,
storeMailboxManager.getMapperFactory(),
@@ -129,8 +159,8 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest
storeMailboxManager.getMessageIdFactory(),
quotaComponents.getQuotaManager(),
quotaComponents.getQuotaRootResolver());
- storeMailboxManager.setMessageSearchIndex(elasticSearchListeningMessageSearchIndex);
- storeMailboxManager.addGlobalListener(elasticSearchListeningMessageSearchIndex, MailboxSessionUtil.create("admin"));
+
+ delegatingListener.addGlobalListener(elasticSearchListeningMessageSearchIndex, MailboxSessionUtil.create("admin"));
this.messageSearchIndex = elasticSearchListeningMessageSearchIndex;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 70a4e1f..eef45a1 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
@@ -36,6 +36,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.quota.QuotaComponents;
+import org.apache.james.mailbox.store.search.MessageSearchIndex;
import org.apache.james.mailbox.store.transaction.Mapper;
/**
@@ -56,10 +57,12 @@ public abstract class JPAMailboxManager extends StoreMailboxManager {
DelegatingMailboxListener delegatingMailboxListener,
StoreMailboxAnnotationManager annotationManager,
StoreRightManager storeRightManager,
- QuotaComponents quotaComponents) {
+ QuotaComponents quotaComponents,
+ MessageSearchIndex index) {
super(mailboxSessionMapperFactory, sessionProvider, locker,
messageParser, messageIdFactory, annotationManager,
- delegatingMailboxListener, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
+ delegatingMailboxListener, storeRightManager, quotaComponents,
+ index, MailboxManagerConfiguration.DEFAULT);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 77c2fcd..4aeb300 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
@@ -35,6 +35,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.quota.QuotaComponents;
+import org.apache.james.mailbox.store.search.MessageSearchIndex;
/**
* OpenJPA implementation of MailboxManager
@@ -50,10 +51,11 @@ public class OpenJPAMailboxManager extends JPAMailboxManager {
DelegatingMailboxListener delegatingMailboxListener,
StoreMailboxAnnotationManager annotationManager,
StoreRightManager storeRightManager,
- QuotaComponents quotaComponents) {
+ QuotaComponents quotaComponents,
+ MessageSearchIndex index) {
super(mapperFactory, sessionProvider, new JVMMailboxPathLocker(), messageParser,
messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager,
- quotaComponents);
+ quotaComponents, index);
}
protected AdvancedFeature getAdvancedFeature() {
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 bdaf958..6687e68 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
@@ -37,9 +37,12 @@ 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.extractor.DefaultTextExtractor;
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.apache.james.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
public class JpaMailboxManagerProvider {
@@ -63,11 +66,12 @@ public class JpaMailboxManagerProvider {
LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE);
SessionProvider sessionProvider = new SessionProvider(noAuthenticator, noAuthorizator);
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mf);
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mf, mf, new DefaultTextExtractor());
OpenJPAMailboxManager openJPAMailboxManager = new OpenJPAMailboxManager(mf, sessionProvider,
messageParser, new DefaultMessageId.Factory(),
delegatingListener, annotationManager,
- storeRightManager, quotaComponents);
+ storeRightManager, quotaComponents, index);
try {
openJPAMailboxManager.init();
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 16b6b46..28f80da 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
@@ -21,13 +21,22 @@ package org.apache.james.mailbox.lucene.search;
import org.apache.james.mailbox.MailboxSessionUtil;
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.inmemory.InMemoryId;
-import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
+import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
+import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
+import org.apache.james.mailbox.inmemory.InMemoryMessageId;
+import org.apache.james.mailbox.manager.ManagerTestResources;
import org.apache.james.mailbox.store.FakeAuthenticator;
import org.apache.james.mailbox.store.FakeAuthorizator;
+import org.apache.james.mailbox.store.JVMMailboxPathLocker;
import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
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.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.QuotaComponents;
import org.apache.james.mailbox.store.search.AbstractMessageSearchIndexTest;
import org.apache.lucene.store.RAMDirectory;
@@ -41,10 +50,34 @@ public class LuceneMessageSearchIndexTest extends AbstractMessageSearchIndexTest
@Override
protected void initializeMailboxManager() throws Exception {
- storeMailboxManager = new InMemoryIntegrationResources()
- .createMailboxManager(new SimpleGroupMembershipResolver());
+ FakeAuthenticator fakeAuthenticator = new FakeAuthenticator();
+ fakeAuthenticator.addUser(ManagerTestResources.USER, ManagerTestResources.USER_PASS);
+ fakeAuthenticator.addUser(ManagerTestResources.OTHER_USER, ManagerTestResources.OTHER_USER_PASS);
+ InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory();
+ DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
+ StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver(), delegatingListener);
+ StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
+
+ SessionProvider sessionProvider = new SessionProvider(fakeAuthenticator, FakeAuthorizator.defaultReject());
+ QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mailboxSessionMapperFactory);
+ InMemoryMessageId.Factory messageIdFactory = new InMemoryMessageId.Factory();
+ LuceneMessageSearchIndex luceneMessageSearchIndex = new LuceneMessageSearchIndex(
+ mailboxSessionMapperFactory, new InMemoryId.Factory(), new RAMDirectory(),
+ messageIdFactory,
+ new SessionProvider(new FakeAuthenticator(), FakeAuthorizator.defaultReject()));
+
+ storeMailboxManager = new InMemoryMailboxManager(
+ mailboxSessionMapperFactory,
+ sessionProvider,
+ new JVMMailboxPathLocker(),
+ new MessageParser(),
+ messageIdFactory,
+ delegatingListener,
+ annotationManager,
+ storeRightManager,
+ quotaComponents,
+ luceneMessageSearchIndex);
- QuotaComponents quotaComponents = storeMailboxManager.getQuotaComponents();
messageIdManager = new StoreMessageIdManager(
storeMailboxManager,
storeMailboxManager.getMapperFactory(),
@@ -52,12 +85,8 @@ public class LuceneMessageSearchIndexTest extends AbstractMessageSearchIndexTest
storeMailboxManager.getMessageIdFactory(),
quotaComponents.getQuotaManager(),
quotaComponents.getQuotaRootResolver());
- LuceneMessageSearchIndex luceneMessageSearchIndex = new LuceneMessageSearchIndex(
- storeMailboxManager.getMapperFactory(), new InMemoryId.Factory(), new RAMDirectory(),
- storeMailboxManager.getMessageIdFactory(),
- new SessionProvider(new FakeAuthenticator(), FakeAuthorizator.defaultReject()));
- storeMailboxManager.setMessageSearchIndex(luceneMessageSearchIndex);
- storeMailboxManager.addGlobalListener(luceneMessageSearchIndex, MailboxSessionUtil.create("admin"));
+
+ delegatingListener.addGlobalListener(luceneMessageSearchIndex, MailboxSessionUtil.create("admin"));
this.messageSearchIndex = luceneMessageSearchIndex;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 604039b..88284af 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
@@ -36,9 +36,12 @@ import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
+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;
import org.apache.james.mailbox.store.quota.QuotaComponents;
+import org.apache.james.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
import org.junit.rules.TemporaryFolder;
public class MaildirMailboxManagerProvider {
@@ -62,8 +65,11 @@ public class MaildirMailboxManagerProvider {
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mf, storeRightManager);
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mf);
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mf, mf, new DefaultTextExtractor());
+
StoreMailboxManager manager = new StoreMailboxManager(mf, sessionProvider, new JVMMailboxPathLocker(),
- messageParser, new DefaultMessageId.Factory(), annotationManager, delegatingListener, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
+ 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/c06c13aa/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 f2ef014..d83e75e 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
@@ -55,15 +55,10 @@ public class InMemoryMailboxManager extends StoreMailboxManager {
DelegatingMailboxListener delegatingMailboxListener,
StoreMailboxAnnotationManager annotationManager,
StoreRightManager storeRightManager,
- QuotaComponents quotaComponents) {
+ QuotaComponents quotaComponents,
+ MessageSearchIndex searchIndex) {
super(mailboxSessionMapperFactory, sessionProvider, locker, messageParser, messageIdFactory,
- annotationManager, delegatingMailboxListener, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
- }
-
- @Override
- @Inject
- public void setMessageSearchIndex(MessageSearchIndex index) {
- super.setMessageSearchIndex(index);
+ annotationManager, delegatingMailboxListener, storeRightManager, quotaComponents, searchIndex, MailboxManagerConfiguration.DEFAULT);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 9ce53e0..bc348e9 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
@@ -41,9 +41,12 @@ 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.extractor.DefaultTextExtractor;
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.apache.james.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
import org.junit.Before;
public class InMemoryMailboxManagerAttachmentTest extends AbstractMailboxManagerAttachmentTest {
@@ -67,16 +70,17 @@ public class InMemoryMailboxManagerAttachmentTest extends AbstractMailboxManager
SessionProvider sessionProvider = new SessionProvider(noAuthenticator, noAuthorizator);
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mailboxSessionMapperFactory);
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mailboxSessionMapperFactory, mailboxSessionMapperFactory, new DefaultTextExtractor());
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, sessionProvider, new NoMailboxPathLocker(),
- new MessageParser(), messageIdFactory, delegatingListener, annotationManager, storeRightManager, quotaComponents);
+ 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);
+ failingMessageParser, messageIdFactory, delegatingListener, annotationManager, storeRightManager, quotaComponents, index);
parseFailingMailboxManager.init();
super.setUp();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 45425cb..94b04fc 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,12 +48,15 @@ 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.extractor.DefaultTextExtractor;
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;
+import org.apache.james.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
public class InMemoryIntegrationResources implements IntegrationResources<StoreMailboxManager> {
@@ -111,6 +114,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
SessionProvider sessionProvider = new SessionProvider(fakeAuthenticator, FakeAuthorizator.defaultReject());
QuotaComponents quotaComponents = createQuotaComponents(mailboxSessionMapperFactory, delegatingListener, sessionProvider);
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mailboxSessionMapperFactory, mailboxSessionMapperFactory, new DefaultTextExtractor());
InMemoryMailboxManager manager = new InMemoryMailboxManager(
mailboxSessionMapperFactory,
@@ -121,7 +125,8 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
delegatingListener,
annotationManager,
storeRightManager,
- quotaComponents);
+ quotaComponents,
+ index);
manager.init();
try {
return new Resources(manager, storeRightManager, new InMemoryMessageId.Factory());
@@ -149,6 +154,8 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
SessionProvider sessionProvider = new SessionProvider(authenticator, authorizator);
QuotaComponents quotaComponents = createQuotaComponents(mailboxSessionMapperFactory, delegatingListener, sessionProvider);
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mailboxSessionMapperFactory, mailboxSessionMapperFactory, new DefaultTextExtractor());
+
StoreMailboxManager manager = new InMemoryMailboxManager(
mailboxSessionMapperFactory,
sessionProvider,
@@ -158,7 +165,8 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
delegatingListener,
annotationManager,
storeRightManager,
- quotaComponents);
+ quotaComponents,
+ index);
manager.init();
return manager;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 28cdc0c..8f32bf8 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
@@ -36,11 +36,14 @@ import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreMessageIdManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DelegatingMailboxListener;
+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;
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.apache.james.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
import org.junit.Before;
public class InMemoryMessageIdManagerSideEffectTest extends AbstractMessageIdManagerSideEffectTest {
@@ -66,6 +69,7 @@ public class InMemoryMessageIdManagerSideEffectTest extends AbstractMessageIdMan
SessionProvider sessionProvider = new SessionProvider(fakeAuthenticator, fakeAuthorizator);
QuotaComponents quotaComponents = new QuotaComponents(new NoMaxQuotaManager(), quotaManager, new DefaultUserQuotaRootResolver(sessionProvider, mapperFactory), new NoQuotaUpdater());
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mapperFactory, mapperFactory, new DefaultTextExtractor());
InMemoryMailboxManager mailboxManager = new InMemoryMailboxManager(mapperFactory,
sessionProvider,
@@ -75,7 +79,8 @@ public class InMemoryMessageIdManagerSideEffectTest extends AbstractMessageIdMan
delegatingMailboxListener,
new StoreMailboxAnnotationManager(mapperFactory, rightManager),
rightManager,
- quotaComponents);
+ quotaComponents,
+ index);
StoreMessageIdManager messageIdManager = new StoreMessageIdManager(
mailboxManager,
mapperFactory,
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 30f6880..92e6995 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
@@ -48,8 +48,6 @@ public class SimpleMessageSearchIndexTest extends AbstractMessageSearchIndexTest
storeMailboxManager.getMessageIdFactory(),
storeMailboxManager.getQuotaComponents().getQuotaManager(),
storeMailboxManager.getQuotaComponents().getQuotaRootResolver());
-
- storeMailboxManager.setMessageSearchIndex(messageSearchIndex);
}
/**
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 7fd17cf..65d4923 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
@@ -66,7 +66,6 @@ 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.extractor.DefaultTextExtractor;
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;
@@ -77,7 +76,6 @@ 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.search.SimpleMessageSearchIndex;
import org.apache.james.mailbox.store.transaction.Mapper;
import org.apache.james.util.streams.Iterators;
import org.slf4j.Logger;
@@ -116,16 +114,16 @@ public class StoreMailboxManager implements MailboxManager {
private final QuotaRootResolver quotaRootResolver;
private final QuotaUpdater quotaUpdater;
private final QuotaComponents quotaComponents;
+ private final MessageSearchIndex index;
protected final MailboxManagerConfiguration configuration;
- private MessageSearchIndex index;
@Inject
public StoreMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, SessionProvider sessionProvider,
MailboxPathLocker locker, MessageParser messageParser,
MessageId.Factory messageIdFactory, MailboxAnnotationManager annotationManager,
DelegatingMailboxListener delegatingListener, StoreRightManager storeRightManager,
- QuotaComponents quotaComponents, MailboxManagerConfiguration configuration) {
+ QuotaComponents quotaComponents, MessageSearchIndex searchIndex, MailboxManagerConfiguration configuration) {
Preconditions.checkNotNull(delegatingListener);
Preconditions.checkNotNull(mailboxSessionMapperFactory);
@@ -141,6 +139,7 @@ public class StoreMailboxManager implements MailboxManager {
this.quotaRootResolver = quotaComponents.getQuotaRootResolver();
this.quotaManager = quotaComponents.getQuotaManager();
this.quotaComponents = quotaComponents;
+ this.index = searchIndex;
this.configuration = configuration;
}
@@ -164,9 +163,6 @@ public class StoreMailboxManager implements MailboxManager {
@PostConstruct
public void init() throws MailboxException {
MailboxSession session = createSystemSession("storeMailboxManager");
- if (index == null) {
- index = new SimpleMessageSearchIndex(mailboxSessionMapperFactory, mailboxSessionMapperFactory, new DefaultTextExtractor());
- }
if (index instanceof ListeningMessageSearchIndex) {
this.addGlobalListener((MailboxListener) index, session);
}
@@ -233,16 +229,6 @@ public class StoreMailboxManager implements MailboxManager {
}
/**
- * Set the {@link MessageSearchIndex} which should be used by this {@link MailboxManager}. If none is given this implementation will use a {@link SimpleMessageSearchIndex}
- * by default
- *
- * @param index
- */
- public void setMessageSearchIndex(MessageSearchIndex index) {
- this.index = index;
- }
-
- /**
* Generate an return the next uid validity
*
* @return uidValidity
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 6cc0f59..9ada55f 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
@@ -43,10 +43,13 @@ import org.apache.james.mailbox.model.TestId;
import org.apache.james.mailbox.model.search.MailboxQuery;
import org.apache.james.mailbox.model.search.PrefixedRegex;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
+import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
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.apache.james.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
import org.junit.Before;
import org.junit.Test;
@@ -84,9 +87,11 @@ 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);
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mockedMapperFactory, mockedMapperFactory, new DefaultTextExtractor());
+
storeMailboxManager = new StoreMailboxManager(mockedMapperFactory, sessionProvider,
new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory,
- annotationManager, delegatingListener, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
+ annotationManager, delegatingListener, storeRightManager, quotaComponents, index, MailboxManagerConfiguration.DEFAULT);
storeMailboxManager.init();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 937e572..bc4f33f 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
@@ -46,11 +46,14 @@ import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
+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;
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.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
import org.apache.james.metrics.logger.DefaultMetricFactory;
import org.apache.james.mpt.api.ImapFeatures;
import org.apache.james.mpt.api.ImapFeatures.Feature;
@@ -102,9 +105,11 @@ public class CassandraHostSystem extends JamesImapHostSystem {
ListeningCurrentQuotaUpdater quotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaManager, quotaRootResolver, delegatingMailboxListener, quotaManager);
QuotaComponents quotaComponents = new QuotaComponents(perUserMaxQuotaManager, quotaManager, quotaRootResolver, quotaUpdater);
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mapperFactory, mapperFactory, new DefaultTextExtractor());
+
mailboxManager = new CassandraMailboxManager(mapperFactory, sessionProvider,
new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory,
- delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
+ delegatingMailboxListener, annotationManager, storeRightManager, quotaComponents, index, MailboxManagerConfiguration.DEFAULT);
mailboxManager.init();
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
index 8ddfac8..f20d56b 100644
--- a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
+++ b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
@@ -40,6 +40,7 @@ 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.acl.UnionMailboxACLResolver;
import org.apache.james.mailbox.elasticsearch.IndexAttachments;
import org.apache.james.mailbox.elasticsearch.MailboxElasticSearchConstants;
import org.apache.james.mailbox.elasticsearch.MailboxIndexCreationUtil;
@@ -50,14 +51,21 @@ import org.apache.james.mailbox.elasticsearch.query.QueryConverter;
import org.apache.james.mailbox.elasticsearch.search.ElasticSearchSearcher;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.inmemory.InMemoryId;
+import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
+import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
import org.apache.james.mailbox.inmemory.InMemoryMessageId;
-import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
+import org.apache.james.mailbox.store.JVMMailboxPathLocker;
import org.apache.james.mailbox.store.SessionProvider;
+import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreMailboxManager;
+import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
+import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
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;
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;
@@ -96,10 +104,15 @@ public class ElasticSearchHostSystem extends JamesImapHostSystem {
ElasticSearchConfiguration.DEFAULT_CONFIGURATION);
InMemoryMessageId.Factory messageIdFactory = new InMemoryMessageId.Factory();
- mailboxManager = new InMemoryIntegrationResources()
- .createMailboxManager(new SimpleGroupMembershipResolver(),
- authenticator,
- authorizator);
+
+ InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory();
+ DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
+ StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver(), delegatingListener);
+ StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
+
+ SessionProvider sessionProvider = new SessionProvider(authenticator, authorizator);
+ QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mailboxSessionMapperFactory);
+
ThreadFactory threadFactory = NamedThreadFactory.withClassName(getClass());
ElasticSearchListeningMessageSearchIndex searchIndex = new ElasticSearchListeningMessageSearchIndex(
@@ -116,8 +129,19 @@ public class ElasticSearchHostSystem extends JamesImapHostSystem {
new MessageToElasticSearchJson(new DefaultTextExtractor(), ZoneId.systemDefault(), IndexAttachments.YES),
new SessionProvider(authenticator, authorizator));
- mailboxManager.setMessageSearchIndex(searchIndex);
- mailboxManager.addGlobalListener(searchIndex, MailboxSessionUtil.create("admin"));
+ mailboxManager = new InMemoryMailboxManager(
+ mailboxSessionMapperFactory,
+ sessionProvider,
+ new JVMMailboxPathLocker(),
+ new MessageParser(),
+ messageIdFactory,
+ delegatingListener,
+ annotationManager,
+ storeRightManager,
+ quotaComponents,
+ searchIndex);
+
+ delegatingListener.addGlobalListener(searchIndex, MailboxSessionUtil.create("admin"));
ImapProcessor defaultImapProcessorFactory =
DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager,
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 15dfb64..6aef8bc 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,12 +49,15 @@ 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.extractor.DefaultTextExtractor;
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.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
import org.apache.james.metrics.logger.DefaultMetricFactory;
import org.apache.james.mpt.api.ImapFeatures;
import org.apache.james.mpt.api.ImapFeatures.Feature;
@@ -107,9 +110,10 @@ public class JPAHostSystem extends JamesImapHostSystem {
StoreQuotaManager storeQuotaManager = new StoreQuotaManager(currentQuotaManager, maxQuotaManager);
ListeningCurrentQuotaUpdater quotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaManager, quotaRootResolver, delegatingListener, storeQuotaManager);
QuotaComponents quotaComponents = new QuotaComponents(maxQuotaManager, storeQuotaManager, quotaRootResolver, quotaUpdater);
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mapperFactory, mapperFactory, new DefaultTextExtractor());
- mailboxManager = new OpenJPAMailboxManager(mapperFactory, sessionProvider,
- messageParser, new DefaultMessageId.Factory(), delegatingListener, annotationManager, storeRightManager, quotaComponents);
+ mailboxManager = new OpenJPAMailboxManager(mapperFactory, sessionProvider, messageParser, new DefaultMessageId.Factory(),
+ delegatingListener, annotationManager, storeRightManager, quotaComponents, index);
mailboxManager.init();
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 6774134..fac28bb 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
@@ -50,6 +50,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.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;
@@ -104,6 +105,9 @@ public class LuceneSearchHostSystem extends JamesImapHostSystem {
JVMMailboxPathLocker locker = new JVMMailboxPathLocker();
InMemoryMessageId.Factory messageIdFactory = new InMemoryMessageId.Factory();
SessionProvider sessionProvider = new SessionProvider(authenticator, authorizator);
+ FSDirectory fsDirectory = FSDirectory.open(tempFile);
+ searchIndex = new LuceneMessageSearchIndex(mapperFactory, new InMemoryId.Factory(), fsDirectory, messageIdFactory, sessionProvider);
+
mailboxManager = new InMemoryMailboxManager(mapperFactory,
sessionProvider,
locker,
@@ -111,12 +115,11 @@ public class LuceneSearchHostSystem extends JamesImapHostSystem {
messageIdFactory,
delegatingMailboxListener,
new StoreMailboxAnnotationManager(mapperFactory, rightManager),
- rightManager);
+ rightManager,
+ QuotaComponents.disabled(sessionProvider, mapperFactory),
+ searchIndex);
- FSDirectory fsDirectory = FSDirectory.open(tempFile);
- searchIndex = new LuceneMessageSearchIndex(mapperFactory, new InMemoryId.Factory(), fsDirectory, messageIdFactory, sessionProvider);
searchIndex.setEnableSuffixMatch(true);
- mailboxManager.setMessageSearchIndex(searchIndex);
mailboxManager.init();
http://git-wip-us.apache.org/repos/asf/james-project/blob/c06c13aa/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 6eb7fc3..4dc20d9 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
@@ -43,9 +43,12 @@ import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
+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;
import org.apache.james.mailbox.store.quota.QuotaComponents;
+import org.apache.james.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
import org.apache.james.metrics.logger.DefaultMetricFactory;
import org.apache.james.mpt.api.ImapFeatures;
import org.apache.james.mpt.api.ImapFeatures.Feature;
@@ -80,8 +83,11 @@ public class MaildirHostSystem extends JamesImapHostSystem {
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
SessionProvider sessionProvider = new SessionProvider(authenticator, authorizator);
QuotaComponents quotaComponents = QuotaComponents.disabled(sessionProvider, mailboxSessionMapperFactory);
+ MessageSearchIndex index = new SimpleMessageSearchIndex(mailboxSessionMapperFactory, mailboxSessionMapperFactory, new DefaultTextExtractor());
+
mailboxManager = new StoreMailboxManager(mailboxSessionMapperFactory, sessionProvider, locker,
- messageParser, new DefaultMessageId.Factory(), annotationManager, delegatingListener, storeRightManager, quotaComponents, MailboxManagerConfiguration.DEFAULT);
+ messageParser, new DefaultMessageId.Factory(), annotationManager, delegatingListener, storeRightManager, quotaComponents,
+ index, MailboxManagerConfiguration.DEFAULT);
mailboxManager.init();
ImapProcessor defaultImapProcessorFactory =
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org