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 239d17c1990087cece497b18b096233e7098f563
Author: Benoit Tellier <[email protected]>
AuthorDate: Fri Mar 15 12:04:13 2019 +0700

    JAMES-2687 Use InMemoryIntegrationResources for SearchIndex tests
---
 .../ElasticSearchIntegrationTest.java              | 89 +++++-----------------
 .../search/LuceneMessageSearchIndexTest.java       | 73 ++++--------------
 .../manager/InMemoryIntegrationResources.java      | 65 +++++++++++++---
 .../james/vault/DeletedMessageVaultHookTest.java   |  2 +-
 .../store/search/SimpleMessageSearchIndexTest.java | 27 +++----
 5 files changed, 99 insertions(+), 157 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 cf4325f..308ac72 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
@@ -33,33 +33,17 @@ import 
org.apache.james.backends.es.utils.TestingClientProvider;
 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.events.InVMEventBus;
-import org.apache.james.mailbox.events.delivery.InVmEventDelivery;
 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.manager.ManagerTestProvisionner;
+import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
 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.PreDeletionHooks;
-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.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;
 import org.apache.james.mailbox.tika.TikaContainerSingletonRule;
@@ -113,59 +97,28 @@ public class ElasticSearchIntegrationTest extends 
AbstractMessageSearchIndexTest
         Client client = MailboxIndexCreationUtil.prepareDefaultClient(
             new TestingClientProvider(embeddedElasticSearch.getNode()).get(),
                 ElasticSearchConfiguration.DEFAULT_CONFIGURATION);
-
-        FakeAuthenticator fakeAuthenticator = new FakeAuthenticator();
-        fakeAuthenticator.addUser(ManagerTestProvisionner.USER, 
ManagerTestProvisionner.USER_PASS);
-        fakeAuthenticator.addUser(ManagerTestProvisionner.OTHER_USER, 
ManagerTestProvisionner.OTHER_USER_PASS);
-        InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new 
InMemoryMailboxSessionMapperFactory();
-        InVMEventBus eventBus = new InVMEventBus(new InVmEventDelivery(new 
NoopMetricFactory()));
-        StoreRightManager storeRightManager = new 
StoreRightManager(mailboxSessionMapperFactory, new UnionMailboxACLResolver(),
-            new SimpleGroupMembershipResolver(), eventBus);
-        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(
-            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(), messageIdFactory,
-                MailboxElasticSearchConstants.DEFAULT_MAILBOX_READ_ALIAS,
-                MailboxElasticSearchConstants.MESSAGE_TYPE),
-            new MessageToElasticSearchJson(textExtractor, 
ZoneId.of("Europe/Paris"), IndexAttachments.YES),
-            new SessionProvider(new FakeAuthenticator(), 
FakeAuthorizator.defaultReject()));
-
-        storeMailboxManager = new InMemoryMailboxManager(
-            mailboxSessionMapperFactory,
-            sessionProvider,
-            new JVMMailboxPathLocker(),
-            new MessageParser(),
-            messageIdFactory,
-            eventBus,
-            annotationManager,
-            storeRightManager,
-            quotaComponents,
-            elasticSearchListeningMessageSearchIndex,
-            PreDeletionHooks.NO_PRE_DELETION_HOOK);
-
-        messageIdManager = new StoreMessageIdManager(
-            storeMailboxManager,
-            storeMailboxManager.getMapperFactory(),
-            eventBus,
-            storeMailboxManager.getMessageIdFactory(),
-            quotaComponents.getQuotaManager(),
-            quotaComponents.getQuotaRootResolver(),
-            PreDeletionHooks.NO_PRE_DELETION_HOOK);
-
-        eventBus.register(elasticSearchListeningMessageSearchIndex);
-        this.messageSearchIndex = elasticSearchListeningMessageSearchIndex;
+
+        InMemoryIntegrationResources resources = new 
InMemoryIntegrationResources.Factory()
+            .withSearchIndex(preInstanciationStage -> new 
ElasticSearchListeningMessageSearchIndex(
+                preInstanciationStage.getMapperFactory(),
+                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(), messageIdFactory,
+                    MailboxElasticSearchConstants.DEFAULT_MAILBOX_READ_ALIAS,
+                    MailboxElasticSearchConstants.MESSAGE_TYPE),
+                new MessageToElasticSearchJson(textExtractor, 
ZoneId.of("Europe/Paris"), IndexAttachments.YES),
+                preInstanciationStage.getSessionProvider()))
+            .create();
+
+        storeMailboxManager = resources.getMailboxManager();
+        messageIdManager = resources.getMessageIdManager();
+        messageSearchIndex = resources.getSearchIndex();
     }
 
     @Test
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 ee41577..1075879 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
@@ -19,31 +19,16 @@
 
 package org.apache.james.mailbox.lucene.search;
 
-import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
-import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
-import org.apache.james.mailbox.events.InVMEventBus;
-import org.apache.james.mailbox.events.delivery.InVmEventDelivery;
 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.manager.ManagerTestProvisionner;
-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.PreDeletionHooks;
-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.mail.model.impl.MessageParser;
-import org.apache.james.mailbox.store.quota.QuotaComponents;
+import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
 import org.apache.james.mailbox.store.search.AbstractMessageSearchIndexTest;
-import org.apache.james.metrics.api.NoopMetricFactory;
 import org.apache.lucene.store.RAMDirectory;
 import org.junit.Ignore;
 
+import com.github.fge.lambdas.Throwing;
+
 public class LuceneMessageSearchIndexTest extends 
AbstractMessageSearchIndexTest {
 
     @Override
@@ -51,47 +36,17 @@ public class LuceneMessageSearchIndexTest extends 
AbstractMessageSearchIndexTest
     }
 
     @Override
-    protected void initializeMailboxManager() throws Exception {
-        FakeAuthenticator fakeAuthenticator = new FakeAuthenticator();
-        fakeAuthenticator.addUser(ManagerTestProvisionner.USER, 
ManagerTestProvisionner.USER_PASS);
-        fakeAuthenticator.addUser(ManagerTestProvisionner.OTHER_USER, 
ManagerTestProvisionner.OTHER_USER_PASS);
-        InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new 
InMemoryMailboxSessionMapperFactory();
-        InVMEventBus eventBus = new InVMEventBus(new InVmEventDelivery(new 
NoopMetricFactory()));
-        StoreRightManager storeRightManager = new 
StoreRightManager(mailboxSessionMapperFactory, new UnionMailboxACLResolver(), 
new SimpleGroupMembershipResolver(), eventBus);
-        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,
-            eventBus,
-            annotationManager,
-            storeRightManager,
-            quotaComponents,
-            luceneMessageSearchIndex,
-            PreDeletionHooks.NO_PRE_DELETION_HOOK);
-
-        messageIdManager = new StoreMessageIdManager(
-            storeMailboxManager,
-            storeMailboxManager.getMapperFactory(),
-            eventBus,
-            storeMailboxManager.getMessageIdFactory(),
-            quotaComponents.getQuotaManager(),
-            quotaComponents.getQuotaRootResolver(),
-            PreDeletionHooks.NO_PRE_DELETION_HOOK);
-
-        eventBus.register(luceneMessageSearchIndex);
-        this.messageSearchIndex = luceneMessageSearchIndex;
+    protected void initializeMailboxManager() {
+        InMemoryIntegrationResources resources = new 
InMemoryIntegrationResources.Factory()
+            .withSearchIndex(Throwing.function(preInstanciationStage -> new 
LuceneMessageSearchIndex(
+                preInstanciationStage.getMapperFactory(), new 
InMemoryId.Factory(), new RAMDirectory(),
+                new InMemoryMessageId.Factory(),
+                preInstanciationStage.getSessionProvider())))
+            .create();
+
+        storeMailboxManager = resources.getMailboxManager();
+        messageIdManager = resources.getMessageIdManager();
+        messageSearchIndex = resources.getSearchIndex();
     }
 
     @Ignore
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 0dc9586..31510d4 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
@@ -21,7 +21,7 @@ package org.apache.james.mailbox.inmemory.manager;
 
 import java.util.Collection;
 import java.util.Optional;
-import java.util.function.BiFunction;
+import java.util.function.Function;
 
 import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.acl.GroupMembershipResolver;
@@ -29,6 +29,7 @@ import 
org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
 import org.apache.james.mailbox.events.EventBus;
 import org.apache.james.mailbox.events.InVMEventBus;
+import org.apache.james.mailbox.events.MailboxListener;
 import org.apache.james.mailbox.events.delivery.InVmEventDelivery;
 import org.apache.james.mailbox.extension.PreDeletionHook;
 import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
@@ -75,7 +76,8 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
         private Optional<EventBus> eventBus;
         private Optional<Integer> limitAnnotationCount;
         private Optional<Integer> limitAnnotationSize;
-        private ImmutableSet.Builder<BiFunction<SessionProvider, 
InMemoryMailboxSessionMapperFactory, PreDeletionHook>> 
preDeletionHooksInstanciators;
+        private Optional<Function<MailboxManagerPreInstanciationStage, 
MessageSearchIndex>> searchIndexInstanciator;
+        private 
ImmutableSet.Builder<Function<MailboxManagerPreInstanciationStage, 
PreDeletionHook>> preDeletionHooksInstanciators;
 
         public Factory() {
             this.authenticator = Optional.empty();
@@ -83,6 +85,7 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
             this.eventBus = Optional.empty();
             this.limitAnnotationCount = Optional.empty();
             this.limitAnnotationSize = Optional.empty();
+            this.searchIndexInstanciator = Optional.empty();
             this.preDeletionHooksInstanciators = ImmutableSet.builder();
         }
 
@@ -114,13 +117,18 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
             return this;
         }
 
-        public Factory withPreDeletionHook(BiFunction<SessionProvider, 
InMemoryMailboxSessionMapperFactory, PreDeletionHook> preDeletionHook) {
+        public Factory 
withPreDeletionHook(Function<MailboxManagerPreInstanciationStage, 
PreDeletionHook> preDeletionHook) {
             this.preDeletionHooksInstanciators.add(preDeletionHook);
             return this;
         }
 
-        private BiFunction<SessionProvider, 
InMemoryMailboxSessionMapperFactory, PreDeletionHook> 
toInstanciator(PreDeletionHook preDeletionHook) {
-            return (a, b) -> preDeletionHook;
+        public Factory 
withSearchIndex(Function<MailboxManagerPreInstanciationStage, 
MessageSearchIndex> searchIndex) {
+            this.searchIndexInstanciator = Optional.of(searchIndex);
+            return this;
+        }
+
+        private Function<MailboxManagerPreInstanciationStage, PreDeletionHook> 
toInstanciator(PreDeletionHook preDeletionHook) {
+            return any -> preDeletionHook;
         }
 
         public InMemoryIntegrationResources create() {
@@ -143,7 +151,11 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
             ListeningCurrentQuotaUpdater listeningCurrentQuotaUpdater = new 
ListeningCurrentQuotaUpdater(currentQuotaManager, quotaRootResolver, eventBus, 
quotaManager);
             QuotaComponents quotaComponents = new 
QuotaComponents(maxQuotaManager, quotaManager, quotaRootResolver, 
listeningCurrentQuotaUpdater);
 
-            MessageSearchIndex index = new 
SimpleMessageSearchIndex(mailboxSessionMapperFactory, 
mailboxSessionMapperFactory, new DefaultTextExtractor());
+            MailboxManagerPreInstanciationStage preInstanciationStage = new 
MailboxManagerPreInstanciationStage(mailboxSessionMapperFactory, 
sessionProvider);
+
+            MessageSearchIndex index = searchIndexInstanciator
+                .orElse(stage -> new 
SimpleMessageSearchIndex(stage.mapperFactory, stage.mapperFactory, new 
DefaultTextExtractor()))
+                .apply(preInstanciationStage);
 
             InMemoryMailboxManager manager = new InMemoryMailboxManager(
                 mailboxSessionMapperFactory,
@@ -156,12 +168,16 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
                 storeRightManager,
                 quotaComponents,
                 index,
-                createHooks(sessionProvider, mailboxSessionMapperFactory));
+                createHooks(preInstanciationStage));
 
             eventBus.register(listeningCurrentQuotaUpdater);
             eventBus.register(new 
MailboxAnnotationListener(mailboxSessionMapperFactory, sessionProvider));
 
-            return new InMemoryIntegrationResources(manager, 
storeRightManager, new InMemoryMessageId.Factory(), currentQuotaManager, 
quotaRootResolver, maxQuotaManager, quotaManager);
+            if (index instanceof MailboxListener.GroupMailboxListener) {
+                eventBus.register((MailboxListener.GroupMailboxListener) 
index);
+            }
+
+            return new InMemoryIntegrationResources(manager, 
storeRightManager, new InMemoryMessageId.Factory(), currentQuotaManager, 
quotaRootResolver, maxQuotaManager, quotaManager, index);
         }
 
         FakeAuthenticator defaultAuthenticator() {
@@ -171,14 +187,33 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
             return fakeAuthenticator;
         }
 
-        PreDeletionHooks createHooks(SessionProvider sessionProvider, 
InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory) {
+        PreDeletionHooks createHooks(MailboxManagerPreInstanciationStage 
preInstanciationStage) {
             return new PreDeletionHooks(preDeletionHooksInstanciators.build()
                 .stream()
-                .map(biFunction -> biFunction.apply(sessionProvider, 
mailboxSessionMapperFactory))
+                .map(biFunction -> biFunction.apply(preInstanciationStage))
                 .collect(Guavate.toImmutableSet()));
         }
     }
 
+    public static class MailboxManagerPreInstanciationStage {
+        private final InMemoryMailboxSessionMapperFactory mapperFactory;
+        private final SessionProvider sessionProvider;
+
+        public 
MailboxManagerPreInstanciationStage(InMemoryMailboxSessionMapperFactory 
mapperFactory, SessionProvider sessionProvider) {
+            this.mapperFactory = mapperFactory;
+            this.sessionProvider = sessionProvider;
+        }
+
+        public InMemoryMailboxSessionMapperFactory getMapperFactory() {
+            return mapperFactory;
+        }
+
+        public SessionProvider getSessionProvider() {
+            return sessionProvider;
+        }
+    }
+
+
     private final InMemoryMailboxManager mailboxManager;
     private final StoreRightManager storeRightManager;
     private final MessageId.Factory messageIdFactory;
@@ -186,9 +221,10 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
     private final DefaultUserQuotaRootResolver defaultUserQuotaRootResolver;
     private final InMemoryPerUserMaxQuotaManager maxQuotaManager;
     private final QuotaManager quotaManager;
-    private StoreMessageIdManager storeMessageIdManager;
+    private final StoreMessageIdManager storeMessageIdManager;
+    private final MessageSearchIndex searchIndex;
 
-    InMemoryIntegrationResources(InMemoryMailboxManager mailboxManager, 
StoreRightManager storeRightManager, MessageId.Factory messageIdFactory, 
InMemoryCurrentQuotaManager currentQuotaManager, DefaultUserQuotaRootResolver 
defaultUserQuotaRootResolver, InMemoryPerUserMaxQuotaManager maxQuotaManager, 
QuotaManager quotaManager) {
+    InMemoryIntegrationResources(InMemoryMailboxManager mailboxManager, 
StoreRightManager storeRightManager, MessageId.Factory messageIdFactory, 
InMemoryCurrentQuotaManager currentQuotaManager, DefaultUserQuotaRootResolver 
defaultUserQuotaRootResolver, InMemoryPerUserMaxQuotaManager maxQuotaManager, 
QuotaManager quotaManager, MessageSearchIndex searchIndex) {
         this.mailboxManager = mailboxManager;
         this.storeRightManager = storeRightManager;
         this.messageIdFactory = messageIdFactory;
@@ -196,6 +232,7 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
         this.defaultUserQuotaRootResolver = defaultUserQuotaRootResolver;
         this.maxQuotaManager = maxQuotaManager;
         this.quotaManager = quotaManager;
+        this.searchIndex = searchIndex;
 
         this.storeMessageIdManager = new StoreMessageIdManager(
             mailboxManager,
@@ -243,4 +280,8 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
     public QuotaRootResolver getQuotaRootResolver() {
         return defaultUserQuotaRootResolver;
     }
+
+    public MessageSearchIndex getSearchIndex() {
+        return searchIndex;
+    }
 }
diff --git 
a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java
 
b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java
index ecb271b..d7b4df4 100644
--- 
a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java
+++ 
b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java
@@ -99,7 +99,7 @@ class DeletedMessageVaultHookTest {
         DeletedMessageConverter deletedMessageConverter = new 
DeletedMessageConverter();
 
         InMemoryIntegrationResources resources = new 
InMemoryIntegrationResources.Factory()
-            .withPreDeletionHook((sessionProvider, mapperFactory) -> new 
DeletedMessageVaultHook(sessionProvider, messageVault, deletedMessageConverter, 
mapperFactory, clock))
+            .withPreDeletionHook(preInstanciationStage -> new 
DeletedMessageVaultHook(preInstanciationStage.getSessionProvider(), 
messageVault, deletedMessageConverter, 
preInstanciationStage.getMapperFactory(), clock))
             .create();
 
         mailboxManager = resources.getMailboxManager();
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 f4d2c74..bfbb547 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
@@ -21,8 +21,6 @@ package org.apache.james.mailbox.store.search;
 
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.store.PreDeletionHooks;
-import org.apache.james.mailbox.store.StoreMessageIdManager;
 import org.junit.Ignore;
 
 public class SimpleMessageSearchIndexTest extends 
AbstractMessageSearchIndexTest {
@@ -33,21 +31,16 @@ public class SimpleMessageSearchIndexTest extends 
AbstractMessageSearchIndexTest
 
     @Override
     protected void initializeMailboxManager() {
-        storeMailboxManager = new 
InMemoryIntegrationResources.Factory().create().getMailboxManager();
-
-        messageSearchIndex = new SimpleMessageSearchIndex(
-            storeMailboxManager.getMapperFactory(),
-            storeMailboxManager.getMapperFactory(),
-            new PDFTextExtractor());
-
-        messageIdManager = new StoreMessageIdManager(
-            storeMailboxManager,
-            storeMailboxManager.getMapperFactory(),
-            storeMailboxManager.getEventBus(),
-            storeMailboxManager.getMessageIdFactory(),
-            storeMailboxManager.getQuotaComponents().getQuotaManager(),
-            storeMailboxManager.getQuotaComponents().getQuotaRootResolver(),
-            PreDeletionHooks.NO_PRE_DELETION_HOOK);
+        InMemoryIntegrationResources resources = new 
InMemoryIntegrationResources.Factory()
+            .withSearchIndex(preInstanciationStage -> new 
SimpleMessageSearchIndex(
+                preInstanciationStage.getMapperFactory(),
+                preInstanciationStage.getMapperFactory(),
+                new PDFTextExtractor()))
+            .create();
+
+        storeMailboxManager = resources.getMailboxManager();
+        messageIdManager = resources.getMessageIdManager();
+        messageSearchIndex = resources.getSearchIndex();
     }
 
     /**


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

Reply via email to