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]
