diff --git a/pom.xml b/pom.xml
index 4ebda06d20..d8b90cf376 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,6 +28,11 @@
3.6.2
test
+
+ org.mockito
+ mockito-core
+ 2.7.22
+
diff --git a/src/main/java/com/datadoghq/trace/impl/Tracer.java b/src/main/java/com/datadoghq/trace/impl/Tracer.java
index 401bb953ef..2734041a72 100644
--- a/src/main/java/com/datadoghq/trace/impl/Tracer.java
+++ b/src/main/java/com/datadoghq/trace/impl/Tracer.java
@@ -7,6 +7,7 @@ import io.opentracing.propagation.Format;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
+import java.util.UUID;
public class Tracer implements io.opentracing.Tracer {
@@ -28,14 +29,15 @@ public class Tracer implements io.opentracing.Tracer {
private final String operationName;
private Map tags = new HashMap();
private Long timestamp;
- private Optional parent;
+ private Optional parent = Optional.empty();
public SpanBuilder(String operationName) {
this.operationName = operationName;
}
public io.opentracing.Tracer.SpanBuilder asChildOf(SpanContext spanContext) {
- return null;
+ this.parent = Optional.ofNullable(spanContext);
+ return this;
}
public io.opentracing.Tracer.SpanBuilder asChildOf(Span span) {
@@ -73,36 +75,57 @@ public class Tracer implements io.opentracing.Tracer {
public Span start() {
// build the context
- SpanContext context = buildNewSpanContext();
+ SpanContext context = buildTheSpanContext();
return new com.datadoghq.trace.impl.Span(
+ Tracer.this,
this.operationName,
this.tags,
Optional.ofNullable(this.timestamp),
context);
}
- private SpanContext buildNewSpanContext() {
+ private SpanContext buildTheSpanContext() {
- Optional