diff --git a/settings.gradle b/settings.gradle index 95db1ec585..2094448da0 100644 --- a/settings.gradle +++ b/settings.gradle @@ -130,7 +130,6 @@ include "spring-boot-project:spring-boot-sql" include "spring-boot-project:spring-boot-test" include "spring-boot-project:spring-boot-test-autoconfigure" include "spring-boot-project:spring-boot-testcontainers" -include "spring-boot-project:spring-boot-testcontainers-all" include "spring-boot-project:spring-boot-thymeleaf" include "spring-boot-project:spring-boot-tomcat" include "spring-boot-project:spring-boot-tools:spring-boot-antlib" diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index b1a7d53ead..86b6a170ba 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2124,7 +2124,6 @@ bom { "spring-boot-test", "spring-boot-test-autoconfigure", "spring-boot-testcontainers", - "spring-boot-testcontainers-all", "spring-boot-thymeleaf", "spring-boot-tomcat", "spring-boot-tracing", diff --git a/spring-boot-project/spring-boot-docs/build.gradle b/spring-boot-project/spring-boot-docs/build.gradle index 1d68fb7dbf..a829dd02a4 100644 --- a/spring-boot-project/spring-boot-docs/build.gradle +++ b/spring-boot-project/spring-boot-docs/build.gradle @@ -258,7 +258,7 @@ dependencies { implementation(project(path: ":spring-boot-project:spring-boot-security")) implementation(project(path: ":spring-boot-project:spring-boot-test")) implementation(project(path: ":spring-boot-project:spring-boot-test-autoconfigure")) - implementation(project(path: ":spring-boot-project:spring-boot-testcontainers-all")) + implementation(project(path: ":spring-boot-project:spring-boot-testcontainers")) implementation(project(path: ":spring-boot-project:spring-boot-tomcat")) implementation(project(path: ":spring-boot-project:spring-boot-tools:spring-boot-cli")) implementation(project(path: ":spring-boot-project:spring-boot-tools:spring-boot-loader-tools")) diff --git a/spring-boot-project/spring-boot-metrics/build.gradle b/spring-boot-project/spring-boot-metrics/build.gradle index e820e17a02..8c50d544a8 100644 --- a/spring-boot-project/spring-boot-metrics/build.gradle +++ b/spring-boot-project/spring-boot-metrics/build.gradle @@ -4,6 +4,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" } @@ -17,6 +18,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-opentelemetry")) + optional(project(":spring-boot-project:spring-boot-testcontainers")) optional("ch.qos.logback:logback-classic") optional("io.micrometer:micrometer-java21") optional("io.micrometer:micrometer-registry-appoptics") @@ -43,6 +45,11 @@ dependencies { optional("org.apache.kafka:kafka-streams") optional("org.apache.logging.log4j:log4j-core") optional("org.aspectj:aspectjweaver") + optional("org.testcontainers:grafana") + + dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker")) + dockerTestImplementation("io.rest-assured:rest-assured") + dockerTestImplementation("org.testcontainers:junit-jupiter") testFixturesImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) testImplementation(project(":spring-boot-project:spring-boot-test")) diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-metrics/src/dockerTest/java/org/springframework/boot/metrics/testcontainers/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java similarity index 98% rename from spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java rename to spring-boot-project/spring-boot-metrics/src/dockerTest/java/org/springframework/boot/metrics/testcontainers/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java index 827b6f0ce0..23629d5c64 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-metrics/src/dockerTest/java/org/springframework/boot/metrics/testcontainers/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.metrics.testcontainers.otlp; import java.time.Duration; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-metrics/src/dockerTest/java/org/springframework/boot/metrics/testcontainers/otlp/OpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java similarity index 98% rename from spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java rename to spring-boot-project/spring-boot-metrics/src/dockerTest/java/org/springframework/boot/metrics/testcontainers/otlp/OpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java index 3eca734aee..7977fd8bb7 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-metrics/src/dockerTest/java/org/springframework/boot/metrics/testcontainers/otlp/OpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.metrics.testcontainers.otlp; import java.time.Duration; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/resources/collector-config.yml b/spring-boot-project/spring-boot-metrics/src/dockerTest/resources/collector-config.yml similarity index 100% rename from spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/resources/collector-config.yml rename to spring-boot-project/spring-boot-metrics/src/dockerTest/resources/collector-config.yml diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-metrics/src/main/java/org/springframework/boot/metrics/testcontainers/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory.java similarity index 96% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-metrics/src/main/java/org/springframework/boot/metrics/testcontainers/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory.java index 330ea4082a..073c0ef604 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-metrics/src/main/java/org/springframework/boot/metrics/testcontainers/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.metrics.testcontainers.otlp; import org.testcontainers.grafana.LgtmStackContainer; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryMetricsContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-metrics/src/main/java/org/springframework/boot/metrics/testcontainers/otlp/OpenTelemetryMetricsContainerConnectionDetailsFactory.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryMetricsContainerConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-metrics/src/main/java/org/springframework/boot/metrics/testcontainers/otlp/OpenTelemetryMetricsContainerConnectionDetailsFactory.java index 214b33d631..a6b1896e14 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryMetricsContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-metrics/src/main/java/org/springframework/boot/metrics/testcontainers/otlp/OpenTelemetryMetricsContainerConnectionDetailsFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.metrics.testcontainers.otlp; import org.testcontainers.containers.Container; import org.testcontainers.containers.GenericContainer; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/package-info.java b/spring-boot-project/spring-boot-metrics/src/main/java/org/springframework/boot/metrics/testcontainers/otlp/package-info.java similarity index 82% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/package-info.java rename to spring-boot-project/spring-boot-metrics/src/main/java/org/springframework/boot/metrics/testcontainers/otlp/package-info.java index bb1953ab6a..83d16e7acc 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/package-info.java +++ b/spring-boot-project/spring-boot-metrics/src/main/java/org/springframework/boot/metrics/testcontainers/otlp/package-info.java @@ -15,6 +15,6 @@ */ /** - * Support for testcontainers OpenTelemetry service connections. + * Support for Testcontainers OpenTelemetry metrics service connections. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.metrics.testcontainers.otlp; diff --git a/spring-boot-project/spring-boot-metrics/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-metrics/src/main/resources/META-INF/spring.factories index 61962e77e3..8f7d162eaa 100644 --- a/spring-boot-project/spring-boot-metrics/src/main/resources/META-INF/spring.factories +++ b/spring-boot-project/spring-boot-metrics/src/main/resources/META-INF/spring.factories @@ -1,3 +1,8 @@ +# Connection Details Factories +org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\ +org.springframework.boot.metrics.testcontainers.otlp.GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory,\ +org.springframework.boot.metrics.testcontainers.otlp.OpenTelemetryMetricsContainerConnectionDetailsFactory + # Failure Analyzers org.springframework.boot.diagnostics.FailureAnalyzer=\ org.springframework.boot.metrics.ValidationFailureAnalyzer diff --git a/spring-boot-project/spring-boot-opentelemetry/build.gradle b/spring-boot-project/spring-boot-opentelemetry/build.gradle index 1dab0e6258..04e3ecdbd7 100644 --- a/spring-boot-project/spring-boot-opentelemetry/build.gradle +++ b/spring-boot-project/spring-boot-opentelemetry/build.gradle @@ -16,7 +16,12 @@ dependencies { optional(project(":spring-boot-project:spring-boot-autoconfigure")) optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure")) + optional(project(":spring-boot-project:spring-boot-testcontainers")) optional("io.opentelemetry:opentelemetry-exporter-otlp") + optional("org.testcontainers:grafana") + + dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker")) + dockerTestImplementation("org.testcontainers:junit-jupiter") 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/otlp/GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-opentelemetry/src/dockerTest/java/org/springframework/boot/opentelemetry/testcontainers/GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests.java rename to spring-boot-project/spring-boot-opentelemetry/src/dockerTest/java/org/springframework/boot/opentelemetry/testcontainers/GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests.java index fd05715711..70aa8f3e72 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-opentelemetry/src/dockerTest/java/org/springframework/boot/opentelemetry/testcontainers/GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.opentelemetry.testcontainers; import org.junit.jupiter.api.Test; import org.testcontainers.grafana.LgtmStackContainer; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-opentelemetry/src/dockerTest/java/org/springframework/boot/opentelemetry/testcontainers/OpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests.java similarity index 90% rename from spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests.java rename to spring-boot-project/spring-boot-opentelemetry/src/dockerTest/java/org/springframework/boot/opentelemetry/testcontainers/OpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests.java index 8db77fe53d..4891c1ffed 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-opentelemetry/src/dockerTest/java/org/springframework/boot/opentelemetry/testcontainers/OpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.opentelemetry.testcontainers; import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; @@ -24,10 +24,10 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.opentelemetry.actuate.autoconfigure.logging.OpenTelemetryLoggingConnectionDetails; +import org.springframework.boot.opentelemetry.actuate.autoconfigure.logging.OpenTelemetryLoggingExportAutoConfiguration; import org.springframework.boot.opentelemetry.actuate.autoconfigure.logging.Transport; import org.springframework.boot.testcontainers.service.connection.ServiceConnection; import org.springframework.boot.testsupport.container.TestImage; -import org.springframework.boot.tracing.autoconfigure.otlp.OtlpTracingAutoConfiguration; import org.springframework.context.annotation.Configuration; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; @@ -59,7 +59,7 @@ class OpenTelemetryLoggingContainerConnectionDetailsFactoryIntegrationTests { } @Configuration(proxyBeanMethods = false) - @ImportAutoConfiguration(OtlpTracingAutoConfiguration.class) + @ImportAutoConfiguration(OpenTelemetryLoggingExportAutoConfiguration.class) static class TestConfiguration { } diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-opentelemetry/src/main/java/org/springframework/boot/opentelemetry/testcontainers/GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactory.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-opentelemetry/src/main/java/org/springframework/boot/opentelemetry/testcontainers/GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactory.java index f7f4191235..3e37bb0e36 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-opentelemetry/src/main/java/org/springframework/boot/opentelemetry/testcontainers/GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.opentelemetry.testcontainers; import org.testcontainers.grafana.LgtmStackContainer; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryLoggingContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-opentelemetry/src/main/java/org/springframework/boot/opentelemetry/testcontainers/OpenTelemetryLoggingContainerConnectionDetailsFactory.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryLoggingContainerConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-opentelemetry/src/main/java/org/springframework/boot/opentelemetry/testcontainers/OpenTelemetryLoggingContainerConnectionDetailsFactory.java index 2055d06ac4..cf0cb89c74 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryLoggingContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-opentelemetry/src/main/java/org/springframework/boot/opentelemetry/testcontainers/OpenTelemetryLoggingContainerConnectionDetailsFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.opentelemetry.testcontainers; import org.testcontainers.containers.Container; import org.testcontainers.containers.GenericContainer; diff --git a/spring-boot-project/spring-boot-opentelemetry/src/main/java/org/springframework/boot/opentelemetry/testcontainers/package-info.java b/spring-boot-project/spring-boot-opentelemetry/src/main/java/org/springframework/boot/opentelemetry/testcontainers/package-info.java new file mode 100644 index 0000000000..ce7a045cfe --- /dev/null +++ b/spring-boot-project/spring-boot-opentelemetry/src/main/java/org/springframework/boot/opentelemetry/testcontainers/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2012-2025 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Support for Testcontainers OpenTelemetry logging service connections. + */ +package org.springframework.boot.opentelemetry.testcontainers; diff --git a/spring-boot-project/spring-boot-opentelemetry/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-opentelemetry/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000000..bc0547c4cf --- /dev/null +++ b/spring-boot-project/spring-boot-opentelemetry/src/main/resources/META-INF/spring.factories @@ -0,0 +1,4 @@ +# Connection Details Factories +org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\ +org.springframework.boot.opentelemetry.testcontainers.GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactory,\ +org.springframework.boot.opentelemetry.testcontainers.OpenTelemetryLoggingContainerConnectionDetailsFactory diff --git a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle index 9385325dc7..50fa5c54c5 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle @@ -23,7 +23,7 @@ dependencies { dockerTestImplementation(project(":spring-boot-project:spring-boot-data-mongodb")) dockerTestImplementation(project(":spring-boot-project:spring-boot-docker-compose")) dockerTestImplementation(project(":spring-boot-project:spring-boot-docker-compose-all")) - dockerTestImplementation(project(":spring-boot-project:spring-boot-testcontainers-all")) + dockerTestImplementation(project(":spring-boot-project:spring-boot-testcontainers")) dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker")) dockerTestImplementation(project(":spring-boot-project:spring-boot-tx")) dockerTestImplementation("com.zaxxer:HikariCP") @@ -134,7 +134,7 @@ dependencies { testImplementation(project(":spring-boot-project:spring-boot-gson")) testImplementation(project(":spring-boot-project:spring-boot-mustache")) testImplementation(project(":spring-boot-project:spring-boot-reactor")) - testImplementation(project(":spring-boot-project:spring-boot-testcontainers-all")) + testImplementation(project(":spring-boot-project:spring-boot-testcontainers")) testImplementation(project(":spring-boot-project:spring-boot-thymeleaf")) testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) testImplementation("ch.qos.logback:logback-classic") diff --git a/spring-boot-project/spring-boot-testcontainers-all/build.gradle b/spring-boot-project/spring-boot-testcontainers-all/build.gradle deleted file mode 100644 index 4441a1843e..0000000000 --- a/spring-boot-project/spring-boot-testcontainers-all/build.gradle +++ /dev/null @@ -1,49 +0,0 @@ -plugins { - id "java-library" - id "org.springframework.boot.deployed" - id "org.springframework.boot.docker-test" - id "org.springframework.boot.optional-dependencies" -} - -description = "Spring Boot Testcontainers Support All" - -dependencies { - api(project(":spring-boot-project:spring-boot-autoconfigure")) - api(project(":spring-boot-project:spring-boot-testcontainers")) - - 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-tx")) - dockerTestImplementation(testFixtures(project(":spring-boot-project:spring-boot-testcontainers"))) - dockerTestImplementation("ch.qos.logback:logback-classic") - dockerTestImplementation("io.micrometer:micrometer-registry-otlp") - dockerTestImplementation("io.rest-assured:rest-assured") - dockerTestImplementation("org.assertj:assertj-core") - dockerTestImplementation("org.awaitility:awaitility") - dockerTestImplementation("org.junit.jupiter:junit-jupiter") - dockerTestImplementation("org.junit.platform:junit-platform-launcher") - dockerTestImplementation("org.mockito:mockito-core") - dockerTestImplementation("org.springframework:spring-core-test") - dockerTestImplementation("org.testcontainers:junit-jupiter") - - optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure-all")) - optional(project(":spring-boot-project:spring-boot-metrics")) - optional(project(":spring-boot-project:spring-boot-opentelemetry")) - optional(project(":spring-boot-project:spring-boot-tracing")) - optional(project(":spring-boot-project:spring-boot-tx")) - optional(project(":spring-boot-project:spring-boot-zipkin")) - optional("org.springframework:spring-test") - optional("org.testcontainers:grafana") - - 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-testcontainers"))) - testImplementation("org.springframework:spring-jdbc") - testImplementation("org.testcontainers:junit-jupiter") -} - -javadoc.enabled = false - -dockerTest { - jvmArgs += "--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" -} diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/resources/logback-test.xml b/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/resources/logback-test.xml deleted file mode 100644 index b8a41480d7..0000000000 --- a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/resources/logback-test.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/resources/spring.properties b/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/resources/spring.properties deleted file mode 100644 index 47dff33f0b..0000000000 --- a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/resources/spring.properties +++ /dev/null @@ -1 +0,0 @@ -spring.test.context.cache.maxSize=1 \ No newline at end of file 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 deleted file mode 100644 index 2e63be736a..0000000000 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/resources/META-INF/spring.factories +++ /dev/null @@ -1,8 +0,0 @@ -# Connection Details Factories -org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\ -org.springframework.boot.testcontainers.service.connection.otlp.GrafanaOpenTelemetryLoggingContainerConnectionDetailsFactory,\ -org.springframework.boot.testcontainers.service.connection.otlp.GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory,\ -org.springframework.boot.testcontainers.service.connection.otlp.GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory,\ -org.springframework.boot.testcontainers.service.connection.otlp.OpenTelemetryLoggingContainerConnectionDetailsFactory,\ -org.springframework.boot.testcontainers.service.connection.otlp.OpenTelemetryMetricsContainerConnectionDetailsFactory,\ -org.springframework.boot.testcontainers.service.connection.otlp.OpenTelemetryTracingContainerConnectionDetailsFactory \ No newline at end of file diff --git a/spring-boot-project/spring-boot-tracing/build.gradle b/spring-boot-project/spring-boot-tracing/build.gradle index 0ebaaaa255..0d8c079599 100644 --- a/spring-boot-project/spring-boot-tracing/build.gradle +++ b/spring-boot-project/spring-boot-tracing/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" } @@ -18,6 +19,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-metrics")) + optional(project(":spring-boot-project:spring-boot-testcontainers")) optional("io.micrometer:micrometer-core") optional("io.micrometer:micrometer-tracing-bridge-brave") optional("io.micrometer:micrometer-tracing-bridge-otel") @@ -27,6 +29,10 @@ dependencies { optional("io.zipkin.reporter2:zipkin-reporter-brave") optional("org.aspectj:aspectjweaver") optional("org.junit.platform:junit-platform-launcher") + optional("org.testcontainers:grafana") + + dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker")) + dockerTestImplementation("org.testcontainers:junit-jupiter") testImplementation(project(":spring-boot-project:spring-boot-opentelemetry")) testImplementation(project(":spring-boot-project:spring-boot-test")) diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-tracing/src/dockerTest/java/org/springframework/boot/tracing/testcontainers/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java rename to spring-boot-project/spring-boot-tracing/src/dockerTest/java/org/springframework/boot/tracing/testcontainers/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java index 08cb8d1037..c244fc1c34 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-tracing/src/dockerTest/java/org/springframework/boot/tracing/testcontainers/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.tracing.testcontainers.otlp; import org.junit.jupiter.api.Test; import org.testcontainers.grafana.LgtmStackContainer; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-tracing/src/dockerTest/java/org/springframework/boot/tracing/testcontainers/otlp/OpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java rename to spring-boot-project/spring-boot-tracing/src/dockerTest/java/org/springframework/boot/tracing/testcontainers/otlp/OpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java index c95713d0dd..06399fe367 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-tracing/src/dockerTest/java/org/springframework/boot/tracing/testcontainers/otlp/OpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.tracing.testcontainers.otlp; import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-tracing/src/main/java/org/springframework/boot/tracing/testcontainers/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-tracing/src/main/java/org/springframework/boot/tracing/testcontainers/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory.java index 960e5b32e3..0f6d5bc311 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-tracing/src/main/java/org/springframework/boot/tracing/testcontainers/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.tracing.testcontainers.otlp; import org.testcontainers.grafana.LgtmStackContainer; diff --git a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryTracingContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-tracing/src/main/java/org/springframework/boot/tracing/testcontainers/otlp/OpenTelemetryTracingContainerConnectionDetailsFactory.java similarity index 97% rename from spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryTracingContainerConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-tracing/src/main/java/org/springframework/boot/tracing/testcontainers/otlp/OpenTelemetryTracingContainerConnectionDetailsFactory.java index d8ca876921..c403ba3794 100644 --- a/spring-boot-project/spring-boot-testcontainers-all/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/OpenTelemetryTracingContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-tracing/src/main/java/org/springframework/boot/tracing/testcontainers/otlp/OpenTelemetryTracingContainerConnectionDetailsFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.testcontainers.service.connection.otlp; +package org.springframework.boot.tracing.testcontainers.otlp; import org.testcontainers.containers.Container; import org.testcontainers.containers.GenericContainer; diff --git a/spring-boot-project/spring-boot-tracing/src/main/java/org/springframework/boot/tracing/testcontainers/otlp/package-info.java b/spring-boot-project/spring-boot-tracing/src/main/java/org/springframework/boot/tracing/testcontainers/otlp/package-info.java new file mode 100644 index 0000000000..133707976b --- /dev/null +++ b/spring-boot-project/spring-boot-tracing/src/main/java/org/springframework/boot/tracing/testcontainers/otlp/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2012-2025 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Support for Testcontainers OpenTelemetry tracing service connections. + */ +package org.springframework.boot.tracing.testcontainers.otlp; diff --git a/spring-boot-project/spring-boot-tracing/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-tracing/src/main/resources/META-INF/spring.factories index cee51be9cb..ba1aa27ae0 100644 --- a/spring-boot-project/spring-boot-tracing/src/main/resources/META-INF/spring.factories +++ b/spring-boot-project/spring-boot-tracing/src/main/resources/META-INF/spring.factories @@ -1,7 +1,13 @@ -# Environment Post Processors -org.springframework.boot.env.EnvironmentPostProcessor=\ -org.springframework.boot.tracing.autoconfigure.LogCorrelationEnvironmentPostProcessor +# Connection Details Factories +org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\ +org.springframework.boot.tracing.testcontainers.otlp.GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory,\ +org.springframework.boot.tracing.testcontainers.otlp.OpenTelemetryTracingContainerConnectionDetailsFactory # Application Listeners org.springframework.context.ApplicationListener=\ org.springframework.boot.tracing.autoconfigure.OpenTelemetryEventPublisherBeansApplicationListener + +# Environment Post Processors +org.springframework.boot.env.EnvironmentPostProcessor=\ +org.springframework.boot.tracing.autoconfigure.LogCorrelationEnvironmentPostProcessor +