Enable ZipkinProperties in ZipkinAutoConfiguration

Closes gh-35592
This commit is contained in:
Moritz Halbritter 2023-05-23 09:22:39 +02:00
parent ad108952c8
commit d841490f5f
2 changed files with 13 additions and 2 deletions

View File

@ -31,12 +31,13 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
/** /**
* {@link EnableAutoConfiguration Auto-configuration} for Zipkin. * {@link EnableAutoConfiguration Auto-configuration} for Zipkin.
* * <p>
* It uses imports on {@link ZipkinConfigurations} to guarantee the correct configuration * It uses imports on {@link ZipkinConfigurations} to guarantee the correct configuration
* ordering. * ordering.
* *
@ -48,6 +49,7 @@ import org.springframework.context.annotation.Import;
@Import({ SenderConfiguration.class, ReporterConfiguration.class, BraveConfiguration.class, @Import({ SenderConfiguration.class, ReporterConfiguration.class, BraveConfiguration.class,
OpenTelemetryConfiguration.class }) OpenTelemetryConfiguration.class })
@ConditionalOnEnabledTracing @ConditionalOnEnabledTracing
@EnableConfigurationProperties(ZipkinProperties.class)
public class ZipkinAutoConfiguration { public class ZipkinAutoConfiguration {
@Bean @Bean

View File

@ -41,7 +41,8 @@ class ZipkinAutoConfigurationTests {
@Test @Test
void shouldSupplyBeans() { void shouldSupplyBeans() {
this.contextRunner.run((context) -> assertThat(context).hasSingleBean(BytesEncoder.class)); this.contextRunner.run((context) -> assertThat(context).hasSingleBean(BytesEncoder.class)
.hasSingleBean(PropertiesZipkinConnectionDetails.class));
} }
@Test @Test
@ -83,6 +84,14 @@ class ZipkinAutoConfigurationTests {
.doesNotHaveBean(PropertiesZipkinConnectionDetails.class)); .doesNotHaveBean(PropertiesZipkinConnectionDetails.class));
} }
@Test
void shouldWorkWithoutSenders() {
this.contextRunner
.withClassLoader(new FilteredClassLoader("zipkin2.reporter.urlconnection", "org.springframework.web.client",
"org.springframework.web.reactive.function.client"))
.run((context) -> assertThat(context).hasNotFailed());
}
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
private static class CustomConfiguration { private static class CustomConfiguration {