Skip to content

Commit 8d0fb4d

Browse files
committed
Remove dependency on io.zipkin.reporter2:zipkin-sender-urlconnection by removal of URLConnectionSender usages in codebase
Signed-off-by: Vanio Begic <vanio.begic123@gmail.com>
1 parent 83f678a commit 8d0fb4d

File tree

4 files changed

+5
-83
lines changed

4 files changed

+5
-83
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ dependencies {
5858
optional("io.micrometer:micrometer-registry-statsd")
5959
optional("io.micrometer:micrometer-registry-wavefront")
6060
optional("io.zipkin.reporter2:zipkin-reporter-brave")
61-
optional("io.zipkin.reporter2:zipkin-sender-urlconnection")
6261
optional("io.opentelemetry:opentelemetry-exporter-zipkin")
6362
optional("io.opentelemetry:opentelemetry-exporter-otlp")
6463
optional("io.projectreactor.netty:reactor-netty-http")

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import zipkin2.reporter.SpanBytesEncoder;
3333
import zipkin2.reporter.brave.AsyncZipkinSpanHandler;
3434
import zipkin2.reporter.brave.MutableSpanBytesEncoder;
35-
import zipkin2.reporter.urlconnection.URLConnectionSender;
3635

3736
import org.springframework.beans.factory.ObjectProvider;
3837
import org.springframework.boot.actuate.autoconfigure.tracing.ConditionalOnEnabledTracing;
@@ -54,7 +53,7 @@
5453
class ZipkinConfigurations {
5554

5655
@Configuration(proxyBeanMethods = false)
57-
@Import({ HttpClientSenderConfiguration.class, UrlConnectionSenderConfiguration.class })
56+
@Import({ HttpClientSenderConfiguration.class })
5857
static class SenderConfiguration {
5958

6059
}
@@ -82,31 +81,6 @@ ZipkinHttpClientSender httpClientSender(ZipkinProperties properties, Encoding en
8281

8382
}
8483

85-
@Configuration(proxyBeanMethods = false)
86-
@ConditionalOnClass(URLConnectionSender.class)
87-
@EnableConfigurationProperties(ZipkinProperties.class)
88-
static class UrlConnectionSenderConfiguration {
89-
90-
@Bean
91-
@ConditionalOnMissingBean(BytesMessageSender.class)
92-
URLConnectionSender urlConnectionSender(ZipkinProperties properties, Encoding encoding,
93-
ObjectProvider<ZipkinConnectionDetails> connectionDetailsProvider,
94-
ObjectProvider<HttpEndpointSupplier.Factory> endpointSupplierFactoryProvider) {
95-
ZipkinConnectionDetails connectionDetails = connectionDetailsProvider
96-
.getIfAvailable(() -> new PropertiesZipkinConnectionDetails(properties));
97-
HttpEndpointSupplier.Factory endpointSupplierFactory = endpointSupplierFactoryProvider
98-
.getIfAvailable(HttpEndpointSuppliers::constantFactory);
99-
URLConnectionSender.Builder builder = URLConnectionSender.newBuilder();
100-
builder.connectTimeout((int) properties.getConnectTimeout().toMillis());
101-
builder.readTimeout((int) properties.getReadTimeout().toMillis());
102-
builder.endpointSupplierFactory(endpointSupplierFactory);
103-
builder.endpoint(connectionDetails.getSpanEndpoint());
104-
builder.encoding(encoding);
105-
return builder.build();
106-
}
107-
108-
}
109-
11084
@Configuration(proxyBeanMethods = false)
11185
@ConditionalOnClass(AsyncZipkinSpanHandler.class)
11286
static class BraveConfiguration {

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinAutoConfigurationIntegrationTests.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
1818

1919
import org.junit.jupiter.api.Test;
20-
import zipkin2.reporter.urlconnection.URLConnectionSender;
2120

2221
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration;
2322
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
@@ -28,7 +27,6 @@
2827
import org.springframework.boot.autoconfigure.AutoConfigurations;
2928
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
3029
import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration;
31-
import org.springframework.boot.test.context.FilteredClassLoader;
3230
import org.springframework.boot.test.context.assertj.ApplicationContextAssertProvider;
3331
import org.springframework.boot.test.context.runner.AbstractApplicationContextRunner;
3432
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
@@ -61,12 +59,10 @@ void zipkinsUseOfWebClientDoesNotCauseACycle() {
6159

6260
<SELF extends AbstractApplicationContextRunner<SELF, C, A>, C extends ConfigurableApplicationContext, A extends ApplicationContextAssertProvider<C>> AbstractApplicationContextRunner<SELF, C, A> configure(
6361
AbstractApplicationContextRunner<SELF, ?, ?> runner) {
64-
return runner
65-
.withConfiguration(AutoConfigurations.of(MicrometerTracingAutoConfiguration.class,
66-
ObservationAutoConfiguration.class, BraveAutoConfiguration.class, ZipkinAutoConfiguration.class,
67-
HttpClientObservationsAutoConfiguration.class, MetricsAutoConfiguration.class,
68-
SimpleMetricsExportAutoConfiguration.class))
69-
.withClassLoader(new FilteredClassLoader(URLConnectionSender.class));
62+
return runner.withConfiguration(AutoConfigurations.of(MicrometerTracingAutoConfiguration.class,
63+
ObservationAutoConfiguration.class, BraveAutoConfiguration.class, ZipkinAutoConfiguration.class,
64+
HttpClientObservationsAutoConfiguration.class, MetricsAutoConfiguration.class,
65+
SimpleMetricsExportAutoConfiguration.class));
7066
}
7167

7268
}

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsSenderConfigurationTests.java

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,12 @@
1616

1717
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
1818

19-
import java.net.http.HttpClient;
20-
2119
import org.junit.jupiter.api.Test;
2220
import zipkin2.reporter.BytesMessageSender;
2321
import zipkin2.reporter.HttpEndpointSupplier;
24-
import zipkin2.reporter.urlconnection.URLConnectionSender;
2522

2623
import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinConfigurations.SenderConfiguration;
27-
import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinConfigurations.UrlConnectionSenderConfiguration;
2824
import org.springframework.boot.autoconfigure.AutoConfigurations;
29-
import org.springframework.boot.test.context.FilteredClassLoader;
3025
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
3126
import org.springframework.context.annotation.Bean;
3227
import org.springframework.context.annotation.Configuration;
@@ -51,21 +46,9 @@ void shouldSupplyDefaultHttpClientSenderBean() {
5146
this.contextRunner.run((context) -> {
5247
assertThat(context).hasSingleBean(BytesMessageSender.class);
5348
assertThat(context).hasSingleBean(ZipkinHttpClientSender.class);
54-
assertThat(context).doesNotHaveBean(URLConnectionSender.class);
5549
});
5650
}
5751

58-
@Test
59-
void shouldUseUrlConnectionSenderIfHttpClientIsNotAvailable() {
60-
this.contextRunner.withUserConfiguration(UrlConnectionSenderConfiguration.class)
61-
.withClassLoader(new FilteredClassLoader(HttpClient.class))
62-
.run((context) -> {
63-
assertThat(context).doesNotHaveBean(ZipkinHttpClientSender.class);
64-
assertThat(context).hasSingleBean(BytesMessageSender.class);
65-
assertThat(context).hasSingleBean(URLConnectionSender.class);
66-
});
67-
}
68-
6952
@Test
7053
void shouldBackOffOnCustomBeans() {
7154
this.contextRunner.withUserConfiguration(CustomConfiguration.class).run((context) -> {
@@ -74,17 +57,6 @@ void shouldBackOffOnCustomBeans() {
7457
});
7558
}
7659

77-
@Test
78-
void shouldUseCustomHttpEndpointSupplierFactory() {
79-
this.contextRunner.withUserConfiguration(CustomHttpEndpointSupplierFactoryConfiguration.class)
80-
.withClassLoader(new FilteredClassLoader(HttpClient.class))
81-
.run((context) -> {
82-
URLConnectionSender urlConnectionSender = context.getBean(URLConnectionSender.class);
83-
assertThat(urlConnectionSender).extracting("delegate.endpointSupplier")
84-
.isInstanceOf(CustomHttpEndpointSupplier.class);
85-
});
86-
}
87-
8860
@Configuration(proxyBeanMethods = false)
8961
private static final class CustomConfiguration {
9062

@@ -95,25 +67,6 @@ BytesMessageSender customSender() {
9567

9668
}
9769

98-
@Configuration(proxyBeanMethods = false)
99-
private static final class CustomHttpEndpointSupplierFactoryConfiguration {
100-
101-
@Bean
102-
HttpEndpointSupplier.Factory httpEndpointSupplier() {
103-
return new CustomHttpEndpointSupplierFactory();
104-
}
105-
106-
}
107-
108-
private static final class CustomHttpEndpointSupplierFactory implements HttpEndpointSupplier.Factory {
109-
110-
@Override
111-
public HttpEndpointSupplier create(String endpoint) {
112-
return new CustomHttpEndpointSupplier(endpoint);
113-
}
114-
115-
}
116-
11770
private record CustomHttpEndpointSupplier(String endpoint) implements HttpEndpointSupplier {
11871

11972
@Override

0 commit comments

Comments
 (0)