diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/IdGenerator.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/IdGenerator.java similarity index 63% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/IdGenerator.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/IdGenerator.java index 239833367..41e66284f 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/IdGenerator.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/IdGenerator.java @@ -1,4 +1,4 @@ -package org.springframework.cloud.sleuth.trace; +package org.springframework.cloud.sleuth; /** * @author Spencer Gibb diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/RandomUuidGenerator.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/RandomUuidGenerator.java new file mode 100644 index 000000000..1a41f28e2 --- /dev/null +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/RandomUuidGenerator.java @@ -0,0 +1,14 @@ +package org.springframework.cloud.sleuth; + +import java.util.UUID; + +/** + * @author Spencer Gibb + */ +public class RandomUuidGenerator implements IdGenerator { + + @Override + public String create() { + return UUID.randomUUID().toString(); + } +} diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/DefaultTrace.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/DefaultTrace.java index 43d29c228..d2e2efaf6 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/DefaultTrace.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/DefaultTrace.java @@ -2,28 +2,28 @@ package org.springframework.cloud.sleuth.trace; import static org.springframework.cloud.sleuth.trace.Utils.error; -import org.springframework.cloud.sleuth.trace.sampler.IsTracingSampler; +import org.springframework.cloud.sleuth.IdGenerator; import java.util.Collection; import java.util.Collections; -import java.util.UUID; /** * @author Spencer Gibb */ public class DefaultTrace implements Trace { - //TODO: no default?, let autoconfig - private Sampler defaultSampler = new IsTracingSampler(this); + private final Sampler defaultSampler; - private IdGenerator idGenerator = new IdGenerator() { - @Override - public String create() { - return UUID.randomUUID().toString(); - } - }; + private final IdGenerator idGenerator; - private Collection spanReceivers; + private final Collection spanReceivers; + + public DefaultTrace(Sampler defaultSampler, IdGenerator idGenerator, + Collection spanReceivers) { + this.defaultSampler = defaultSampler; + this.idGenerator = idGenerator; + this.spanReceivers = spanReceivers; + } @Override public TraceScope startSpan(String description) { @@ -131,17 +131,4 @@ public class DefaultTrace implements Trace { receiver.receiveSpan(span); } } - - public void setDefaultSampler(Sampler defaultSampler) { - this.defaultSampler = defaultSampler; - } - - public void setIdGenerator(IdGenerator idGenerator) { - this.idGenerator = idGenerator; - } - - @Override - public void setSpanReceivers(Collection spanReceivers) { - this.spanReceivers = spanReceivers; - } } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/Trace.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/Trace.java index fee6cfb96..91019c609 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/Trace.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/Trace.java @@ -81,7 +81,5 @@ public interface Trace { */ boolean isTracing(); - public void deliver(Span span); - - void setSpanReceivers(Collection spanReceivers); + void deliver(Span span); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/sampler/IsTracingSampler.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/sampler/IsTracingSampler.java index f5a3c00f3..be4b27447 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/sampler/IsTracingSampler.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/sampler/IsTracingSampler.java @@ -1,20 +1,15 @@ package org.springframework.cloud.sleuth.trace.sampler; import org.springframework.cloud.sleuth.trace.Sampler; -import org.springframework.cloud.sleuth.trace.Trace; +import org.springframework.cloud.sleuth.trace.SpanHolder; /** * @author Spencer Gibb */ public class IsTracingSampler implements Sampler { - private final Trace trace; - - public IsTracingSampler(Trace trace) { - this.trace = trace; - } @Override public boolean next(Object info) { - return this.trace.isTracing(); + return SpanHolder.getCurrentSpan() != null; } }