diff --git a/cassandra/example/src/test/java/example/springdata/cassandra/optimisticlocking/OptimisticPersonRepositoryTests.java b/cassandra/example/src/test/java/example/springdata/cassandra/optimisticlocking/OptimisticPersonRepositoryTests.java
index a8693beb..4266f036 100644
--- a/cassandra/example/src/test/java/example/springdata/cassandra/optimisticlocking/OptimisticPersonRepositoryTests.java
+++ b/cassandra/example/src/test/java/example/springdata/cassandra/optimisticlocking/OptimisticPersonRepositoryTests.java
@@ -17,6 +17,8 @@ package example.springdata.cassandra.optimisticlocking;
import static org.assertj.core.api.Assertions.*;
+import example.springdata.cassandra.util.CassandraKeyspace;
+
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -33,13 +35,14 @@ import org.springframework.data.cassandra.core.query.Criteria;
* @author Mark Paluch
*/
@SpringBootTest(classes = BasicConfiguration.class)
-public class OptimisticPersonRepositoryTests {
+@CassandraKeyspace
+class OptimisticPersonRepositoryTests {
@Autowired OptimisticPersonRepository repository;
@Autowired CassandraOperations operations;
@BeforeEach
- public void setUp() {
+ void setUp() {
repository.deleteAll();
}
@@ -48,7 +51,7 @@ public class OptimisticPersonRepositoryTests {
* and increment the version property.
*/
@Test
- public void insertShouldIncrementVersion() {
+ void insertShouldIncrementVersion() {
var person = new OptimisticPerson(42L, 0, "Walter White");
@@ -61,7 +64,7 @@ public class OptimisticPersonRepositoryTests {
* Modifying an existing object will update the last modified fields.
*/
@Test
- public void updateShouldDetectChangedEntity() {
+ void updateShouldDetectChangedEntity() {
var person = new OptimisticPerson(42L, 0, "Walter White");
@@ -85,7 +88,7 @@ public class OptimisticPersonRepositoryTests {
* statement through {@link CassandraOperations#update(Object, UpdateOptions)}.
*/
@Test
- public void updateUsingLightWeightTransactions() {
+ void updateUsingLightWeightTransactions() {
var person = new SimplePerson();
person.setId(42L);
diff --git a/cassandra/util/pom.xml b/cassandra/util/pom.xml
index fc88b10a..adf66b17 100644
--- a/cassandra/util/pom.xml
+++ b/cassandra/util/pom.xml
@@ -35,6 +35,11 @@
java-driver-core
+
+ org.awaitility
+ awaitility
+
+
diff --git a/cassandra/util/src/main/java/example/springdata/cassandra/util/CassandraExtension.java b/cassandra/util/src/main/java/example/springdata/cassandra/util/CassandraExtension.java
index 3b1a54ff..1023fc04 100644
--- a/cassandra/util/src/main/java/example/springdata/cassandra/util/CassandraExtension.java
+++ b/cassandra/util/src/main/java/example/springdata/cassandra/util/CassandraExtension.java
@@ -17,7 +17,9 @@ package example.springdata.cassandra.util;
import java.net.InetSocketAddress;
import java.util.Optional;
+import java.util.concurrent.Callable;
+import org.awaitility.Awaitility;
import org.junit.jupiter.api.extension.BeforeAllCallback;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.platform.commons.util.AnnotationUtils;
@@ -39,6 +41,8 @@ class CassandraExtension implements BeforeAllCallback {
private static final ExtensionContext.Namespace NAMESPACE = ExtensionContext.Namespace
.create(CassandraExtension.class);
+ private static CassandraContainer container;
+
@Override
public void beforeAll(ExtensionContext context) {
@@ -57,10 +61,22 @@ class CassandraExtension implements BeforeAllCallback {
keyspace.before();
+
+ Callable sessionFactory = () -> CqlSession.builder()
+ .addContactPoint(new InetSocketAddress(keyspace.host(), keyspace.port())).withLocalDatacenter("datacenter1")
+ .build();
+ Awaitility.await().ignoreExceptions().untilAsserted(() -> {
+
+ sessionFactory.call().close();
+ });
+
var session = store.getOrComputeIfAbsent(CqlSession.class, it -> {
- return CqlSession.builder().addContactPoint(new InetSocketAddress(keyspace.host(), keyspace.port()))
- .withLocalDatacenter("datacenter1").build();
+ try {
+ return sessionFactory.call();
+ } catch (Exception e) {
+ throw new IllegalStateException(e);
+ }
}, CqlSession.class);
session.execute(String.format("CREATE KEYSPACE IF NOT EXISTS %s \n"
@@ -78,7 +94,11 @@ class CassandraExtension implements BeforeAllCallback {
private CassandraContainer> runTestcontainer() {
- var container = new CassandraContainer<>(getCassandraDockerImageName());
+ if (container != null) {
+ return container;
+ }
+
+ container = new CassandraContainer<>(getCassandraDockerImageName());
container.withReuse(true);
container.start();
diff --git a/geode/pom.xml b/geode/pom.xml
index fe6bdea8..72e20edb 100755
--- a/geode/pom.xml
+++ b/geode/pom.xml
@@ -36,11 +36,6 @@
-
- org.awaitility
- awaitility
- 4.0.2
-
org.iq80.snappy
snappy
diff --git a/pom.xml b/pom.xml
index cf7430c3..373810c6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -111,6 +111,12 @@
spring-data-keyvalue
2.5.1-SNAPSHOT
+
+
+ org.awaitility
+ awaitility
+ 4.0.2
+