This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 6d7e4fdf73ac6fa03e77bb569f86589d66c6f943
Author: Benoit Tellier <[email protected]>
AuthorDate: Tue Mar 19 11:04:50 2019 +0700

    JAMES-2687 Use InMemoryIntegrationResources for SearchIndex tests
---
 .../elasticsearch/ElasticSearchIntegrationTest.java |  3 ++-
 .../lucene/search/LuceneMessageSearchIndexTest.java |  2 +-
 .../manager/InMemoryIntegrationResources.java       | 21 ++++++++++++++++-----
 .../elasticsearch/host/ElasticSearchHostSystem.java |  2 +-
 .../lucenesearch/host/LuceneSearchHostSystem.java   |  2 +-
 5 files changed, 21 insertions(+), 9 deletions(-)

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 308ac72..a35790b 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
@@ -38,6 +38,7 @@ 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.events.MailboxListener;
 import org.apache.james.mailbox.inmemory.InMemoryId;
 import org.apache.james.mailbox.inmemory.InMemoryMessageId;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
@@ -101,7 +102,7 @@ public class ElasticSearchIntegrationTest extends 
AbstractMessageSearchIndexTest
         ThreadFactory threadFactory = 
NamedThreadFactory.withClassName(getClass());
 
         InMemoryIntegrationResources resources = new 
InMemoryIntegrationResources.Factory()
-            .withSearchIndex(preInstanciationStage -> new 
ElasticSearchListeningMessageSearchIndex(
+            .withListeningSearchIndex(preInstanciationStage -> new 
ElasticSearchListeningMessageSearchIndex(
                 preInstanciationStage.getMapperFactory(),
                 new ElasticSearchIndexer(client,
                     Executors.newSingleThreadExecutor(threadFactory),
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 1075879..b3df12b 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
@@ -38,7 +38,7 @@ public class LuceneMessageSearchIndexTest extends 
AbstractMessageSearchIndexTest
     @Override
     protected void initializeMailboxManager() {
         InMemoryIntegrationResources resources = new 
InMemoryIntegrationResources.Factory()
-            .withSearchIndex(Throwing.function(preInstanciationStage -> new 
LuceneMessageSearchIndex(
+            .withListeningSearchIndex(Throwing.function(preInstanciationStage 
-> new LuceneMessageSearchIndex(
                 preInstanciationStage.getMapperFactory(), new 
InMemoryId.Factory(), new RAMDirectory(),
                 new InMemoryMessageId.Factory(),
                 preInstanciationStage.getSessionProvider())))
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 c92799f..ca4b21d 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
@@ -62,11 +62,13 @@ 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.ListeningMessageSearchIndex;
 import org.apache.james.mailbox.store.search.MessageSearchIndex;
 import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
 import org.apache.james.metrics.api.NoopMetricFactory;
 
 import com.github.steveash.guavate.Guavate;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 
 public class InMemoryIntegrationResources implements 
IntegrationResources<StoreMailboxManager> {
@@ -80,6 +82,7 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
         private Optional<MessageParser> messageParser;
         private Optional<Function<MailboxManagerPreInstanciationStage, 
MessageSearchIndex>> searchIndexInstanciator;
         private 
ImmutableSet.Builder<Function<MailboxManagerPreInstanciationStage, 
PreDeletionHook>> preDeletionHooksInstanciators;
+        private ImmutableList.Builder<MailboxListener.GroupMailboxListener> 
listenersToBeRegistered;
 
         public Factory() {
             this.authenticator = Optional.empty();
@@ -91,6 +94,7 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
             this.messageParser = Optional.empty();
             this.quotaManager = Optional.empty();
             this.preDeletionHooksInstanciators = ImmutableSet.builder();
+            this.listenersToBeRegistered = ImmutableList.builder();
         }
 
         public Factory withMessageParser(MessageParser messageParser) {
@@ -126,7 +130,7 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
 
         public Factory withPreDeletionHooks(Collection<PreDeletionHook> 
preDeletionHooks) {
             this.preDeletionHooksInstanciators.addAll(preDeletionHooks.stream()
-                .map(this::toInstanciator)
+                .map(this::toFactory)
                 .collect(Guavate.toImmutableList()));
             return this;
         }
@@ -141,7 +145,16 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
             return this;
         }
 
-        private Function<MailboxManagerPreInstanciationStage, PreDeletionHook> 
toInstanciator(PreDeletionHook preDeletionHook) {
+        public Factory 
withListeningSearchIndex(Function<MailboxManagerPreInstanciationStage, 
ListeningMessageSearchIndex> searchIndex) {
+            this.searchIndexInstanciator = Optional.of(stage -> {
+                ListeningMessageSearchIndex listeningMessageSearchIndex = 
searchIndex.apply(stage);
+                listenersToBeRegistered.add(listeningMessageSearchIndex);
+                return listeningMessageSearchIndex;
+            });
+            return this;
+        }
+
+        private Function<MailboxManagerPreInstanciationStage, PreDeletionHook> 
toFactory(PreDeletionHook preDeletionHook) {
             return any -> preDeletionHook;
         }
 
@@ -187,9 +200,7 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
             eventBus.register(listeningCurrentQuotaUpdater);
             eventBus.register(new 
MailboxAnnotationListener(mailboxSessionMapperFactory, sessionProvider));
 
-            if (index instanceof MailboxListener.GroupMailboxListener) {
-                eventBus.register((MailboxListener.GroupMailboxListener) 
index);
-            }
+            listenersToBeRegistered.build().forEach(eventBus::register);
 
             return new InMemoryIntegrationResources(manager, 
storeRightManager, new InMemoryMessageId.Factory(), currentQuotaManager, 
quotaRootResolver, maxQuotaManager, quotaManager, index);
         }
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 eafd2dc..8a6ff38 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
@@ -95,7 +95,7 @@ public class ElasticSearchHostSystem extends 
JamesImapHostSystem {
         InMemoryIntegrationResources resources = new 
InMemoryIntegrationResources.Factory()
             .withAuthenticator(authenticator)
             .withAuthorizator(authorizator)
-            .withSearchIndex(preInstanciationStage -> new 
ElasticSearchListeningMessageSearchIndex(
+            .withListeningSearchIndex(preInstanciationStage -> new 
ElasticSearchListeningMessageSearchIndex(
                 preInstanciationStage.getMapperFactory(),
                 new ElasticSearchIndexer(client,
                     Executors.newSingleThreadExecutor(threadFactory),
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 a3bef4e..2cbf272 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
@@ -92,7 +92,7 @@ public class LuceneSearchHostSystem extends 
JamesImapHostSystem {
             InMemoryIntegrationResources resources = new 
InMemoryIntegrationResources.Factory()
                 .withAuthorizator(authorizator)
                 .withAuthenticator(authenticator)
-                .withSearchIndex(Throwing.function(preInstanciationStage -> 
new LuceneMessageSearchIndex(
+                
.withListeningSearchIndex(Throwing.function(preInstanciationStage -> new 
LuceneMessageSearchIndex(
                     preInstanciationStage.getMapperFactory(), new 
InMemoryId.Factory(), fsDirectory,
                     new InMemoryMessageId.Factory(),
                     preInstanciationStage.getSessionProvider())))


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to