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/05/09 10:28:27 UTC

[james-project] 02/14: JAMES-2717 Duplicate the embedded es components to the docker components

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 269eee48d1e847c659f2e36952547a682d36e49c
Author: Tran Tien Duc <dt...@linagora.com>
AuthorDate: Tue May 7 18:35:31 2019 +0700

    JAMES-2717 Duplicate the embedded es components to the docker components
---
 .../apache/james/DockerElasticSearchExtension.java | 21 +++++-------
 ...earchRule.java => DockerElasticSearchRule.java} | 28 ++++++----------
 .../test/java/org/apache/james/ESReporterTest.java |  6 ++--
 .../james/EmbeddedElasticSearchExtension.java      |  4 +--
 .../apache/james/EmbeddedElasticSearchRule.java    |  4 +--
 .../james/JamesServerWithRetryConnectionTest.java  | 13 +++-----
 ....java => TestDockerESMetricReporterModule.java} | 13 +++++---
 ...ule.java => TestDockerElasticSearchModule.java} | 39 +++++++++++++++++-----
 ...ava => TestEmbeddedESMetricReporterModule.java} |  2 +-
 ...e.java => TestEmbeddedElasticSearchModule.java} |  4 +--
 .../jmap/cassandra/cucumber/CassandraStepdefs.java |  8 ++---
 .../ReindexingWithEventDeadLettersTest.java        | 13 +++-----
 .../cucumber/awss3/RabbitMQAwsS3Stepdefs.java      | 11 +++---
 .../integration/CassandraJmapExtension.java        |  8 ++---
 14 files changed, 89 insertions(+), 85 deletions(-)

diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerElasticSearchExtension.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerElasticSearchExtension.java
index bfc755e..20f2747 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerElasticSearchExtension.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerElasticSearchExtension.java
@@ -19,31 +19,22 @@
 
 package org.apache.james;
 
+import org.apache.james.backends.es.DockerElasticSearch;
+import org.apache.james.backends.es.DockerElasticSearchSingleton;
 import org.apache.james.backends.es.ElasticSearchConfiguration;
-import org.apache.james.util.Host;
-import org.apache.james.util.docker.DockerGenericContainer;
 import org.junit.jupiter.api.extension.ExtensionContext;
 
 import com.google.inject.Module;
 
 public class DockerElasticSearchExtension implements GuiceModuleTestExtension {
-    public static final int ELASTIC_SEARCH_PORT = 9300;
-    public static final int ELASTIC_SEARCH_HTTP_PORT = 9200;
-
-    private final DockerGenericContainer elasticSearchContainer;
-
-    public DockerElasticSearchExtension(DockerGenericContainer elasticSearchContainer) {
-        this.elasticSearchContainer = elasticSearchContainer;
-    }
 
     @Override
     public void beforeEach(ExtensionContext extensionContext) {
-        elasticSearchContainer.start();
+        getDockerES().start();
     }
 
     @Override
     public void afterEach(ExtensionContext extensionContext) {
-        elasticSearchContainer.stop();
     }
 
     @Override
@@ -54,7 +45,11 @@ public class DockerElasticSearchExtension implements GuiceModuleTestExtension {
 
     private ElasticSearchConfiguration getElasticSearchConfigurationForDocker() {
         return ElasticSearchConfiguration.builder()
-            .addHost(Host.from(elasticSearchContainer.getHostIp(), elasticSearchContainer.getMappedPort(ELASTIC_SEARCH_PORT)))
+            .addHost(getDockerES().getTcpHost())
             .build();
     }
+
+    public DockerElasticSearch getDockerES() {
+        return DockerElasticSearchSingleton.INSTANCE;
+    }
 }
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/EmbeddedElasticSearchRule.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerElasticSearchRule.java
similarity index 64%
copy from server/container/guice/cassandra-guice/src/test/java/org/apache/james/EmbeddedElasticSearchRule.java
copy to server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerElasticSearchRule.java
index 3c6848a..6287009 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/EmbeddedElasticSearchRule.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerElasticSearchRule.java
@@ -19,43 +19,35 @@
 
 package org.apache.james;
 
-import org.apache.james.backends.es.EmbeddedElasticSearch;
-import org.apache.james.modules.TestElasticSearchModule;
-import org.elasticsearch.node.Node;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TemporaryFolder;
+import org.apache.james.backends.es.DockerElasticSearch;
+import org.apache.james.backends.es.DockerElasticSearchSingleton;
+import org.apache.james.modules.TestDockerElasticSearchModule;
 import org.junit.runner.Description;
 import org.junit.runners.model.Statement;
 
 import com.google.inject.Module;
 
 
-public class EmbeddedElasticSearchRule implements GuiceModuleTestRule {
+public class DockerElasticSearchRule implements GuiceModuleTestRule {
 
-    private final TemporaryFolder temporaryFolder = new TemporaryFolder();
-    private final EmbeddedElasticSearch embeddedElasticSearch = new EmbeddedElasticSearch(temporaryFolder);
-
-    private final RuleChain chain = RuleChain
-        .outerRule(temporaryFolder)
-        .around(embeddedElasticSearch);
+    private final DockerElasticSearch elasticSearch = DockerElasticSearchSingleton.INSTANCE;
 
     @Override
     public Statement apply(Statement base, Description description) {
-        return chain.apply(base, description);
+        return base;
     }
 
     @Override
     public void await() {
-        embeddedElasticSearch.awaitForElasticSearch();
+        elasticSearch.awaitForElasticSearch();
     }
 
-
     @Override
     public Module getModule() {
-        return new TestElasticSearchModule(embeddedElasticSearch);
+        return new TestDockerElasticSearchModule(elasticSearch);
     }
 
-    public Node getNode() {
-        return embeddedElasticSearch.getNode();
+    public DockerElasticSearch getDockerEs() {
+        return elasticSearch;
     }
 }
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java
index 65392fd..f896e28 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java
@@ -37,7 +37,7 @@ import org.apache.commons.net.imap.IMAPClient;
 import org.apache.james.jmap.api.access.AccessToken;
 import org.apache.james.mailbox.extractor.TextExtractor;
 import org.apache.james.mailbox.store.search.PDFTextExtractor;
-import org.apache.james.modules.TestESMetricReporterModule;
+import org.apache.james.modules.TestEmbeddedESMetricReporterModule;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.apache.james.modules.protocols.ImapGuiceProbe;
 import org.apache.james.utils.DataProbeImpl;
@@ -71,7 +71,7 @@ class ESReporterTest {
             .combineWith(ALL_BUT_JMX_CASSANDRA_MODULE)
             .overrideWith(binder -> binder.bind(TextExtractor.class).to(PDFTextExtractor.class))
             .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES))
-            .overrideWith(new TestESMetricReporterModule()))
+            .overrideWith(new TestEmbeddedESMetricReporterModule()))
         .build();
 
     private static final int DELAY_IN_MS = 100;
@@ -156,7 +156,7 @@ class ESReporterTest {
             return !Arrays.stream(client.prepareSearch()
                     .setQuery(QueryBuilders.matchAllQuery())
                     .get().getHits().getHits())
-                .filter(searchHit -> searchHit.getIndex().startsWith(TestESMetricReporterModule.METRICS_INDEX))
+                .filter(searchHit -> searchHit.getIndex().startsWith(TestEmbeddedESMetricReporterModule.METRICS_INDEX))
                 .collect(Collectors.toList())
                 .isEmpty();
         } catch (Exception e) {
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/EmbeddedElasticSearchExtension.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/EmbeddedElasticSearchExtension.java
index 743dbc3..a724c35 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/EmbeddedElasticSearchExtension.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/EmbeddedElasticSearchExtension.java
@@ -21,7 +21,7 @@ package org.apache.james;
 
 import org.apache.james.backends.es.EmbeddedElasticSearch;
 import org.apache.james.junit.TemporaryFolderExtension;
-import org.apache.james.modules.TestElasticSearchModule;
+import org.apache.james.modules.TestEmbeddedElasticSearchModule;
 import org.junit.jupiter.api.extension.ExtensionContext;
 
 import com.google.inject.Module;
@@ -49,7 +49,7 @@ public class EmbeddedElasticSearchExtension implements GuiceModuleTestExtension
 
     @Override
     public Module getModule() {
-        return new TestElasticSearchModule(embeddedElasticSearch);
+        return new TestEmbeddedElasticSearchModule(embeddedElasticSearch);
     }
 
     @Override
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/EmbeddedElasticSearchRule.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/EmbeddedElasticSearchRule.java
index 3c6848a..b4c524f 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/EmbeddedElasticSearchRule.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/EmbeddedElasticSearchRule.java
@@ -20,7 +20,7 @@
 package org.apache.james;
 
 import org.apache.james.backends.es.EmbeddedElasticSearch;
-import org.apache.james.modules.TestElasticSearchModule;
+import org.apache.james.modules.TestEmbeddedElasticSearchModule;
 import org.elasticsearch.node.Node;
 import org.junit.rules.RuleChain;
 import org.junit.rules.TemporaryFolder;
@@ -52,7 +52,7 @@ public class EmbeddedElasticSearchRule implements GuiceModuleTestRule {
 
     @Override
     public Module getModule() {
-        return new TestElasticSearchModule(embeddedElasticSearch);
+        return new TestEmbeddedElasticSearchModule(embeddedElasticSearch);
     }
 
     public Node getNode() {
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesServerWithRetryConnectionTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesServerWithRetryConnectionTest.java
index 85263de..4f6745b 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesServerWithRetryConnectionTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesServerWithRetryConnectionTest.java
@@ -20,8 +20,6 @@
 package org.apache.james;
 
 import static org.apache.james.CassandraJamesServerMain.ALL_BUT_JMX_CASSANDRA_MODULE;
-import static org.apache.james.DockerElasticSearchExtension.ELASTIC_SEARCH_HTTP_PORT;
-import static org.apache.james.DockerElasticSearchExtension.ELASTIC_SEARCH_PORT;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.IOException;
@@ -39,8 +37,6 @@ import org.apache.james.mailbox.store.search.PDFTextExtractor;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.apache.james.modules.protocols.ImapGuiceProbe;
 import org.apache.james.util.concurrent.NamedThreadFactory;
-import org.apache.james.util.docker.DockerGenericContainer;
-import org.apache.james.util.docker.Images;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -50,13 +46,12 @@ class JamesServerWithRetryConnectionTest {
     private static final int LIMIT_TO_10_MESSAGES = 10;
     private static final long WAITING_TIME = TimeUnit.MILLISECONDS.convert(10, TimeUnit.SECONDS);
 
-    private static DockerGenericContainer elasticSearchContainer = new DockerGenericContainer(Images.ELASTICSEARCH_2)
-        .withExposedPorts(ELASTIC_SEARCH_HTTP_PORT, ELASTIC_SEARCH_PORT);
     private static final DockerCassandraRule cassandraRule = new DockerCassandraRule();
+    private static final DockerElasticSearchExtension dockerElasticSearch = new DockerElasticSearchExtension();
 
     @RegisterExtension
     static JamesServerExtension testExtension = new JamesServerBuilder()
-        .extension(new DockerElasticSearchExtension(elasticSearchContainer))
+        .extension(dockerElasticSearch)
         .extension(new CassandraExtension(cassandraRule))
         .server(configuration -> GuiceJamesServer.forConfiguration(configuration)
             .combineWith(ALL_BUT_JMX_CASSANDRA_MODULE)
@@ -97,9 +92,9 @@ class JamesServerWithRetryConnectionTest {
 
     @Test
     void serverShouldRetryToConnectToElasticSearchWhenStartService(GuiceJamesServer server) throws Exception {
-        elasticSearchContainer.pause();
+        dockerElasticSearch.getDockerES().pause();
 
-        waitToStartContainer(WAITING_TIME, elasticSearchContainer::unpause);
+        waitToStartContainer(WAITING_TIME, dockerElasticSearch.getDockerES()::unpause);
 
         assertThatServerStartCorrectly(server);
     }
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestESMetricReporterModule.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestDockerESMetricReporterModule.java
similarity index 84%
copy from server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestESMetricReporterModule.java
copy to server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestDockerESMetricReporterModule.java
index 85808e0..3b9e438 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestESMetricReporterModule.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestDockerESMetricReporterModule.java
@@ -22,16 +22,21 @@ package org.apache.james.modules;
 import javax.inject.Singleton;
 
 import org.apache.james.metrics.es.ESReporterConfiguration;
+import org.apache.james.util.Host;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
 
-public class TestESMetricReporterModule extends AbstractModule {
+public class TestDockerESMetricReporterModule extends AbstractModule {
 
-    private static final String LOCALHOST = "localhost";
-    private static final int DEFAULT_ES_HTTP_PORT = 9200;
     public static final String METRICS_INDEX = "metrics";
 
+    private final Host esHttpHost;
+
+    public TestDockerESMetricReporterModule(Host esHttpHost) {
+        this.esHttpHost = esHttpHost;
+    }
+
     @Override
     protected void configure() {
     }
@@ -41,7 +46,7 @@ public class TestESMetricReporterModule extends AbstractModule {
     public ESReporterConfiguration provideConfiguration() {
         return ESReporterConfiguration.builder()
             .enabled()
-            .onHost(LOCALHOST, DEFAULT_ES_HTTP_PORT)
+            .onHost(esHttpHost.getHostName(), esHttpHost.getPort())
             .onIndex(METRICS_INDEX)
             .periodInSecond(1L)
             .build();
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestElasticSearchModule.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestDockerElasticSearchModule.java
similarity index 59%
copy from server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestElasticSearchModule.java
copy to server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestDockerElasticSearchModule.java
index 0ada1f6..10797a2 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestElasticSearchModule.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestDockerElasticSearchModule.java
@@ -21,32 +21,53 @@ package org.apache.james.modules;
 
 import javax.inject.Singleton;
 
+import org.apache.james.CleanupTasksPerformer;
+import org.apache.james.backends.es.DockerElasticSearch;
 import org.apache.james.backends.es.ElasticSearchConfiguration;
-import org.apache.james.backends.es.EmbeddedElasticSearch;
-import org.apache.james.backends.es.utils.TestingClientProvider;
 import org.apache.james.mailbox.elasticsearch.MailboxIndexCreationUtil;
 import org.elasticsearch.client.Client;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
+import com.google.inject.multibindings.Multibinder;
 
-public class TestElasticSearchModule extends AbstractModule {
+public class TestDockerElasticSearchModule extends AbstractModule {
 
-    private final EmbeddedElasticSearch embeddedElasticSearch;
+    private static class ESContainerCleanUp implements CleanupTasksPerformer.CleanupTask {
 
-    public TestElasticSearchModule(EmbeddedElasticSearch embeddedElasticSearch) {
-        this.embeddedElasticSearch = embeddedElasticSearch;
+        private final DockerElasticSearch elasticSearch;
+
+        private ESContainerCleanUp(DockerElasticSearch elasticSearch) {
+            this.elasticSearch = elasticSearch;
+        }
+
+        @Override
+        public Result run() {
+            elasticSearch.cleanUpData();
+
+            return Result.COMPLETED;
+        }
+    }
+
+    private final DockerElasticSearch elasticSearch;
+
+    public TestDockerElasticSearchModule(DockerElasticSearch elasticSearch) {
+        this.elasticSearch = elasticSearch;
     }
 
     @Override
     protected void configure() {
-
+        Multibinder.newSetBinder(binder(), CleanupTasksPerformer.CleanupTask.class)
+            .addBinding()
+            .toInstance(new ESContainerCleanUp(elasticSearch));
     }
 
     @Provides
     @Singleton
     protected Client provideClientProvider() {
-        Client client = new TestingClientProvider(embeddedElasticSearch.getNode()).get();
-        return MailboxIndexCreationUtil.prepareDefaultClient(client, ElasticSearchConfiguration.DEFAULT_CONFIGURATION);
+        Client client = elasticSearch.clientProvider().get();
+        return MailboxIndexCreationUtil.prepareDefaultClient(client, ElasticSearchConfiguration.builder()
+            .addHost(elasticSearch.getTcpHost())
+            .build());
     }
 }
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestESMetricReporterModule.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestEmbeddedESMetricReporterModule.java
similarity index 96%
rename from server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestESMetricReporterModule.java
rename to server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestEmbeddedESMetricReporterModule.java
index 85808e0..13284fa 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestESMetricReporterModule.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestEmbeddedESMetricReporterModule.java
@@ -26,7 +26,7 @@ import org.apache.james.metrics.es.ESReporterConfiguration;
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
 
-public class TestESMetricReporterModule extends AbstractModule {
+public class TestEmbeddedESMetricReporterModule extends AbstractModule {
 
     private static final String LOCALHOST = "localhost";
     private static final int DEFAULT_ES_HTTP_PORT = 9200;
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestElasticSearchModule.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestEmbeddedElasticSearchModule.java
similarity index 92%
rename from server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestElasticSearchModule.java
rename to server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestEmbeddedElasticSearchModule.java
index 0ada1f6..a0d4748 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestElasticSearchModule.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/TestEmbeddedElasticSearchModule.java
@@ -30,11 +30,11 @@ import org.elasticsearch.client.Client;
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
 
-public class TestElasticSearchModule extends AbstractModule {
+public class TestEmbeddedElasticSearchModule extends AbstractModule {
 
     private final EmbeddedElasticSearch embeddedElasticSearch;
 
-    public TestElasticSearchModule(EmbeddedElasticSearch embeddedElasticSearch) {
+    public TestEmbeddedElasticSearchModule(EmbeddedElasticSearch embeddedElasticSearch) {
         this.embeddedElasticSearch = embeddedElasticSearch;
     }
 
diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java
index 4cb6304..7f770d6 100644
--- a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java
+++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java
@@ -36,8 +36,8 @@ import org.apache.james.jmap.methods.integration.cucumber.MainStepdefs;
 import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
 import org.apache.james.mailbox.extractor.TextExtractor;
 import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
-import org.apache.james.modules.TestESMetricReporterModule;
-import org.apache.james.modules.TestElasticSearchModule;
+import org.apache.james.modules.TestEmbeddedESMetricReporterModule;
+import org.apache.james.modules.TestEmbeddedElasticSearchModule;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.apache.james.server.CassandraTruncateTableTask;
 import org.apache.james.server.core.configuration.Configuration;
@@ -79,8 +79,8 @@ public class CassandraStepdefs {
         mainStepdefs.jmapServer = GuiceJamesServer.forConfiguration(configuration)
             .combineWith(ALL_BUT_JMX_CASSANDRA_MODULE)
             .overrideWith(new TestJMAPServerModule(10))
-            .overrideWith(new TestESMetricReporterModule())
-            .overrideWith(new TestElasticSearchModule(embeddedElasticSearch))
+            .overrideWith(new TestEmbeddedESMetricReporterModule())
+            .overrideWith(new TestEmbeddedElasticSearchModule(embeddedElasticSearch))
             .overrideWith(cassandraServer.getModule())
             .overrideWith(binder -> binder.bind(TextExtractor.class).to(DefaultTextExtractor.class))
             .overrideWith((binder) -> binder.bind(PersistenceAdapter.class).to(MemoryPersistenceAdapter.class))
diff --git a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/ReindexingWithEventDeadLettersTest.java b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/ReindexingWithEventDeadLettersTest.java
index b1e2c85..c4385af 100644
--- a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/ReindexingWithEventDeadLettersTest.java
+++ b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/ReindexingWithEventDeadLettersTest.java
@@ -20,8 +20,6 @@
 package org.apache.james.jmap.rabbitmq;
 
 import static io.restassured.RestAssured.with;
-import static org.apache.james.DockerElasticSearchExtension.ELASTIC_SEARCH_HTTP_PORT;
-import static org.apache.james.DockerElasticSearchExtension.ELASTIC_SEARCH_PORT;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
 import static org.apache.james.jmap.JmapCommonRequests.getDraftId;
 import static org.apache.james.jmap.JmapCommonRequests.listMessageIdsForAccount;
@@ -47,8 +45,6 @@ import org.apache.james.modules.AwsS3BlobStoreExtension;
 import org.apache.james.modules.RabbitMQExtension;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.apache.james.modules.objectstorage.PayloadCodecFactory;
-import org.apache.james.util.docker.DockerGenericContainer;
-import org.apache.james.util.docker.Images;
 import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.JmapGuiceProbe;
 import org.apache.james.utils.WebAdminGuiceProbe;
@@ -75,8 +71,7 @@ class ReindexingWithEventDeadLettersTest {
         .atMost(Duration.ONE_MINUTE)
         .await();
 
-    private static DockerGenericContainer elasticSearchContainer = new DockerGenericContainer(Images.ELASTICSEARCH_2)
-        .withExposedPorts(ELASTIC_SEARCH_HTTP_PORT, ELASTIC_SEARCH_PORT);
+    private static final DockerElasticSearchExtension dockerElasticSearch = new DockerElasticSearchExtension();
 
     private static final JamesServerBuilder.ServerProvider CONFIGURATION_BUILDER = configuration -> GuiceJamesServer
             .forConfiguration(configuration)
@@ -88,7 +83,7 @@ class ReindexingWithEventDeadLettersTest {
 
     @RegisterExtension
     JamesServerExtension testExtension = new JamesServerBuilder()
-        .extension(new DockerElasticSearchExtension(elasticSearchContainer))
+        .extension(dockerElasticSearch)
         .extension(new CassandraExtension())
         .extension(new RabbitMQExtension())
         .extension(new AwsS3BlobStoreExtension(PayloadCodecFactory.AES256))
@@ -114,7 +109,7 @@ class ReindexingWithEventDeadLettersTest {
 
         aliceAccessToken = authenticateJamesUser(baseUri(jamesServer), ALICE, ALICE_PASSWORD);
 
-        elasticSearchContainer.pause();
+        dockerElasticSearch.getDockerES().pause();
         Thread.sleep(Duration.TEN_SECONDS.getValueInMS()); // Docker pause is asynchronous and we found no way to poll for it
     }
 
@@ -152,7 +147,7 @@ class ReindexingWithEventDeadLettersTest {
     }
 
     private void unpauseElasticSearch() throws Exception {
-        elasticSearchContainer.unpause();
+        dockerElasticSearch.getDockerES().unpause();
         Thread.sleep(Duration.FIVE_SECONDS.getValueInMS()); // Docker unpause is asynchronous and we found no way to poll for it
     }
 
diff --git a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQAwsS3Stepdefs.java b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQAwsS3Stepdefs.java
index baf2f58..01d6747 100644
--- a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQAwsS3Stepdefs.java
+++ b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQAwsS3Stepdefs.java
@@ -20,6 +20,7 @@
 package org.apache.james.jmap.rabbitmq.cucumber.awss3;
 
 import java.util.Arrays;
+
 import javax.inject.Inject;
 
 import org.apache.activemq.store.PersistenceAdapter;
@@ -35,18 +36,18 @@ import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
 import org.apache.james.mailbox.extractor.TextExtractor;
 import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
 import org.apache.james.modules.DockerRabbitMQRule;
-import org.apache.james.modules.TestESMetricReporterModule;
-import org.apache.james.modules.TestElasticSearchModule;
+import org.apache.james.modules.TestEmbeddedESMetricReporterModule;
+import org.apache.james.modules.TestEmbeddedElasticSearchModule;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.apache.james.modules.TestRabbitMQModule;
 import org.apache.james.modules.objectstorage.aws.s3.DockerAwsS3TestRule;
 import org.apache.james.server.CassandraTruncateTableTask;
 import org.apache.james.server.core.configuration.Configuration;
-
 import org.junit.rules.TemporaryFolder;
 
 import com.github.fge.lambdas.runnable.ThrowingRunnable;
 import com.google.inject.multibindings.Multibinder;
+
 import cucumber.api.java.After;
 import cucumber.api.java.Before;
 import cucumber.runtime.java.guice.ScenarioScoped;
@@ -86,10 +87,10 @@ public class RabbitMQAwsS3Stepdefs {
         mainStepdefs.jmapServer = GuiceJamesServer.forConfiguration(configuration)
                 .combineWith(CassandraRabbitMQJamesServerMain.MODULES)
                 .overrideWith(new TestJMAPServerModule(JMAP_GET_MESSAGE_LIST_MAXIMUM_LIMIT))
-                .overrideWith(new TestESMetricReporterModule())
+                .overrideWith(new TestEmbeddedESMetricReporterModule())
                 .overrideWith(new TestRabbitMQModule(rabbitMQServer.dockerRabbitMQ()))
                 .overrideWith(swiftServer.getModule())
-                .overrideWith(new TestElasticSearchModule(embeddedElasticSearch))
+                .overrideWith(new TestEmbeddedElasticSearchModule(embeddedElasticSearch))
                 .overrideWith(cassandraServer.getModule())
                 .overrideWith(binder -> binder.bind(TextExtractor.class).to(DefaultTextExtractor.class))
                 .overrideWith((binder) -> binder.bind(PersistenceAdapter.class).to(MemoryPersistenceAdapter.class))
diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java
index 3451c21..c89aea7 100644
--- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java
+++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java
@@ -28,8 +28,8 @@ import org.apache.james.GuiceJamesServer;
 import org.apache.james.backends.es.EmbeddedElasticSearch;
 import org.apache.james.mailbox.extractor.TextExtractor;
 import org.apache.james.mailbox.store.search.PDFTextExtractor;
-import org.apache.james.modules.TestESMetricReporterModule;
-import org.apache.james.modules.TestElasticSearchModule;
+import org.apache.james.modules.TestEmbeddedESMetricReporterModule;
+import org.apache.james.modules.TestEmbeddedElasticSearchModule;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.apache.james.server.core.configuration.Configuration;
 import org.apache.james.util.Runnables;
@@ -68,9 +68,9 @@ public class CassandraJmapExtension implements BeforeAllCallback, AfterAllCallba
         return GuiceJamesServer.forConfiguration(configuration)
                 .combineWith(ALL_BUT_JMX_CASSANDRA_MODULE).overrideWith(binder -> binder.bind(TextExtractor.class).to(PDFTextExtractor.class))
                 .overrideWith(new TestJMAPServerModule(LIMIT_TO_20_MESSAGES))
-                .overrideWith(new TestESMetricReporterModule())
+                .overrideWith(new TestEmbeddedESMetricReporterModule())
                 .overrideWith(cassandra.getModule())
-                .overrideWith(new TestElasticSearchModule(elasticSearch))
+                .overrideWith(new TestEmbeddedElasticSearchModule(elasticSearch))
                 .overrideWith(binder -> binder.bind(WebAdminConfiguration.class).toInstance(WebAdminConfiguration.TEST_CONFIGURATION))
                 .overrideWith(new UnauthorizedModule())
                 .overrideWith((binder -> binder.bind(CleanupTasksPerformer.class).asEagerSingleton()));


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org