JAMES-2334 user one rabbit cluster across whole cluster test

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e7f28f0c
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e7f28f0c
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e7f28f0c

Branch: refs/heads/master
Commit: e7f28f0cf835ab59a62c87607892b72470826e02
Parents: 0c4c367
Author: duc <dt...@linagora.com>
Authored: Mon Oct 22 14:18:46 2018 +0700
Committer: Benoit Tellier <btell...@linagora.com>
Committed: Wed Oct 24 08:48:27 2018 +0700

----------------------------------------------------------------------
 .../DockerClusterRabbitMQExtension.java         | 28 +++++++++++---------
 .../james/backend/rabbitmq/DockerRabbitMQ.java  |  4 ++-
 .../backend/rabbitmq/RabbitMQClusterTest.java   | 19 ++++++++++---
 3 files changed, 34 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/e7f28f0c/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerClusterRabbitMQExtension.java
----------------------------------------------------------------------
diff --git 
a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerClusterRabbitMQExtension.java
 
b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerClusterRabbitMQExtension.java
index b787239..05278ca 100644
--- 
a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerClusterRabbitMQExtension.java
+++ 
b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerClusterRabbitMQExtension.java
@@ -22,9 +22,7 @@ import java.nio.charset.StandardCharsets;
 import java.util.UUID;
 
 import org.apache.james.util.Runnables;
-import org.junit.jupiter.api.extension.AfterAllCallback;
 import org.junit.jupiter.api.extension.AfterEachCallback;
-import org.junit.jupiter.api.extension.BeforeAllCallback;
 import org.junit.jupiter.api.extension.BeforeEachCallback;
 import org.junit.jupiter.api.extension.ExtensionContext;
 import org.junit.jupiter.api.extension.ParameterContext;
@@ -37,7 +35,7 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.hash.Hashing;
 import com.rabbitmq.client.Address;
 
-public class DockerClusterRabbitMQExtension implements BeforeAllCallback, 
BeforeEachCallback, AfterEachCallback, AfterAllCallback, ParameterResolver {
+public class DockerClusterRabbitMQExtension implements BeforeEachCallback, 
AfterEachCallback, ParameterResolver {
 
     private static final String RABBIT_1 = "rabbit1";
     private static final String RABBIT_2 = "rabbit2";
@@ -48,8 +46,7 @@ public class DockerClusterRabbitMQExtension implements 
BeforeAllCallback, Before
     private DockerRabbitMQ rabbitMQ2;
     private DockerRabbitMQ rabbitMQ3;
 
-    @Override
-    public void beforeAll(ExtensionContext extensionContext) throws Exception {
+    public void beforeAll() {
         String cookie = Hashing.sha256().hashString("secret cookie here", 
StandardCharsets.UTF_8).toString();
 
         network = Network.NetworkImpl.builder()
@@ -62,14 +59,13 @@ public class DockerClusterRabbitMQExtension implements 
BeforeAllCallback, Before
         rabbitMQ2 = DockerRabbitMQ.withCookieAndHostName(RABBIT_2, 
clusterIdentity, cookie, network);
         rabbitMQ3 = DockerRabbitMQ.withCookieAndHostName(RABBIT_3, 
clusterIdentity, cookie, network);
 
-        Runnables.runParallel(
-            rabbitMQ1::start,
-            rabbitMQ2::start,
-            rabbitMQ3::start);
+        startDockerRabbits();
     }
 
     @Override
-    public void beforeEach(ExtensionContext context) {
+    public void beforeEach(ExtensionContext context) throws Exception {
+        startDockerRabbits();
+
         Runnables.runParallel(
             Throwing.runnable(() -> rabbitMQ2.join(rabbitMQ1)),
             Throwing.runnable(() -> rabbitMQ3.join(rabbitMQ1)));
@@ -78,12 +74,11 @@ public class DockerClusterRabbitMQExtension implements 
BeforeAllCallback, Before
     }
 
     @Override
-    public void afterEach(ExtensionContext context) throws Exception {
+    public void afterEach(ExtensionContext context) {
         cluster.detach();
     }
 
-    @Override
-    public void afterAll(ExtensionContext extensionContext) throws Exception {
+    public void afterAll() throws Exception {
         cluster.stop();
         network.close();
     }
@@ -98,6 +93,13 @@ public class DockerClusterRabbitMQExtension implements 
BeforeAllCallback, Before
         return cluster;
     }
 
+    private void startDockerRabbits() {
+        Runnables.runParallel(
+            rabbitMQ1::start,
+            rabbitMQ2::start,
+            rabbitMQ3::start);
+    }
+
     public static class DockerRabbitMQCluster {
 
         private final DockerRabbitMQ rabbitMQ1;

http://git-wip-us.apache.org/repos/asf/james-project/blob/e7f28f0c/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerRabbitMQ.java
----------------------------------------------------------------------
diff --git 
a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerRabbitMQ.java
 
b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerRabbitMQ.java
index 47c99ea..10f36ab 100644
--- 
a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerRabbitMQ.java
+++ 
b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerRabbitMQ.java
@@ -128,7 +128,9 @@ public class DockerRabbitMQ {
     }
 
     public void start() {
-        container.start();
+        if (!container.isRunning()) {
+            container.start();
+        }
     }
 
     public void stop() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/e7f28f0c/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQClusterTest.java
----------------------------------------------------------------------
diff --git 
a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQClusterTest.java
 
b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQClusterTest.java
index 5e50b4b..bc374bf 100644
--- 
a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQClusterTest.java
+++ 
b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQClusterTest.java
@@ -39,12 +39,14 @@ import java.util.stream.IntStream;
 import 
org.apache.james.backend.rabbitmq.DockerClusterRabbitMQExtension.DockerRabbitMQCluster;
 import org.awaitility.Awaitility;
 import org.awaitility.Duration;
+import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.extension.RegisterExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -63,7 +65,19 @@ class RabbitMQClusterTest {
 
     private static final String QUEUE = "queue";
 
-    @ExtendWith(DockerClusterRabbitMQExtension.class)
+    @RegisterExtension
+    static DockerClusterRabbitMQExtension testExtension = new 
DockerClusterRabbitMQExtension();
+
+    @BeforeAll
+    static void setup() {
+        testExtension.beforeAll();
+    }
+
+    @AfterAll
+    static void tearDown() throws Exception {
+        testExtension.afterAll();
+    }
+
     @Nested
     class ClusterSharing {
 
@@ -147,7 +161,6 @@ class RabbitMQClusterTest {
 
     }
 
-    @ExtendWith(DockerClusterRabbitMQExtension.class)
     @Nested
     class ClusterNodesFailure {
 


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

Reply via email to