From 07844b769f70754a1d76e8db7b0717f5f312a23d Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Thu, 25 Jun 2015 14:13:13 -0600 Subject: [PATCH] rename SpanHolder to TraceContextHolder --- .../springframework/cloud/sleuth/DefaultTrace.java | 11 +++-------- .../java/org/springframework/cloud/sleuth/Trace.java | 5 ----- .../{SpanHolder.java => TraceContextHolder.java} | 5 +++-- .../org/springframework/cloud/sleuth/TraceScope.java | 8 ++++---- .../cloud/sleuth/sampler/IsTracingSampler.java | 4 ++-- .../web/client/TraceRestTemplateInterceptor.java | 9 +++++---- 6 files changed, 17 insertions(+), 25 deletions(-) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/{SpanHolder.java => TraceContextHolder.java} (71%) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/DefaultTrace.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/DefaultTrace.java index 603e33bdc..9b5507595 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/DefaultTrace.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/DefaultTrace.java @@ -68,7 +68,7 @@ public class DefaultTrace implements Trace { @Override public TraceScope startSpan(String description, Sampler s, T info) { Span span = null; - if (isTracing() || s.next(info)) { + if (TraceContextHolder.isTracing() || s.next(info)) { span = createNew(description); } return doStart(span); @@ -114,12 +114,12 @@ public class DefaultTrace implements Trace { // Return an empty TraceScope that does nothing on close if (span == null) return NullScope.INSTANCE; Span oldSpan = getCurrentSpan(); - SpanHolder.setCurrentSpan(span); + TraceContextHolder.setCurrentSpan(span); return new TraceScope(this, span, oldSpan); } protected Span getCurrentSpan() { - return SpanHolder.getCurrentSpan(); + return TraceContextHolder.getCurrentSpan(); } @Override @@ -130,11 +130,6 @@ public class DefaultTrace implements Trace { } } - @Override - public boolean isTracing() { - return getCurrentSpan() != null; - } - //TODO: rename? this is the end of a Span lifecycle @Override public void deliver(Span span) { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/Trace.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/Trace.java index ab1601bdf..1a3ae11c4 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/Trace.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/Trace.java @@ -77,10 +77,5 @@ public interface Trace { */ void addKVAnnotation(String key, String value); - /** - * Returns true if the current thread is a part of a trace, false otherwise. - */ - boolean isTracing(); - void deliver(Span span); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/SpanHolder.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/TraceContextHolder.java similarity index 71% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/SpanHolder.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/TraceContextHolder.java index 8efd31be1..f544c1a9d 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/SpanHolder.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/TraceContextHolder.java @@ -1,13 +1,14 @@ package org.springframework.cloud.sleuth; import lombok.extern.apachecommons.CommonsLog; +import org.springframework.core.NamedThreadLocal; /** * @author Spencer Gibb */ @CommonsLog -public class SpanHolder { - private static final ThreadLocal currentSpan = new ThreadLocal<>(); +public class TraceContextHolder { + private static final ThreadLocal currentSpan = new NamedThreadLocal<>("Trace Context"); public static Span getCurrentSpan() { return currentSpan.get(); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/TraceScope.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/TraceScope.java index a7d36434a..b33b1af4a 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/TraceScope.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/TraceScope.java @@ -45,14 +45,14 @@ public class TraceScope implements Closeable { } detached = true; - Span cur = SpanHolder.getCurrentSpan(); + Span cur = TraceContextHolder.getCurrentSpan(); if (cur != span) { Utils.error("Tried to detach trace span " + span + " but " + "it is not the current span for the " + Thread.currentThread().getName() + " thread. You have " + "probably forgotten to close or detach " + cur); } else { - SpanHolder.setCurrentSpan(savedSpan); + TraceContextHolder.setCurrentSpan(savedSpan); } return span; } @@ -64,7 +64,7 @@ public class TraceScope implements Closeable { return; } detached = true; - Span cur = SpanHolder.getCurrentSpan(); + Span cur = TraceContextHolder.getCurrentSpan(); if (cur != span) { Utils.error("Tried to close trace span " + span + " but " + "it is not the current span for the " + @@ -74,7 +74,7 @@ public class TraceScope implements Closeable { span.stop(); //TODO: use ApplicationEvents here? trace.deliver(span); - SpanHolder.setCurrentSpan(savedSpan); + TraceContextHolder.setCurrentSpan(savedSpan); } } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/IsTracingSampler.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/IsTracingSampler.java index 72eee8cbe..3c8eaaf07 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/IsTracingSampler.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/IsTracingSampler.java @@ -1,7 +1,7 @@ package org.springframework.cloud.sleuth.sampler; import org.springframework.cloud.sleuth.Sampler; -import org.springframework.cloud.sleuth.SpanHolder; +import org.springframework.cloud.sleuth.TraceContextHolder; /** * @author Spencer Gibb @@ -10,6 +10,6 @@ public class IsTracingSampler implements Sampler { @Override public boolean next(Object info) { - return SpanHolder.getCurrentSpan() != null; + return TraceContextHolder.getCurrentSpan() != null; } } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/client/TraceRestTemplateInterceptor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/client/TraceRestTemplateInterceptor.java index ba61ec3cc..52eb99d11 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/client/TraceRestTemplateInterceptor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/client/TraceRestTemplateInterceptor.java @@ -17,10 +17,11 @@ package org.springframework.cloud.sleuth.web.client; import static org.springframework.cloud.sleuth.Trace.SPAN_ID_NAME; import static org.springframework.cloud.sleuth.Trace.TRACE_ID_NAME; +import static org.springframework.cloud.sleuth.TraceContextHolder.getCurrentSpan; +import static org.springframework.cloud.sleuth.TraceContextHolder.isTracing; import java.io.IOException; -import org.springframework.cloud.sleuth.SpanHolder; import org.springframework.cloud.sleuth.Trace; import org.springframework.http.HttpRequest; import org.springframework.http.client.ClientHttpRequestExecution; @@ -42,13 +43,13 @@ public class TraceRestTemplateInterceptor implements ClientHttpRequestIntercepto @Override public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException { - setHeader(request, SPAN_ID_NAME, SpanHolder.getCurrentSpan().getSpanId()); - setHeader(request, TRACE_ID_NAME, SpanHolder.getCurrentSpan().getTraceId()); + setHeader(request, SPAN_ID_NAME, getCurrentSpan().getSpanId()); + setHeader(request, TRACE_ID_NAME, getCurrentSpan().getTraceId()); return execution.execute(request, body); } public void setHeader(HttpRequest request, String spanIdName, String spanId) { - if (!request.getHeaders().containsKey(spanIdName) && SpanHolder.isTracing()) { + if (!request.getHeaders().containsKey(spanIdName) && isTracing()) { request.getHeaders().add(spanIdName, spanId); } }