diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml
index 8e261e11a..87c2b141a 100644
--- a/benchmarks/pom.xml
+++ b/benchmarks/pom.xml
@@ -34,7 +34,7 @@
1.8
1.8
2.1.10.RELEASE
- 5.10.1
+ 5.11.0
3.11.0
diff --git a/pom.xml b/pom.xml
index 36ed55eed..d527d8009 100644
--- a/pom.xml
+++ b/pom.xml
@@ -264,7 +264,7 @@
Fishtown.SR4
2.1.6.BUILD-SNAPSHOT
2.1.6.BUILD-SNAPSHOT
- 5.10.1
+ 5.11.0
2.1.2.RELEASE
diff --git a/spring-cloud-sleuth-core/pom.xml b/spring-cloud-sleuth-core/pom.xml
index 8f23c9d5e..6d48c2e77 100644
--- a/spring-cloud-sleuth-core/pom.xml
+++ b/spring-cloud-sleuth-core/pom.xml
@@ -195,7 +195,7 @@
io.zipkin.brave
- brave-context-log4j2
+ brave-context-slf4j
io.zipkin.brave
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 29dd0cfeb..c7f7155b7 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
@@ -49,7 +49,7 @@ public class TraceAutoConfigurationPropagationCustomizationTests {
this.contextRunner.withPropertyValues("spring.sleuth.baggage-keys=my-baggage")
.run((context) -> {
BDDAssertions.then(context.getBean(Propagation.Factory.class))
- .hasFieldOrPropertyWithValue("delegate",
+ .hasFieldOrPropertyWithValue("delegate.delegate",
B3Propagation.FACTORY);
});
}
@@ -81,7 +81,7 @@ public class TraceAutoConfigurationPropagationCustomizationTests {
.withUserConfiguration(CustomPropagationFactoryBuilderConfig.class)
.run((context) -> {
BDDAssertions.then(context.getBean(Propagation.Factory.class))
- .hasFieldOrPropertyWithValue("delegate",
+ .hasFieldOrPropertyWithValue("delegate.delegate",
B3SinglePropagation.FACTORY);
});
}
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/documentation/SpringCloudSleuthDocTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/documentation/SpringCloudSleuthDocTests.java
index 0742a15dc..e041f966a 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/documentation/SpringCloudSleuthDocTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/documentation/SpringCloudSleuthDocTests.java
@@ -27,10 +27,10 @@ import java.util.concurrent.Future;
import brave.Span;
import brave.Tracer;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import brave.sampler.Sampler;
import org.assertj.core.api.BDDAssertions;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -55,9 +55,9 @@ public class SpringCloudSleuthDocTests {
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.sampler(Sampler.ALWAYS_SAMPLE).spanReporter(this.reporter).build();
Tracer tracer = this.tracing.tracer();
@@ -67,6 +67,12 @@ public class SpringCloudSleuthDocTests {
this.reporter.clear();
}
+ @After
+ public void close() {
+ this.tracing.close();
+ this.currentTraceContext.close();
+ }
+
@Test
public void should_set_runnable_name_to_annotated_value()
throws ExecutionException, InterruptedException {
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/ExecutorBeanPostProcessorTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/ExecutorBeanPostProcessorTests.java
index 3503b61f9..19f7992b4 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/ExecutorBeanPostProcessorTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/ExecutorBeanPostProcessorTests.java
@@ -32,6 +32,7 @@ import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicBoolean;
import brave.Tracing;
+import brave.propagation.StrictCurrentTraceContext;
import org.aopalliance.aop.Advice;
import org.assertj.core.api.BDDAssertions;
import org.junit.After;
@@ -65,7 +66,10 @@ public class ExecutorBeanPostProcessorTests {
@Mock
BeanFactory beanFactory;
- Tracing tracing = Tracing.newBuilder().build();
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
+ .build();
private SleuthAsyncProperties sleuthAsyncProperties;
@@ -79,6 +83,7 @@ public class ExecutorBeanPostProcessorTests {
@After
public void clear() {
this.tracing.close();
+ this.currentTraceContext.close();
}
@Test
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceThreadPoolTaskSchedulerTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceThreadPoolTaskSchedulerTests.java
index 9c01b8ba5..3c927e6b5 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceThreadPoolTaskSchedulerTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceThreadPoolTaskSchedulerTests.java
@@ -24,8 +24,8 @@ import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadFactory;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -43,9 +43,9 @@ import org.springframework.util.ErrorHandler;
@RunWith(MockitoJUnitRunner.class)
public class LazyTraceThreadPoolTaskSchedulerTests {
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(currentTraceContext)
.build();
@Mock
@@ -62,6 +62,13 @@ public class LazyTraceThreadPoolTaskSchedulerTests {
this.delegate);
}
+ @After
+ public void close() {
+ this.executor.shutdown();
+ this.tracing.close();
+ this.currentTraceContext.close();
+ }
+
BeanFactory beanFactory() {
BDDMockito.given(this.beanFactory.getBean(Tracing.class))
.willReturn(this.tracing);
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncAspectTest.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncAspectTest.java
index d2d515ee7..b1bd8a492 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncAspectTest.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncAspectTest.java
@@ -17,11 +17,11 @@
package org.springframework.cloud.sleuth.instrument.async;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.reflect.MethodSignature;
import org.assertj.core.api.BDDAssertions;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.BDDMockito;
@@ -35,11 +35,11 @@ import org.springframework.cloud.sleuth.util.ArrayListSpanReporter;
*/
public class TraceAsyncAspectTest {
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
ProceedingJoinPoint point = Mockito.mock(ProceedingJoinPoint.class);
@@ -54,6 +54,12 @@ public class TraceAsyncAspectTest {
BDDMockito.given(this.point.getTarget()).willReturn("");
}
+ @After
+ public void close() {
+ this.tracing.close();
+ this.currentTraceContext.close();
+ }
+
// Issue#926
@Test
public void should_work() throws Throwable {
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncListenableTaskExecutorTest.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncListenableTaskExecutorTest.java
index db3436719..18a2738df 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncListenableTaskExecutorTest.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncListenableTaskExecutorTest.java
@@ -23,10 +23,10 @@ import java.util.concurrent.atomic.AtomicBoolean;
import brave.Span;
import brave.Tracer;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import org.assertj.core.api.BDDAssertions;
import org.awaitility.Awaitility;
+import org.junit.After;
import org.junit.Test;
import org.springframework.core.task.AsyncListenableTaskExecutor;
@@ -39,9 +39,9 @@ public class TraceAsyncListenableTaskExecutorTest {
AsyncListenableTaskExecutor delegate = new SimpleAsyncTaskExecutor();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(currentTraceContext)
.build();
Tracer tracer = this.tracing.tracer();
@@ -49,6 +49,12 @@ public class TraceAsyncListenableTaskExecutorTest {
TraceAsyncListenableTaskExecutor traceAsyncListenableTaskExecutor = new TraceAsyncListenableTaskExecutor(
this.delegate, this.tracing);
+ @After
+ public void close() {
+ this.tracing.close();
+ this.currentTraceContext.close();
+ }
+
@Test
public void should_submit_listenable_trace_runnable() throws Exception {
AtomicBoolean executed = new AtomicBoolean();
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceCallableTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceCallableTests.java
index 27504ddcb..bd281c17b 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceCallableTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceCallableTests.java
@@ -23,8 +23,7 @@ import java.util.concurrent.Executors;
import brave.Span;
import brave.Tracer;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -41,20 +40,21 @@ public class TraceCallableTests {
ExecutorService executor = Executors.newSingleThreadExecutor();
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
Tracer tracer = this.tracing.tracer();
@After
public void clean() {
+ this.executor.shutdown();
this.tracing.close();
this.reporter.clear();
- this.executor.shutdown();
+ this.currentTraceContext.close();
}
@Test
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceRunnableTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceRunnableTests.java
index e02ce484c..177540867 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceRunnableTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceRunnableTests.java
@@ -23,8 +23,7 @@ import java.util.concurrent.atomic.AtomicReference;
import brave.Span;
import brave.Tracer;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -41,20 +40,21 @@ public class TraceRunnableTests {
ExecutorService executor = Executors.newSingleThreadExecutor();
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
Tracer tracer = this.tracing.tracer();
@After
public void clean() {
+ this.executor.shutdown();
this.tracing.close();
this.reporter.clear();
- this.executor.shutdown();
+ this.currentTraceContext.close();
}
@Test
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceableExecutorServiceTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceableExecutorServiceTests.java
index 0f89b44ba..4759f9f1a 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceableExecutorServiceTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceableExecutorServiceTests.java
@@ -29,11 +29,10 @@ import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import brave.ScopedSpan;
-import brave.Span;
import brave.Tracer;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
+import brave.propagation.TraceContext;
import org.assertj.core.api.BDDAssertions;
import org.junit.After;
import org.junit.Before;
@@ -65,11 +64,11 @@ public class TraceableExecutorServiceTests {
ExecutorService traceManagerableExecutorService;
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
Tracer tracer = this.tracing.tracer();
@@ -85,12 +84,11 @@ public class TraceableExecutorServiceTests {
}
@After
- public void tearDown() throws Exception {
+ public void close() {
this.traceManagerableExecutorService.shutdown();
this.executorService.shutdown();
- if (Tracing.current() != null) {
- Tracing.current().close();
- }
+ this.tracing.close();
+ this.currentTraceContext.close();
}
@Test
@@ -244,9 +242,9 @@ public class TraceableExecutorServiceTests {
@Override
public void run() {
- Span span = Tracing.currentTracer().currentSpan();
- this.traceIds.add(span.context().traceId());
- this.spanIds.add(span.context().spanId());
+ TraceContext context = currentTraceContext.get();
+ this.traceIds.add(context.traceId());
+ this.spanIds.add(context.spanId());
}
void clear() {
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceableScheduledExecutorServiceTest.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceableScheduledExecutorServiceTest.java
index 6e5db5cc1..1e5dd9666 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceableScheduledExecutorServiceTest.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/TraceableScheduledExecutorServiceTest.java
@@ -22,8 +22,8 @@ import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -48,9 +48,9 @@ import static org.mockito.Mockito.never;
@RunWith(MockitoJUnitRunner.class)
public class TraceableScheduledExecutorServiceTest {
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.build();
@Mock
@@ -67,6 +67,12 @@ public class TraceableScheduledExecutorServiceTest {
beanFactory();
}
+ @After
+ public void close() {
+ this.tracing.close();
+ this.currentTraceContext.close();
+ }
+
@Test
public void should_schedule_a_trace_runnable() throws Exception {
this.traceableScheduledExecutorService.schedule(aRunnable(), 1L, TimeUnit.DAYS);
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixConcurrencyStrategyTest.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixConcurrencyStrategyTest.java
index 19b99a176..5cd53ee51 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixConcurrencyStrategyTest.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixConcurrencyStrategyTest.java
@@ -21,8 +21,7 @@ import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import com.netflix.hystrix.HystrixThreadPoolKey;
import com.netflix.hystrix.HystrixThreadPoolProperties;
import com.netflix.hystrix.strategy.HystrixPlugins;
@@ -52,9 +51,9 @@ public class SleuthHystrixConcurrencyStrategyTest {
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
@Before
@@ -62,6 +61,7 @@ public class SleuthHystrixConcurrencyStrategyTest {
public void setup() {
HystrixPlugins.reset();
this.reporter.clear();
+ this.currentTraceContext.close();
}
@Test
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/hystrix/TraceCommandTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/hystrix/TraceCommandTests.java
index 272f56831..7d1834c62 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/hystrix/TraceCommandTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/hystrix/TraceCommandTests.java
@@ -22,8 +22,7 @@ import java.util.concurrent.atomic.AtomicReference;
import brave.Span;
import brave.Tracer;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import brave.sampler.Sampler;
import com.netflix.hystrix.HystrixCommand;
import com.netflix.hystrix.HystrixCommandKey;
@@ -31,6 +30,7 @@ import com.netflix.hystrix.HystrixCommandProperties;
import com.netflix.hystrix.HystrixThreadPoolProperties;
import com.netflix.hystrix.strategy.HystrixPlugins;
import org.assertj.core.api.BDDAssertions;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -42,11 +42,11 @@ import static org.assertj.core.api.BDDAssertions.then;
public class TraceCommandTests {
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(currentTraceContext)
.spanReporter(this.reporter).sampler(Sampler.ALWAYS_SAMPLE).build();
Tracer tracer = this.tracing.tracer();
@@ -57,6 +57,12 @@ public class TraceCommandTests {
this.reporter.clear();
}
+ @After
+ public void close() {
+ this.tracing.close();
+ this.currentTraceContext.close();
+ }
+
@Test
public void should_remove_span_from_thread_local_after_finishing_work()
throws Exception {
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/messaging/ITTracingChannelInterceptorTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/messaging/ITTracingChannelInterceptorTests.java
index 49ec34114..2df69e8b1 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/messaging/ITTracingChannelInterceptorTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/messaging/ITTracingChannelInterceptorTests.java
@@ -26,8 +26,7 @@ import javax.annotation.PreDestroy;
import brave.Span;
import brave.Tracer;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -153,11 +152,14 @@ public class ITTracingChannelInterceptorTests implements MessageHandler {
return new ArrayList<>();
}
+ @Bean
+ StrictCurrentTraceContext currentTraceContext() {
+ return StrictCurrentTraceContext.create();
+ }
+
@Bean
Tracing tracing() {
- return Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ return Tracing.newBuilder().currentTraceContext(currentTraceContext())
.spanReporter(spans()::add).build();
}
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/messaging/TracingChannelInterceptorTest.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/messaging/TracingChannelInterceptorTest.java
index 93b8dafef..ca2b0a91d 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/messaging/TracingChannelInterceptorTest.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/messaging/TracingChannelInterceptorTest.java
@@ -23,8 +23,7 @@ import java.util.List;
import java.util.Map;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import org.junit.After;
import org.junit.Test;
import zipkin2.Span;
@@ -49,12 +48,14 @@ import static org.springframework.messaging.support.NativeMessageHeaderAccessor.
public class TracingChannelInterceptorTest {
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
List spans = new ArrayList<>();
- ChannelInterceptor interceptor = TracingChannelInterceptor.create(Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
- .spanReporter(this.spans::add).build());
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
+ .spanReporter(this.spans::add).build();
+
+ ChannelInterceptor interceptor = TracingChannelInterceptor.create(tracing);
QueueChannel channel = new QueueChannel();
@@ -69,6 +70,12 @@ public class TracingChannelInterceptorTest {
}
};
+ @After
+ public void close() {
+ this.tracing.close();
+ this.currentTraceContext.close();
+ }
+
@Test
public void pollingReceive_emptyQueue() {
this.channel.addInterceptor(consumerSideOnly(this.interceptor));
@@ -357,10 +364,4 @@ public class TracingChannelInterceptorTest {
return new ExecutorSideOnly();
}
- @After
- public void close() {
- assertThat(Tracing.current().currentTraceContext().get()).isNull();
- Tracing.current().close();
- }
-
}
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/rxjava/SleuthRxJavaSchedulersHookTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/rxjava/SleuthRxJavaSchedulersHookTests.java
index fe8c2529b..22eb3be4f 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/rxjava/SleuthRxJavaSchedulersHookTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/rxjava/SleuthRxJavaSchedulersHookTests.java
@@ -28,8 +28,7 @@ import java.util.concurrent.ThreadFactory;
import brave.Tracer;
import brave.Tracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -52,11 +51,11 @@ public class SleuthRxJavaSchedulersHookTests {
List threadsToIgnore = new ArrayList<>();
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
Tracer tracer = this.tracing.tracer();
@@ -65,6 +64,7 @@ public class SleuthRxJavaSchedulersHookTests {
public void clean() {
this.tracing.close();
this.reporter.clear();
+ this.currentTraceContext.close();
}
@Before
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/SleuthHttpClientParserTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/SleuthHttpClientParserTests.java
index 479d8c541..509b2c3e7 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/SleuthHttpClientParserTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/SleuthHttpClientParserTests.java
@@ -23,6 +23,7 @@ import java.util.Map;
import brave.SpanCustomizer;
import brave.http.HttpClientAdapter;
+import brave.propagation.TraceContext;
import org.junit.Test;
import static org.assertj.core.api.BDDAssertions.then;
@@ -34,6 +35,8 @@ import static org.assertj.core.api.BDDAssertions.then;
*/
public class SleuthHttpClientParserTests {
+ private TraceContext context = TraceContext.newBuilder().traceId(1).spanId(2).build();
+
private TraceKeys traceKeys = new TraceKeys();
private TestSpanCustomizer customizer = new TestSpanCustomizer();
@@ -73,7 +76,7 @@ public class SleuthHttpClientParserTests {
public Integer statusCode(Object response) {
return 200;
}
- }, null, this.customizer);
+ }, context, this.customizer);
then(this.customizer.tags).containsEntry("http.user-agent", "Test")
.containsEntry("http.accept", "'text/plain','text/xml'")
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java
index 09498b586..fe8992d93 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java
@@ -26,8 +26,7 @@ import brave.Span;
import brave.Tracer;
import brave.Tracing;
import brave.http.HttpTracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import brave.sampler.Sampler;
import brave.servlet.TracingFilter;
import org.junit.After;
@@ -61,11 +60,11 @@ public class TraceFilterTests {
static final String SAMPLED_ID_NAME = "X-B3-Sampled";
static final String SPAN_FLAGS = "X-B3-Flags";
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
Tracer tracer = this.tracing.tracer();
@@ -101,7 +100,8 @@ public class TraceFilterTests {
@After
public void cleanup() {
- Tracing.current().close();
+ this.tracing.close();
+ this.currentTraceContext.close();
}
@Test
@@ -111,14 +111,13 @@ public class TraceFilterTests {
neverSampleFilter().doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).isEmpty();
}
private Filter neverSampleFilter() {
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ this.tracing.close();
+ this.tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).sampler(Sampler.NEVER_SAMPLE)
.supportsJoin(false).build();
HttpTracing httpTracing = HttpTracing.newBuilder(tracing)
@@ -150,7 +149,7 @@ public class TraceFilterTests {
this.response.setStatus(0);
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).hasSize(1);
then(this.reporter.getSpans().get(0).tags())
.doesNotContainKey("http.status_code");
@@ -165,7 +164,7 @@ public class TraceFilterTests {
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).hasSize(1);
then(this.reporter.getSpans().get(0).id()).isEqualTo(PARENT_ID);
then(this.reporter.getSpans().get(0).tags())
@@ -187,7 +186,7 @@ public class TraceFilterTests {
span.set(this.tracing.tracer().currentSpan());
});
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(span.get().context().traceIdString()).isEqualTo(SpanUtil.idToHex(2L));
}
@@ -197,7 +196,7 @@ public class TraceFilterTests {
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
}
@Test
@@ -207,7 +206,7 @@ public class TraceFilterTests {
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).hasSize(1);
}
@@ -217,7 +216,7 @@ public class TraceFilterTests {
Span span = this.tracer.nextSpan().name("http:foo");
this.response.setStatus(404);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
this.filter.doFilter(this.request, this.response, this.filterChain);
}
@@ -229,15 +228,14 @@ public class TraceFilterTests {
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
verifyParentSpanHttpTags();
}
@Test
public void createsChildFromHeadersWhenJoinUnsupported() throws Exception {
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ this.tracing.close();
+ this.tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).supportsJoin(false).build();
HttpTracing httpTracing = HttpTracing.create(tracing);
this.request = builder().header(SPAN_ID_NAME, PARENT_ID)
@@ -247,7 +245,7 @@ public class TraceFilterTests {
TracingFilter.create(httpTracing).doFilter(this.request, this.response,
this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).hasSize(1);
then(this.reporter.getSpans().get(0).parentId()).isEqualTo(PARENT_ID);
}
@@ -262,7 +260,7 @@ public class TraceFilterTests {
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).hasSize(1);
then(this.reporter.getSpans().get(0).tags()).containsEntry("http.x-foo", "bar");
}
@@ -277,7 +275,7 @@ public class TraceFilterTests {
this.request.addHeader("X-Foo", "spam");
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).hasSize(1);
// We no longer support multi value headers
then(this.reporter.getSpans().get(0).tags()).containsEntry("http.x-foo", "bar");
@@ -304,7 +302,7 @@ public class TraceFilterTests {
assertThat(e.getMessage()).isEqualTo("Planned");
}
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
verifyParentSpanHttpTags(HttpStatus.INTERNAL_SERVER_ERROR);
then(this.reporter.getSpans()).hasSize(1);
then(this.reporter.getSpans().get(0).tags()).containsEntry("error", "Planned");
@@ -318,7 +316,7 @@ public class TraceFilterTests {
this.response.setStatus(404);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
this.filter.doFilter(this.request, this.response, this.filterChain);
}
@@ -331,7 +329,7 @@ public class TraceFilterTests {
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).hasSize(1);
}
@@ -344,7 +342,7 @@ public class TraceFilterTests {
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).hasSize(1);
}
@@ -356,7 +354,7 @@ public class TraceFilterTests {
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).isNotEmpty();
then(this.response.getStatus()).isEqualTo(HttpStatus.OK.value());
}
@@ -370,7 +368,7 @@ public class TraceFilterTests {
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).isNotEmpty();
then(this.response.getStatus()).isEqualTo(HttpStatus.OK.value());
}
@@ -383,7 +381,7 @@ public class TraceFilterTests {
neverSampleFilter().doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).isNotEmpty();
}
@@ -395,7 +393,7 @@ public class TraceFilterTests {
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).isNotEmpty();
}
@@ -408,7 +406,7 @@ public class TraceFilterTests {
neverSampleFilter().doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
// It is ok to go without a trace ID, if sampling or debug is set
then(this.reporter.getSpans()).hasSize(1).extracting("id")
.isNotEqualTo(SpanUtil.idToHex(10L));
@@ -423,7 +421,7 @@ public class TraceFilterTests {
neverSampleFilter().doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).isEmpty();
}
@@ -436,7 +434,7 @@ public class TraceFilterTests {
this.filter.doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).hasSize(1);
then(this.reporter.getSpans().get(0).tags())
.containsEntry("http.url", "http://localhost/?foo=bar")
@@ -453,7 +451,7 @@ public class TraceFilterTests {
neverSampleFilter().doFilter(this.request, this.response, this.filterChain);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).hasSize(1);
then(this.reporter.getSpans().get(0).name()).isEqualTo("http:/");
}
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java
index 0e480a9e1..cc5baefbb 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java
@@ -22,8 +22,8 @@ import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
-import brave.Tracing;
import brave.http.HttpRequest;
+import brave.propagation.CurrentTraceContext;
import brave.sampler.Sampler;
import brave.sampler.SamplerFunction;
import org.assertj.core.api.BDDAssertions;
@@ -66,10 +66,10 @@ public class TraceFilterWebIntegrationTests {
public OutputCapture capture = new OutputCapture();
@Autowired
- Tracing tracer;
+ ArrayListSpanReporter accumulator;
@Autowired
- ArrayListSpanReporter accumulator;
+ CurrentTraceContext currentTraceContext;
@Autowired
@HttpServerSampler
@@ -94,7 +94,7 @@ public class TraceFilterWebIntegrationTests {
catch (Exception e) {
}
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.accumulator.getSpans()).hasSize(1);
Span fromFirstTraceFilterFlow = this.accumulator.getSpans().get(0);
then(fromFirstTraceFilterFlow.tags()).containsEntry("http.status_code", "500")
@@ -122,7 +122,7 @@ public class TraceFilterWebIntegrationTests {
catch (HttpClientErrorException e) {
}
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.accumulator.getSpans()).hasSize(1);
then(this.accumulator.getSpans().get(0).kind().ordinal())
.isEqualTo(Span.Kind.SERVER.ordinal());
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceRestTemplateInterceptorTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceRestTemplateInterceptorTests.java
index 15ef1cd65..b46d08d69 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceRestTemplateInterceptorTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceRestTemplateInterceptorTests.java
@@ -25,8 +25,7 @@ import brave.Span;
import brave.Tracer;
import brave.Tracing;
import brave.http.HttpTracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import brave.sampler.Sampler;
import brave.spring.web.TracingClientHttpRequestInterceptor;
import org.apache.commons.lang3.StringUtils;
@@ -55,11 +54,11 @@ import static org.assertj.core.api.BDDAssertions.then;
*/
public class TraceRestTemplateInterceptorTests {
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
Tracer tracer = this.tracing.tracer();
@@ -86,7 +85,8 @@ public class TraceRestTemplateInterceptorTests {
@After
public void clean() {
- Tracing.current().close();
+ this.tracing.close();
+ this.currentTraceContext.close();
}
@Test
@@ -141,9 +141,8 @@ public class TraceRestTemplateInterceptorTests {
@Test
public void notSampledHeaderAddedWhenNotExportable() {
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ this.tracing.close();
+ this.tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).sampler(Sampler.NEVER_SAMPLE).build();
this.template.setInterceptors(Arrays.asList(
TracingClientHttpRequestInterceptor.create(HttpTracing.create(tracing))));
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/RestTemplateTraceAspectIntegrationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/RestTemplateTraceAspectIntegrationTests.java
index 2ff980bc4..5f0538da0 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/RestTemplateTraceAspectIntegrationTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/RestTemplateTraceAspectIntegrationTests.java
@@ -22,6 +22,7 @@ import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
import brave.Tracing;
+import brave.propagation.CurrentTraceContext;
import brave.sampler.Sampler;
import brave.spring.web.TracingAsyncClientHttpRequestInterceptor;
import org.junit.After;
@@ -72,6 +73,9 @@ public class RestTemplateTraceAspectIntegrationTests {
@Autowired
AspectTestingController controller;
+ @Autowired
+ CurrentTraceContext currentTraceContext;
+
@Autowired
Tracing tracer;
@@ -138,7 +142,7 @@ public class RestTemplateTraceAspectIntegrationTests {
throws Exception {
whenARequestIsSentToASyncEndpointThatShouldBeFilteredOut();
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(this.reporter.getSpans()).isEmpty();
}
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRequestHttpHeadersFilterTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRequestHttpHeadersFilterTests.java
index f5459fcec..5dcf20705 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRequestHttpHeadersFilterTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRequestHttpHeadersFilterTests.java
@@ -21,9 +21,9 @@ import java.util.Collections;
import brave.Tracing;
import brave.http.HttpTracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import org.assertj.core.api.BDDAssertions;
+import org.junit.After;
import org.junit.Test;
import org.springframework.cloud.gateway.filter.headers.HttpHeadersFilter;
@@ -34,15 +34,21 @@ import org.springframework.mock.web.server.MockServerWebExchange;
public class TraceRequestHttpHeadersFilterTests {
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
HttpTracing httpTracing = HttpTracing.newBuilder(this.tracing).build();
+ @After
+ public void close() {
+ this.tracing.close();
+ this.currentTraceContext.close();
+ }
+
@Test
public void should_override_span_tracing_headers() {
HttpHeadersFilter filter = TraceRequestHttpHeadersFilter.create(this.httpTracing);
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceResponseHttpHeadersFilterTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceResponseHttpHeadersFilterTests.java
index ee2010180..8e75d98e4 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceResponseHttpHeadersFilterTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceResponseHttpHeadersFilterTests.java
@@ -18,9 +18,9 @@ package org.springframework.cloud.sleuth.instrument.web.client;
import brave.Tracing;
import brave.http.HttpTracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import org.assertj.core.api.BDDAssertions;
+import org.junit.After;
import org.junit.Test;
import org.springframework.cloud.gateway.filter.headers.HttpHeadersFilter;
@@ -31,15 +31,21 @@ import org.springframework.mock.web.server.MockServerWebExchange;
public class TraceResponseHttpHeadersFilterTests {
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
HttpTracing httpTracing = HttpTracing.newBuilder(this.tracing).build();
+ @After
+ public void close() {
+ this.tracing.close();
+ this.currentTraceContext.close();
+ }
+
@Test
public void should_not_report_span_when_no_span_was_present_in_attribute() {
HttpHeadersFilter filter = TraceResponseHttpHeadersFilter
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptorIntegrationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptorIntegrationTests.java
index 9a26d4276..b9721ef43 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptorIntegrationTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptorIntegrationTests.java
@@ -24,8 +24,7 @@ import brave.Span;
import brave.Tracer;
import brave.Tracing;
import brave.http.HttpTracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import brave.spring.web.TracingClientHttpRequestInterceptor;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
@@ -52,11 +51,11 @@ public class TraceRestTemplateInterceptorIntegrationTests {
@Rule
public final MockWebServer mockWebServer = new MockWebServer();
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
Tracer tracer = this.tracing.tracer();
@@ -72,7 +71,8 @@ public class TraceRestTemplateInterceptorIntegrationTests {
@After
public void clean() {
- Tracing.current().close();
+ this.tracing.close();
+ this.currentTraceContext.close();
}
// Issue #198
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/exceptionresolver/Issue585Tests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/exceptionresolver/Issue585Tests.java
index dfb3bf9ab..3946e9eca 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/exceptionresolver/Issue585Tests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/exceptionresolver/Issue585Tests.java
@@ -22,6 +22,7 @@ import javax.servlet.http.HttpServletRequest;
import brave.Span;
import brave.Tracing;
+import brave.propagation.CurrentTraceContext;
import brave.sampler.Sampler;
import com.fasterxml.jackson.annotation.JsonInclude;
import org.junit.Test;
@@ -55,6 +56,9 @@ public class Issue585Tests {
TestRestTemplate testRestTemplate = new TestRestTemplate();
+ @Autowired
+ CurrentTraceContext currentTraceContext;
+
@Autowired
ArrayListSpanReporter reporter;
@@ -67,7 +71,7 @@ public class Issue585Tests {
"http://localhost:" + this.port + "/sleuthtest?greeting=foo",
String.class);
- then(Tracing.current().tracer().currentSpan()).isNull();
+ then(this.currentTraceContext.get()).isNull();
then(entity.getStatusCode().value()).isEqualTo(500);
then(this.reporter.getSpans().get(0).tags()).containsEntry("custom", "tag")
.containsKeys("error");
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/FeignRetriesTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/FeignRetriesTests.java
index 4d09408a2..27acb79b7 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/FeignRetriesTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/FeignRetriesTests.java
@@ -23,8 +23,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import brave.Tracing;
import brave.http.HttpTracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import feign.Client;
import feign.Feign;
import feign.FeignException;
@@ -61,11 +60,11 @@ public class FeignRetriesTests {
@Mock
BeanFactory beanFactory;
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
HttpTracing httpTracing = HttpTracing.newBuilder(this.tracing)
@@ -78,6 +77,12 @@ public class FeignRetriesTests {
.willReturn(this.httpTracing);
}
+ @After
+ public void close() {
+ this.tracing.close();
+ this.currentTraceContext.close();
+ }
+
@Test
public void testRetriedWhenExceededNumberOfRetries() throws Exception {
Client client = (request, options) -> {
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignAspectTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignAspectTests.java
index bd193ea76..179788558 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignAspectTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignAspectTests.java
@@ -16,14 +16,12 @@
package org.springframework.cloud.sleuth.instrument.web.client.feign;
-import java.io.IOException;
-
import brave.Tracing;
import brave.http.HttpTracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import feign.Client;
import org.aspectj.lang.ProceedingJoinPoint;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -55,9 +53,9 @@ public class TraceFeignAspectTests {
@Mock
TraceLoadBalancerFeignClient traceLoadBalancerFeignClient;
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(currentTraceContext)
.build();
HttpTracing httpTracing = HttpTracing.newBuilder(this.tracing)
@@ -69,13 +67,18 @@ public class TraceFeignAspectTests {
public void setup() {
this.traceFeignAspect = new TraceFeignAspect(this.beanFactory) {
@Override
- Object executeTraceFeignClient(Object bean, ProceedingJoinPoint pjp)
- throws IOException {
+ Object executeTraceFeignClient(Object bean, ProceedingJoinPoint pjp) {
return null;
}
};
}
+ @After
+ public void close() {
+ this.tracing.close();
+ this.currentTraceContext.close();
+ }
+
@Test
public void should_wrap_feign_client_in_trace_representation() throws Throwable {
given(this.pjp.getTarget()).willReturn(this.client);
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TracingFeignClientTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TracingFeignClientTests.java
index 53dc877cd..1367f7653 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TracingFeignClientTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TracingFeignClientTests.java
@@ -25,11 +25,11 @@ import brave.Span;
import brave.Tracer;
import brave.Tracing;
import brave.http.HttpTracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import feign.Client;
import feign.Request;
import org.assertj.core.api.BDDAssertions;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -51,11 +51,11 @@ public class TracingFeignClientTests {
Request.Options options = new Request.Options();
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
List spans = new ArrayList<>();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(currentTraceContext)
.spanReporter(spans::add).build();
Tracer tracer = this.tracing.tracer();
@@ -73,6 +73,12 @@ public class TracingFeignClientTests {
this.traceFeignClient = TracingFeignClient.create(this.httpTracing, this.client);
}
+ @After
+ public void close() {
+ this.tracing.close();
+ this.currentTraceContext.close();
+ }
+
@Test
public void should_log_cr_when_response_successful() throws IOException {
Span span = this.tracer.nextSpan().name("foo");
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TracingFeignObjectWrapperTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TracingFeignObjectWrapperTests.java
index a90aee096..5eb3b7112 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TracingFeignObjectWrapperTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TracingFeignObjectWrapperTests.java
@@ -16,17 +16,12 @@
package org.springframework.cloud.sleuth.instrument.web.client.feign;
-import brave.Tracing;
-import brave.http.HttpTracing;
import feign.Client;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
-import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
-import org.springframework.beans.factory.BeanFactory;
-
import static org.assertj.core.api.BDDAssertions.then;
import static org.mockito.Mockito.mock;
@@ -36,13 +31,6 @@ import static org.mockito.Mockito.mock;
@RunWith(MockitoJUnitRunner.class)
public class TracingFeignObjectWrapperTests {
- Tracing tracing = Tracing.newBuilder().build();
-
- HttpTracing httpTracing = HttpTracing.create(this.tracing);
-
- @Mock
- BeanFactory beanFactory;
-
@InjectMocks
TraceFeignObjectWrapper traceFeignObjectWrapper;
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/issue502/Issue502Tests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/issue502/Issue502Tests.java
index e62690214..9ac806a95 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/issue502/Issue502Tests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/issue502/Issue502Tests.java
@@ -21,7 +21,6 @@ import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.List;
-import brave.Tracing;
import brave.sampler.Sampler;
import feign.Client;
import feign.Request;
@@ -71,9 +70,6 @@ public class Issue502Tests {
@Autowired
ArrayListSpanReporter reporter;
- @Autowired
- Tracing tracer;
-
@Before
public void open() {
this.reporter.clear();
diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/zuul/TracePostZuulFilterTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/zuul/TracePostZuulFilterTests.java
index af6a3ec83..71a298e68 100644
--- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/zuul/TracePostZuulFilterTests.java
+++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/zuul/TracePostZuulFilterTests.java
@@ -26,8 +26,7 @@ import brave.Span;
import brave.Tracer;
import brave.Tracing;
import brave.http.HttpTracing;
-import brave.propagation.StrictScopeDecorator;
-import brave.propagation.ThreadLocalCurrentTraceContext;
+import brave.propagation.StrictCurrentTraceContext;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.monitoring.TracerFactory;
import org.junit.After;
@@ -57,11 +56,11 @@ public class TracePostZuulFilterTests {
@Mock
HttpServletResponse httpServletResponse;
+ StrictCurrentTraceContext currentTraceContext = StrictCurrentTraceContext.create();
+
ArrayListSpanReporter reporter = new ArrayListSpanReporter();
- Tracing tracing = Tracing.newBuilder()
- .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder()
- .addScopeDecorator(StrictScopeDecorator.create()).build())
+ Tracing tracing = Tracing.newBuilder().currentTraceContext(this.currentTraceContext)
.spanReporter(this.reporter).build();
HttpTracing httpTracing = HttpTracing.newBuilder(this.tracing)
@@ -75,7 +74,8 @@ public class TracePostZuulFilterTests {
@After
public void clean() {
RequestContext.getCurrentContext().unset();
- this.httpTracing.tracing().close();
+ this.tracing.close();
+ this.currentTraceContext.close();
RequestContext.testSetCurrentContext(null);
}
diff --git a/spring-cloud-sleuth-dependencies/pom.xml b/spring-cloud-sleuth-dependencies/pom.xml
index 825fd4b46..05dfa27b8 100644
--- a/spring-cloud-sleuth-dependencies/pom.xml
+++ b/spring-cloud-sleuth-dependencies/pom.xml
@@ -31,6 +31,7 @@
spring-cloud-sleuth-dependencies
Spring Cloud Sleuth Dependencies
+ 5.11.0
0.33.13
3.0.1
diff --git a/tests/spring-cloud-sleuth-instrumentation-feign-tests/src/test/java/org/springframework/cloud/sleuth/instrument/feign/issues/issueX/IssueXTests.java b/tests/spring-cloud-sleuth-instrumentation-feign-tests/src/test/java/org/springframework/cloud/sleuth/instrument/feign/issues/issueX/IssueXTests.java
index 37c75e6ac..7ec8fe67a 100644
--- a/tests/spring-cloud-sleuth-instrumentation-feign-tests/src/test/java/org/springframework/cloud/sleuth/instrument/feign/issues/issueX/IssueXTests.java
+++ b/tests/spring-cloud-sleuth-instrumentation-feign-tests/src/test/java/org/springframework/cloud/sleuth/instrument/feign/issues/issueX/IssueXTests.java
@@ -21,7 +21,6 @@ import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.List;
-import brave.Tracing;
import brave.sampler.Sampler;
import feign.Client;
import feign.Request;
@@ -75,9 +74,6 @@ public class IssueXTests {
@Autowired
ArrayListSpanReporter reporter;
- @Autowired
- Tracing tracer;
-
@Before
public void open() {
this.reporter.clear();