diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 79512fb199..a5361e5cb5 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -37,7 +37,6 @@ org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetri org.springframework.boot.actuate.autoconfigure.metrics.export.stackdriver.StackdriverMetricsExportAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.export.statsd.StatsdMetricsExportAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.jersey.JerseyServerMetricsAutoConfiguration -org.springframework.boot.actuate.autoconfigure.metrics.r2dbc.ConnectionPoolMetricsAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.task.TaskExecutorMetricsAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.web.jetty.JettyMetricsAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.web.tomcat.TomcatMetricsAutoConfiguration diff --git a/spring-boot-project/spring-boot-r2dbc/build.gradle b/spring-boot-project/spring-boot-r2dbc/build.gradle index d621282c6e..b7cc5d50dd 100644 --- a/spring-boot-project/spring-boot-r2dbc/build.gradle +++ b/spring-boot-project/spring-boot-r2dbc/build.gradle @@ -23,6 +23,7 @@ dependencies { optional(project(":spring-boot-project:spring-boot-autoconfigure")) optional(project(":spring-boot-project:spring-boot-docker-compose")) optional(project(":spring-boot-project:spring-boot-jdbc")) + optional(project(":spring-boot-project:spring-boot-metrics")) optional(project(":spring-boot-project:spring-boot-testcontainers")) optional("io.micrometer:micrometer-core") optional("io.r2dbc:r2dbc-pool") diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/r2dbc/ConnectionPoolMetricsAutoConfiguration.java b/spring-boot-project/spring-boot-r2dbc/src/main/java/org/springframework/boot/r2dbc/actuate/metrics/autoconfigure/ConnectionPoolMetricsAutoConfiguration.java similarity index 86% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/r2dbc/ConnectionPoolMetricsAutoConfiguration.java rename to spring-boot-project/spring-boot-r2dbc/src/main/java/org/springframework/boot/r2dbc/actuate/metrics/autoconfigure/ConnectionPoolMetricsAutoConfiguration.java index d223177141..5ba893cc8c 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/r2dbc/ConnectionPoolMetricsAutoConfiguration.java +++ b/spring-boot-project/spring-boot-r2dbc/src/main/java/org/springframework/boot/r2dbc/actuate/metrics/autoconfigure/ConnectionPoolMetricsAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.metrics.r2dbc; +package org.springframework.boot.r2dbc.actuate.metrics.autoconfigure; import io.micrometer.core.instrument.MeterRegistry; import io.micrometer.core.instrument.Tags; @@ -25,12 +25,10 @@ import io.r2dbc.spi.Wrapped; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.support.SimpleAutowireCandidateResolver; -import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration; import org.springframework.boot.r2dbc.actuate.metrics.ConnectionPoolMetrics; import org.springframework.boot.r2dbc.autoconfigure.R2dbcAutoConfiguration; @@ -40,10 +38,10 @@ import org.springframework.boot.r2dbc.autoconfigure.R2dbcAutoConfiguration; * * @author Tadaya Tsuyukubo * @author Stephane Nicoll - * @since 2.3.0 + * @since 4.0.0 */ -@AutoConfiguration(after = { MetricsAutoConfiguration.class, SimpleMetricsExportAutoConfiguration.class, - R2dbcAutoConfiguration.class }) +@AutoConfiguration(after = R2dbcAutoConfiguration.class, + afterName = "org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration") @ConditionalOnClass({ ConnectionPool.class, MeterRegistry.class }) @ConditionalOnBean({ ConnectionFactory.class, MeterRegistry.class }) public class ConnectionPoolMetricsAutoConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/r2dbc/package-info.java b/spring-boot-project/spring-boot-r2dbc/src/main/java/org/springframework/boot/r2dbc/actuate/metrics/autoconfigure/package-info.java similarity index 90% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/r2dbc/package-info.java rename to spring-boot-project/spring-boot-r2dbc/src/main/java/org/springframework/boot/r2dbc/actuate/metrics/autoconfigure/package-info.java index 1022d334da..2f52846818 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/r2dbc/package-info.java +++ b/spring-boot-project/spring-boot-r2dbc/src/main/java/org/springframework/boot/r2dbc/actuate/metrics/autoconfigure/package-info.java @@ -17,4 +17,4 @@ /** * Auto-configuration for R2DBC metrics. */ -package org.springframework.boot.actuate.autoconfigure.metrics.r2dbc; +package org.springframework.boot.r2dbc.actuate.metrics.autoconfigure; diff --git a/spring-boot-project/spring-boot-r2dbc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-r2dbc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 62ad0924d8..a4b2ccc879 100644 --- a/spring-boot-project/spring-boot-r2dbc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-r2dbc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,3 +1,4 @@ +org.springframework.boot.r2dbc.actuate.metrics.autoconfigure.ConnectionPoolMetricsAutoConfiguration org.springframework.boot.r2dbc.autoconfigure.R2dbcAutoConfiguration org.springframework.boot.r2dbc.autoconfigure.R2dbcInitializationAutoConfiguration org.springframework.boot.r2dbc.autoconfigure.R2dbcProxyAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/r2dbc/ConnectionPoolMetricsAutoConfigurationTests.java b/spring-boot-project/spring-boot-r2dbc/src/test/java/org/springframework/boot/r2dbc/actuate/metrics/autoconfigure/ConnectionPoolMetricsAutoConfigurationTests.java similarity index 94% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/r2dbc/ConnectionPoolMetricsAutoConfigurationTests.java rename to spring-boot-project/spring-boot-r2dbc/src/test/java/org/springframework/boot/r2dbc/actuate/metrics/autoconfigure/ConnectionPoolMetricsAutoConfigurationTests.java index fde3ada6b2..a1e98cd6e6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/r2dbc/ConnectionPoolMetricsAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-r2dbc/src/test/java/org/springframework/boot/r2dbc/actuate/metrics/autoconfigure/ConnectionPoolMetricsAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.metrics.r2dbc; +package org.springframework.boot.r2dbc.actuate.metrics.autoconfigure; import java.util.Collections; import java.util.UUID; @@ -34,8 +34,8 @@ import io.r2dbc.spi.Wrapped; import org.junit.jupiter.api.Test; import org.reactivestreams.Publisher; -import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun; import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration; import org.springframework.boot.r2dbc.autoconfigure.R2dbcAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; @@ -52,10 +52,10 @@ import static org.assertj.core.api.Assertions.assertThat; class ConnectionPoolMetricsAutoConfigurationTests { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withPropertyValues("spring.r2dbc.generate-unique-name=true") - .with(MetricsRun.simple()) - .withConfiguration(AutoConfigurations.of(ConnectionPoolMetricsAutoConfiguration.class)) - .withUserConfiguration(BaseConfiguration.class); + .withPropertyValues("spring.r2dbc.generate-unique-name=true", "management.metrics.use-global-registry=false") + .withBean(SimpleMeterRegistry.class) + .withConfiguration( + AutoConfigurations.of(ConnectionPoolMetricsAutoConfiguration.class, MetricsAutoConfiguration.class)); @Test void autoConfiguredDataSourceIsInstrumented() {