diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml
index 1428445a0..1613445dc 100644
--- a/benchmarks/pom.xml
+++ b/benchmarks/pom.xml
@@ -34,7 +34,7 @@
1.8
1.8
2.1.10.RELEASE
- 5.11.2
+ 5.12.0
3.11.0
diff --git a/docs/src/main/asciidoc/spring-cloud-sleuth.adoc b/docs/src/main/asciidoc/spring-cloud-sleuth.adoc
index ec5fa6e09..64553f093 100644
--- a/docs/src/main/asciidoc/spring-cloud-sleuth.adoc
+++ b/docs/src/main/asciidoc/spring-cloud-sleuth.adoc
@@ -923,17 +923,17 @@ spring.zipkin.service.name: myService
=== Customization of Reported Spans
Before reporting spans (for example, to Zipkin) you may want to modify that span in some way.
-You can do so by using the `FinishedSpanHandler` interface.
+You can do so by implementing a `SpanHandler`.
In Sleuth, we generate spans with a fixed name.
Some users want to modify the name depending on values of tags.
-You can implement the `FinishedSpanHandler` interface to alter that name.
+You can implement the `SpanHandler` interface to alter that name.
-The following example shows how to register two beans that implement `FinishedSpanHandler`:
+The following example shows how to register two beans that implement `SpanHandler`:
[source,java]
----
-include::../../../..//spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/FinishedSpanHandlerTests.java[tags=finishedSpanHandler,indent=0]
+include::{project-root}//spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/SpanHandlerTests.java[tags=spanHandler,indent=0]
----
The preceding example results in changing the name of the reported span to `foo bar`, just before it gets reported (for example, to Zipkin).
diff --git a/pom.xml b/pom.xml
index e0c9c800c..9cd8eb996 100644
--- a/pom.xml
+++ b/pom.xml
@@ -264,7 +264,7 @@
Fishtown.SR4
2.1.6.BUILD-SNAPSHOT
2.1.6.BUILD-SNAPSHOT
- 5.11.2
+ 5.12.0
2.1.2.RELEASE
diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/SpanAdjuster.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/SpanAdjuster.java
index e973e5378..5ff8914a9 100644
--- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/SpanAdjuster.java
+++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/SpanAdjuster.java
@@ -21,7 +21,7 @@ import zipkin2.Span;
/**
* Deprecated Span Adjuster.
*
- * @deprecated use {@link brave.handler.FinishedSpanHandler}
+ * @deprecated use {@link brave.handler.SpanHandler}
* @author Marcin Grzejszczak
*/
@Deprecated
diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java
index 3cd38caa1..c6fd5469e 100644
--- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java
+++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java
@@ -25,7 +25,7 @@ import brave.ErrorParser;
import brave.Tracer;
import brave.Tracing;
import brave.TracingCustomizer;
-import brave.handler.FinishedSpanHandler;
+import brave.handler.SpanHandler;
import brave.propagation.B3Propagation;
import brave.propagation.CurrentTraceContext;
import brave.propagation.CurrentTraceContextCustomizer;
@@ -85,7 +85,7 @@ public class TraceAutoConfiguration {
List spanAdjusters = new ArrayList<>();
@Autowired(required = false)
- List finishedSpanHandlers = new ArrayList<>();
+ List spanHandlers = new ArrayList<>();
@Autowired(required = false)
List scopeDecorators = new ArrayList<>();
@@ -119,8 +119,8 @@ public class TraceAutoConfiguration {
spanReporters != null ? spanReporters : Collections.emptyList()))
.traceId128Bit(sleuthProperties.isTraceId128())
.supportsJoin(sleuthProperties.isSupportsJoin());
- for (FinishedSpanHandler finishedSpanHandlerFactory : this.finishedSpanHandlers) {
- builder.addFinishedSpanHandler(finishedSpanHandlerFactory);
+ for (SpanHandler spanHandlerFactory : this.spanHandlers) {
+ builder.addSpanHandler(spanHandlerFactory);
}
for (TracingCustomizer customizer : this.tracingCustomizers) {
customizer.customize(builder);
diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jCurrentTraceContext.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jCurrentTraceContext.java
index c5551a394..67c3a5cb7 100644
--- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jCurrentTraceContext.java
+++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jCurrentTraceContext.java
@@ -16,8 +16,8 @@
package org.springframework.cloud.sleuth.log;
-import brave.internal.HexCodec;
import brave.internal.Nullable;
+import brave.internal.codec.HexCodec;
import brave.propagation.CurrentTraceContext;
import brave.propagation.TraceContext;
import org.slf4j.Logger;
diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationAutoConfiguration.java
index e0aeb1af4..5a263d221 100644
--- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationAutoConfiguration.java
+++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationAutoConfiguration.java
@@ -16,7 +16,7 @@
package org.springframework.cloud.sleuth.propagation;
-import brave.handler.FinishedSpanHandler;
+import brave.handler.SpanHandler;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -41,8 +41,7 @@ public class SleuthTagPropagationAutoConfiguration {
protected static class TagPropagationConfiguration {
@Bean
- public FinishedSpanHandler sleuthFinishedSpanHandler(
- SleuthProperties sleuthProperties,
+ static SpanHandler tagPropagationSpanHandler(SleuthProperties sleuthProperties,
SleuthTagPropagationProperties tagPropagationProperties) {
return new TagPropagationFinishedSpanHandler(sleuthProperties,
tagPropagationProperties);
diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationProperties.java
index 0e60d7830..f9022b674 100644
--- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationProperties.java
+++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationProperties.java
@@ -31,8 +31,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
public class SleuthTagPropagationProperties {
/**
- * Enables a {@link TagPropagationFinishedSpanHandler} that adds extra propagated
- * fields to span tags.
+ * Enables a {@link TagPropagationSpanHandler} that adds extra propagated fields to
+ * span tags.
*/
private boolean enabled = true;
diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerCondition.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerCondition.java
index 77c6164d9..5c50c3113 100644
--- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerCondition.java
+++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerCondition.java
@@ -17,7 +17,7 @@
package org.springframework.cloud.sleuth.sampler;
import brave.TracingCustomizer;
-import brave.handler.FinishedSpanHandler;
+import brave.handler.SpanHandler;
import brave.sampler.Sampler;
import org.springframework.boot.autoconfigure.condition.AnyNestedCondition;
@@ -48,7 +48,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
*
* - {@code zipkin2.reporter.Reporter} - what's used by Zipkin or others like
* Stackdriver
- * - {@link FinishedSpanHandler} - only accepts sampled data
+ * - {@link SpanHandler} - only accepts sampled data
* - {@link TracingCustomizer} - can configure one of the above
*
*
@@ -69,8 +69,8 @@ final class SamplerCondition extends AnyNestedCondition {
}
- @ConditionalOnBean(FinishedSpanHandler.class)
- static final class FinishedSpanHandlerAvailable {
+ @ConditionalOnBean(SpanHandler.class)
+ static final class SpanHandlerAvailable {
}
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/FinishedSpanHandlerTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/SpanHandlerTests.java
similarity index 80%
rename from spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/FinishedSpanHandlerTests.java
rename to spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/SpanHandlerTests.java
index 71f42bbec..b0b793eba 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/FinishedSpanHandlerTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/SpanHandlerTests.java
@@ -18,8 +18,8 @@ package org.springframework.cloud.sleuth;
import brave.Span;
import brave.Tracer;
-import brave.handler.FinishedSpanHandler;
import brave.handler.MutableSpan;
+import brave.handler.SpanHandler;
import brave.propagation.TraceContext;
import brave.sampler.Sampler;
import org.assertj.core.api.BDDAssertions;
@@ -42,8 +42,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
* @author Marcin Grzejszczak
*/
@RunWith(SpringRunner.class)
-@SpringBootTest(classes = FinishedSpanHandlerTests.FinishedSpanHandlerAspectTestsConfig.class, webEnvironment = NONE)
-public class FinishedSpanHandlerTests {
+@SpringBootTest(classes = SpanHandlerTests.SpanHandlerAspectTestsConfig.class, webEnvironment = NONE)
+public class SpanHandlerTests {
@Autowired
ArrayListSpanReporter reporter;
@@ -63,7 +63,7 @@ public class FinishedSpanHandlerTests {
@Configuration
@EnableAutoConfiguration(exclude = IntegrationAutoConfiguration.class)
- static class FinishedSpanHandlerAspectTestsConfig {
+ static class SpanHandlerAspectTestsConfig {
@Bean
Sampler sampler() {
@@ -75,12 +75,13 @@ public class FinishedSpanHandlerTests {
return new ArrayListSpanReporter();
}
- // tag::finishedSpanHandler[]
+ // tag::spanHandler[]
@Bean
- FinishedSpanHandler handlerOne() {
- return new FinishedSpanHandler() {
+ SpanHandler handlerOne() {
+ return new SpanHandler() {
@Override
- public boolean handle(TraceContext traceContext, MutableSpan span) {
+ public boolean end(TraceContext traceContext, MutableSpan span,
+ Cause cause) {
span.name("foo");
return true; // keep this span
}
@@ -88,16 +89,17 @@ public class FinishedSpanHandlerTests {
}
@Bean
- FinishedSpanHandler handlerTwo() {
- return new FinishedSpanHandler() {
+ SpanHandler handlerTwo() {
+ return new SpanHandler() {
@Override
- public boolean handle(TraceContext traceContext, MutableSpan span) {
+ public boolean end(TraceContext traceContext, MutableSpan span,
+ Cause cause) {
span.name(span.name() + " bar");
return true; // keep this span
}
};
}
- // end::finishedSpanHandler[]
+ // end::spanHandler[]
}
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationPropagationCustomizationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationPropagationCustomizationTests.java
index c7f7155b7..a8f1a839a 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationPropagationCustomizationTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationPropagationCustomizationTests.java
@@ -17,6 +17,7 @@
package org.springframework.cloud.sleuth.autoconfig;
import brave.propagation.B3Propagation;
+import brave.propagation.B3Propagation.Format;
import brave.propagation.B3SinglePropagation;
import brave.propagation.ExtraFieldPropagation;
import brave.propagation.Propagation;
@@ -33,6 +34,12 @@ import org.springframework.context.support.GenericApplicationContext;
public class TraceAutoConfigurationPropagationCustomizationTests {
+ // Default for spring-messaging is on 2.2.x is MULTI, though 3.x it is
+ // SINGLE_NO_PARENT
+ // spring-cloud/spring-cloud-sleuth#1607
+ Propagation.Factory defaultB3Propagation = B3Propagation.newFactoryBuilder()
+ .injectFormat(Format.MULTI).build();
+
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(TraceAutoConfiguration.class));
@@ -40,7 +47,7 @@ public class TraceAutoConfigurationPropagationCustomizationTests {
public void stillCreatesDefault() {
this.contextRunner.run((context) -> {
BDDAssertions.then(context.getBean(Propagation.Factory.class))
- .isEqualTo(B3Propagation.FACTORY);
+ .isEqualTo(defaultB3Propagation);
});
}
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/sampler/SamplerAutoConfigurationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/sampler/SamplerAutoConfigurationTests.java
index c6c72113b..8d1b792aa 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/sampler/SamplerAutoConfigurationTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/sampler/SamplerAutoConfigurationTests.java
@@ -18,8 +18,8 @@ package org.springframework.cloud.sleuth.sampler;
import brave.Tracing;
import brave.TracingCustomizer;
-import brave.handler.FinishedSpanHandler;
import brave.handler.MutableSpan;
+import brave.handler.SpanHandler;
import brave.propagation.TraceContext;
import brave.sampler.CountingSampler;
import brave.sampler.Sampler;
@@ -52,12 +52,11 @@ public class SamplerAutoConfigurationTests {
}
@Test
- public void should_use_CountingSampler_withFinishedSpanHandler() {
- this.contextRunner.withUserConfiguration(WithFinishedSpanHandler.class)
- .run((context -> {
- final Sampler bean = context.getBean(Sampler.class);
- BDDAssertions.then(bean).isInstanceOf(CountingSampler.class);
- }));
+ public void should_use_CountingSampler_withSpanHandler() {
+ this.contextRunner.withUserConfiguration(WithSpanHandler.class).run((context -> {
+ final Sampler bean = context.getBean(Sampler.class);
+ BDDAssertions.then(bean).isInstanceOf(CountingSampler.class);
+ }));
}
@Test
@@ -127,13 +126,13 @@ public class SamplerAutoConfigurationTests {
}
@Configuration
- static class WithFinishedSpanHandler {
+ static class WithSpanHandler {
@Bean
- FinishedSpanHandler finishedSpanHandler() {
- return new FinishedSpanHandler() {
+ SpanHandler spanHandler() {
+ return new SpanHandler() {
@Override
- public boolean handle(TraceContext context, MutableSpan span) {
+ public boolean end(TraceContext context, MutableSpan span, Cause cause) {
return true;
}
};
diff --git a/spring-cloud-sleuth-dependencies/pom.xml b/spring-cloud-sleuth-dependencies/pom.xml
index 00b19b100..05df4653d 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.11.2
+ 5.12.0
0.33.13
3.0.1
@@ -77,6 +77,12 @@
io.opentracing.brave
brave-opentracing
${brave.opentracing.version}
+
+
+ io.zipkin.brave
+ *
+
+
diff --git a/spring-cloud-sleuth-samples/pom.xml b/spring-cloud-sleuth-samples/pom.xml
index d67702e2f..a7c4f75f2 100644
--- a/spring-cloud-sleuth-samples/pom.xml
+++ b/spring-cloud-sleuth-samples/pom.xml
@@ -70,11 +70,6 @@
spring-cloud-sleuth-sample-test-core
${project.version}
-
- io.zipkin.zipkin2
- zipkin
- 2.19.3
-
diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml
index 2811d29c5..3bfa50075 100644
--- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml
+++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml
@@ -105,10 +105,6 @@
awaitility
compile
-
- io.zipkin.zipkin2
- zipkin
-
io.projectreactor
reactor-core
diff --git a/spring-cloud-sleuth-zipkin/pom.xml b/spring-cloud-sleuth-zipkin/pom.xml
index 2ed8da992..a66039292 100644
--- a/spring-cloud-sleuth-zipkin/pom.xml
+++ b/spring-cloud-sleuth-zipkin/pom.xml
@@ -78,6 +78,10 @@
io.zipkin.reporter2
zipkin-reporter
+
+ io.zipkin.reporter2
+ zipkin-reporter-brave
+
io.zipkin.reporter2
zipkin-sender-kafka
diff --git a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java
index 2d290a316..b0f0021c7 100644
--- a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java
+++ b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java
@@ -20,8 +20,8 @@ import java.util.List;
import brave.Span;
import brave.Tracing;
-import brave.handler.FinishedSpanHandler;
import brave.handler.MutableSpan;
+import brave.handler.SpanHandler;
import brave.propagation.TraceContext;
import brave.sampler.Sampler;
import okhttp3.mockwebserver.MockWebServer;
@@ -299,10 +299,11 @@ public class ZipkinAutoConfigurationTests {
protected static class HandlerHanldersConfig {
@Bean
- FinishedSpanHandler handlerOne() {
- return new FinishedSpanHandler() {
+ SpanHandler handlerOne() {
+ return new SpanHandler() {
@Override
- public boolean handle(TraceContext traceContext, MutableSpan span) {
+ public boolean end(TraceContext traceContext, MutableSpan span,
+ Cause cause) {
span.name("foo");
return true; // keep this span
}
@@ -310,10 +311,11 @@ public class ZipkinAutoConfigurationTests {
}
@Bean
- FinishedSpanHandler handlerTwo() {
- return new FinishedSpanHandler() {
+ SpanHandler handlerTwo() {
+ return new SpanHandler() {
@Override
- public boolean handle(TraceContext traceContext, MutableSpan span) {
+ public boolean end(TraceContext traceContext, MutableSpan span,
+ Cause cause) {
span.name(span.name() + " bar");
return true; // keep this span
}
diff --git a/src/checkstyle/checkstyle-suppressions.xml b/src/checkstyle/checkstyle-suppressions.xml
index 228a2c038..3824647b7 100644
--- a/src/checkstyle/checkstyle-suppressions.xml
+++ b/src/checkstyle/checkstyle-suppressions.xml
@@ -4,7 +4,7 @@
"https://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
-
+
@@ -15,7 +15,7 @@
-
+