From 4299643d8d8d048ec780539b64fa6cb7b778a6e6 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 12 May 2025 12:19:02 +0100 Subject: [PATCH] Move code from spring-boot-actuator to spring-boot-http-client See gh-46118 --- .../web/client/RestClientObservationConfiguration.java | 4 ++-- .../web/client/RestTemplateObservationConfiguration.java | 4 ++-- .../web/client/RestClientObservationConfigurationTests.java | 2 +- .../web/client/RestTemplateObservationConfigurationTests.java | 2 +- spring-boot-project/spring-boot-http-client/build.gradle | 1 + .../actuate/observation}/ObservationRestClientCustomizer.java | 4 ++-- .../observation}/ObservationRestTemplateCustomizer.java | 4 ++-- .../http/client/rest/actuate/observation}/package-info.java | 4 ++-- .../observation}/ObservationRestClientCustomizerTests.java | 2 +- .../observation}/ObservationRestTemplateCustomizerTests.java | 2 +- 10 files changed, 15 insertions(+), 14 deletions(-) rename spring-boot-project/{spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/actuate/observation}/ObservationRestClientCustomizer.java (96%) rename spring-boot-project/{spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/actuate/observation}/ObservationRestTemplateCustomizer.java (95%) rename spring-boot-project/{spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/client => spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/actuate/observation}/package-info.java (82%) rename spring-boot-project/{spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client => spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/actuate/observation}/ObservationRestClientCustomizerTests.java (96%) rename spring-boot-project/{spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client => spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/actuate/observation}/ObservationRestTemplateCustomizerTests.java (96%) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfiguration.java index 92d2650cff8..c82905730c7 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfiguration.java @@ -20,9 +20,9 @@ import io.micrometer.observation.ObservationRegistry; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.actuate.autoconfigure.observation.ObservationProperties; -import org.springframework.boot.actuate.metrics.web.client.ObservationRestClientCustomizer; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.http.client.rest.actuate.observation.ObservationRestClientCustomizer; import org.springframework.boot.web.client.RestClientCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -36,7 +36,7 @@ import org.springframework.web.client.RestClient; * @author Moritz Halbritter */ @Configuration(proxyBeanMethods = false) -@ConditionalOnClass(RestClient.class) +@ConditionalOnClass({ RestClient.class, ObservationRestClientCustomizer.class }) @ConditionalOnBean(RestClient.Builder.class) class RestClientObservationConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfiguration.java index c458c575077..14d19f27078 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfiguration.java @@ -20,9 +20,9 @@ import io.micrometer.observation.ObservationRegistry; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.actuate.autoconfigure.observation.ObservationProperties; -import org.springframework.boot.actuate.metrics.web.client.ObservationRestTemplateCustomizer; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.http.client.rest.actuate.observation.ObservationRestTemplateCustomizer; import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -36,7 +36,7 @@ import org.springframework.web.client.RestTemplate; * @author Brian Clozel */ @Configuration(proxyBeanMethods = false) -@ConditionalOnClass(RestTemplate.class) +@ConditionalOnClass({ RestTemplate.class, ObservationRestTemplateCustomizer.class }) @ConditionalOnBean(RestTemplateBuilder.class) class RestTemplateObservationConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationTests.java index 2362473d351..ac7171cc4d0 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationTests.java @@ -25,8 +25,8 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun; import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration; -import org.springframework.boot.actuate.metrics.web.client.ObservationRestClientCustomizer; import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.http.client.rest.actuate.observation.ObservationRestClientCustomizer; import org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration; import org.springframework.boot.test.context.assertj.AssertableApplicationContext; import org.springframework.boot.test.context.runner.ApplicationContextRunner; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationTests.java index 9cc49a117d2..aefb0b08dfc 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationTests.java @@ -25,8 +25,8 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun; import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration; -import org.springframework.boot.actuate.metrics.web.client.ObservationRestTemplateCustomizer; import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.http.client.rest.actuate.observation.ObservationRestTemplateCustomizer; import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration; import org.springframework.boot.test.context.assertj.AssertableApplicationContext; import org.springframework.boot.test.context.runner.ApplicationContextRunner; diff --git a/spring-boot-project/spring-boot-http-client/build.gradle b/spring-boot-project/spring-boot-http-client/build.gradle index 37517d25903..45ea88a26c1 100644 --- a/spring-boot-project/spring-boot-http-client/build.gradle +++ b/spring-boot-project/spring-boot-http-client/build.gradle @@ -37,6 +37,7 @@ dependencies { testImplementation(project(":spring-boot-project:spring-boot-test")) testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) + testImplementation("io.micrometer:micrometer-observation-test") testRuntimeOnly("ch.qos.logback:logback-classic") testRuntimeOnly("jakarta.servlet:jakarta.servlet-api") diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestClientCustomizer.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/actuate/observation/ObservationRestClientCustomizer.java similarity index 96% rename from spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestClientCustomizer.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/actuate/observation/ObservationRestClientCustomizer.java index b1c9800c92b..96990d5677a 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestClientCustomizer.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/actuate/observation/ObservationRestClientCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.metrics.web.client; +package org.springframework.boot.http.client.rest.actuate.observation; import io.micrometer.observation.ObservationRegistry; @@ -28,7 +28,7 @@ import org.springframework.web.client.RestClient.Builder; * record request observations. * * @author Moritz Halbritter - * @since 3.2.0 + * @since 4.0.0 */ public class ObservationRestClientCustomizer implements RestClientCustomizer { diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestTemplateCustomizer.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/actuate/observation/ObservationRestTemplateCustomizer.java similarity index 95% rename from spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestTemplateCustomizer.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/actuate/observation/ObservationRestTemplateCustomizer.java index 1ac35af887e..cca2d32e0f9 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestTemplateCustomizer.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/actuate/observation/ObservationRestTemplateCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.metrics.web.client; +package org.springframework.boot.http.client.rest.actuate.observation; import io.micrometer.observation.ObservationRegistry; @@ -27,7 +27,7 @@ import org.springframework.web.client.RestTemplate; * request observations. * * @author Brian Clozel - * @since 3.0.0 + * @since 4.0.0 */ public class ObservationRestTemplateCustomizer implements RestTemplateCustomizer { diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/client/package-info.java b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/actuate/observation/package-info.java similarity index 82% rename from spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/client/package-info.java rename to spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/actuate/observation/package-info.java index d279138ecc3..94c76b7caa6 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/client/package-info.java +++ b/spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/actuate/observation/package-info.java @@ -15,6 +15,6 @@ */ /** - * Actuator support for web client metrics. + * Observation integration for RestClient and RestTemplate. */ -package org.springframework.boot.actuate.metrics.web.client; +package org.springframework.boot.http.client.rest.actuate.observation; diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestClientCustomizerTests.java b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/actuate/observation/ObservationRestClientCustomizerTests.java similarity index 96% rename from spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestClientCustomizerTests.java rename to spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/actuate/observation/ObservationRestClientCustomizerTests.java index 650a13cdd7d..f50024a2ef1 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestClientCustomizerTests.java +++ b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/actuate/observation/ObservationRestClientCustomizerTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.metrics.web.client; +package org.springframework.boot.http.client.rest.actuate.observation; import io.micrometer.observation.ObservationRegistry; import io.micrometer.observation.tck.TestObservationRegistry; diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestTemplateCustomizerTests.java b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/actuate/observation/ObservationRestTemplateCustomizerTests.java similarity index 96% rename from spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestTemplateCustomizerTests.java rename to spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/actuate/observation/ObservationRestTemplateCustomizerTests.java index ed533cbd654..84f0b99e64b 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestTemplateCustomizerTests.java +++ b/spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/actuate/observation/ObservationRestTemplateCustomizerTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.metrics.web.client; +package org.springframework.boot.http.client.rest.actuate.observation; import io.micrometer.observation.ObservationRegistry; import io.micrometer.observation.tck.TestObservationRegistry;