diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml index d07959a23..3b92456b6 100644 --- a/benchmarks/pom.xml +++ b/benchmarks/pom.xml @@ -33,7 +33,7 @@ 1.8 1.8 2.3.0.BUILD-SNAPSHOT - 5.9.5 + 5.10.0 3.14.6 diff --git a/pom.xml b/pom.xml index 207d75c98..e2efb8d59 100644 --- a/pom.xml +++ b/pom.xml @@ -257,7 +257,7 @@ Horsham.SR1 2.2.2.BUILD-SNAPSHOT 2.2.2.BUILD-SNAPSHOT - 5.9.5 + 5.10.0 2.1.7.RELEASE 2.2.2.BUILD-SNAPSHOT false diff --git a/spring-cloud-sleuth-dependencies/pom.xml b/spring-cloud-sleuth-dependencies/pom.xml index 11cd57f54..491afd756 100644 --- a/spring-cloud-sleuth-dependencies/pom.xml +++ b/spring-cloud-sleuth-dependencies/pom.xml @@ -31,7 +31,7 @@ spring-cloud-sleuth-dependencies Spring Cloud Sleuth Dependencies - 5.9.5 + 5.10.0 0.35.1 3.4.1 diff --git a/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/ReactorNettyHttpClientBraveTests.java b/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/ReactorNettyHttpClientBraveTests.java index e526f7188..af2d8ded7 100644 --- a/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/ReactorNettyHttpClientBraveTests.java +++ b/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/ReactorNettyHttpClientBraveTests.java @@ -83,12 +83,6 @@ public class ReactorNettyHttpClientBraveTests public void callbackContextIsFromInvocationTime() { } - @Test - @Ignore("TODO: False negative due to NPE reading context: remove after Brave 5.10") - @Override - public void asyncRootSpan() { - } - @Test @Ignore("TODO: reactor/reactor-netty#1000") @Override @@ -101,6 +95,13 @@ public class ReactorNettyHttpClientBraveTests public void supportsPortableCustomization() { } + @Test + @Ignore("TODO: reactor/reactor-netty#1000") + @Override + @Deprecated + public void supportsDeprecatedPortableCustomization() { + } + @Test @Ignore("TODO: reactor/reactor-netty#1000") @Override @@ -119,6 +120,12 @@ public class ReactorNettyHttpClientBraveTests public void httpPathTagExcludesQueryParams() { } + @Test + @Ignore("HttpClient has no function to retrieve the wire request from the response") + @Override + public void readsRequestAtResponseTime() { + } + @Override protected void post(AnnotationConfigApplicationContext context, String pathIncludingQuery, String body) { @@ -129,11 +136,11 @@ public class ReactorNettyHttpClientBraveTests @Override protected void getAsync(AnnotationConfigApplicationContext context, String path, - Callback callback) { + Callback callback) { Mono request = context.getBean(HttpClient.class).get() .uri(path).response(); - TestCallbackSubscriber.subscribe(request, callback); + TestHttpCallbackSubscriber.subscribe(request, r -> r.status().code(), callback); } } diff --git a/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TestCallbackSubscriber.java b/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TestHttpCallbackSubscriber.java similarity index 82% rename from tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TestCallbackSubscriber.java rename to tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TestHttpCallbackSubscriber.java index 57569eeaa..b56557f03 100644 --- a/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TestCallbackSubscriber.java +++ b/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TestHttpCallbackSubscriber.java @@ -17,6 +17,7 @@ package org.springframework.cloud.sleuth.instrument.web.client; import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Function; import org.reactivestreams.Subscription; import reactor.core.CoreSubscriber; @@ -34,17 +35,22 @@ import zipkin2.Callback; * The implementation forwards signals to the supplied {@link Callback}, enforcing * assumptions about a non-empty, {@link Mono} subscription. */ -final class TestCallbackSubscriber implements CoreSubscriber { +final class TestHttpCallbackSubscriber implements CoreSubscriber { - static void subscribe(Mono mono, Callback callback) { - mono.subscribe(new TestCallbackSubscriber<>(callback)); + static void subscribe(Mono mono, Function statusCodeFunction, + Callback callback) { + mono.subscribe(new TestHttpCallbackSubscriber<>(statusCodeFunction, callback)); } - final Callback callback; + final Function statusCodeFunction; + + final Callback callback; final AtomicReference ref = new AtomicReference<>(); - private TestCallbackSubscriber(Callback callback) { + private TestHttpCallbackSubscriber(Function statusCodeFunction, + Callback callback) { + this.statusCodeFunction = statusCodeFunction; this.callback = callback; } @@ -63,7 +69,7 @@ final class TestCallbackSubscriber implements CoreSubscriber { @Override public void onNext(T t) { if (ref.getAndSet(null) != null) { - callback.onSuccess(null /* because Void */); + callback.onSuccess(statusCodeFunction.apply(t)); } else { // This is a Mono, which doesn't signal onNext() twice. If we reach here, 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 6f89a6e2d..d5859a3d5 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 @@ -75,10 +75,11 @@ public class WebClientBraveTests @Override protected void getAsync(AnnotationConfigApplicationContext context, String path, - Callback callback) { + Callback callback) { Mono request = client(context).get().uri(path).exchange(); - TestCallbackSubscriber.subscribe(request, callback); + TestHttpCallbackSubscriber.subscribe(request, ClientResponse::rawStatusCode, + callback); } @Test @@ -93,6 +94,12 @@ public class WebClientBraveTests public void reportsServerAddress() { } + @Test + @Ignore("TODO: maybe refactor as an ExchangeFilterFunction to get the request from response") + @Override + public void readsRequestAtResponseTime() { + } + WebClient client(AnnotationConfigApplicationContext context) { return context.getBean(WebClient.Builder.class) .baseUrl("http://127.0.0.1:" + server.getPort()).build();