Skip to content

Commit 7d04573

Browse files
committed
Support Context.with(span) for convenience
1 parent a69247f commit 7d04573

File tree

7 files changed

+18
-1
lines changed

7 files changed

+18
-1
lines changed

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Constants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public final class Constants {
1515
*/
1616
public static final String[] BOOTSTRAP_PACKAGE_PREFIXES = {
1717
"datadog.slf4j",
18+
"datadog.context",
1819
"datadog.appsec.api",
1920
"datadog.trace.api",
2021
"datadog.trace.bootstrap",

dd-java-agent/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ def sharedShadowJar = tasks.register('sharedShadowJar', ShadowJar) {
135135
exclude(project(':dd-java-agent:agent-logging'))
136136
exclude(project(':dd-trace-api'))
137137
exclude(project(':internal-api'))
138+
exclude(project(':components:context'))
138139
exclude(project(':utils:time-utils'))
139140
exclude(dependency('org.slf4j::'))
140141
}

dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/SpockRunner.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class SpockRunner extends JUnitPlatform {
3838
*/
3939
public static final String[] BOOTSTRAP_PACKAGE_PREFIXES_COPY = {
4040
"datadog.slf4j",
41+
"datadog.context",
4142
"datadog.appsec.api",
4243
"datadog.trace.api",
4344
"datadog.trace.bootstrap",

gradle/dependencies.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ final class CachedData {
1616
exclude(project(':internal-api'))
1717
exclude(project(':internal-api:internal-api-9'))
1818
exclude(project(':communication'))
19+
exclude(project(':components:context'))
1920
exclude(project(':components:json'))
2021
exclude(project(':remote-config:remote-config-api'))
2122
exclude(project(':remote-config:remote-config-core'))

internal-api/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ dependencies {
210210
// references TraceScope and Continuation from public api
211211
api project(':dd-trace-api')
212212
api libs.slf4j
213+
api project(':components:context')
213214
api project(":utils:time-utils")
214215

215216
// has to be loaded by system classloader:

internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentSpan.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
package datadog.trace.bootstrap.instrumentation.api;
22

3+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.SPAN_KEY;
4+
5+
import datadog.context.Context;
6+
import datadog.context.ImplicitContextKeyed;
37
import datadog.trace.api.DDTraceId;
48
import datadog.trace.api.TraceConfig;
59
import datadog.trace.api.gateway.IGSpanInfo;
610
import datadog.trace.api.gateway.RequestContext;
711
import datadog.trace.api.interceptor.MutableSpan;
812

9-
public interface AgentSpan extends MutableSpan, IGSpanInfo, WithAgentSpan {
13+
public interface AgentSpan extends MutableSpan, ImplicitContextKeyed, IGSpanInfo, WithAgentSpan {
1014

1115
DDTraceId getTraceId();
1216

@@ -145,4 +149,9 @@ public interface AgentSpan extends MutableSpan, IGSpanInfo, WithAgentSpan {
145149
default AgentSpan asAgentSpan() {
146150
return this;
147151
}
152+
153+
@Override
154+
default Context storeInto(Context context) {
155+
return context.with(SPAN_KEY, this);
156+
}
148157
}

internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentTracer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static datadog.trace.api.ConfigDefaults.DEFAULT_ASYNC_PROPAGATING;
44
import static java.util.Collections.emptyList;
55

6+
import datadog.context.ContextKey;
67
import datadog.trace.api.DDSpanId;
78
import datadog.trace.api.DDTraceId;
89
import datadog.trace.api.EndpointCheckpointer;
@@ -33,6 +34,8 @@
3334
public class AgentTracer {
3435
private static final String DEFAULT_INSTRUMENTATION_NAME = "datadog";
3536

37+
static final ContextKey<AgentSpan> SPAN_KEY = ContextKey.named("dd-span-key");
38+
3639
// Implicit parent
3740
/** Deprecated. Use {@link #startSpan(String, CharSequence)} instead. */
3841
@Deprecated

0 commit comments

Comments
 (0)