From 5c0cda3f7ef60c7dc0664cc049f8c17a6aa7afa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 19 May 2025 15:19:07 +0200 Subject: [PATCH] Move Elasticsearch testcontainers support into spring-boot-elasticsearch --- spring-boot-project/spring-boot-elasticsearch/build.gradle | 3 ++- .../ElasticsearchContainerConnectionDetailsFactoryTests.java | 2 +- .../src/dockerTest/resources/logback-test.xml | 4 ++++ .../src/dockerTest/resources/spring.properties | 1 + .../ElasticsearchContainerConnectionDetailsFactory.java | 2 +- .../boot/elasticsearch/testcontainers}/package-info.java | 2 +- .../src/main/resources/META-INF/spring.factories | 3 +++ .../spring-boot-testcontainers-all/build.gradle | 3 --- .../src/main/resources/META-INF/spring.factories | 1 - .../spring-boot-smoke-test-data-elasticsearch/build.gradle | 2 +- 10 files changed, 14 insertions(+), 9 deletions(-) rename spring-boot-project/{spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/elasticsearch => spring-boot-elasticsearch/src/dockerTest/java/org/springframework/boot/elasticsearch/testcontainers}/ElasticsearchContainerConnectionDetailsFactoryTests.java (97%) create mode 100644 spring-boot-project/spring-boot-elasticsearch/src/dockerTest/resources/logback-test.xml create mode 100644 spring-boot-project/spring-boot-elasticsearch/src/dockerTest/resources/spring.properties rename spring-boot-project/{spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/elasticsearch => spring-boot-elasticsearch/src/main/java/org/springframework/boot/elasticsearch/testcontainers}/ElasticsearchContainerConnectionDetailsFactory.java (98%) rename spring-boot-project/{spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/elasticsearch => spring-boot-elasticsearch/src/main/java/org/springframework/boot/elasticsearch/testcontainers}/package-info.java (89%) create mode 100644 spring-boot-project/spring-boot-elasticsearch/src/main/resources/META-INF/spring.factories diff --git a/spring-boot-project/spring-boot-elasticsearch/build.gradle b/spring-boot-project/spring-boot-elasticsearch/build.gradle index 90854bd211..adc9e85ef9 100644 --- a/spring-boot-project/spring-boot-elasticsearch/build.gradle +++ b/spring-boot-project/spring-boot-elasticsearch/build.gradle @@ -17,6 +17,7 @@ dependencies { optional(project(":spring-boot-project:spring-boot-autoconfigure")) optional(project(":spring-boot-project:spring-boot-jsonb")) optional(project(":spring-boot-project:spring-boot-reactor")) + optional(project(":spring-boot-project:spring-boot-testcontainers")) optional("co.elastic.clients:elasticsearch-java") { exclude group: "commons-logging", module: "commons-logging" } @@ -28,13 +29,13 @@ dependencies { optional("org.springframework.data:spring-data-elasticsearch") { exclude group: "org.elasticsearch.client", module: "transport" } + optional("org.testcontainers:elasticsearch") dockerTestImplementation(project(":spring-boot-project:spring-boot-test")) dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker")) dockerTestImplementation(project(":spring-boot-project:spring-boot-jackson")) dockerTestImplementation("org.testcontainers:elasticsearch") dockerTestImplementation("org.testcontainers:junit-jupiter") - dockerTestImplementation("org.testcontainers:testcontainers") testImplementation(project(":spring-boot-project:spring-boot-test")) testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/elasticsearch/ElasticsearchContainerConnectionDetailsFactoryTests.java b/spring-boot-project/spring-boot-elasticsearch/src/dockerTest/java/org/springframework/boot/elasticsearch/testcontainers/ElasticsearchContainerConnectionDetailsFactoryTests.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/elasticsearch/ElasticsearchContainerConnectionDetailsFactoryTests.java rename to spring-boot-project/spring-boot-elasticsearch/src/dockerTest/java/org/springframework/boot/elasticsearch/testcontainers/ElasticsearchContainerConnectionDetailsFactoryTests.java index ca51ebf525..8dc684f655 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/elasticsearch/ElasticsearchContainerConnectionDetailsFactoryTests.java +++ b/spring-boot-project/spring-boot-elasticsearch/src/dockerTest/java/org/springframework/boot/elasticsearch/testcontainers/ElasticsearchContainerConnectionDetailsFactoryTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.elasticsearch; +package org.springframework.boot.elasticsearch.testcontainers; import java.io.IOException; import java.time.Duration; diff --git a/spring-boot-project/spring-boot-elasticsearch/src/dockerTest/resources/logback-test.xml b/spring-boot-project/spring-boot-elasticsearch/src/dockerTest/resources/logback-test.xml new file mode 100644 index 0000000000..b8a41480d7 --- /dev/null +++ b/spring-boot-project/spring-boot-elasticsearch/src/dockerTest/resources/logback-test.xml @@ -0,0 +1,4 @@ + + + + diff --git a/spring-boot-project/spring-boot-elasticsearch/src/dockerTest/resources/spring.properties b/spring-boot-project/spring-boot-elasticsearch/src/dockerTest/resources/spring.properties new file mode 100644 index 0000000000..47dff33f0b --- /dev/null +++ b/spring-boot-project/spring-boot-elasticsearch/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/elasticsearch/ElasticsearchContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-elasticsearch/src/main/java/org/springframework/boot/elasticsearch/testcontainers/ElasticsearchContainerConnectionDetailsFactory.java similarity index 98% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/elasticsearch/ElasticsearchContainerConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-elasticsearch/src/main/java/org/springframework/boot/elasticsearch/testcontainers/ElasticsearchContainerConnectionDetailsFactory.java index b14e8e59cf..7d09d2a7bc 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/elasticsearch/ElasticsearchContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-elasticsearch/src/main/java/org/springframework/boot/elasticsearch/testcontainers/ElasticsearchContainerConnectionDetailsFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.elasticsearch; +package org.springframework.boot.elasticsearch.testcontainers; import java.io.ByteArrayInputStream; import java.io.IOException; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/elasticsearch/package-info.java b/spring-boot-project/spring-boot-elasticsearch/src/main/java/org/springframework/boot/elasticsearch/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/elasticsearch/package-info.java rename to spring-boot-project/spring-boot-elasticsearch/src/main/java/org/springframework/boot/elasticsearch/testcontainers/package-info.java index 278f4da3e7..6694ee53cb 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/elasticsearch/package-info.java +++ b/spring-boot-project/spring-boot-elasticsearch/src/main/java/org/springframework/boot/elasticsearch/testcontainers/package-info.java @@ -17,4 +17,4 @@ /** * Support for testcontainers Elasticsearch service connections. */ -package org.springframework.boot.testcontainers.service.connection.elasticsearch; +package org.springframework.boot.elasticsearch.testcontainers; diff --git a/spring-boot-project/spring-boot-elasticsearch/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-elasticsearch/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000000..48dbcec7b9 --- /dev/null +++ b/spring-boot-project/spring-boot-elasticsearch/src/main/resources/META-INF/spring.factories @@ -0,0 +1,3 @@ +# Connection Details Factories +org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\ +org.springframework.boot.elasticsearch.testcontainers.ElasticsearchContainerConnectionDetailsFactory diff --git a/spring-boot-project/spring-boot-testcontainers-all/build.gradle b/spring-boot-project/spring-boot-testcontainers-all/build.gradle index cbbc21ce60..66b0609686 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/build.gradle +++ b/spring-boot-project/spring-boot-testcontainers-all/build.gradle @@ -22,7 +22,6 @@ dependencies { dockerTestImplementation(project(":spring-boot-project:spring-boot-tx")) dockerTestImplementation(testFixtures(project(":spring-boot-project:spring-boot-testcontainers"))) dockerTestImplementation("ch.qos.logback:logback-classic") - dockerTestImplementation("co.elastic.clients:elasticsearch-java") dockerTestImplementation("io.micrometer:micrometer-registry-otlp") dockerTestImplementation("io.rest-assured:rest-assured") dockerTestImplementation("org.assertj:assertj-core") @@ -49,7 +48,6 @@ dependencies { optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure-all")) optional(project(":spring-boot-project:spring-boot-data-redis")) - optional(project(":spring-boot-project:spring-boot-elasticsearch")) optional(project(":spring-boot-project:spring-boot-flyway")) optional(project(":spring-boot-project:spring-boot-hazelcast")) optional(project(":spring-boot-project:spring-boot-jdbc")) @@ -65,7 +63,6 @@ dependencies { optional("org.springframework.data:spring-data-mongodb") optional("org.springframework.data:spring-data-neo4j") optional("org.testcontainers:clickhouse") - optional("org.testcontainers:elasticsearch") optional("org.testcontainers:grafana") optional("org.testcontainers:jdbc") optional("org.testcontainers:kafka") 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 467ef88eb9..e706363ab3 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,6 +1,5 @@ # Connection Details Factories org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\ -org.springframework.boot.testcontainers.service.connection.elasticsearch.ElasticsearchContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.flyway.FlywayContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.hazelcast.HazelcastContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.jdbc.JdbcContainerConnectionDetailsFactory,\ diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-elasticsearch/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-elasticsearch/build.gradle index 3a4db11708..6a4f8f17a8 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-elasticsearch/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-elasticsearch/build.gradle @@ -10,7 +10,7 @@ dependencies { dockerTestImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test")) dockerTestImplementation(project(":spring-boot-project:spring-boot-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")