From 27fe606c83f109db593c00bf921adb98ca2f0cf1 Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Mon, 2 Mar 2020 16:24:59 +0800 Subject: [PATCH] polish --- .../client/HttpClientBeanPostProcessor.java | 14 ++++++------ .../TraceWebClientBeanPostProcessor.java | 22 ++++++++++--------- ...FilterFunctionHttpClientResponseTests.java | 6 ++--- .../web/client/WebClientBraveTests.java | 11 +++++++--- 4 files changed, 30 insertions(+), 23 deletions(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/HttpClientBeanPostProcessor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/HttpClientBeanPostProcessor.java index 888377a63..45312ffa5 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/HttpClientBeanPostProcessor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/HttpClientBeanPostProcessor.java @@ -152,7 +152,7 @@ class HttpClientBeanPostProcessor implements BeanPostProcessor { // Start a new client span with the appropriate parent TraceContext parent = req.currentContext().getOrDefault(TraceContext.class, null); - WrappedHttpClientRequest request = new WrappedHttpClientRequest(req); + HttpClientRequestWrapper request = new HttpClientRequestWrapper(req); clientSpan = handler().handleSendWithParent(request, parent); parseConnectionAddress(connection, clientSpan); @@ -240,18 +240,18 @@ class HttpClientBeanPostProcessor implements BeanPostProcessor { if (clientSpan == null) { return; // Unexpected. In the handle method, without a span to finish! } - WrappedHttpClientResponse response = resp != null - ? new WrappedHttpClientResponse(resp) : null; + HttpClientResponseWrapper response = resp != null + ? new HttpClientResponseWrapper(resp) : null; handler().handleReceive(response, error, clientSpan); } } - static final class WrappedHttpClientRequest extends brave.http.HttpClientRequest { + static final class HttpClientRequestWrapper extends brave.http.HttpClientRequest { final HttpClientRequest delegate; - WrappedHttpClientRequest(HttpClientRequest delegate) { + HttpClientRequestWrapper(HttpClientRequest delegate) { this.delegate = delegate; } @@ -287,11 +287,11 @@ class HttpClientBeanPostProcessor implements BeanPostProcessor { } - static final class WrappedHttpClientResponse extends brave.http.HttpClientResponse { + static final class HttpClientResponseWrapper extends brave.http.HttpClientResponse { final HttpClientResponse delegate; - WrappedHttpClientResponse(HttpClientResponse delegate) { + HttpClientResponseWrapper(HttpClientResponse delegate) { this.delegate = delegate; } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java index 97faff492..600c35fe5 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java @@ -23,6 +23,8 @@ import java.util.function.Function; import brave.Span; import brave.http.HttpClientHandler; +import brave.http.HttpClientRequest; +import brave.http.HttpClientResponse; import brave.http.HttpTracing; import brave.propagation.CurrentTraceContext; import brave.propagation.CurrentTraceContext.Scope; @@ -122,7 +124,7 @@ final class TraceExchangeFilterFunction implements ExchangeFilterFunction { final Function, ? extends Publisher> scopePassingTransformer; // Lazy initialized fields - HttpClientHandler handler; + HttpClientHandler handler; CurrentTraceContext currentTraceContext; @@ -148,7 +150,7 @@ final class TraceExchangeFilterFunction implements ExchangeFilterFunction { return this.currentTraceContext; } - HttpClientHandler handler() { + HttpClientHandler handler() { if (this.handler == null) { this.handler = HttpClientHandler.create(this.httpTracing.get()); } @@ -161,7 +163,7 @@ final class TraceExchangeFilterFunction implements ExchangeFilterFunction { final ClientRequest request; - final HttpClientHandler handler; + final HttpClientHandler handler; final CurrentTraceContext currentTraceContext; @@ -185,7 +187,7 @@ final class TraceExchangeFilterFunction implements ExchangeFilterFunction { Context context = subscriber.currentContext(); - HttpClientRequest wrapper = new HttpClientRequest(request); + ClientRequestWrapper wrapper = new ClientRequestWrapper(request); Span span = handler.handleSendWithParent(wrapper, parent); if (log.isDebugEnabled()) { log.debug("HttpClientHandler::handleSend: " + span); @@ -209,7 +211,7 @@ final class TraceExchangeFilterFunction implements ExchangeFilterFunction { final Span clientSpan; - final HttpClientHandler handler; + final HttpClientHandler handler; final Function, ? extends Publisher> scopePassingTransformer; @@ -308,20 +310,20 @@ final class TraceExchangeFilterFunction implements ExchangeFilterFunction { } void handleReceive(@Nullable ClientResponse res, @Nullable Throwable error) { - HttpClientResponse response = res != null ? new HttpClientResponse(res) + ClientResponseWrapper response = res != null ? new ClientResponseWrapper(res) : null; this.handler.handleReceive(response, error, clientSpan); } } - private static final class HttpClientRequest extends brave.http.HttpClientRequest { + private static final class ClientRequestWrapper extends HttpClientRequest { final ClientRequest delegate; final ClientRequest.Builder builder; - HttpClientRequest(ClientRequest delegate) { + ClientRequestWrapper(ClientRequest delegate) { this.delegate = delegate; this.builder = ClientRequest.from(delegate); } @@ -362,11 +364,11 @@ final class TraceExchangeFilterFunction implements ExchangeFilterFunction { } - static final class HttpClientResponse extends brave.http.HttpClientResponse { + static final class ClientResponseWrapper extends HttpClientResponse { final ClientResponse delegate; - HttpClientResponse(ClientResponse delegate) { + ClientResponseWrapper(ClientResponse delegate) { this.delegate = delegate; } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceExchangeFilterFunctionHttpClientResponseTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceExchangeFilterFunctionHttpClientResponseTests.java index b194cf6ab..e615af73d 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceExchangeFilterFunctionHttpClientResponseTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceExchangeFilterFunctionHttpClientResponseTests.java @@ -20,7 +20,7 @@ import org.assertj.core.api.BDDAssertions; import org.junit.Test; import org.mockito.BDDMockito; -import org.springframework.cloud.sleuth.instrument.web.client.TraceExchangeFilterFunction.HttpClientResponse; +import org.springframework.cloud.sleuth.instrument.web.client.TraceExchangeFilterFunction.ClientResponseWrapper; import org.springframework.web.reactive.function.client.ClientResponse; public class TraceExchangeFilterFunctionHttpClientResponseTests { @@ -29,7 +29,7 @@ public class TraceExchangeFilterFunctionHttpClientResponseTests { public void should_return_0_when_invalid_status_code_is_returned() { ClientResponse clientResponse = BDDMockito.mock(ClientResponse.class); BDDMockito.given(clientResponse.rawStatusCode()).willReturn(-1); - HttpClientResponse response = new HttpClientResponse(clientResponse); + ClientResponseWrapper response = new ClientResponseWrapper(clientResponse); Integer statusCode = response.statusCode(); @@ -40,7 +40,7 @@ public class TraceExchangeFilterFunctionHttpClientResponseTests { public void should_return_status_code_when_valid_status_code_is_returned() { ClientResponse clientResponse = BDDMockito.mock(ClientResponse.class); BDDMockito.given(clientResponse.rawStatusCode()).willReturn(200); - HttpClientResponse response = new HttpClientResponse(clientResponse); + ClientResponseWrapper response = new ClientResponseWrapper(clientResponse); Integer statusCode = response.statusCode(); diff --git a/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientBraveTests.java b/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientBraveTests.java index d5859a3d5..e2b6833ed 100644 --- a/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientBraveTests.java +++ b/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientBraveTests.java @@ -28,6 +28,7 @@ import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.reactive.ClientHttpConnector; import org.springframework.http.client.reactive.ReactorClientHttpConnector; import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.client.ClientResponse; @@ -118,9 +119,13 @@ public class WebClientBraveTests } @Bean - WebClient.Builder webClientBuilder(HttpClient httpClient) { - return WebClient.builder() - .clientConnector(new ReactorClientHttpConnector(httpClient)); + ClientHttpConnector clientHttpConnector(HttpClient httpClient) { + return new ReactorClientHttpConnector(httpClient); + } + + @Bean + WebClient.Builder webClientBuilder(ClientHttpConnector clientHttpConnector) { + return WebClient.builder().clientConnector(clientHttpConnector); } }