From 156409cbc2f924b3258d49d47273603eb48c4056 Mon Sep 17 00:00:00 2001 From: YiXuan Ding <1328032567@qq.com> Date: Tue, 5 Nov 2024 19:54:50 +0800 Subject: [PATCH 1/5] : remove `UrlConnectionSenderConfiguration`, `WebClientSenderConfiguration`, `RestTemplateSenderConfiguration` class. --- .../tracing/zipkin/ZipkinConfigurations.java | 147 ++++++++++-------- 1 file changed, 79 insertions(+), 68 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java index 76ecc4cd830d..1e95fcab5795 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java @@ -39,6 +39,7 @@ 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.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; @@ -56,12 +57,83 @@ class ZipkinConfigurations { @Configuration(proxyBeanMethods = false) - @Import({ UrlConnectionSenderConfiguration.class, WebClientSenderConfiguration.class, - RestTemplateSenderConfiguration.class, HttpClientSenderConfiguration.class }) + @Import({ + HttpClientSenderConfiguration.class + // UrlConnectionSenderConfiguration.class, + // WebClientSenderConfiguration.class, + // RestTemplateSenderConfiguration.class, + }) static class SenderConfiguration { } + @Configuration(proxyBeanMethods = false) + @ConditionalOnClass(HttpClient.class) + @EnableConfigurationProperties(ZipkinProperties.class) + static class HttpClientSenderConfiguration { + + @Bean + @ConditionalOnMissingBean(BytesMessageSender.class) + ZipkinHttpClientSender httpClientSender(ZipkinProperties properties, Encoding encoding, + ObjectProvider customizers, + ObjectProvider connectionDetailsProvider, + ObjectProvider endpointSupplierFactoryProvider) { + ZipkinConnectionDetails connectionDetails = connectionDetailsProvider + .getIfAvailable(() -> new PropertiesZipkinConnectionDetails(properties)); + HttpEndpointSupplier.Factory endpointSupplierFactory = endpointSupplierFactoryProvider + .getIfAvailable(HttpEndpointSuppliers::constantFactory); + Builder httpClientBuilder = HttpClient.newBuilder().connectTimeout(properties.getConnectTimeout()); + customizers.orderedStream().forEach((customizer) -> customizer.customize(httpClientBuilder)); + return new ZipkinHttpClientSender(encoding, endpointSupplierFactory, connectionDetails.getSpanEndpoint(), + httpClientBuilder.build(), properties.getReadTimeout()); + } + + } + + @Configuration(proxyBeanMethods = false) + @ConditionalOnClass(AsyncZipkinSpanHandler.class) + static class BraveConfiguration { + + @Bean + @ConditionalOnMissingBean(value = MutableSpan.class, parameterizedContainer = BytesEncoder.class) + BytesEncoder mutableSpanBytesEncoder(Encoding encoding, + ObjectProvider> throwableTagProvider) { + Tag throwableTag = throwableTagProvider.getIfAvailable(() -> Tags.ERROR); + return MutableSpanBytesEncoder.create(encoding, throwableTag); + } + + @Bean + @ConditionalOnMissingBean + @ConditionalOnBean(BytesMessageSender.class) + @ConditionalOnEnabledTracing("zipkin") + AsyncZipkinSpanHandler asyncZipkinSpanHandler(BytesMessageSender sender, + BytesEncoder mutableSpanBytesEncoder) { + return AsyncZipkinSpanHandler.newBuilder(sender).build(mutableSpanBytesEncoder); + } + + } + + @Configuration(proxyBeanMethods = false) + @ConditionalOnClass({ ZipkinSpanExporter.class, Span.class }) + static class OpenTelemetryConfiguration { + + @Bean + @ConditionalOnMissingBean(value = Span.class, parameterizedContainer = BytesEncoder.class) + BytesEncoder spanBytesEncoder(Encoding encoding) { + return SpanBytesEncoder.forEncoding(encoding); + } + + @Bean + @ConditionalOnMissingBean + @ConditionalOnBean(BytesMessageSender.class) + @ConditionalOnEnabledTracing("zipkin") + ZipkinSpanExporter zipkinSpanExporter(BytesMessageSender sender, BytesEncoder spanBytesEncoder) { + return ZipkinSpanExporter.builder().setSender(sender).setEncoder(spanBytesEncoder).build(); + } + + } + + /* @Configuration(proxyBeanMethods = false) @ConditionalOnClass(URLConnectionSender.class) @EnableConfigurationProperties(ZipkinProperties.class) @@ -86,7 +158,9 @@ URLConnectionSender urlConnectionSender(ZipkinProperties properties, Encoding en } } + */ + /* @Configuration(proxyBeanMethods = false) @ConditionalOnClass(RestTemplate.class) @EnableConfigurationProperties(ZipkinProperties.class) @@ -124,7 +198,9 @@ private RestTemplateBuilder applyCustomizers(RestTemplateBuilder restTemplateBui } } + */ + /* @Configuration(proxyBeanMethods = false) @ConditionalOnClass(WebClient.class) @EnableConfigurationProperties(ZipkinProperties.class) @@ -148,71 +224,6 @@ ZipkinWebClientSender webClientSender(ZipkinProperties properties, Encoding enco } } - - @Configuration(proxyBeanMethods = false) - @ConditionalOnClass(HttpClient.class) - @EnableConfigurationProperties(ZipkinProperties.class) - static class HttpClientSenderConfiguration { - - @Bean - @ConditionalOnMissingBean(BytesMessageSender.class) - ZipkinHttpClientSender httpClientSender(ZipkinProperties properties, Encoding encoding, - ObjectProvider customizers, - ObjectProvider connectionDetailsProvider, - ObjectProvider endpointSupplierFactoryProvider) { - ZipkinConnectionDetails connectionDetails = connectionDetailsProvider - .getIfAvailable(() -> new PropertiesZipkinConnectionDetails(properties)); - HttpEndpointSupplier.Factory endpointSupplierFactory = endpointSupplierFactoryProvider - .getIfAvailable(HttpEndpointSuppliers::constantFactory); - Builder httpClientBuilder = HttpClient.newBuilder().connectTimeout(properties.getConnectTimeout()); - customizers.orderedStream().forEach((customizer) -> customizer.customize(httpClientBuilder)); - return new ZipkinHttpClientSender(encoding, endpointSupplierFactory, connectionDetails.getSpanEndpoint(), - httpClientBuilder.build(), properties.getReadTimeout()); - } - - } - - @Configuration(proxyBeanMethods = false) - @ConditionalOnClass(AsyncZipkinSpanHandler.class) - static class BraveConfiguration { - - @Bean - @ConditionalOnMissingBean(value = MutableSpan.class, parameterizedContainer = BytesEncoder.class) - BytesEncoder mutableSpanBytesEncoder(Encoding encoding, - ObjectProvider> throwableTagProvider) { - Tag throwableTag = throwableTagProvider.getIfAvailable(() -> Tags.ERROR); - return MutableSpanBytesEncoder.create(encoding, throwableTag); - } - - @Bean - @ConditionalOnMissingBean - @ConditionalOnBean(BytesMessageSender.class) - @ConditionalOnEnabledTracing("zipkin") - AsyncZipkinSpanHandler asyncZipkinSpanHandler(BytesMessageSender sender, - BytesEncoder mutableSpanBytesEncoder) { - return AsyncZipkinSpanHandler.newBuilder(sender).build(mutableSpanBytesEncoder); - } - - } - - @Configuration(proxyBeanMethods = false) - @ConditionalOnClass({ ZipkinSpanExporter.class, Span.class }) - static class OpenTelemetryConfiguration { - - @Bean - @ConditionalOnMissingBean(value = Span.class, parameterizedContainer = BytesEncoder.class) - BytesEncoder spanBytesEncoder(Encoding encoding) { - return SpanBytesEncoder.forEncoding(encoding); - } - - @Bean - @ConditionalOnMissingBean - @ConditionalOnBean(BytesMessageSender.class) - @ConditionalOnEnabledTracing("zipkin") - ZipkinSpanExporter zipkinSpanExporter(BytesMessageSender sender, BytesEncoder spanBytesEncoder) { - return ZipkinSpanExporter.builder().setSender(sender).setEncoder(spanBytesEncoder).build(); - } - - } + */ } From 74206fb84ab1a2b6322313bb7267429b1a25c7dd Mon Sep 17 00:00:00 2001 From: YiXuan Ding <1328032567@qq.com> Date: Wed, 6 Nov 2024 21:44:02 +0800 Subject: [PATCH 2/5] : delete related `@Test` methods. --- ...onfigurationsSenderConfigurationTests.java | 153 ------------------ 1 file changed, 153 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java index 7988fd310837..b0510c37b951 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java @@ -66,8 +66,6 @@ class ZipkinConfigurationsSenderConfigurationTests { void shouldSupplyBeans() { this.contextRunner.run((context) -> { assertThat(context).hasSingleBean(BytesMessageSender.class); - assertThat(context).hasSingleBean(URLConnectionSender.class); - assertThat(context).doesNotHaveBean(ZipkinRestTemplateSender.class); }); } @@ -85,83 +83,6 @@ void shouldUseHttpClientIfUrlSenderIsNotAvailable() { }); } - @Test - void shouldPreferWebClientSenderIfWebApplicationIsReactiveAndUrlSenderIsNotAvailable() { - this.reactiveContextRunner.withUserConfiguration(RestTemplateConfiguration.class, WebClientConfiguration.class) - .withClassLoader(new FilteredClassLoader("zipkin2.reporter.urlconnection")) - .run((context) -> { - assertThat(context).doesNotHaveBean(URLConnectionSender.class); - assertThat(context).hasSingleBean(BytesMessageSender.class); - assertThat(context).hasSingleBean(ZipkinWebClientSender.class); - then(context.getBean(ZipkinWebClientBuilderCustomizer.class)).should() - .customize(ArgumentMatchers.any()); - }); - } - - @Test - void shouldPreferWebClientSenderIfWebApplicationIsServletAndUrlSenderIsNotAvailable() { - this.servletContextRunner.withUserConfiguration(RestTemplateConfiguration.class, WebClientConfiguration.class) - .withClassLoader(new FilteredClassLoader("zipkin2.reporter.urlconnection")) - .run((context) -> { - assertThat(context).doesNotHaveBean(URLConnectionSender.class); - assertThat(context).hasSingleBean(BytesMessageSender.class); - assertThat(context).hasSingleBean(ZipkinWebClientSender.class); - }); - } - - @Test - void shouldPreferWebClientInNonWebApplicationAndUrlConnectionSenderIsNotAvailable() { - this.contextRunner.withUserConfiguration(RestTemplateConfiguration.class, WebClientConfiguration.class) - .withClassLoader(new FilteredClassLoader("zipkin2.reporter.urlconnection")) - .run((context) -> { - assertThat(context).doesNotHaveBean(URLConnectionSender.class); - assertThat(context).hasSingleBean(BytesMessageSender.class); - assertThat(context).hasSingleBean(ZipkinWebClientSender.class); - }); - } - - @Test - void willUseRestTemplateInNonWebApplicationIfUrlConnectionSenderAndWebClientAreNotAvailable() { - this.contextRunner.withUserConfiguration(RestTemplateConfiguration.class) - .withClassLoader(new FilteredClassLoader(URLConnectionSender.class, WebClient.class)) - .run((context) -> { - assertThat(context).doesNotHaveBean(URLConnectionSender.class); - assertThat(context).hasSingleBean(BytesMessageSender.class); - assertThat(context).hasSingleBean(ZipkinRestTemplateSender.class); - }); - } - - @Test - void willUseRestTemplateInServletWebApplicationIfUrlConnectionSenderAndWebClientNotAvailable() { - this.servletContextRunner.withUserConfiguration(RestTemplateConfiguration.class) - .withClassLoader(new FilteredClassLoader(URLConnectionSender.class, WebClient.class)) - .run((context) -> { - assertThat(context).doesNotHaveBean(URLConnectionSender.class); - assertThat(context).hasSingleBean(BytesMessageSender.class); - assertThat(context).hasSingleBean(ZipkinRestTemplateSender.class); - }); - } - - @Test - void willUseRestTemplateInReactiveWebApplicationIfUrlConnectionSenderAndWebClientAreNotAvailable() { - this.reactiveContextRunner.withUserConfiguration(RestTemplateConfiguration.class) - .withClassLoader(new FilteredClassLoader(URLConnectionSender.class, WebClient.class)) - .run((context) -> { - assertThat(context).doesNotHaveBean(URLConnectionSender.class); - assertThat(context).hasSingleBean(BytesMessageSender.class); - assertThat(context).hasSingleBean(ZipkinRestTemplateSender.class); - }); - } - - @Test - void shouldNotUseWebClientSenderIfNoBuilderIsAvailable() { - this.reactiveContextRunner.run((context) -> { - assertThat(context).doesNotHaveBean(ZipkinWebClientSender.class); - assertThat(context).hasSingleBean(BytesMessageSender.class); - assertThat(context).hasSingleBean(URLConnectionSender.class); - }); - } - @Test void shouldBackOffOnCustomBeans() { this.contextRunner.withUserConfiguration(CustomConfiguration.class).run((context) -> { @@ -170,71 +91,6 @@ void shouldBackOffOnCustomBeans() { }); } - @Test - void shouldApplyZipkinRestTemplateBuilderCustomizers() throws IOException { - try (MockWebServer mockWebServer = new MockWebServer()) { - mockWebServer.enqueue(new MockResponse().setResponseCode(204)); - this.reactiveContextRunner - .withPropertyValues("management.zipkin.tracing.endpoint=" + mockWebServer.url("/")) - .withUserConfiguration(RestTemplateConfiguration.class) - .withClassLoader(new FilteredClassLoader(URLConnectionSender.class, WebClient.class)) - .run((context) -> { - assertThat(context).hasSingleBean(ZipkinRestTemplateSender.class); - ZipkinRestTemplateSender sender = context.getBean(ZipkinRestTemplateSender.class); - sender.send(List.of("spans".getBytes(StandardCharsets.UTF_8))); - RecordedRequest recordedRequest = mockWebServer.takeRequest(1, TimeUnit.SECONDS); - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getHeaders().get("x-dummy")).isEqualTo("dummy"); - }); - } - } - - @Test - void shouldUseCustomHttpEndpointSupplierFactory() { - this.contextRunner.withUserConfiguration(CustomHttpEndpointSupplierFactoryConfiguration.class) - .run((context) -> assertThat(context.getBean(URLConnectionSender.class)) - .extracting("delegate.endpointSupplier") - .isInstanceOf(CustomHttpEndpointSupplier.class)); - } - - @Test - void shouldUseCustomHttpEndpointSupplierFactoryWhenReactive() { - this.reactiveContextRunner.withUserConfiguration(WebClientConfiguration.class) - .withClassLoader(new FilteredClassLoader(URLConnectionSender.class)) - .withUserConfiguration(CustomHttpEndpointSupplierFactoryConfiguration.class) - .run((context) -> assertThat(context.getBean(ZipkinWebClientSender.class)).extracting("endpointSupplier") - .isInstanceOf(CustomHttpEndpointSupplier.class)); - } - - @Test - void shouldUseCustomHttpEndpointSupplierFactoryWhenRestTemplate() { - this.contextRunner.withUserConfiguration(RestTemplateConfiguration.class) - .withClassLoader(new FilteredClassLoader(URLConnectionSender.class, WebClient.class)) - .withUserConfiguration(CustomHttpEndpointSupplierFactoryConfiguration.class) - .run((context) -> assertThat(context.getBean(ZipkinRestTemplateSender.class)).extracting("endpointSupplier") - .isInstanceOf(CustomHttpEndpointSupplier.class)); - } - - @Configuration(proxyBeanMethods = false) - private static final class RestTemplateConfiguration { - - @Bean - ZipkinRestTemplateBuilderCustomizer zipkinRestTemplateBuilderCustomizer() { - return new DummyZipkinRestTemplateBuilderCustomizer(); - } - - } - - @Configuration(proxyBeanMethods = false) - private static final class WebClientConfiguration { - - @Bean - ZipkinWebClientBuilderCustomizer webClientBuilder() { - return mock(ZipkinWebClientBuilderCustomizer.class); - } - - } - @Configuration(proxyBeanMethods = false) private static final class HttpClientConfiguration { @@ -255,15 +111,6 @@ BytesMessageSender customSender() { } - private static final class DummyZipkinRestTemplateBuilderCustomizer implements ZipkinRestTemplateBuilderCustomizer { - - @Override - public RestTemplateBuilder customize(RestTemplateBuilder restTemplateBuilder) { - return restTemplateBuilder.defaultHeader("x-dummy", "dummy"); - } - - } - @Configuration(proxyBeanMethods = false) private static final class CustomHttpEndpointSupplierFactoryConfiguration { From f7623bd82775364b7eb985394660a7b0d7c7b826 Mon Sep 17 00:00:00 2001 From: YiXuan Ding <1328032567@qq.com> Date: Wed, 6 Nov 2024 21:44:21 +0800 Subject: [PATCH 3/5] : delete all the comments. --- .../tracing/zipkin/ZipkinConfigurations.java | 96 ------------------- 1 file changed, 96 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java index 1e95fcab5795..b374891c7996 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java @@ -59,9 +59,6 @@ class ZipkinConfigurations { @Configuration(proxyBeanMethods = false) @Import({ HttpClientSenderConfiguration.class - // UrlConnectionSenderConfiguration.class, - // WebClientSenderConfiguration.class, - // RestTemplateSenderConfiguration.class, }) static class SenderConfiguration { @@ -133,97 +130,4 @@ ZipkinSpanExporter zipkinSpanExporter(BytesMessageSender sender, BytesEncoder connectionDetailsProvider, - ObjectProvider endpointSupplierFactoryProvider) { - ZipkinConnectionDetails connectionDetails = connectionDetailsProvider - .getIfAvailable(() -> new PropertiesZipkinConnectionDetails(properties)); - HttpEndpointSupplier.Factory endpointSupplierFactory = endpointSupplierFactoryProvider - .getIfAvailable(HttpEndpointSuppliers::constantFactory); - URLConnectionSender.Builder builder = URLConnectionSender.newBuilder(); - builder.connectTimeout((int) properties.getConnectTimeout().toMillis()); - builder.readTimeout((int) properties.getReadTimeout().toMillis()); - builder.endpointSupplierFactory(endpointSupplierFactory); - builder.endpoint(connectionDetails.getSpanEndpoint()); - builder.encoding(encoding); - return builder.build(); - } - - } - */ - - /* - @Configuration(proxyBeanMethods = false) - @ConditionalOnClass(RestTemplate.class) - @EnableConfigurationProperties(ZipkinProperties.class) - static class RestTemplateSenderConfiguration { - - @Bean - @ConditionalOnMissingBean(BytesMessageSender.class) - @SuppressWarnings({ "deprecation", "removal" }) - ZipkinRestTemplateSender restTemplateSender(ZipkinProperties properties, Encoding encoding, - ObjectProvider customizers, - ObjectProvider connectionDetailsProvider, - ObjectProvider endpointSupplierFactoryProvider) { - ZipkinConnectionDetails connectionDetails = connectionDetailsProvider - .getIfAvailable(() -> new PropertiesZipkinConnectionDetails(properties)); - HttpEndpointSupplier.Factory endpointSupplierFactory = endpointSupplierFactoryProvider - .getIfAvailable(HttpEndpointSuppliers::constantFactory); - RestTemplateBuilder restTemplateBuilder = new RestTemplateBuilder() - .setConnectTimeout(properties.getConnectTimeout()) - .setReadTimeout(properties.getReadTimeout()); - restTemplateBuilder = applyCustomizers(restTemplateBuilder, customizers); - return new ZipkinRestTemplateSender(encoding, endpointSupplierFactory, connectionDetails.getSpanEndpoint(), - restTemplateBuilder.build()); - } - - @SuppressWarnings({ "deprecation", "removal" }) - private RestTemplateBuilder applyCustomizers(RestTemplateBuilder restTemplateBuilder, - ObjectProvider customizers) { - Iterable orderedCustomizers = () -> customizers.orderedStream() - .iterator(); - RestTemplateBuilder currentBuilder = restTemplateBuilder; - for (ZipkinRestTemplateBuilderCustomizer customizer : orderedCustomizers) { - currentBuilder = customizer.customize(currentBuilder); - } - return currentBuilder; - } - - } - */ - - /* - @Configuration(proxyBeanMethods = false) - @ConditionalOnClass(WebClient.class) - @EnableConfigurationProperties(ZipkinProperties.class) - static class WebClientSenderConfiguration { - - @Bean - @ConditionalOnMissingBean(BytesMessageSender.class) - @SuppressWarnings({ "deprecation", "removal" }) - ZipkinWebClientSender webClientSender(ZipkinProperties properties, Encoding encoding, - ObjectProvider customizers, - ObjectProvider connectionDetailsProvider, - ObjectProvider endpointSupplierFactoryProvider) { - ZipkinConnectionDetails connectionDetails = connectionDetailsProvider - .getIfAvailable(() -> new PropertiesZipkinConnectionDetails(properties)); - HttpEndpointSupplier.Factory endpointSupplierFactory = endpointSupplierFactoryProvider - .getIfAvailable(HttpEndpointSuppliers::constantFactory); - WebClient.Builder builder = WebClient.builder(); - customizers.orderedStream().forEach((customizer) -> customizer.customize(builder)); - return new ZipkinWebClientSender(encoding, endpointSupplierFactory, connectionDetails.getSpanEndpoint(), - builder.build(), properties.getConnectTimeout().plus(properties.getReadTimeout())); - } - - } - */ - } From fa18da38273de9ada0b9c6c94594b0db71d4fe36 Mon Sep 17 00:00:00 2001 From: YiXuan Ding <1328032567@qq.com> Date: Wed, 6 Nov 2024 21:54:49 +0800 Subject: [PATCH 4/5] : adjust `code format`, delete no-use packages. --- .../tracing/zipkin/ZipkinConfigurations.java | 13 +++---------- ...ipkinConfigurationsSenderConfigurationTests.java | 10 ---------- 2 files changed, 3 insertions(+), 20 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java index b374891c7996..82b87eb6775b 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java @@ -32,21 +32,16 @@ import zipkin2.reporter.SpanBytesEncoder; import zipkin2.reporter.brave.AsyncZipkinSpanHandler; import zipkin2.reporter.brave.MutableSpanBytesEncoder; -import zipkin2.reporter.urlconnection.URLConnectionSender; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.actuate.autoconfigure.tracing.ConditionalOnEnabledTracing; 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.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import org.springframework.web.client.RestTemplate; -import org.springframework.web.reactive.function.client.WebClient; /** * Configurations for Zipkin. Those are imported by {@link ZipkinAutoConfiguration}. @@ -57,9 +52,7 @@ class ZipkinConfigurations { @Configuration(proxyBeanMethods = false) - @Import({ - HttpClientSenderConfiguration.class - }) + @Import({ HttpClientSenderConfiguration.class }) static class SenderConfiguration { } @@ -76,9 +69,9 @@ ZipkinHttpClientSender httpClientSender(ZipkinProperties properties, Encoding en ObjectProvider connectionDetailsProvider, ObjectProvider endpointSupplierFactoryProvider) { ZipkinConnectionDetails connectionDetails = connectionDetailsProvider - .getIfAvailable(() -> new PropertiesZipkinConnectionDetails(properties)); + .getIfAvailable(() -> new PropertiesZipkinConnectionDetails(properties)); HttpEndpointSupplier.Factory endpointSupplierFactory = endpointSupplierFactoryProvider - .getIfAvailable(HttpEndpointSuppliers::constantFactory); + .getIfAvailable(HttpEndpointSuppliers::constantFactory); Builder httpClientBuilder = HttpClient.newBuilder().connectTimeout(properties.getConnectTimeout()); customizers.orderedStream().forEach((customizer) -> customizer.customize(httpClientBuilder)); return new ZipkinHttpClientSender(encoding, endpointSupplierFactory, connectionDetails.getSpanEndpoint(), diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java index b0510c37b951..ee520c28c04e 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java @@ -16,14 +16,6 @@ package org.springframework.boot.actuate.autoconfigure.tracing.zipkin; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.concurrent.TimeUnit; - -import okhttp3.mockwebserver.MockResponse; -import okhttp3.mockwebserver.MockWebServer; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.Test; import org.mockito.ArgumentMatchers; import zipkin2.reporter.BytesMessageSender; @@ -36,10 +28,8 @@ import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; import org.springframework.boot.test.context.runner.WebApplicationContextRunner; -import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.web.reactive.function.client.WebClient; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.BDDMockito.then; From 5e74bdfc83cf090cc5e757f066980445a710fb63 Mon Sep 17 00:00:00 2001 From: YiXuan Ding <1328032567@qq.com> Date: Thu, 7 Nov 2024 00:16:54 +0800 Subject: [PATCH 5/5] : refactor the `lambda expression` to avoid `checkstyle` error. --- .../zipkin/ZipkinConfigurationsSenderConfigurationTests.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java index ee520c28c04e..8d525ddfcd5e 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java @@ -54,9 +54,7 @@ class ZipkinConfigurationsSenderConfigurationTests { @Test void shouldSupplyBeans() { - this.contextRunner.run((context) -> { - assertThat(context).hasSingleBean(BytesMessageSender.class); - }); + this.contextRunner.run((context) -> assertThat(context).hasSingleBean(BytesMessageSender.class)); } @Test