Skip to content

Commit 7d0e531

Browse files
committed
Move R2DBC health and observation to spring-boot-r2dbc
1 parent 4c37686 commit 7d0e531

File tree

11 files changed

+40
-32
lines changed

11 files changed

+40
-32
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ dependencies {
4141
optional(project(":spring-boot-project:spring-boot-metrics"))
4242
optional(project(":spring-boot-project:spring-boot-micrometer-observation"))
4343
optional(project(":spring-boot-project:spring-boot-opentelemetry"))
44-
optional(project(":spring-boot-project:spring-boot-r2dbc"))
4544
optional(project(":spring-boot-project:spring-boot-restclient"))
4645
optional(project(":spring-boot-project:spring-boot-security-oauth2-client"))
4746
optional(project(":spring-boot-project:spring-boot-security-oauth2-resource-server"))
@@ -71,9 +70,6 @@ dependencies {
7170
optional("io.opentelemetry:opentelemetry-exporter-otlp")
7271
optional("io.projectreactor.netty:reactor-netty-http")
7372
optional("io.prometheus:prometheus-metrics-tracer-common")
74-
optional("io.r2dbc:r2dbc-pool")
75-
optional("io.r2dbc:r2dbc-proxy")
76-
optional("io.r2dbc:r2dbc-spi")
7773
optional("jakarta.persistence:jakarta.persistence-api")
7874
optional("jakarta.servlet:jakarta.servlet-api")
7975
optional("org.apache.activemq:activemq-broker")
@@ -119,7 +115,6 @@ dependencies {
119115
testImplementation("io.opentelemetry:opentelemetry-exporter-common")
120116
testImplementation("io.projectreactor:reactor-test")
121117
testImplementation("io.prometheus:prometheus-metrics-exposition-formats")
122-
testImplementation("io.r2dbc:r2dbc-h2")
123118
testImplementation("com.squareup.okhttp3:mockwebserver")
124119
testImplementation("jakarta.xml.bind:jakarta.xml.bind-api")
125120
testImplementation("org.apache.activemq:artemis-jakarta-client")

spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ org.springframework.boot.actuate.autoconfigure.metrics.task.TaskExecutorMetricsA
1818
org.springframework.boot.actuate.autoconfigure.observability.ObservabilityAutoConfiguration
1919
org.springframework.boot.actuate.autoconfigure.observation.web.reactive.WebFluxObservationAutoConfiguration
2020
org.springframework.boot.actuate.autoconfigure.observation.web.servlet.WebMvcObservationAutoConfiguration
21-
org.springframework.boot.actuate.autoconfigure.r2dbc.ConnectionFactoryHealthContributorAutoConfiguration
22-
org.springframework.boot.actuate.autoconfigure.r2dbc.R2dbcObservationAutoConfiguration
2321
org.springframework.boot.actuate.autoconfigure.sbom.SbomEndpointAutoConfiguration
2422
org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksEndpointAutoConfiguration
2523
org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksObservabilityAutoConfiguration

spring-boot-project/spring-boot-r2dbc/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,11 @@ dependencies {
1919

2020
compileOnly("com.fasterxml.jackson.core:jackson-annotations")
2121

22-
optional(project(":spring-boot-project:spring-boot-actuator"))
22+
optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure"))
2323
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
2424
optional(project(":spring-boot-project:spring-boot-docker-compose"))
2525
optional(project(":spring-boot-project:spring-boot-metrics"))
26+
optional(project(":spring-boot-project:spring-boot-micrometer-observation"))
2627
optional(project(":spring-boot-project:spring-boot-testcontainers"))
2728
optional("io.micrometer:micrometer-core")
2829
optional("io.r2dbc:r2dbc-pool")
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.r2dbc;
17+
package org.springframework.boot.r2dbc.actuate.health.autoconfigure;
1818

1919
import io.r2dbc.spi.ConnectionFactory;
2020

@@ -36,10 +36,10 @@
3636
* {@link ConnectionFactoryHealthIndicator}.
3737
*
3838
* @author Mark Paluch
39-
* @since 2.3.0
39+
* @since 4.0.0
4040
*/
4141
@AutoConfiguration(after = R2dbcAutoConfiguration.class)
42-
@ConditionalOnClass({ ConnectionFactory.class, ConnectionFactoryHealthIndicator.class })
42+
@ConditionalOnClass({ ConnectionFactory.class, ConditionalOnEnabledHealthIndicator.class })
4343
@ConditionalOnBean(ConnectionFactory.class)
4444
@ConditionalOnEnabledHealthIndicator("r2dbc")
4545
public class ConnectionFactoryHealthContributorAutoConfiguration
@@ -51,7 +51,7 @@ public class ConnectionFactoryHealthContributorAutoConfiguration
5151

5252
@Bean
5353
@ConditionalOnMissingBean(name = { "r2dbcHealthIndicator", "r2dbcHealthContributor" })
54-
public ReactiveHealthContributor r2dbcHealthContributor(ConfigurableListableBeanFactory beanFactory) {
54+
ReactiveHealthContributor r2dbcHealthContributor(ConfigurableListableBeanFactory beanFactory) {
5555
return createContributor(beanFactory, ConnectionFactory.class);
5656
}
5757

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright 2012-2025 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
/**
18+
* Auto-configuration for R2DBC health integration.
19+
*/
20+
package org.springframework.boot.r2dbc.actuate.health.autoconfigure;
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.r2dbc;
17+
package org.springframework.boot.r2dbc.autoconfigure.observation;
1818

1919
import io.micrometer.observation.ObservationRegistry;
2020
import io.r2dbc.proxy.ProxyConnectionFactory;
@@ -30,7 +30,6 @@
3030
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3131
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3232
import org.springframework.boot.context.properties.EnableConfigurationProperties;
33-
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration;
3433
import org.springframework.boot.r2dbc.OptionsCapableConnectionFactory;
3534
import org.springframework.boot.r2dbc.autoconfigure.ProxyConnectionFactoryCustomizer;
3635
import org.springframework.context.annotation.Bean;
@@ -41,16 +40,17 @@
4140
*
4241
* @author Moritz Halbritter
4342
* @author Tadaya Tsuyukubo
44-
* @since 3.2.0
43+
* @since 4.0.0
4544
*/
46-
@AutoConfiguration(after = ObservationAutoConfiguration.class)
47-
@ConditionalOnClass({ ConnectionFactory.class, ProxyConnectionFactory.class })
45+
@AutoConfiguration(
46+
afterName = "org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration")
47+
@ConditionalOnClass({ ConnectionFactory.class, ProxyConnectionFactory.class, ObservationRegistry.class })
48+
@ConditionalOnBean(ObservationRegistry.class)
4849
@EnableConfigurationProperties(R2dbcObservationProperties.class)
4950
public class R2dbcObservationAutoConfiguration {
5051

5152
/**
5253
* {@code @Order} value of the observation customizer.
53-
* @since 3.4.0
5454
*/
5555
public static final int R2DBC_PROXY_OBSERVATION_CUSTOMIZER_ORDER = 0;
5656

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.r2dbc;
17+
package org.springframework.boot.r2dbc.autoconfigure.observation;
1818

1919
import org.springframework.boot.context.properties.ConfigurationProperties;
2020

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@
1515
*/
1616

1717
/**
18-
* Auto-configuration for actuator R2DBC.
18+
* Auto-configuration for R2DBC observation.
1919
*/
20-
package org.springframework.boot.actuate.autoconfigure.r2dbc;
20+
package org.springframework.boot.r2dbc.autoconfigure.observation;
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
org.springframework.boot.r2dbc.metrics.autoconfigure.ConnectionPoolMetricsAutoConfiguration
1+
org.springframework.boot.r2dbc.actuate.health.autoconfigure.ConnectionFactoryHealthContributorAutoConfiguration
22
org.springframework.boot.r2dbc.autoconfigure.R2dbcAutoConfiguration
33
org.springframework.boot.r2dbc.autoconfigure.R2dbcInitializationAutoConfiguration
44
org.springframework.boot.r2dbc.autoconfigure.R2dbcProxyAutoConfiguration
55
org.springframework.boot.r2dbc.autoconfigure.R2dbcTransactionManagerAutoConfiguration
6+
org.springframework.boot.r2dbc.autoconfigure.observation.R2dbcObservationAutoConfiguration
7+
org.springframework.boot.r2dbc.metrics.autoconfigure.ConnectionPoolMetricsAutoConfiguration
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.r2dbc;
17+
package org.springframework.boot.r2dbc.actuate.health.autoconfigure;
1818

1919
import org.junit.jupiter.api.Test;
2020

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.r2dbc;
17+
package org.springframework.boot.r2dbc.autoconfigure.observation;
1818

1919
import java.util.UUID;
2020
import java.util.concurrent.atomic.AtomicReference;
@@ -28,9 +28,7 @@
2828
import org.junit.jupiter.api.Test;
2929
import reactor.core.publisher.Mono;
3030

31-
import org.springframework.boot.autoconfigure.AutoConfiguration;
3231
import org.springframework.boot.autoconfigure.AutoConfigurations;
33-
import org.springframework.boot.context.annotation.ImportCandidates;
3432
import org.springframework.boot.r2dbc.ConnectionFactoryBuilder;
3533
import org.springframework.boot.r2dbc.ConnectionFactoryDecorator;
3634
import org.springframework.boot.r2dbc.autoconfigure.ProxyConnectionFactoryCustomizer;
@@ -55,12 +53,6 @@ class R2dbcObservationAutoConfigurationTests {
5553
private final ApplicationContextRunner runner = this.runnerWithoutObservationRegistry
5654
.withBean(ObservationRegistry.class, ObservationRegistry::create);
5755

58-
@Test
59-
void shouldBeRegisteredInAutoConfigurationImports() {
60-
assertThat(ImportCandidates.load(AutoConfiguration.class, null).getCandidates())
61-
.contains(R2dbcObservationAutoConfiguration.class.getName());
62-
}
63-
6456
@Test
6557
void shouldNotSupplyBeansIfObservationRegistryIsNotPresent() {
6658
this.runnerWithoutObservationRegistry

0 commit comments

Comments
 (0)