Skip to content

Commit 303eb1a

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

File tree

7 files changed

+22
-1
lines changed

7 files changed

+22
-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.InternalContextKeys.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
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package datadog.trace.bootstrap.instrumentation.api;
2+
3+
import datadog.context.ContextKey;
4+
5+
final class InternalContextKeys {
6+
static final ContextKey<AgentSpan> SPAN_KEY = ContextKey.named("dd-span-key");
7+
}

0 commit comments

Comments
 (0)