@Override
protected void initializeMailboxManager() throws Exception {
Client client = MailboxIndexCreationUtil.prepareDefaultClient(
new TestingClientProvider(embeddedElasticSearch.getNode()).get());
storeMailboxManager = new InMemoryIntegrationResources()
.createMailboxManager(new SimpleGroupMembershipResolver());
ElasticSearchListeningMessageSearchIndex elasticSearchListeningMessageSearchIndex = new ElasticSearchListeningMessageSearchIndex(
storeMailboxManager.getMapperFactory(),
new ElasticSearchIndexer(client,
Executors.newSingleThreadExecutor(),
MailboxElasticSearchConstants.DEFAULT_MAILBOX_WRITE_ALIAS,
MailboxElasticSearchConstants.MESSAGE_TYPE,
BATCH_SIZE),
new ElasticSearchSearcher(client, new QueryConverter(new CriterionConverter()), SEARCH_SIZE,
new InMemoryId.Factory(), storeMailboxManager.getMessageIdFactory(),
MailboxElasticSearchConstants.DEFAULT_MAILBOX_READ_ALIAS,
MailboxElasticSearchConstants.MESSAGE_TYPE),
new MessageToElasticSearchJson(textExtractor, ZoneId.of("Europe/Paris"), IndexAttachments.YES));
messageIdManager = new StoreMessageIdManager(
storeMailboxManager,
storeMailboxManager.getMapperFactory(),
storeMailboxManager.getEventDispatcher(),
storeMailboxManager.getMessageIdFactory(),
storeMailboxManager.getQuotaManager(),
storeMailboxManager.getQuotaRootResolver());
storeMailboxManager.setMessageSearchIndex(elasticSearchListeningMessageSearchIndex);
storeMailboxManager.addGlobalListener(elasticSearchListeningMessageSearchIndex, new MockMailboxSession("admin"));
this.messageSearchIndex = elasticSearchListeningMessageSearchIndex;
}