This is an automated email from the ASF dual-hosted git repository.

aduprat pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 6fb06d544a26551a62dfa973fa10aa0acc78fc12
Author: Matthieu Baechler <matth...@apache.org>
AuthorDate: Fri Apr 12 14:55:59 2019 +0200

    JAMES-2721 provide a builder-like API for allowing Cassandra restart 
between tests
---
 .../cassandra/DockerCassandraRestartRule.java      | 30 ---------------------
 .../backends/cassandra/DockerCassandraRule.java    | 11 ++++++++
 .../backend/rabbitmq/DockerRabbitMQTestRule.java   | 31 ++++++++++++++++++++--
 .../cassandra/CassandraCombinationManagerTest.java |  6 +----
 .../CassandraMailboxManagerStressTest.java         |  6 +----
 .../CassandraMessageIdManagerQuotaTest.java        |  6 +----
 .../CassandraMessageIdManagerSideEffectTest.java   |  6 +----
 .../CassandraMessageIdManagerStorageTest.java      |  6 +----
 .../CassandraSubscriptionManagerTest.java          |  6 +----
 .../mail/CassandraAnnotationMapperTest.java        |  6 +----
 .../mail/CassandraAttachmentMapperTest.java        |  6 +----
 .../mail/CassandraGenericMailboxMapperTest.java    |  6 +----
 .../CassandraMailboxManagerAttachmentTest.java     |  6 +----
 .../mail/CassandraMailboxMapperAclTest.java        |  6 +----
 .../cassandra/mail/CassandraMailboxMapperTest.java |  6 +----
 .../mail/CassandraMessageIdMapperTest.java         |  6 +----
 .../cassandra/mail/CassandraMessageMapperTest.java |  6 +----
 .../cassandra/mail/CassandraMessageMoveTest.java   |  6 +----
 .../CassandraMessageWithAttachmentMapperTest.java  |  6 +----
 .../quota/CassandraCurrentQuotaManagerTest.java    |  6 +----
 .../quota/CassandraPerUserMaxQuotaManagerTest.java |  6 +----
 .../user/CassandraSubscriptionMapperTest.java      |  6 +----
 .../cassandra/CassandraAuthenticatePlainTest.java  |  2 +-
 .../cassandra/CassandraAuthenticatedStateTest.java |  2 +-
 .../cassandra/CassandraConcurrentSessionsTest.java |  2 +-
 .../cassandra/CassandraCondstoreTest.java          |  2 +-
 .../imapmailbox/cassandra/CassandraCopyTest.java   |  2 +-
 .../imapmailbox/cassandra/CassandraEventsTest.java |  2 +-
 .../cassandra/CassandraExpungeTest.java            |  2 +-
 .../cassandra/CassandraFetchBodySectionTest.java   |  2 +-
 .../cassandra/CassandraFetchBodyStructureTest.java |  2 +-
 .../cassandra/CassandraFetchHeadersTest.java       |  2 +-
 .../imapmailbox/cassandra/CassandraFetchTest.java  |  2 +-
 .../cassandra/CassandraListingTest.java            |  2 +-
 .../cassandra/CassandraListingWithSharingTest.java |  2 +-
 .../cassandra/CassandraMailboxAnnotationTest.java  |  2 +-
 .../CassandraMailboxWithLongNameErrorTest.java     |  2 +-
 .../imapmailbox/cassandra/CassandraMoveTest.java   |  2 +-
 .../CassandraNonAuthenticatedStateTest.java        |  2 +-
 .../cassandra/CassandraPartialFetchTest.java       |  2 +-
 .../imapmailbox/cassandra/CassandraQuotaTest.java  |  2 +-
 .../imapmailbox/cassandra/CassandraRenameTest.java |  2 +-
 .../imapmailbox/cassandra/CassandraSearchTest.java |  2 +-
 .../cassandra/CassandraSecurityTest.java           |  2 +-
 .../imapmailbox/cassandra/CassandraSelectTest.java |  2 +-
 .../cassandra/CassandraSelectedInboxTest.java      |  2 +-
 .../cassandra/CassandraSelectedStateTest.java      |  2 +-
 .../cassandra/CassandraUidSearchOnIndexTest.java   |  2 +-
 .../cassandra/CassandraUidSearchTest.java          |  2 +-
 .../cassandra/CassandraUserFlagsSupportTest.java   |  2 +-
 .../rabbitmq/RabbitMQAuthenticatePlainTest.java    |  2 +-
 .../rabbitmq/RabbitMQAuthenticatedStateTest.java   |  2 +-
 .../rabbitmq/RabbitMQConcurrentSessionsTest.java   |  2 +-
 .../rabbitmq/RabbitMQCondstoreTest.java            |  2 +-
 .../mpt/imapmailbox/rabbitmq/RabbitMQCopyTest.java |  2 +-
 .../imapmailbox/rabbitmq/RabbitMQEventsTest.java   |  2 +-
 .../rabbitmq/RabbitMQFetchBodySectionTest.java     |  2 +-
 .../rabbitmq/RabbitMQFetchBodyStructureTest.java   |  2 +-
 .../rabbitmq/RabbitMQFetchHeadersTest.java         |  2 +-
 .../imapmailbox/rabbitmq/RabbitMQFetchTest.java    |  2 +-
 .../imapmailbox/rabbitmq/RabbitMQListingTest.java  |  2 +-
 .../rabbitmq/RabbitMQListingWithSharingTest.java   |  2 +-
 .../rabbitmq/RabbitMQMailboxAnnotationTest.java    |  2 +-
 .../RabbitMQMailboxWithLongNameErrorTest.java      |  2 +-
 .../mpt/imapmailbox/rabbitmq/RabbitMQMoveTest.java |  2 +-
 .../RabbitMQNonAuthenticatedStateTest.java         |  2 +-
 .../rabbitmq/RabbitMQPartialFetchTest.java         |  2 +-
 .../imapmailbox/rabbitmq/RabbitMQQuotaTest.java    |  2 +-
 .../imapmailbox/rabbitmq/RabbitMQRenameTest.java   |  2 +-
 .../imapmailbox/rabbitmq/RabbitMQSearchTest.java   |  2 +-
 .../imapmailbox/rabbitmq/RabbitMQSecurityTest.java |  2 +-
 .../imapmailbox/rabbitmq/RabbitMQSelectTest.java   |  2 +-
 .../rabbitmq/RabbitMQSelectedInboxTest.java        |  2 +-
 .../rabbitmq/RabbitMQSelectedStateTest.java        |  2 +-
 .../rabbitmq/RabbitMQUidSearchTest.java            |  2 +-
 .../rabbitmq/RabbitMQUserFlagsSupportTest.java     |  2 +-
 .../CassandraRecipientRewriteTableV6Test.java      | 16 +++--------
 .../CassandraRecipientRewriteTableV7Test.java      |  2 +-
 .../james/rrt/cassandra/CassandraStepdefs.java     |  7 ++++-
 .../james/rrt/cassandra/RewriteTablesTest.java     |  4 ---
 80 files changed, 123 insertions(+), 200 deletions(-)

diff --git 
a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraRestartRule.java
 
b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraRestartRule.java
deleted file mode 100644
index 2c313cb..0000000
--- 
a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraRestartRule.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.backends.cassandra;
-
-import org.junit.rules.ExternalResource;
-
-public class DockerCassandraRestartRule extends ExternalResource {
-    @Override
-    protected void before() {
-        DockerCassandraSingleton.incrementTestsPlayed();
-        DockerCassandraSingleton.restartAfterMaxTestsPlayed();
-    }
-}
diff --git 
a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraRule.java
 
b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraRule.java
index 37bad5d..e213125 100644
--- 
a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraRule.java
+++ 
b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraRule.java
@@ -28,6 +28,13 @@ import org.testcontainers.containers.GenericContainer;
 
 public class DockerCassandraRule implements TestRule {
 
+    private boolean allowRestart = false;
+
+    public DockerCassandraRule allowRestart() {
+        allowRestart = true;
+        return this;
+    }
+
     @Override
     public Statement apply(Statement base, Description description) {
         return base;
@@ -35,6 +42,10 @@ public class DockerCassandraRule implements TestRule {
 
     public void start() {
         DockerCassandraSingleton.singleton.start();
+        DockerCassandraSingleton.incrementTestsPlayed();
+        if (allowRestart) {
+            DockerCassandraSingleton.restartAfterMaxTestsPlayed();
+        }
     }
 
     public void stop() {
diff --git 
a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerRabbitMQTestRule.java
 
b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerRabbitMQTestRule.java
index a0d996e..1e8a2a5 100644
--- 
a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerRabbitMQTestRule.java
+++ 
b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/DockerRabbitMQTestRule.java
@@ -18,21 +18,48 @@
  ****************************************************************/
 package org.apache.james.backend.rabbitmq;
 
+import static 
org.apache.james.backend.rabbitmq.RabbitMQFixture.DEFAULT_MANAGEMENT_CREDENTIAL;
+
 import org.junit.rules.ExternalResource;
 
+import com.github.fge.lambdas.runnable.ThrowingRunnable;
+
 public class DockerRabbitMQTestRule extends ExternalResource {
 
     private DockerRabbitMQ dockerRabbitMQ;
 
+    public DockerRabbitMQTestRule() {
+        dockerRabbitMQ = DockerRabbitMQSingleton.SINGLETON;
+    }
+
     @Override
     protected void before() throws Throwable {
-        dockerRabbitMQ = DockerRabbitMQ.withoutCookie();
         dockerRabbitMQ.start();
     }
 
     @Override
     protected void after() {
-        dockerRabbitMQ.stop();
+        performQuietly(() -> {
+            RabbitMQManagementAPI managementAPI = managementAPI();
+            managementAPI.listQueues()
+                .forEach(queue -> managementAPI.deleteQueue("/", 
queue.getName()));
+        });
+    }
+
+    private void performQuietly(ThrowingRunnable runnable) {
+        try {
+            runnable.run();
+        } catch (Exception e){
+            // ignore
+        }
+    }
+
+    private RabbitMQManagementAPI managementAPI() throws Exception {
+        return RabbitMQManagementAPI.from(RabbitMQConfiguration.builder()
+            .amqpUri(dockerRabbitMQ.amqpUri())
+            .managementUri(dockerRabbitMQ.managementUri())
+            .managementCredentials(DEFAULT_MANAGEMENT_CREDENTIAL)
+            .build());
     }
 
     public DockerRabbitMQ getDockerRabbitMQ() {
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraCombinationManagerTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraCombinationManagerTest.java
index 76e76b2..8860dd0 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraCombinationManagerTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraCombinationManagerTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.mailbox.cassandra.mail.MailboxAggregateModule;
 import org.apache.james.mailbox.events.InVMEventBus;
@@ -35,10 +34,7 @@ import org.junit.Rule;
 
 public class CassandraCombinationManagerTest extends 
AbstractCombinationManagerTest {
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerStressTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerStressTest.java
index 2d57821..22aa276 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerStressTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerStressTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.mailbox.MailboxManagerStressTest;
 import org.apache.james.mailbox.cassandra.mail.MailboxAggregateModule;
@@ -32,10 +31,7 @@ import org.junit.Rule;
 
 public class CassandraMailboxManagerStressTest extends 
MailboxManagerStressTest<CassandraMailboxManager> {
     
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
     
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerQuotaTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerQuotaTest.java
index 88d5aa1..720855f 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerQuotaTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerQuotaTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.mailbox.cassandra.mail.MailboxAggregateModule;
 import org.apache.james.mailbox.quota.CurrentQuotaManager;
@@ -35,10 +34,7 @@ import org.junit.Rule;
 
 public class CassandraMessageIdManagerQuotaTest extends 
AbstractMessageIdManagerQuotaTest {
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerSideEffectTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerSideEffectTest.java
index 8b866cc..8536d80 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerSideEffectTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerSideEffectTest.java
@@ -22,7 +22,6 @@ package org.apache.james.mailbox.cassandra;
 import java.util.Set;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.mailbox.cassandra.mail.MailboxAggregateModule;
 import org.apache.james.mailbox.events.EventBus;
@@ -36,10 +35,7 @@ import org.junit.Rule;
 
 public class CassandraMessageIdManagerSideEffectTest extends 
AbstractMessageIdManagerSideEffectTest {
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerStorageTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerStorageTest.java
index c8d34b9..0b7d71c 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerStorageTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerStorageTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.mailbox.cassandra.mail.MailboxAggregateModule;
 import org.apache.james.mailbox.events.InVMEventBus;
@@ -36,10 +35,7 @@ import org.junit.Rule;
 
 public class CassandraMessageIdManagerStorageTest extends 
AbstractMessageIdManagerStorageTest {
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
index ef1ba58..94ae036 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import 
org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
 import org.apache.james.backends.cassandra.utils.CassandraUtils;
@@ -57,10 +56,7 @@ import org.junit.Rule;
  */
 public class CassandraSubscriptionManagerTest extends 
AbstractSubscriptionManagerTest {
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapperTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapperTest.java
index 707cbd9..66eba02 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapperTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapperTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra.mail;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.mailbox.cassandra.ids.CassandraId;
 import org.apache.james.mailbox.cassandra.mail.utils.GuiceUtils;
@@ -34,10 +33,7 @@ import org.junit.Rule;
 
 public class CassandraAnnotationMapperTest extends AnnotationMapperTest {
     
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java
index 8b9aadf..8e6eebd 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra.mail;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.components.CassandraModule;
 import org.apache.james.blob.cassandra.CassandraBlobModule;
@@ -41,10 +40,7 @@ public class CassandraAttachmentMapperTest extends 
AttachmentMapperTest {
         CassandraAttachmentModule.MODULE,
         CassandraBlobModule.MODULE);
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraGenericMailboxMapperTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraGenericMailboxMapperTest.java
index 225b70d..c61a98a 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraGenericMailboxMapperTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraGenericMailboxMapperTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra.mail;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.components.CassandraModule;
 import 
org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule;
@@ -46,10 +45,7 @@ public class CassandraGenericMailboxMapperTest extends 
MailboxMapperTest {
         CassandraModSeqModule.MODULE,
         CassandraUidModule.MODULE);
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
index 83ec763..3670730 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
@@ -23,7 +23,6 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
@@ -57,10 +56,7 @@ import org.junit.Rule;
 
 public class CassandraMailboxManagerAttachmentTest extends 
AbstractMailboxManagerAttachmentTest {
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperAclTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperAclTest.java
index ebe656c..3337e99 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperAclTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperAclTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra.mail;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.components.CassandraModule;
 import 
org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule;
@@ -42,10 +41,7 @@ public class CassandraMailboxMapperAclTest extends 
MailboxMapperACLTest {
         CassandraAclModule.MODULE,
         CassandraMailboxModule.MODULE);
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java
index 14cc1b1..ff0f610 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java
@@ -26,7 +26,6 @@ import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.components.CassandraModule;
 import 
org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
@@ -65,10 +64,7 @@ public class CassandraMailboxMapperTest {
         CassandraSchemaVersionModule.MODULE,
         CassandraAclModule.MODULE);
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
index 5be9589..7222793 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
@@ -24,7 +24,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 import java.util.List;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import 
org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
 import org.apache.james.mailbox.MailboxSession;
@@ -47,10 +46,7 @@ public class CassandraMessageIdMapperTest extends 
MessageIdMapperTest {
 
     private static final MailboxSession MAILBOX_SESSION = 
MailboxSessionUtil.create("benwa");
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperTest.java
index 8ca8887..948078d 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra.mail;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.mailbox.store.mail.model.MapperProvider;
 import org.apache.james.mailbox.store.mail.model.MessageMapperTest;
@@ -30,10 +29,7 @@ import org.junit.Rule;
 
 public class CassandraMessageMapperTest extends MessageMapperTest {
     
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMoveTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMoveTest.java
index 3feecad..1b54998 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMoveTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMoveTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra.mail;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.mailbox.store.mail.model.MapperProvider;
 import org.apache.james.mailbox.store.mail.model.MessageMoveTest;
@@ -30,10 +29,7 @@ import org.junit.Rule;
 
 public class CassandraMessageMoveTest extends MessageMoveTest {
     
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageWithAttachmentMapperTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageWithAttachmentMapperTest.java
index 84a6f77..cc3b797 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageWithAttachmentMapperTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageWithAttachmentMapperTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra.mail;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.mailbox.store.mail.model.MapperProvider;
 import 
org.apache.james.mailbox.store.mail.model.MessageWithAttachmentMapperTest;
@@ -30,10 +29,7 @@ import org.junit.Rule;
 
 public class CassandraMessageWithAttachmentMapperTest extends 
MessageWithAttachmentMapperTest {
     
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerTest.java
index a6057b6..f8e42c0 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra.quota;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.mailbox.cassandra.modules.CassandraQuotaModule;
 import org.apache.james.mailbox.store.quota.StoreCurrentQuotaManager;
@@ -31,10 +30,7 @@ import org.junit.Rule;
 
 public class CassandraCurrentQuotaManagerTest extends 
StoreCurrentQuotaManagerTest {
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java
index 18c5a2a..711b391 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra.quota;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.mailbox.cassandra.mail.utils.GuiceUtils;
 import org.apache.james.mailbox.cassandra.modules.CassandraQuotaModule;
@@ -33,10 +32,7 @@ import org.junit.Rule;
 
 public class CassandraPerUserMaxQuotaManagerTest extends 
GenericMaxQuotaManagerTest {
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapperTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapperTest.java
index 6eaf377..681ec3a 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapperTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapperTest.java
@@ -19,7 +19,6 @@
 package org.apache.james.mailbox.cassandra.user;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRestartRule;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.utils.CassandraUtils;
 import org.apache.james.mailbox.cassandra.modules.CassandraSubscriptionModule;
@@ -31,10 +30,7 @@ import org.junit.Rule;
 
 public class CassandraSubscriptionMapperTest extends SubscriptionMapperTest {
 
-    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
-
-    @Rule
-    public DockerCassandraRestartRule cassandraRestartRule = new 
DockerCassandraRestartRule();
+    @Rule public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     private CassandraCluster cassandra;
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraAuthenticatePlainTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraAuthenticatePlainTest.java
index 51412d4..c0efd9c 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraAuthenticatePlainTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraAuthenticatePlainTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraAuthenticatePlainTest extends AuthenticatePlain {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraAuthenticatedStateTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraAuthenticatedStateTest.java
index 4b4e45d..9011297 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraAuthenticatedStateTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraAuthenticatedStateTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraAuthenticatedStateTest extends AuthenticatedState {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraConcurrentSessionsTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraConcurrentSessionsTest.java
index 512dea9..74f83ff 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraConcurrentSessionsTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraConcurrentSessionsTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraConcurrentSessionsTest extends ConcurrentSessions {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraCondstoreTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraCondstoreTest.java
index d014d82..276ae22 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraCondstoreTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraCondstoreTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraCondstoreTest extends Condstore {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraCopyTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraCopyTest.java
index e6c2936..f6cc114 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraCopyTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraCopyTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraCopyTest extends Copy {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraEventsTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraEventsTest.java
index cf8aa8b..c76a5f3 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraEventsTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraEventsTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraEventsTest extends Events {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraExpungeTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraExpungeTest.java
index 3ad0ad2..556c49e 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraExpungeTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraExpungeTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraExpungeTest extends Expunge {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchBodySectionTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchBodySectionTest.java
index 1a218a7..bca8ed6 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchBodySectionTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchBodySectionTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraFetchBodySectionTest extends FetchBodySection {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchBodyStructureTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchBodyStructureTest.java
index b6a89cc..0a5878b 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchBodyStructureTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchBodyStructureTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraFetchBodyStructureTest extends FetchBodyStructure {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchHeadersTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchHeadersTest.java
index 522db8e..57b6248 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchHeadersTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchHeadersTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraFetchHeadersTest extends FetchHeaders {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchTest.java
index 1613dd9..8adfa3a 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraFetchTest extends Fetch {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraListingTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraListingTest.java
index 48f8b74..f163bfd 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraListingTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraListingTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraListingTest extends Listing {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraListingWithSharingTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraListingWithSharingTest.java
index fe50eac..aa3d61b 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraListingWithSharingTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraListingWithSharingTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraListingWithSharingTest extends ListingWithSharingTest {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMailboxAnnotationTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMailboxAnnotationTest.java
index 0b129c4..d8191f8 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMailboxAnnotationTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMailboxAnnotationTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraMailboxAnnotationTest extends MailboxAnnotation {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMailboxWithLongNameErrorTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMailboxWithLongNameErrorTest.java
index dcfec31..ae4ff99 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMailboxWithLongNameErrorTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMailboxWithLongNameErrorTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraMailboxWithLongNameErrorTest extends 
MailboxWithLongNameError {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMoveTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMoveTest.java
index eb04039..005928e 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMoveTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMoveTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraMoveTest extends Move {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraNonAuthenticatedStateTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraNonAuthenticatedStateTest.java
index 9d1b403..6024d38 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraNonAuthenticatedStateTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraNonAuthenticatedStateTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraNonAuthenticatedStateTest extends NonAuthenticatedState {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraPartialFetchTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraPartialFetchTest.java
index f9cf9ae..299127d 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraPartialFetchTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraPartialFetchTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraPartialFetchTest extends PartialFetch {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraQuotaTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraQuotaTest.java
index 4c68710..12d0d9f 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraQuotaTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraQuotaTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraQuotaTest extends QuotaTest {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraRenameTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraRenameTest.java
index 1765b6d..4ecfba3 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraRenameTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraRenameTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraRenameTest extends Rename {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSearchTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSearchTest.java
index ea90bef..b4b9212 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSearchTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSearchTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraSearchTest extends Search {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSecurityTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSecurityTest.java
index 83c547a..68be8ae 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSecurityTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSecurityTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraSecurityTest extends Security {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectTest.java
index e4ef67e..11afa50 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraSelectTest extends Select {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectedInboxTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectedInboxTest.java
index 3fbd813..f2856b4 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectedInboxTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectedInboxTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraSelectedInboxTest extends SelectedInbox {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectedStateTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectedStateTest.java
index c70689a..dac4c4f 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectedStateTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectedStateTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraSelectedStateTest extends SelectedState {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUidSearchOnIndexTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUidSearchOnIndexTest.java
index 4bc8c52..97218af 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUidSearchOnIndexTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUidSearchOnIndexTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraUidSearchOnIndexTest extends UidSearchOnIndex {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUidSearchTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUidSearchTest.java
index 1999547..1259c41 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUidSearchTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUidSearchTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraUidSearchTest extends UidSearch {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUserFlagsSupportTest.java
 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUserFlagsSupportTest.java
index aeea6ea..a04082b 100644
--- 
a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUserFlagsSupportTest.java
+++ 
b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUserFlagsSupportTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class CassandraUserFlagsSupportTest extends UserFlagsSupport {
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
     @Rule
     public CassandraHostSystemRule cassandraHostSystemRule = new 
CassandraHostSystemRule(cassandraServer);
 
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQAuthenticatePlainTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQAuthenticatePlainTest.java
index 2fbcbaa..71417b6 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQAuthenticatePlainTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQAuthenticatePlainTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQAuthenticatePlainTest extends AuthenticatePlain {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQAuthenticatedStateTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQAuthenticatedStateTest.java
index e4c3f2e..0e830e2 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQAuthenticatedStateTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQAuthenticatedStateTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQAuthenticatedStateTest extends AuthenticatedState {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQConcurrentSessionsTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQConcurrentSessionsTest.java
index 3ac695a..d3a259f 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQConcurrentSessionsTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQConcurrentSessionsTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQConcurrentSessionsTest extends ConcurrentSessions {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQCondstoreTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQCondstoreTest.java
index b1cf053..af8e899 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQCondstoreTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQCondstoreTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQCondstoreTest extends Condstore {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQCopyTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQCopyTest.java
index 6fb1a52..dd041b0 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQCopyTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQCopyTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQCopyTest extends Copy {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQEventsTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQEventsTest.java
index ec0983c..463789c 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQEventsTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQEventsTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQEventsTest extends Events {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchBodySectionTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchBodySectionTest.java
index a88e051..3e24b2b 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchBodySectionTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchBodySectionTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQFetchBodySectionTest extends FetchBodySection {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchBodyStructureTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchBodyStructureTest.java
index cd8ef2f..ad54345 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchBodyStructureTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchBodyStructureTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQFetchBodyStructureTest extends FetchBodyStructure {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchHeadersTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchHeadersTest.java
index e272753..72d7c9e 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchHeadersTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchHeadersTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQFetchHeadersTest extends FetchHeaders {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchTest.java
index 2a0ba42..62a32cb 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQFetchTest extends Fetch {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQListingTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQListingTest.java
index 914d661..035b7ec 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQListingTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQListingTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQListingTest extends Listing {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQListingWithSharingTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQListingWithSharingTest.java
index b88a92c..80f4f99 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQListingWithSharingTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQListingWithSharingTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQListingWithSharingTest extends ListingWithSharingTest {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMailboxAnnotationTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMailboxAnnotationTest.java
index 12e9375..a5bb24b 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMailboxAnnotationTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMailboxAnnotationTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQMailboxAnnotationTest extends MailboxAnnotation {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMailboxWithLongNameErrorTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMailboxWithLongNameErrorTest.java
index 249332e..f7cbb42 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMailboxWithLongNameErrorTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMailboxWithLongNameErrorTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQMailboxWithLongNameErrorTest extends 
MailboxWithLongNameError {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMoveTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMoveTest.java
index e97a761..428f024 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMoveTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMoveTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQMoveTest extends Move {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQNonAuthenticatedStateTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQNonAuthenticatedStateTest.java
index f9fe92d..8657056 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQNonAuthenticatedStateTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQNonAuthenticatedStateTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQNonAuthenticatedStateTest extends NonAuthenticatedState {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQPartialFetchTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQPartialFetchTest.java
index 7b5cdb4..75f4ba6 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQPartialFetchTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQPartialFetchTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQPartialFetchTest extends PartialFetch {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQQuotaTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQQuotaTest.java
index 866741a..9d94fd7 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQQuotaTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQQuotaTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQQuotaTest extends QuotaTest {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQRenameTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQRenameTest.java
index ea86a5b..ea705a8 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQRenameTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQRenameTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQRenameTest extends Rename {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSearchTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSearchTest.java
index e8dfe38..65132bd 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSearchTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSearchTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQSearchTest extends Search {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSecurityTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSecurityTest.java
index 059b1e6..519b3b4 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSecurityTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSecurityTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQSecurityTest extends Security {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectTest.java
index 87b6f46..2c68d5c 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQSelectTest extends Select {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectedInboxTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectedInboxTest.java
index 042b83f..cd169a6 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectedInboxTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectedInboxTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQSelectedInboxTest extends SelectedInbox {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectedStateTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectedStateTest.java
index fa29a49..409c2b5 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectedStateTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectedStateTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQSelectedStateTest extends SelectedState {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQUidSearchTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQUidSearchTest.java
index 4adc43e..a263a5f 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQUidSearchTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQUidSearchTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQUidSearchTest extends UidSearch {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQUserFlagsSupportTest.java
 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQUserFlagsSupportTest.java
index dcc6e09..e737707 100644
--- 
a/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQUserFlagsSupportTest.java
+++ 
b/mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQUserFlagsSupportTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 public class RabbitMQUserFlagsSupportTest extends UserFlagsSupport {
     @Rule
-    public static DockerRabbitMQTestRule rabbitMQRule = new 
DockerRabbitMQTestRule();
+    public DockerRabbitMQTestRule rabbitMQRule = new DockerRabbitMQTestRule();
 
     @Rule
     public RabbitMQEventBusHostSystemRule hostSystemRule = new 
RabbitMQEventBusHostSystemRule(rabbitMQRule);
diff --git 
a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableV6Test.java
 
b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableV6Test.java
index 66239fb..acab7bf 100644
--- 
a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableV6Test.java
+++ 
b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableV6Test.java
@@ -30,9 +30,7 @@ import 
org.apache.james.backends.cassandra.versions.SchemaVersion;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest;
 import org.junit.After;
-import org.junit.AfterClass;
 import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Rule;
 
 public class CassandraRecipientRewriteTableV6Test extends 
AbstractRecipientRewriteTableTest {
@@ -43,18 +41,14 @@ public class CassandraRecipientRewriteTableV6Test extends 
AbstractRecipientRewri
         CassandraSchemaVersionModule.MODULE);
 
     @Rule
-    public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
-    protected static CassandraCluster cassandra;
-
-    @BeforeClass
-    public static void setUpClass() {
-        cassandra = CassandraCluster.create(MODULE, cassandraServer.getHost());
-    }
+    protected CassandraCluster cassandra;
 
     @Override
     @Before
     public void setUp() throws Exception {
+        cassandra = CassandraCluster.create(MODULE, cassandraServer.getHost());
         super.setUp();
     }
 
@@ -63,10 +57,6 @@ public class CassandraRecipientRewriteTableV6Test extends 
AbstractRecipientRewri
     public void tearDown() throws Exception {
         super.tearDown();
         cassandra.clearTables();
-    }
-
-    @AfterClass
-    public static void tearDownClass() {
         cassandra.closeCluster();
     }
 
diff --git 
a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableV7Test.java
 
b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableV7Test.java
index 4e5e1b7..77af537 100644
--- 
a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableV7Test.java
+++ 
b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableV7Test.java
@@ -41,7 +41,7 @@ public class CassandraRecipientRewriteTableV7Test extends 
AbstractRecipientRewri
         CassandraSchemaVersionModule.MODULE);
 
     @Rule
-    public DockerCassandraRule cassandraServer = new DockerCassandraRule();
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
 
     protected CassandraCluster cassandra;
 
diff --git 
a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java
 
b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java
index e6eb0fd..73f4049 100644
--- 
a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java
+++ 
b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java
@@ -20,18 +20,23 @@ package org.apache.james.rrt.cassandra;
 
 import org.apache.commons.configuration.DefaultConfigurationBuilder;
 import org.apache.james.backends.cassandra.CassandraCluster;
+import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.components.CassandraModule;
 import org.apache.james.backends.cassandra.utils.CassandraUtils;
 import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionDAO;
 import 
org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.RewriteTablesStepdefs;
+import org.junit.Rule;
 
 import cucumber.api.java.After;
 import cucumber.api.java.Before;
 
 public class CassandraStepdefs {
 
+    @Rule
+    public DockerCassandraRule cassandraServer = new 
DockerCassandraRule().allowRestart();
+
     private CassandraCluster cassandra;
 
     private final RewriteTablesStepdefs mainStepdefs;
@@ -44,7 +49,7 @@ public class CassandraStepdefs {
     public void setup() throws Throwable {
         cassandra = CassandraCluster.create(
             CassandraModule.aggregateModules(CassandraRRTModule.MODULE, 
CassandraSchemaVersionModule.MODULE),
-            RewriteTablesTest.cassandraServer.getHost());
+            cassandraServer.getHost());
         mainStepdefs.rewriteTable = getRecipientRewriteTable();
     }
 
diff --git 
a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/RewriteTablesTest.java
 
b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/RewriteTablesTest.java
index 392ff7e..766ba86 100644
--- 
a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/RewriteTablesTest.java
+++ 
b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/RewriteTablesTest.java
@@ -18,8 +18,6 @@
  ****************************************************************/
 package org.apache.james.rrt.cassandra;
 
-import org.apache.james.backends.cassandra.DockerCassandraRule;
-import org.junit.ClassRule;
 import org.junit.runner.RunWith;
 
 import cucumber.api.CucumberOptions;
@@ -31,6 +29,4 @@ import cucumber.api.junit.Cucumber;
         glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.cassandra" }
     )
 public class RewriteTablesTest {
-    
-    @ClassRule public static DockerCassandraRule cassandraServer = new 
DockerCassandraRule();
 }


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