Make auto-config of RestTemplate metrics back off with no builder bean
See gh-15842
This commit is contained in:
parent
48e781181e
commit
8f3c4dbc64
|
|
@ -27,6 +27,7 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
|||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
|
@ -42,7 +43,7 @@ import org.springframework.core.annotation.Order;
|
|||
*/
|
||||
@Configuration
|
||||
@AutoConfigureAfter({ MetricsAutoConfiguration.class,
|
||||
SimpleMetricsExportAutoConfiguration.class })
|
||||
SimpleMetricsExportAutoConfiguration.class, RestTemplateAutoConfiguration.class })
|
||||
@ConditionalOnClass(MeterRegistry.class)
|
||||
@ConditionalOnBean(MeterRegistry.class)
|
||||
@Import({ RestTemplateMetricsConfiguration.class, WebClientMetricsConfiguration.class })
|
||||
|
|
|
|||
|
|
@ -22,8 +22,10 @@ import org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties;
|
|||
import org.springframework.boot.actuate.metrics.web.client.DefaultRestTemplateExchangeTagsProvider;
|
||||
import org.springframework.boot.actuate.metrics.web.client.MetricsRestTemplateCustomizer;
|
||||
import org.springframework.boot.actuate.metrics.web.client.RestTemplateExchangeTagsProvider;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.web.client.RestTemplateBuilder;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
|
@ -33,9 +35,11 @@ import org.springframework.web.client.RestTemplate;
|
|||
*
|
||||
* @author Jon Schneider
|
||||
* @author Phillip Webb
|
||||
* @author raheela.aslam
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnClass(RestTemplate.class)
|
||||
@ConditionalOnBean(RestTemplateBuilder.class)
|
||||
class RestTemplateMetricsConfiguration {
|
||||
|
||||
private final MetricsProperties properties;
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import org.junit.Rule;
|
|||
import org.junit.Test;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
|
||||
import org.springframework.boot.actuate.metrics.web.client.DefaultRestTemplateExchangeTagsProvider;
|
||||
import org.springframework.boot.actuate.metrics.web.client.MetricsRestTemplateCustomizer;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
|
||||
|
|
@ -41,6 +42,7 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat
|
|||
*
|
||||
* @author Stephane Nicoll
|
||||
* @author Jon Schneider
|
||||
* @author raheela.aslam
|
||||
*/
|
||||
public class RestTemplateMetricsConfigurationTests {
|
||||
|
||||
|
|
@ -131,4 +133,14 @@ public class RestTemplateMetricsConfigurationTests {
|
|||
return restTemplate;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void backsOffWhenRestTemplateBuilderIsMissing() {
|
||||
new ApplicationContextRunner().with(MetricsRun.simple())
|
||||
.withConfiguration(
|
||||
AutoConfigurations.of(HttpClientMetricsAutoConfiguration.class))
|
||||
.run((context) -> assertThat(context)
|
||||
.doesNotHaveBean(DefaultRestTemplateExchangeTagsProvider.class)
|
||||
.doesNotHaveBean(MetricsRestTemplateCustomizer.class));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue