This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit b93d959f497a2bac9520de6900268e1becf5d80a Author: Rene Cordier <rcord...@linagora.com> AuthorDate: Wed Apr 3 10:33:09 2019 +0700 JAMES-2721 Implement new Rules and Extension for docker cassandra restart strategy --- ...aSingleton.java => CassandraRestartExtension.java} | 19 ++++++++++--------- ...a => DockerCassandraIncrementTestsPlayedRule.java} | 17 +++++------------ ...Singleton.java => DockerCassandraRestartRule.java} | 17 +++++------------ .../backends/cassandra/DockerCassandraSingleton.java | 17 ++++++++++++++++- 4 files changed, 36 insertions(+), 34 deletions(-) diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraRestartExtension.java similarity index 69% copy from backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java copy to backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraRestartExtension.java index 98fc5fc..0d68c68 100644 --- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java +++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraRestartExtension.java @@ -19,18 +19,19 @@ package org.apache.james.backends.cassandra; -public class DockerCassandraSingleton { +import org.junit.jupiter.api.extension.BeforeAllCallback; +import org.junit.jupiter.api.extension.BeforeEachCallback; +import org.junit.jupiter.api.extension.ExtensionContext; - public static final DockerCassandra singleton = new DockerCassandra(); +public class CassandraRestartExtension implements BeforeAllCallback, BeforeEachCallback { - static { - singleton.start(); + @Override + public void beforeAll(ExtensionContext extensionContext) { + DockerCassandraSingleton.restartAfterMaxTestsPlayed(); } - public static void restart() { - singleton.stop(); - singleton.start(); + @Override + public void beforeEach(ExtensionContext extensionContext) { + DockerCassandraSingleton.incrementTestsPlayed(); } - - // Cleanup will be performed by test container resource reaper } diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraIncrementTestsPlayedRule.java similarity index 79% copy from backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java copy to backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraIncrementTestsPlayedRule.java index 98fc5fc..e8289dd 100644 --- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java +++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraIncrementTestsPlayedRule.java @@ -19,18 +19,11 @@ package org.apache.james.backends.cassandra; -public class DockerCassandraSingleton { +import org.junit.rules.ExternalResource; - public static final DockerCassandra singleton = new DockerCassandra(); - - static { - singleton.start(); - } - - public static void restart() { - singleton.stop(); - singleton.start(); +public class DockerCassandraIncrementTestsPlayedRule extends ExternalResource { + @Override + protected void before() { + DockerCassandraSingleton.incrementTestsPlayed(); } - - // Cleanup will be performed by test container resource reaper } diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraRestartRule.java similarity index 79% copy from backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java copy to backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraRestartRule.java index 98fc5fc..622f09c 100644 --- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java +++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraRestartRule.java @@ -19,18 +19,11 @@ package org.apache.james.backends.cassandra; -public class DockerCassandraSingleton { +import org.junit.rules.ExternalResource; - public static final DockerCassandra singleton = new DockerCassandra(); - - static { - singleton.start(); - } - - public static void restart() { - singleton.stop(); - singleton.start(); +public class DockerCassandraRestartRule extends ExternalResource { + @Override + protected void before() { + DockerCassandraSingleton.restartAfterMaxTestsPlayed(); } - - // Cleanup will be performed by test container resource reaper } diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java index 98fc5fc..2374b10 100644 --- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java +++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java @@ -20,6 +20,9 @@ package org.apache.james.backends.cassandra; public class DockerCassandraSingleton { + private static final int MAX_TEST_PLAYED = 200; + + private static int testsPlayedCount = 0; public static final DockerCassandra singleton = new DockerCassandra(); @@ -27,7 +30,19 @@ public class DockerCassandraSingleton { singleton.start(); } - public static void restart() { + public static void incrementTestsPlayed() { + testsPlayedCount += 1; + } + + // Call this method to ensure that cassandra is restarted every MAX_TEST_PLAYED tests + public static void restartAfterMaxTestsPlayed() { + if (testsPlayedCount > MAX_TEST_PLAYED) { + testsPlayedCount = 0; + restart(); + } + } + + private static void restart() { singleton.stop(); singleton.start(); } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org