Skip to content

Commit 7beca9e

Browse files
committed
gh-15719 issue completed.
1 parent 0ad72d5 commit 7beca9e

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222
import org.springframework.boot.actuate.metrics.web.client.DefaultRestTemplateExchangeTagsProvider;
2323
import org.springframework.boot.actuate.metrics.web.client.MetricsRestTemplateCustomizer;
2424
import org.springframework.boot.actuate.metrics.web.client.RestTemplateExchangeTagsProvider;
25+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2526
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2627
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
28+
import org.springframework.boot.web.client.RestTemplateBuilder;
2729
import org.springframework.context.annotation.Bean;
2830
import org.springframework.context.annotation.Configuration;
2931
import org.springframework.web.client.RestTemplate;
@@ -36,6 +38,7 @@
3638
*/
3739
@Configuration
3840
@ConditionalOnClass(RestTemplate.class)
41+
@ConditionalOnBean(RestTemplateBuilder.class)
3942
class RestTemplateMetricsConfiguration {
4043

4144
private final MetricsProperties properties;

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfigurationTests.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.junit.Test;
2222

2323
import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
24+
import org.springframework.boot.actuate.metrics.web.client.DefaultRestTemplateExchangeTagsProvider;
2425
import org.springframework.boot.actuate.metrics.web.client.MetricsRestTemplateCustomizer;
2526
import org.springframework.boot.autoconfigure.AutoConfigurations;
2627
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
@@ -133,4 +134,14 @@ private RestTemplate mockRestTemplate(RestTemplateBuilder builder) {
133134
return restTemplate;
134135
}
135136

137+
@Test
138+
public void backsOffWhenRestTemplateBuilderIsMissing() {
139+
new ApplicationContextRunner().with(MetricsRun.simple())
140+
.withConfiguration(
141+
AutoConfigurations.of(HttpClientMetricsAutoConfiguration.class))
142+
.run((context) -> assertThat(context)
143+
.doesNotHaveBean(DefaultRestTemplateExchangeTagsProvider.class)
144+
.doesNotHaveBean(MetricsRestTemplateCustomizer.class));
145+
}
146+
136147
}

0 commit comments

Comments
 (0)