From 9d531caa52ffb3244dc216d3281e4170332e5734 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 19 May 2025 15:35:58 +0200 Subject: [PATCH] Move JDBC testcontainers support into spring-boot-jdbc --- .../src/dockerTest/resources/logback-test.xml | 4 ++++ .../src/dockerTest/resources/spring.properties | 1 + spring-boot-project/spring-boot-jdbc/build.gradle | 8 ++++++++ .../JdbcContainerConnectionDetailsFactoryTests.java | 2 +- .../src/dockerTest/resources/logback-test.xml | 4 ++++ .../src/dockerTest/resources/spring.properties | 1 + .../JdbcContainerConnectionDetailsFactory.java | 2 +- .../boot/jdbc/testcontainers}/package-info.java | 2 +- .../src/main/resources/META-INF/spring.factories | 4 ++++ .../src/main/resources/META-INF/spring.factories | 1 - 10 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 spring-boot-project/spring-boot-amqp/src/dockerTest/resources/logback-test.xml create mode 100644 spring-boot-project/spring-boot-amqp/src/dockerTest/resources/spring.properties rename spring-boot-project/{spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/jdbc => spring-boot-jdbc/src/dockerTest/java/org/springframework/boot/jdbc/testcontainers}/JdbcContainerConnectionDetailsFactoryTests.java (97%) create mode 100644 spring-boot-project/spring-boot-jdbc/src/dockerTest/resources/logback-test.xml create mode 100644 spring-boot-project/spring-boot-jdbc/src/dockerTest/resources/spring.properties rename spring-boot-project/{spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/jdbc => spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/testcontainers}/JdbcContainerConnectionDetailsFactory.java (97%) rename spring-boot-project/{spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/jdbc => spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/testcontainers}/package-info.java (90%) diff --git a/spring-boot-project/spring-boot-amqp/src/dockerTest/resources/logback-test.xml b/spring-boot-project/spring-boot-amqp/src/dockerTest/resources/logback-test.xml new file mode 100644 index 0000000000..b8a41480d7 --- /dev/null +++ b/spring-boot-project/spring-boot-amqp/src/dockerTest/resources/logback-test.xml @@ -0,0 +1,4 @@ + + + + diff --git a/spring-boot-project/spring-boot-amqp/src/dockerTest/resources/spring.properties b/spring-boot-project/spring-boot-amqp/src/dockerTest/resources/spring.properties new file mode 100644 index 0000000000..47dff33f0b --- /dev/null +++ b/spring-boot-project/spring-boot-amqp/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-jdbc/build.gradle b/spring-boot-project/spring-boot-jdbc/build.gradle index 260cf843fe..cdfdd9001d 100644 --- a/spring-boot-project/spring-boot-jdbc/build.gradle +++ b/spring-boot-project/spring-boot-jdbc/build.gradle @@ -3,6 +3,7 @@ plugins { id "org.springframework.boot.auto-configuration" id "org.springframework.boot.configuration-properties" id "org.springframework.boot.deployed" + id "org.springframework.boot.docker-test" id "org.springframework.boot.optional-dependencies" } @@ -19,6 +20,7 @@ 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("com.h2database:h2") optional("com.mchange:c3p0") optional("com.oracle.database.jdbc:ojdbc11") @@ -30,8 +32,14 @@ dependencies { } optional("org.apache.tomcat:tomcat-jdbc") optional("org.postgresql:postgresql") + optional("org.testcontainers:jdbc") optional("org.vibur:vibur-dbcp") + dockerTestImplementation(project(":spring-boot-project:spring-boot-test")) + dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker")) + dockerTestImplementation("org.testcontainers:junit-jupiter") + dockerTestImplementation("org.testcontainers:postgresql") + testImplementation(project(":spring-boot-project:spring-boot-test")) testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) testImplementation(testFixtures(project(":spring-boot-project:spring-boot-autoconfigure"))) diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/jdbc/JdbcContainerConnectionDetailsFactoryTests.java b/spring-boot-project/spring-boot-jdbc/src/dockerTest/java/org/springframework/boot/jdbc/testcontainers/JdbcContainerConnectionDetailsFactoryTests.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/jdbc/JdbcContainerConnectionDetailsFactoryTests.java rename to spring-boot-project/spring-boot-jdbc/src/dockerTest/java/org/springframework/boot/jdbc/testcontainers/JdbcContainerConnectionDetailsFactoryTests.java index d7e521781b..af5a2da1ad 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/jdbc/JdbcContainerConnectionDetailsFactoryTests.java +++ b/spring-boot-project/spring-boot-jdbc/src/dockerTest/java/org/springframework/boot/jdbc/testcontainers/JdbcContainerConnectionDetailsFactoryTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.jdbc; +package org.springframework.boot.jdbc.testcontainers; import javax.sql.DataSource; diff --git a/spring-boot-project/spring-boot-jdbc/src/dockerTest/resources/logback-test.xml b/spring-boot-project/spring-boot-jdbc/src/dockerTest/resources/logback-test.xml new file mode 100644 index 0000000000..b8a41480d7 --- /dev/null +++ b/spring-boot-project/spring-boot-jdbc/src/dockerTest/resources/logback-test.xml @@ -0,0 +1,4 @@ + + + + diff --git a/spring-boot-project/spring-boot-jdbc/src/dockerTest/resources/spring.properties b/spring-boot-project/spring-boot-jdbc/src/dockerTest/resources/spring.properties new file mode 100644 index 0000000000..47dff33f0b --- /dev/null +++ b/spring-boot-project/spring-boot-jdbc/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/jdbc/JdbcContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/testcontainers/JdbcContainerConnectionDetailsFactory.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/jdbc/JdbcContainerConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/testcontainers/JdbcContainerConnectionDetailsFactory.java index 93f787779b..1a199f01a0 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/jdbc/JdbcContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/testcontainers/JdbcContainerConnectionDetailsFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.jdbc; +package org.springframework.boot.jdbc.testcontainers; import org.testcontainers.containers.JdbcDatabaseContainer; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/jdbc/package-info.java b/spring-boot-project/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/testcontainers/package-info.java similarity index 90% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/jdbc/package-info.java rename to spring-boot-project/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/testcontainers/package-info.java index 49e478c792..f5964b48fb 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/jdbc/package-info.java +++ b/spring-boot-project/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/testcontainers/package-info.java @@ -17,4 +17,4 @@ /** * Support for testcontainers JDBC service connections. */ -package org.springframework.boot.testcontainers.service.connection.jdbc; +package org.springframework.boot.jdbc.testcontainers; diff --git a/spring-boot-project/spring-boot-jdbc/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-jdbc/src/main/resources/META-INF/spring.factories index 5259f23cf2..8aa4cb6b38 100644 --- a/spring-boot-project/spring-boot-jdbc/src/main/resources/META-INF/spring.factories +++ b/spring-boot-project/spring-boot-jdbc/src/main/resources/META-INF/spring.factories @@ -3,6 +3,10 @@ org.springframework.boot.diagnostics.FailureAnalyzer=\ org.springframework.boot.jdbc.autoconfigure.DataSourceBeanCreationFailureAnalyzer,\ org.springframework.boot.jdbc.autoconfigure.HikariDriverConfigurationFailureAnalyzer +# Connection Details Factories +org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\ +org.springframework.boot.jdbc.testcontainers.JdbcContainerConnectionDetailsFactory + # Database Initializer Detectors org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector=\ org.springframework.boot.jdbc.init.DataSourceScriptDatabaseInitializerDetector 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 e706363ab3..89d68bab1c 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 @@ -2,7 +2,6 @@ org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\ org.springframework.boot.testcontainers.service.connection.flyway.FlywayContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.hazelcast.HazelcastContainerConnectionDetailsFactory,\ -org.springframework.boot.testcontainers.service.connection.jdbc.JdbcContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.kafka.ApacheKafkaContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.kafka.ConfluentKafkaContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.kafka.DeprecatedConfluentKafkaContainerConnectionDetailsFactory,\