diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfiguration.java index cfccdc38db..92c1269a74 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfiguration.java @@ -18,6 +18,7 @@ package org.springframework.boot.actuate.autoconfigure.tracing; import java.util.List; +import brave.Tracer; import brave.Tracing; import brave.Tracing.Builder; import brave.TracingCustomizer; @@ -48,7 +49,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; /** @@ -58,7 +58,7 @@ import org.springframework.core.env.Environment; * @since 3.0.0 */ @AutoConfiguration(before = MicrometerTracingAutoConfiguration.class) -@ConditionalOnClass(brave.Tracer.class) +@ConditionalOnClass({ Tracer.class, BraveTracer.class }) @EnableConfigurationProperties(TracingProperties.class) @ConditionalOnEnabledTracing public class BraveAutoConfiguration { @@ -135,37 +135,31 @@ public class BraveAutoConfiguration { return HttpClientHandler.create(httpTracing); } - @Configuration(proxyBeanMethods = false) - @ConditionalOnClass(BraveTracer.class) - static class BraveMicrometer { + @Bean + @ConditionalOnMissingBean + BraveTracer braveTracerBridge(brave.Tracer tracer, CurrentTraceContext currentTraceContext, + BraveBaggageManager braveBaggageManager) { + return new BraveTracer(tracer, new BraveCurrentTraceContext(currentTraceContext), braveBaggageManager); + } - @Bean - @ConditionalOnMissingBean - BraveTracer braveTracerBridge(brave.Tracer tracer, CurrentTraceContext currentTraceContext, - BraveBaggageManager braveBaggageManager) { - return new BraveTracer(tracer, new BraveCurrentTraceContext(currentTraceContext), braveBaggageManager); - } + @Bean + @ConditionalOnMissingBean + BraveBaggageManager braveBaggageManager() { + return new BraveBaggageManager(); + } - @Bean - @ConditionalOnMissingBean - BraveBaggageManager braveBaggageManager() { - return new BraveBaggageManager(); - } - - @Bean - @ConditionalOnMissingBean - BraveHttpServerHandler braveHttpServerHandler( - HttpServerHandler httpServerHandler) { - return new BraveHttpServerHandler(httpServerHandler); - } - - @Bean - @ConditionalOnMissingBean - BraveHttpClientHandler braveHttpClientHandler( - HttpClientHandler httpClientHandler) { - return new BraveHttpClientHandler(httpClientHandler); - } + @Bean + @ConditionalOnMissingBean + BraveHttpServerHandler braveHttpServerHandler( + HttpServerHandler httpServerHandler) { + return new BraveHttpServerHandler(httpServerHandler); + } + @Bean + @ConditionalOnMissingBean + BraveHttpClientHandler braveHttpClientHandler( + HttpClientHandler httpClientHandler) { + return new BraveHttpClientHandler(httpClientHandler); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfigurationTests.java index d0a733d663..cf8d945709 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfigurationTests.java @@ -55,7 +55,7 @@ class BraveAutoConfigurationTests { .withConfiguration(AutoConfigurations.of(BraveAutoConfiguration.class)); @Test - void shouldSupplyBraveBeans() { + void shouldSupplyDefaultBeans() { this.contextRunner.run((context) -> { assertThat(context).hasSingleBean(Tracing.class); assertThat(context).hasSingleBean(Tracer.class); @@ -65,12 +65,16 @@ class BraveAutoConfigurationTests { assertThat(context).hasSingleBean(HttpTracing.class); assertThat(context).hasSingleBean(HttpServerHandler.class); assertThat(context).hasSingleBean(HttpClientHandler.class); + assertThat(context).hasSingleBean(BraveTracer.class); + assertThat(context).hasSingleBean(BraveBaggageManager.class); + assertThat(context).hasSingleBean(BraveHttpServerHandler.class); + assertThat(context).hasSingleBean(BraveHttpClientHandler.class); }); } @Test - void shouldBackOffOnCustomBraveBeans() { - this.contextRunner.withUserConfiguration(CustomBraveConfiguration.class).run((context) -> { + void shouldBackOffOnCustomBeans() { + this.contextRunner.withUserConfiguration(CustomConfiguration.class).run((context) -> { assertThat(context).hasBean("customTracing"); assertThat(context).hasSingleBean(Tracing.class); assertThat(context).hasBean("customTracer"); @@ -87,22 +91,6 @@ class BraveAutoConfigurationTests { assertThat(context).hasSingleBean(HttpServerHandler.class); assertThat(context).hasBean("customHttpClientHandler"); assertThat(context).hasSingleBean(HttpClientHandler.class); - }); - } - - @Test - void shouldSupplyMicrometerBeans() { - this.contextRunner.run((context) -> { - assertThat(context).hasSingleBean(BraveTracer.class); - assertThat(context).hasSingleBean(BraveBaggageManager.class); - assertThat(context).hasSingleBean(BraveHttpServerHandler.class); - assertThat(context).hasSingleBean(BraveHttpClientHandler.class); - }); - } - - @Test - void shouldBackOffOnCustomMicrometerBraveBeans() { - this.contextRunner.withUserConfiguration(CustomMicrometerBraveConfiguration.class).run((context) -> { assertThat(context).hasBean("customBraveTracer"); assertThat(context).hasSingleBean(BraveTracer.class); assertThat(context).hasBean("customBraveBaggageManager"); @@ -115,45 +103,25 @@ class BraveAutoConfigurationTests { } @Test - void shouldNotSupplyBraveBeansIfBraveIsMissing() { - this.contextRunner.withClassLoader(new FilteredClassLoader("brave")).run((context) -> { - assertThat(context).doesNotHaveBean(Tracing.class); - assertThat(context).doesNotHaveBean(Tracer.class); - assertThat(context).doesNotHaveBean(CurrentTraceContext.class); - assertThat(context).doesNotHaveBean(Factory.class); - assertThat(context).doesNotHaveBean(Sampler.class); - assertThat(context).doesNotHaveBean(HttpTracing.class); - assertThat(context).doesNotHaveBean(HttpServerHandler.class); - assertThat(context).doesNotHaveBean(HttpClientHandler.class); - }); + void shouldNotSupplyBeansIfBraveIsMissing() { + this.contextRunner.withClassLoader(new FilteredClassLoader("brave")) + .run((context) -> assertThat(context).doesNotHaveBean(BraveAutoConfiguration.class)); } @Test - void shouldNotSupplyMicrometerBeansIfMicrometerIsMissing() { - this.contextRunner.withClassLoader(new FilteredClassLoader("io.micrometer")).run((context) -> { - assertThat(context).doesNotHaveBean(BraveTracer.class); - assertThat(context).doesNotHaveBean(BraveBaggageManager.class); - assertThat(context).doesNotHaveBean(BraveHttpServerHandler.class); - assertThat(context).doesNotHaveBean(BraveHttpClientHandler.class); - }); + void shouldNotSupplyBeansIfMicrometerIsMissing() { + this.contextRunner.withClassLoader(new FilteredClassLoader("brave")) + .run((context) -> assertThat(context).doesNotHaveBean(BraveAutoConfiguration.class)); } @Test - void shouldNotSupplyBraveBeansIfTracingIsDisabled() { - this.contextRunner.withPropertyValues("management.tracing.enabled=false").run((context) -> { - assertThat(context).doesNotHaveBean(Tracing.class); - assertThat(context).doesNotHaveBean(Tracer.class); - assertThat(context).doesNotHaveBean(CurrentTraceContext.class); - assertThat(context).doesNotHaveBean(Factory.class); - assertThat(context).doesNotHaveBean(Sampler.class); - assertThat(context).doesNotHaveBean(HttpTracing.class); - assertThat(context).doesNotHaveBean(HttpServerHandler.class); - assertThat(context).doesNotHaveBean(HttpClientHandler.class); - }); + void shouldNotSupplyBeansIfTracingIsDisabled() { + this.contextRunner.withPropertyValues("management.tracing.enabled=false") + .run((context) -> assertThat(context).doesNotHaveBean(BraveAutoConfiguration.class)); } @Configuration(proxyBeanMethods = false) - private static class CustomBraveConfiguration { + private static class CustomConfiguration { @Bean Tracing customTracing() { @@ -197,11 +165,6 @@ class BraveAutoConfigurationTests { return HttpClientHandler.create(httpTracing); } - } - - @Configuration(proxyBeanMethods = false) - private static class CustomMicrometerBraveConfiguration { - @Bean BraveTracer customBraveTracer() { return mock(BraveTracer.class);