JAMES-2334 avoid starting many dockers rabbitmq while only need one

RabbitMQTest and each nested class invokes rabbitMQExtension.beforeAll()
for their own. This leads to starting one docker rabbit for each test class.
Some moments, there are 3 dockers rabbit are up.

This commit addresses this issue by starting only one docker rabbit for
whole test. I reused RabbitMQExtension and ignore beforeAll, afterAll callbacks
 and move them to RabbitMQTest level.


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

Branch: refs/heads/master
Commit: c53b0ce8ed72c604d30b4cb6f5195359eb4e1f3b
Parents: e7f28f0
Author: duc <dt...@linagora.com>
Authored: Mon Oct 22 11:36:45 2018 +0700
Committer: Benoit Tellier <btell...@linagora.com>
Committed: Wed Oct 24 08:48:31 2018 +0700

----------------------------------------------------------------------
 .../james/backend/rabbitmq/RabbitMQTest.java    | 38 ++++++++++++++++++--
 1 file changed, 36 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/c53b0ce8/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java
----------------------------------------------------------------------
diff --git 
a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java
 
b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java
index c77bb50..adfa43e 100644
--- 
a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java
+++ 
b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java
@@ -37,11 +37,14 @@ import java.util.Queue;
 import java.util.concurrent.TimeoutException;
 import java.util.stream.IntStream;
 
+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.Nested;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import com.github.fge.lambdas.Throwing;
 import com.github.steveash.guavate.Guavate;
@@ -52,9 +55,40 @@ import com.rabbitmq.client.Channel;
 import com.rabbitmq.client.Connection;
 import com.rabbitmq.client.ConnectionFactory;
 
-@ExtendWith(RabbitMQExtension.class)
 class RabbitMQTest {
 
+    private static class RabbitMQNestedTestExtension extends RabbitMQExtension 
{
+
+        @Override
+        public void beforeAll(ExtensionContext context) {
+        }
+
+        void beforeAll() {
+            super.beforeAll(null);
+        }
+
+        @Override
+        public void afterAll(ExtensionContext extensionContext) {
+        }
+
+        void afterAll() {
+            super.afterAll(null);
+        }
+    }
+
+    @RegisterExtension
+    static RabbitMQNestedTestExtension testExtension = new 
RabbitMQNestedTestExtension();
+
+    @BeforeAll
+    static void setup() {
+        testExtension.beforeAll();
+    }
+
+    @AfterAll
+    static void tearDown() {
+        testExtension.afterAll();
+    }
+
     @Nested
     class SingleConsumerTest {
 


---------------------------------------------------------------------
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