From dac8ed9eef1d37f0a6188dad915f308e1de6e88c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 19 May 2025 15:03:43 +0200 Subject: [PATCH] Move Cassandra testcontainers support into spring-boot-cassandra --- spring-boot-project/spring-boot-cassandra/build.gradle | 3 ++- .../CassandraContainerConnectionDetailsFactoryTests.java | 2 +- ...atedCassandraContainerConnectionDetailsFactoryTests.java | 2 +- .../src/dockerTest/resources/logback-test.xml | 4 ++++ .../src/dockerTest/resources/spring.properties | 1 + .../CassandraContainerConnectionDetailsFactory.java | 2 +- ...eprecatedCassandraContainerConnectionDetailsFactory.java | 2 +- .../boot/cassandra/testcontainers}/package-info.java | 2 +- .../src/main/resources/META-INF/spring.factories | 4 ++++ .../spring-boot-testcontainers-all/build.gradle | 6 ------ .../src/main/resources/META-INF/spring.factories | 2 -- .../spring-boot-smoke-test-data-cassandra/build.gradle | 2 +- 12 files changed, 17 insertions(+), 15 deletions(-) rename spring-boot-project/{spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra => spring-boot-cassandra/src/dockerTest/java/org/springframework/boot/cassandra/testcontainers}/CassandraContainerConnectionDetailsFactoryTests.java (96%) rename spring-boot-project/{spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra => spring-boot-cassandra/src/dockerTest/java/org/springframework/boot/cassandra/testcontainers}/DeprecatedCassandraContainerConnectionDetailsFactoryTests.java (96%) create mode 100644 spring-boot-project/spring-boot-cassandra/src/dockerTest/resources/logback-test.xml create mode 100644 spring-boot-project/spring-boot-cassandra/src/dockerTest/resources/spring.properties rename spring-boot-project/{spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra => spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/testcontainers}/CassandraContainerConnectionDetailsFactory.java (97%) rename spring-boot-project/{spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra => spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/testcontainers}/DeprecatedCassandraContainerConnectionDetailsFactory.java (97%) rename spring-boot-project/{spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra => spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/testcontainers}/package-info.java (89%) create mode 100644 spring-boot-project/spring-boot-cassandra/src/main/resources/META-INF/spring.factories diff --git a/spring-boot-project/spring-boot-cassandra/build.gradle b/spring-boot-project/spring-boot-cassandra/build.gradle index 2f2a76178f..8b2b28439c 100644 --- a/spring-boot-project/spring-boot-cassandra/build.gradle +++ b/spring-boot-project/spring-boot-cassandra/build.gradle @@ -15,11 +15,12 @@ dependencies { optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure")) optional(project(":spring-boot-project:spring-boot-autoconfigure")) + optional(project(":spring-boot-project:spring-boot-testcontainers")) optional("io.projectreactor:reactor-core") + optional("org.testcontainers:cassandra") dockerTestImplementation(project(":spring-boot-project:spring-boot-test")) dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker")) - dockerTestImplementation("org.junit.jupiter:junit-jupiter") dockerTestImplementation("org.testcontainers:cassandra") dockerTestImplementation("org.testcontainers:junit-jupiter") diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactoryTests.java b/spring-boot-project/spring-boot-cassandra/src/dockerTest/java/org/springframework/boot/cassandra/testcontainers/CassandraContainerConnectionDetailsFactoryTests.java similarity index 96% rename from spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactoryTests.java rename to spring-boot-project/spring-boot-cassandra/src/dockerTest/java/org/springframework/boot/cassandra/testcontainers/CassandraContainerConnectionDetailsFactoryTests.java index 70dffc655e..b9d29bc7d3 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactoryTests.java +++ b/spring-boot-project/spring-boot-cassandra/src/dockerTest/java/org/springframework/boot/cassandra/testcontainers/CassandraContainerConnectionDetailsFactoryTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.cassandra; +package org.springframework.boot.cassandra.testcontainers; import com.datastax.oss.driver.api.core.CqlSession; import org.junit.jupiter.api.Test; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra/DeprecatedCassandraContainerConnectionDetailsFactoryTests.java b/spring-boot-project/spring-boot-cassandra/src/dockerTest/java/org/springframework/boot/cassandra/testcontainers/DeprecatedCassandraContainerConnectionDetailsFactoryTests.java similarity index 96% rename from spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra/DeprecatedCassandraContainerConnectionDetailsFactoryTests.java rename to spring-boot-project/spring-boot-cassandra/src/dockerTest/java/org/springframework/boot/cassandra/testcontainers/DeprecatedCassandraContainerConnectionDetailsFactoryTests.java index 7b795e4afa..4a2910b334 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra/DeprecatedCassandraContainerConnectionDetailsFactoryTests.java +++ b/spring-boot-project/spring-boot-cassandra/src/dockerTest/java/org/springframework/boot/cassandra/testcontainers/DeprecatedCassandraContainerConnectionDetailsFactoryTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.cassandra; +package org.springframework.boot.cassandra.testcontainers; import com.datastax.oss.driver.api.core.CqlSession; import org.junit.jupiter.api.Test; diff --git a/spring-boot-project/spring-boot-cassandra/src/dockerTest/resources/logback-test.xml b/spring-boot-project/spring-boot-cassandra/src/dockerTest/resources/logback-test.xml new file mode 100644 index 0000000000..b8a41480d7 --- /dev/null +++ b/spring-boot-project/spring-boot-cassandra/src/dockerTest/resources/logback-test.xml @@ -0,0 +1,4 @@ + + + + diff --git a/spring-boot-project/spring-boot-cassandra/src/dockerTest/resources/spring.properties b/spring-boot-project/spring-boot-cassandra/src/dockerTest/resources/spring.properties new file mode 100644 index 0000000000..47dff33f0b --- /dev/null +++ b/spring-boot-project/spring-boot-cassandra/src/dockerTest/resources/spring.properties @@ -0,0 +1 @@ +spring.test.context.cache.maxSize=1 \ No newline at end of file diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/testcontainers/CassandraContainerConnectionDetailsFactory.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/testcontainers/CassandraContainerConnectionDetailsFactory.java index 537bc4cc8e..2bca52c425 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/testcontainers/CassandraContainerConnectionDetailsFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.cassandra; +package org.springframework.boot.cassandra.testcontainers; import java.net.InetSocketAddress; import java.util.List; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/DeprecatedCassandraContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/testcontainers/DeprecatedCassandraContainerConnectionDetailsFactory.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/DeprecatedCassandraContainerConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/testcontainers/DeprecatedCassandraContainerConnectionDetailsFactory.java index 60cfcb3d60..b41a5390cd 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/DeprecatedCassandraContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/testcontainers/DeprecatedCassandraContainerConnectionDetailsFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.cassandra; +package org.springframework.boot.cassandra.testcontainers; import java.net.InetSocketAddress; import java.util.List; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/package-info.java b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/testcontainers/package-info.java similarity index 89% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/package-info.java rename to spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/testcontainers/package-info.java index 3414e7910a..c10f69aeb3 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/package-info.java +++ b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/testcontainers/package-info.java @@ -17,4 +17,4 @@ /** * Support for testcontainers Cassandra service connections. */ -package org.springframework.boot.testcontainers.service.connection.cassandra; +package org.springframework.boot.cassandra.testcontainers; diff --git a/spring-boot-project/spring-boot-cassandra/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-cassandra/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000000..409847c7ef --- /dev/null +++ b/spring-boot-project/spring-boot-cassandra/src/main/resources/META-INF/spring.factories @@ -0,0 +1,4 @@ +# Connection Details Factories +org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\ +org.springframework.boot.cassandra.testcontainers.CassandraContainerConnectionDetailsFactory,\ +org.springframework.boot.cassandra.testcontainers.DeprecatedCassandraContainerConnectionDetailsFactory diff --git a/spring-boot-project/spring-boot-testcontainers-all/build.gradle b/spring-boot-project/spring-boot-testcontainers-all/build.gradle index 08411eb110..e9fad94402 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/build.gradle +++ b/spring-boot-project/spring-boot-testcontainers-all/build.gradle @@ -11,7 +11,6 @@ dependencies { api(project(":spring-boot-project:spring-boot-autoconfigure")) api(project(":spring-boot-project:spring-boot-testcontainers")) - dockerTestImplementation(project(":spring-boot-project:spring-boot-cassandra")) dockerTestImplementation(project(":spring-boot-project:spring-boot-couchbase")) dockerTestImplementation(project(":spring-boot-project:spring-boot-flyway")) dockerTestImplementation(project(":spring-boot-project:spring-boot-jdbc")) @@ -28,9 +27,6 @@ dependencies { dockerTestImplementation("com.couchbase.client:java-client") dockerTestImplementation("io.micrometer:micrometer-registry-otlp") dockerTestImplementation("io.rest-assured:rest-assured") - dockerTestImplementation("org.apache.cassandra:java-driver-core") { - exclude group: "org.slf4j", module: "jcl-over-slf4j" - } dockerTestImplementation("org.assertj:assertj-core") dockerTestImplementation("org.awaitility:awaitility") dockerTestImplementation("org.junit.jupiter:junit-jupiter") @@ -54,7 +50,6 @@ dependencies { dockerTestRuntimeOnly("org.postgresql:postgresql") optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure-all")) - optional(project(":spring-boot-project:spring-boot-cassandra")) optional(project(":spring-boot-project:spring-boot-couchbase")) optional(project(":spring-boot-project:spring-boot-data-redis")) optional(project(":spring-boot-project:spring-boot-elasticsearch")) @@ -72,7 +67,6 @@ dependencies { optional("org.springframework:spring-test") optional("org.springframework.data:spring-data-mongodb") optional("org.springframework.data:spring-data-neo4j") - optional("org.testcontainers:cassandra") optional("org.testcontainers:clickhouse") optional("org.testcontainers:couchbase") optional("org.testcontainers:elasticsearch") diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-testcontainers-all/src/main/resources/META-INF/spring.factories index 42f8c879e2..332509600b 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/resources/META-INF/spring.factories +++ b/spring-boot-project/spring-boot-testcontainers-all/src/main/resources/META-INF/spring.factories @@ -1,7 +1,5 @@ # Connection Details Factories org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\ -org.springframework.boot.testcontainers.service.connection.cassandra.CassandraContainerConnectionDetailsFactory,\ -org.springframework.boot.testcontainers.service.connection.cassandra.DeprecatedCassandraContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.couchbase.CouchbaseContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.elasticsearch.ElasticsearchContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.flyway.FlywayContainerConnectionDetailsFactory,\ diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-cassandra/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-cassandra/build.gradle index 8f0f836f70..4a7f61e80b 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-cassandra/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-cassandra/build.gradle @@ -9,7 +9,7 @@ dependencies { dockerTestImplementation(project(":spring-boot-project:spring-boot-test")) dockerTestImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test")) dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker")) - dockerTestImplementation(project(":spring-boot-project:spring-boot-testcontainers-all")) + dockerTestImplementation(project(":spring-boot-project:spring-boot-testcontainers")) dockerTestImplementation("org.junit.jupiter:junit-jupiter") dockerTestImplementation("org.junit.platform:junit-platform-engine") dockerTestImplementation("org.junit.platform:junit-platform-launcher")