diff --git a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/api/Java8BytecodeBridge.java b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/api/Java8BytecodeBridge.java index 6d3f43b5139..99c7cb700e1 100644 --- a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/api/Java8BytecodeBridge.java +++ b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/api/Java8BytecodeBridge.java @@ -13,35 +13,37 @@ public class Java8BytecodeBridge { /** * @see Context#root() */ - public static Context getRootContext() { + public static Context rootContext() { return Context.root(); } /** * @see Context#current() */ - public static Context getCurrentContext() { + public static Context currentContext() { return Context.current(); } /** - * @see Context#from(Object) + * @see AgentSpan#current() */ - public static Context getContextFrom(Object carrier) { - return Context.from(carrier); + public static AgentSpan currentSpan() { + return AgentSpan.current(); } /** - * @see Context#detachFrom(Object) + * @see AgentSpan#fromContext(Context) */ - public static Context detachContextFrom(Object carrier) { - return Context.detachFrom(carrier); + public static AgentSpan spanFromContext(Context context) { + return AgentSpan.fromContext(context); } /** - * @see AgentSpan#fromContext(Context) + * @see Baggage#fromContext(Context) */ - public static AgentSpan spanFromContext(Context context) { - return AgentSpan.fromContext(context); + public static Baggage baggageFromContext(Context context) { + return Baggage.fromContext(context); } + + private Java8BytecodeBridge() {} } diff --git a/dd-java-agent/instrumentation/akka/akka-actor-2.5/src/main/java/datadog/trace/instrumentation/akka/concurrent/AkkaActorCellInstrumentation.java b/dd-java-agent/instrumentation/akka/akka-actor-2.5/src/main/java/datadog/trace/instrumentation/akka/concurrent/AkkaActorCellInstrumentation.java index f799267fb2d..9e7b0f57f28 100644 --- a/dd-java-agent/instrumentation/akka/akka-actor-2.5/src/main/java/datadog/trace/instrumentation/akka/concurrent/AkkaActorCellInstrumentation.java +++ b/dd-java-agent/instrumentation/akka/akka-actor-2.5/src/main/java/datadog/trace/instrumentation/akka/concurrent/AkkaActorCellInstrumentation.java @@ -3,7 +3,7 @@ import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.checkpointActiveForRollback; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.rollbackActiveToCheckpoint; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -71,7 +71,7 @@ public static Context enter( checkpointActiveForRollback(); return null; } else { - return getCurrentContext().swap(); + return currentContext().swap(); } } diff --git a/dd-java-agent/instrumentation/akka/akka-actor-2.5/src/main/java/datadog/trace/instrumentation/akka/concurrent/AkkaMailboxInstrumentation.java b/dd-java-agent/instrumentation/akka/akka-actor-2.5/src/main/java/datadog/trace/instrumentation/akka/concurrent/AkkaMailboxInstrumentation.java index 6f1eae44b34..8515873fd5d 100644 --- a/dd-java-agent/instrumentation/akka/akka-actor-2.5/src/main/java/datadog/trace/instrumentation/akka/concurrent/AkkaMailboxInstrumentation.java +++ b/dd-java-agent/instrumentation/akka/akka-actor-2.5/src/main/java/datadog/trace/instrumentation/akka/concurrent/AkkaMailboxInstrumentation.java @@ -3,7 +3,7 @@ import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.checkpointActiveForRollback; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.rollbackActiveToCheckpoint; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static java.util.Collections.singletonList; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -68,7 +68,7 @@ public static Context enter() { checkpointActiveForRollback(); return null; } else { - return getCurrentContext().swap(); + return currentContext().swap(); } } diff --git a/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/src/main/java/datadog/trace/instrumentation/akkahttp/AkkaHttpSingleRequestInstrumentation.java b/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/src/main/java/datadog/trace/instrumentation/akkahttp/AkkaHttpSingleRequestInstrumentation.java index a3ba13f8eb7..5b665068abd 100644 --- a/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/src/main/java/datadog/trace/instrumentation/akkahttp/AkkaHttpSingleRequestInstrumentation.java +++ b/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/src/main/java/datadog/trace/instrumentation/akkahttp/AkkaHttpSingleRequestInstrumentation.java @@ -4,7 +4,7 @@ import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.instrumentation.akkahttp.AkkaHttpClientDecorator.AKKA_CLIENT_REQUEST; import static datadog.trace.instrumentation.akkahttp.AkkaHttpClientDecorator.AKKA_HTTP_CLIENT; import static datadog.trace.instrumentation.akkahttp.AkkaHttpClientDecorator.DECORATE; @@ -116,7 +116,7 @@ public static void methodEnter( return; } final AkkaHttpHeaders headers = new AkkaHttpHeaders(request); - DECORATE.injectContext(getCurrentContext(), request, headers); + DECORATE.injectContext(currentContext(), request, headers); request = headers.getRequest(); } } diff --git a/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.6/src/main/java11/datadog/trace/instrumentation/akkahttp106/SingleRequestContextPropagationAdvice.java b/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.6/src/main/java11/datadog/trace/instrumentation/akkahttp106/SingleRequestContextPropagationAdvice.java index 49f9ce99e7b..5cc4af02d7a 100644 --- a/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.6/src/main/java11/datadog/trace/instrumentation/akkahttp106/SingleRequestContextPropagationAdvice.java +++ b/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.6/src/main/java11/datadog/trace/instrumentation/akkahttp106/SingleRequestContextPropagationAdvice.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.akkahttp106; import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.instrumentation.akkahttp106.AkkaHttpClientDecorator.DECORATE; import akka.http.scaladsl.model.HttpRequest; @@ -19,7 +19,7 @@ public static void methodEnter( final AkkaHttpClientHelpers.AkkaHttpHeaders headers = new AkkaHttpClientHelpers.AkkaHttpHeaders(request); - DECORATE.injectContext(getCurrentContext(), request, headers); + DECORATE.injectContext(currentContext(), request, headers); request = headers.getRequest(); } } diff --git a/dd-java-agent/instrumentation/armeria/armeria-grpc-0.84/src/main/java/datadog/trace/instrumentation/armeria/grpc/client/ClientCallImplInstrumentation.java b/dd-java-agent/instrumentation/armeria/armeria-grpc-0.84/src/main/java/datadog/trace/instrumentation/armeria/grpc/client/ClientCallImplInstrumentation.java index c5548f707c2..cde0edeaa10 100644 --- a/dd-java-agent/instrumentation/armeria/armeria-grpc-0.84/src/main/java/datadog/trace/instrumentation/armeria/grpc/client/ClientCallImplInstrumentation.java +++ b/dd-java-agent/instrumentation/armeria/armeria-grpc-0.84/src/main/java/datadog/trace/instrumentation/armeria/grpc/client/ClientCallImplInstrumentation.java @@ -5,6 +5,7 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.instrumentation.armeria.grpc.client.GrpcClientDecorator.COMPONENT_NAME; import static datadog.trace.instrumentation.armeria.grpc.client.GrpcClientDecorator.DECORATE; import static datadog.trace.instrumentation.armeria.grpc.client.GrpcClientDecorator.GRPC_MESSAGE; @@ -21,7 +22,6 @@ import datadog.trace.bootstrap.InstrumentationContext; import datadog.trace.bootstrap.instrumentation.api.AgentScope; import datadog.trace.bootstrap.instrumentation.api.AgentSpan; -import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge; import io.grpc.ClientCall; import io.grpc.Metadata; import io.grpc.MethodDescriptor; @@ -138,7 +138,7 @@ public static void after( public static final class StartContextPropagationAdvice { @Advice.OnMethodEnter(suppress = Throwable.class) public static void before(@Advice.Argument(1) Metadata headers) { - DECORATE.injectContext(Java8BytecodeBridge.getCurrentContext(), headers, SETTER); + DECORATE.injectContext(currentContext(), headers, SETTER); } } diff --git a/dd-java-agent/instrumentation/aws-java/aws-java-sdk-1.11/src/main/java/datadog/trace/instrumentation/aws/v0/TracingRequestHandler.java b/dd-java-agent/instrumentation/aws-java/aws-java-sdk-1.11/src/main/java/datadog/trace/instrumentation/aws/v0/TracingRequestHandler.java index 8cb0a054342..84e6f7ad142 100644 --- a/dd-java-agent/instrumentation/aws-java/aws-java-sdk-1.11/src/main/java/datadog/trace/instrumentation/aws/v0/TracingRequestHandler.java +++ b/dd-java-agent/instrumentation/aws-java/aws-java-sdk-1.11/src/main/java/datadog/trace/instrumentation/aws/v0/TracingRequestHandler.java @@ -8,7 +8,6 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.blackholeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.traceConfig; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext; import static datadog.trace.instrumentation.aws.v0.AwsSdkClientDecorator.AWS_LEGACY_TRACING; import static datadog.trace.instrumentation.aws.v0.AwsSdkClientDecorator.COMPONENT_NAME; import static datadog.trace.instrumentation.aws.v0.AwsSdkClientDecorator.DECORATE; @@ -59,7 +58,7 @@ public void beforeRequest(final Request request) { activateSpanWithoutScope(blackholeSpan()); } else { Context context = requestContextStore.remove(request.getOriginalRequest()); - AgentSpan span = spanFromContext(context); + AgentSpan span = AgentSpan.fromContext(context); if (span != null) { // we'll land here for SQS send requests when DSM is enabled. In that case, we create the // span in SqsInterceptor to inject DSM tags. @@ -94,7 +93,7 @@ public void afterResponse(final Request request, final Response response) AgentSpan span = null; if (context != null) { request.addHandlerContext(CONTEXT_CONTEXT_KEY, null); - span = spanFromContext(context); + span = AgentSpan.fromContext(context); if (span != null) { DECORATE.onResponse(span, response); DECORATE.onServiceResponse(span, request.getServiceName(), response); @@ -153,7 +152,7 @@ public void afterError(final Request request, final Response response, fin if (context != null) { request.addHandlerContext(CONTEXT_CONTEXT_KEY, null); - final AgentSpan span = spanFromContext(context); + final AgentSpan span = AgentSpan.fromContext(context); if (span != null) { if (response != null) { DECORATE.onResponse(span, response); diff --git a/dd-java-agent/instrumentation/aws-java/aws-java-sqs-1.0/src/main/java/datadog/trace/instrumentation/aws/v1/sqs/TracingIterator.java b/dd-java-agent/instrumentation/aws-java/aws-java-sqs-1.0/src/main/java/datadog/trace/instrumentation/aws/v1/sqs/TracingIterator.java index 58943212038..c6d6b40cc59 100644 --- a/dd-java-agent/instrumentation/aws-java/aws-java-sqs-1.0/src/main/java/datadog/trace/instrumentation/aws/v1/sqs/TracingIterator.java +++ b/dd-java-agent/instrumentation/aws-java/aws-java-sqs-1.0/src/main/java/datadog/trace/instrumentation/aws/v1/sqs/TracingIterator.java @@ -7,8 +7,6 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateNext; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.closePrevious; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext; import static datadog.trace.bootstrap.instrumentation.api.URIUtils.urlFileName; import static datadog.trace.instrumentation.aws.v1.sqs.MessageExtractAdapter.GETTER; import static datadog.trace.instrumentation.aws.v1.sqs.SqsDecorator.BROKER_DECORATE; @@ -20,6 +18,7 @@ import static java.util.concurrent.TimeUnit.MILLISECONDS; import com.amazonaws.services.sqs.model.Message; +import datadog.context.Context; import datadog.trace.api.Config; import datadog.trace.api.InstrumenterConfig; import datadog.trace.api.datastreams.DataStreamsTags; @@ -50,7 +49,7 @@ public boolean hasNext() { if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) { closePrevious(true); } else { - final AgentSpan previousSpan = spanFromContext(getRootContext().swap()); + final AgentSpan previousSpan = AgentSpan.fromContext(Context.root().swap()); if (previousSpan != null) { previousSpan.finishWithEndToEnd(); } @@ -71,7 +70,7 @@ protected void startNewMessageSpan(Message message) { if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) { closePrevious(true); } else if (message == null) { // previous message span was the last - final AgentSpan previousSpan = spanFromContext(getRootContext().swap()); + final AgentSpan previousSpan = AgentSpan.fromContext(Context.root().swap()); if (previousSpan != null) { previousSpan.finishWithEndToEnd(); } @@ -114,7 +113,7 @@ protected void startNewMessageSpan(Message message) { if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) { activateNext(span); } else { - final AgentSpan previousSpan = spanFromContext(span.swap()); + final AgentSpan previousSpan = AgentSpan.fromContext(span.swap()); if (previousSpan != null) { previousSpan.finishWithEndToEnd(); } diff --git a/dd-java-agent/instrumentation/aws-java/aws-java-sqs-1.0/src/main/java/datadog/trace/instrumentation/aws/v1/sqs/TracingListIterator.java b/dd-java-agent/instrumentation/aws-java/aws-java-sqs-1.0/src/main/java/datadog/trace/instrumentation/aws/v1/sqs/TracingListIterator.java index ba94e197866..d7f8174cd8c 100644 --- a/dd-java-agent/instrumentation/aws-java/aws-java-sqs-1.0/src/main/java/datadog/trace/instrumentation/aws/v1/sqs/TracingListIterator.java +++ b/dd-java-agent/instrumentation/aws-java/aws-java-sqs-1.0/src/main/java/datadog/trace/instrumentation/aws/v1/sqs/TracingListIterator.java @@ -1,10 +1,9 @@ package datadog.trace.instrumentation.aws.v1.sqs; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.closePrevious; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext; import com.amazonaws.services.sqs.model.Message; +import datadog.context.Context; import datadog.trace.api.InstrumenterConfig; import datadog.trace.bootstrap.instrumentation.api.AgentSpan; import java.util.ListIterator; @@ -24,7 +23,7 @@ public boolean hasPrevious() { if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) { closePrevious(true); } else { - final AgentSpan previousSpan = spanFromContext(getRootContext().swap()); + final AgentSpan previousSpan = AgentSpan.fromContext(Context.root().swap()); if (previousSpan != null) { previousSpan.finishWithEndToEnd(); } diff --git a/dd-java-agent/instrumentation/aws-java/aws-java-sqs-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/sqs/TracingIterator.java b/dd-java-agent/instrumentation/aws-java/aws-java-sqs-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/sqs/TracingIterator.java index 95018f1815a..2ea90670408 100644 --- a/dd-java-agent/instrumentation/aws-java/aws-java-sqs-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/sqs/TracingIterator.java +++ b/dd-java-agent/instrumentation/aws-java/aws-java-sqs-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/sqs/TracingIterator.java @@ -7,8 +7,6 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateNext; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.closePrevious; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext; import static datadog.trace.bootstrap.instrumentation.api.URIUtils.urlFileName; import static datadog.trace.instrumentation.aws.v2.sqs.MessageExtractAdapter.GETTER; import static datadog.trace.instrumentation.aws.v2.sqs.SqsDecorator.BROKER_DECORATE; @@ -19,6 +17,7 @@ import static datadog.trace.instrumentation.aws.v2.sqs.SqsDecorator.TIME_IN_QUEUE_ENABLED; import static java.util.concurrent.TimeUnit.MILLISECONDS; +import datadog.context.Context; import datadog.trace.api.Config; import datadog.trace.api.InstrumenterConfig; import datadog.trace.api.datastreams.DataStreamsTags; @@ -52,7 +51,7 @@ public boolean hasNext() { if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) { closePrevious(true); } else { - final AgentSpan previousSpan = spanFromContext(getRootContext().swap()); + final AgentSpan previousSpan = AgentSpan.fromContext(Context.root().swap()); if (previousSpan != null) { previousSpan.finishWithEndToEnd(); } @@ -73,7 +72,7 @@ protected void startNewMessageSpan(Message message) { if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) { closePrevious(true); } else if (message == null) { // previous message span was the last - final AgentSpan previousSpan = spanFromContext(getRootContext().swap()); + final AgentSpan previousSpan = AgentSpan.fromContext(Context.root().swap()); if (previousSpan != null) { previousSpan.finishWithEndToEnd(); } @@ -116,7 +115,7 @@ protected void startNewMessageSpan(Message message) { if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) { activateNext(span); } else { - final AgentSpan previousSpan = spanFromContext(span.swap()); + final AgentSpan previousSpan = AgentSpan.fromContext(span.swap()); if (previousSpan != null) { previousSpan.finishWithEndToEnd(); } diff --git a/dd-java-agent/instrumentation/aws-java/aws-java-sqs-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/sqs/TracingListIterator.java b/dd-java-agent/instrumentation/aws-java/aws-java-sqs-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/sqs/TracingListIterator.java index 8277937ea52..f3f471db89d 100644 --- a/dd-java-agent/instrumentation/aws-java/aws-java-sqs-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/sqs/TracingListIterator.java +++ b/dd-java-agent/instrumentation/aws-java/aws-java-sqs-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/sqs/TracingListIterator.java @@ -1,9 +1,8 @@ package datadog.trace.instrumentation.aws.v2.sqs; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.closePrevious; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext; +import datadog.context.Context; import datadog.trace.api.InstrumenterConfig; import datadog.trace.bootstrap.instrumentation.api.AgentSpan; import java.util.ListIterator; @@ -24,7 +23,7 @@ public boolean hasPrevious() { if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) { closePrevious(true); } else { - final AgentSpan previousSpan = spanFromContext(getRootContext().swap()); + final AgentSpan previousSpan = AgentSpan.fromContext(Context.root().swap()); if (previousSpan != null) { previousSpan.finishWithEndToEnd(); } diff --git a/dd-java-agent/instrumentation/axway-api-7.5/src/main/java/datadog/trace/instrumentation/axway/HTTPPluginAdvice.java b/dd-java-agent/instrumentation/axway-api-7.5/src/main/java/datadog/trace/instrumentation/axway/HTTPPluginAdvice.java index 0d45090a975..1024631cfec 100644 --- a/dd-java-agent/instrumentation/axway-api-7.5/src/main/java/datadog/trace/instrumentation/axway/HTTPPluginAdvice.java +++ b/dd-java-agent/instrumentation/axway-api-7.5/src/main/java/datadog/trace/instrumentation/axway/HTTPPluginAdvice.java @@ -2,8 +2,8 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentSpan.fromContext; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext; import static datadog.trace.instrumentation.axway.AxwayHTTPPluginDecorator.DECORATE; import static datadog.trace.instrumentation.axway.AxwayHTTPPluginDecorator.SERVER_TRANSACTION_CLASS; @@ -20,8 +20,8 @@ public static ContextScope onEnter(@Advice.Argument(value = 2) final Object serv final AgentSpan span = startSpan("axway-http", DECORATE.spanName()).setMeasured(true); DECORATE.afterStart(span); // serverTransaction is like request + connection in one object: - DECORATE.onRequest(span, serverTransaction, serverTransaction, getRootContext()); - return getCurrentContext().with(span).attach(); + DECORATE.onRequest(span, serverTransaction, serverTransaction, rootContext()); + return currentContext().with(span).attach(); } @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) diff --git a/dd-java-agent/instrumentation/azure-functions-1.2.2/src/main/java/datadog/trace/instrumentation/azure/functions/AzureFunctionsInstrumentation.java b/dd-java-agent/instrumentation/azure-functions-1.2.2/src/main/java/datadog/trace/instrumentation/azure/functions/AzureFunctionsInstrumentation.java index 47ac3a0b8de..bf9a2034aa0 100644 --- a/dd-java-agent/instrumentation/azure-functions-1.2.2/src/main/java/datadog/trace/instrumentation/azure/functions/AzureFunctionsInstrumentation.java +++ b/dd-java-agent/instrumentation/azure-functions-1.2.2/src/main/java/datadog/trace/instrumentation/azure/functions/AzureFunctionsInstrumentation.java @@ -5,7 +5,7 @@ import static datadog.trace.agent.tooling.bytebuddy.matcher.HierarchyMatchers.isAnnotatedWith; import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static datadog.trace.bootstrap.instrumentation.api.AgentSpan.fromContext; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.bootstrap.instrumentation.decorator.http.HttpResourceDecorator.HTTP_RESOURCE_DECORATOR; import static datadog.trace.instrumentation.azure.functions.AzureFunctionsDecorator.DECORATE; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -86,7 +86,7 @@ public static ContextScope methodEnter( @Advice.Argument(0) final HttpRequestMessage request, @Advice.Argument(1) final ExecutionContext executionContext) { final Context parentContext = - getCurrentContext(); // parent context attached by ContextTrackingAdvice + currentContext(); // parent context attached by ContextTrackingAdvice final Context context = DECORATE.startSpan(request, parentContext); final AgentSpan span = fromContext(context); DECORATE.afterStart(span, executionContext.getFunctionName()); diff --git a/dd-java-agent/instrumentation/commons-httpclient-2.0/src/main/java/datadog/trace/instrumentation/commonshttpclient/CommonsHttpClientInstrumentation.java b/dd-java-agent/instrumentation/commons-httpclient-2.0/src/main/java/datadog/trace/instrumentation/commonshttpclient/CommonsHttpClientInstrumentation.java index a63ee7c9a82..6a9d07fe749 100644 --- a/dd-java-agent/instrumentation/commons-httpclient-2.0/src/main/java/datadog/trace/instrumentation/commonshttpclient/CommonsHttpClientInstrumentation.java +++ b/dd-java-agent/instrumentation/commons-httpclient-2.0/src/main/java/datadog/trace/instrumentation/commonshttpclient/CommonsHttpClientInstrumentation.java @@ -4,7 +4,7 @@ import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.instrumentation.commonshttpclient.CommonsHttpClientDecorator.DECORATE; import static datadog.trace.instrumentation.commonshttpclient.CommonsHttpClientDecorator.HTTP_REQUEST; import static datadog.trace.instrumentation.commonshttpclient.HttpHeadersInjectAdapter.SETTER; @@ -105,7 +105,7 @@ public static void methodExit( public static class ContextPropagationAdvice { @Advice.OnMethodEnter(suppress = Throwable.class) public static void methodEnter(@Advice.Argument(1) final HttpMethod httpMethod) { - DECORATE.injectContext(getCurrentContext(), httpMethod, SETTER); + DECORATE.injectContext(currentContext(), httpMethod, SETTER); } } } diff --git a/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java b/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java index de2a5ab12cf..c08293f1fa9 100644 --- a/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java +++ b/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java @@ -5,7 +5,7 @@ import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext; import static datadog.trace.bootstrap.instrumentation.decorator.http.HttpResourceDecorator.HTTP_RESOURCE_DECORATOR; import static datadog.trace.instrumentation.finatra.FinatraDecorator.DECORATE; @@ -79,7 +79,7 @@ public static ContextScope nameSpan( DECORATE.afterStart(span); span.setResourceName(DECORATE.className(clazz)); - return getCurrentContext().with(span).attach(); + return currentContext().with(span).attach(); } @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) diff --git a/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/Listener.java b/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/Listener.java index 6d948f86532..a1af31a3ebd 100644 --- a/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/Listener.java +++ b/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/Listener.java @@ -1,6 +1,5 @@ package datadog.trace.instrumentation.finatra; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext; import static datadog.trace.instrumentation.finatra.FinatraDecorator.DECORATE; import com.twitter.finagle.http.Response; @@ -18,7 +17,7 @@ public Listener(final ContextScope scope) { @Override public void onSuccess(final Response response) { - final AgentSpan span = spanFromContext(scope.context()); + final AgentSpan span = AgentSpan.fromContext(scope.context()); // Don't use DECORATE.onResponse because this is the controller span if (Config.get().getHttpServerErrorStatuses().get(DECORATE.status(response))) { span.setError(true); @@ -31,7 +30,7 @@ public void onSuccess(final Response response) { @Override public void onFailure(final Throwable cause) { - final AgentSpan span = spanFromContext(scope.context()); + final AgentSpan span = AgentSpan.fromContext(scope.context()); DECORATE.onError(span, cause); DECORATE.beforeFinish(scope.context()); span.finish(); diff --git a/dd-java-agent/instrumentation/google-http-client-1.19/src/main/java/datadog/trace/instrumentation/googlehttpclient/GoogleHttpClientInstrumentation.java b/dd-java-agent/instrumentation/google-http-client-1.19/src/main/java/datadog/trace/instrumentation/googlehttpclient/GoogleHttpClientInstrumentation.java index 52ceab06153..cdb871237f6 100644 --- a/dd-java-agent/instrumentation/google-http-client-1.19/src/main/java/datadog/trace/instrumentation/googlehttpclient/GoogleHttpClientInstrumentation.java +++ b/dd-java-agent/instrumentation/google-http-client-1.19/src/main/java/datadog/trace/instrumentation/googlehttpclient/GoogleHttpClientInstrumentation.java @@ -5,7 +5,7 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.instrumentation.googlehttpclient.GoogleHttpClientDecorator.DECORATE; import static datadog.trace.instrumentation.googlehttpclient.GoogleHttpClientDecorator.HTTP_REQUEST; import static datadog.trace.instrumentation.googlehttpclient.HeadersInjectAdapter.SETTER; @@ -133,7 +133,7 @@ public static void methodExit( public static class GoogleHttpClientContextPropagationAdvice { @Advice.OnMethodEnter(suppress = Throwable.class) public static void methodEnter(@Advice.This HttpRequest request) { - DECORATE.injectContext(getCurrentContext(), request, SETTER); + DECORATE.injectContext(currentContext(), request, SETTER); } } } diff --git a/dd-java-agent/instrumentation/grizzly/grizzly-2.0/src/main/java/datadog/trace/instrumentation/grizzly/GrizzlyBlockingHelper.java b/dd-java-agent/instrumentation/grizzly/grizzly-2.0/src/main/java/datadog/trace/instrumentation/grizzly/GrizzlyBlockingHelper.java index 8ab2a5b8aed..ece9d6c4f07 100644 --- a/dd-java-agent/instrumentation/grizzly/grizzly-2.0/src/main/java/datadog/trace/instrumentation/grizzly/GrizzlyBlockingHelper.java +++ b/dd-java-agent/instrumentation/grizzly/grizzly-2.0/src/main/java/datadog/trace/instrumentation/grizzly/GrizzlyBlockingHelper.java @@ -1,6 +1,5 @@ package datadog.trace.instrumentation.grizzly; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext; import static datadog.trace.instrumentation.grizzly.GrizzlyDecorator.DECORATE; import datadog.appsec.api.blocking.BlockingContentType; @@ -60,7 +59,7 @@ public static boolean block( return false; } - AgentSpan span = spanFromContext(context); + AgentSpan span = AgentSpan.fromContext(context); try { OutputStream os = (OutputStream) GET_OUTPUT_STREAM.invoke(response); response.setStatus(BlockingActionHelper.getHttpCode(statusCode)); diff --git a/dd-java-agent/instrumentation/grizzly/grizzly-2.0/src/main/java/datadog/trace/instrumentation/grizzly/GrizzlyHttpHandlerInstrumentation.java b/dd-java-agent/instrumentation/grizzly/grizzly-2.0/src/main/java/datadog/trace/instrumentation/grizzly/GrizzlyHttpHandlerInstrumentation.java index ecbb38bdfaa..195f3ae10fd 100644 --- a/dd-java-agent/instrumentation/grizzly/grizzly-2.0/src/main/java/datadog/trace/instrumentation/grizzly/GrizzlyHttpHandlerInstrumentation.java +++ b/dd-java-agent/instrumentation/grizzly/grizzly-2.0/src/main/java/datadog/trace/instrumentation/grizzly/GrizzlyHttpHandlerInstrumentation.java @@ -2,7 +2,7 @@ import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING; import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext; import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE; import static datadog.trace.instrumentation.grizzly.GrizzlyDecorator.DECORATE; @@ -73,7 +73,7 @@ public static class HandleAdvice { } final Context parentContext = - getCurrentContext(); // parent context attached by ContextTrackingAdvice + currentContext(); // parent context attached by ContextTrackingAdvice final Context context = DECORATE.startSpan(request, parentContext); final AgentSpan span = spanFromContext(context); DECORATE.afterStart(span); diff --git a/dd-java-agent/instrumentation/grizzly/grizzly-2.0/src/main/java/datadog/trace/instrumentation/grizzly/SpanClosingListener.java b/dd-java-agent/instrumentation/grizzly/grizzly-2.0/src/main/java/datadog/trace/instrumentation/grizzly/SpanClosingListener.java index 46142eb7771..4729ae8b395 100644 --- a/dd-java-agent/instrumentation/grizzly/grizzly-2.0/src/main/java/datadog/trace/instrumentation/grizzly/SpanClosingListener.java +++ b/dd-java-agent/instrumentation/grizzly/grizzly-2.0/src/main/java/datadog/trace/instrumentation/grizzly/SpanClosingListener.java @@ -1,6 +1,5 @@ package datadog.trace.instrumentation.grizzly; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext; import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE; import static datadog.trace.instrumentation.grizzly.GrizzlyDecorator.DECORATE; @@ -19,7 +18,7 @@ public void onAfterService(final Request request) { request.removeAttribute(DD_CONTEXT_ATTRIBUTE); final Context context = (Context) contextAttr; - final AgentSpan span = spanFromContext(context); + final AgentSpan span = AgentSpan.fromContext(context); if (span != null) { DECORATE.onResponse(span, request.getResponse()); DECORATE.beforeFinish(context); diff --git a/dd-java-agent/instrumentation/grizzly/grizzly-client-1.9/src/main/java/datadog/trace/instrumentation/grizzly/client/AsyncHttpClientInstrumentation.java b/dd-java-agent/instrumentation/grizzly/grizzly-client-1.9/src/main/java/datadog/trace/instrumentation/grizzly/client/AsyncHttpClientInstrumentation.java index bd46afb7234..cc7931efdc9 100644 --- a/dd-java-agent/instrumentation/grizzly/grizzly-client-1.9/src/main/java/datadog/trace/instrumentation/grizzly/client/AsyncHttpClientInstrumentation.java +++ b/dd-java-agent/instrumentation/grizzly/grizzly-client-1.9/src/main/java/datadog/trace/instrumentation/grizzly/client/AsyncHttpClientInstrumentation.java @@ -5,7 +5,7 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.instrumentation.grizzly.client.ClientDecorator.DECORATE; import static datadog.trace.instrumentation.grizzly.client.ClientDecorator.HTTP_REQUEST; import static datadog.trace.instrumentation.grizzly.client.InjectAdapter.SETTER; @@ -73,7 +73,7 @@ public static void onExit( public static class ExecuteContextPropagationAdvice { @Advice.OnMethodEnter(suppress = Throwable.class) public static void onEnter(@Advice.Argument(0) final Request request) { - DECORATE.injectContext(getCurrentContext(), request, SETTER); + DECORATE.injectContext(currentContext(), request, SETTER); } } } diff --git a/dd-java-agent/instrumentation/grizzly/grizzly-http-2.3.20/src/main/java/datadog/trace/instrumentation/grizzlyhttp232/FilterAdvice.java b/dd-java-agent/instrumentation/grizzly/grizzly-http-2.3.20/src/main/java/datadog/trace/instrumentation/grizzlyhttp232/FilterAdvice.java index 9e39339d732..0c58e436c8d 100644 --- a/dd-java-agent/instrumentation/grizzly/grizzly-http-2.3.20/src/main/java/datadog/trace/instrumentation/grizzlyhttp232/FilterAdvice.java +++ b/dd-java-agent/instrumentation/grizzly/grizzly-http-2.3.20/src/main/java/datadog/trace/instrumentation/grizzlyhttp232/FilterAdvice.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.grizzlyhttp232; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext; import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE; import datadog.context.Context; @@ -13,7 +13,7 @@ public class FilterAdvice { @Advice.OnMethodEnter(suppress = Throwable.class) public static ContextScope onEnter(@Advice.Argument(0) final FilterChainContext ctx) { - if (getCurrentContext() != getRootContext()) { + if (currentContext() != rootContext()) { return null; } Object contextObj = ctx.getAttributes().getAttribute(DD_CONTEXT_ATTRIBUTE); diff --git a/dd-java-agent/instrumentation/grizzly/grizzly-http-2.3.20/src/main/java/datadog/trace/instrumentation/grizzlyhttp232/GrizzlyDecorator.java b/dd-java-agent/instrumentation/grizzly/grizzly-http-2.3.20/src/main/java/datadog/trace/instrumentation/grizzlyhttp232/GrizzlyDecorator.java index 9b917f65941..acdb6b26eee 100644 --- a/dd-java-agent/instrumentation/grizzly/grizzly-http-2.3.20/src/main/java/datadog/trace/instrumentation/grizzlyhttp232/GrizzlyDecorator.java +++ b/dd-java-agent/instrumentation/grizzly/grizzly-http-2.3.20/src/main/java/datadog/trace/instrumentation/grizzlyhttp232/GrizzlyDecorator.java @@ -1,6 +1,5 @@ package datadog.trace.instrumentation.grizzlyhttp232; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext; import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE; import datadog.appsec.api.blocking.BlockingContentType; @@ -90,7 +89,7 @@ public static void onHttpServerFilterPrepareResponseEnter( FilterChainContext ctx, HttpResponsePacket responsePacket) { Context context = (Context) ctx.getAttributes().getAttribute(DD_CONTEXT_ATTRIBUTE); AgentSpan span; - if (context != null && (span = spanFromContext(context)) != null) { + if (context != null && (span = AgentSpan.fromContext(context)) != null) { DECORATE.onResponse(span, responsePacket); } } @@ -99,7 +98,7 @@ public static void onHttpServerFilterPrepareResponseExit( FilterChainContext ctx, HttpResponsePacket responsePacket) { Context context = (Context) ctx.getAttributes().getAttribute(DD_CONTEXT_ATTRIBUTE); AgentSpan span; - if (context != null && (span = spanFromContext(context)) != null) { + if (context != null && (span = AgentSpan.fromContext(context)) != null) { DECORATE.beforeFinish(context); span.finish(); } @@ -120,7 +119,7 @@ public static NextAction onHttpCodecFilterExit( Context parentContext = DECORATE.extract(httpRequest); Context context = DECORATE.startSpan(httpRequest, parentContext); ContextScope scope = context.attach(); - AgentSpan span = spanFromContext(context); + AgentSpan span = AgentSpan.fromContext(context); DECORATE.afterStart(span); ctx.getAttributes().setAttribute(DD_RESPONSE_ATTRIBUTE, httpResponse); ctx.getAttributes().setAttribute(DD_CONTEXT_ATTRIBUTE, context); @@ -150,7 +149,7 @@ public static NextAction onHttpCodecFilterExit( public static void onFilterChainFail(FilterChainContext ctx, Throwable throwable) { Context context = (Context) ctx.getAttributes().getAttribute(DD_CONTEXT_ATTRIBUTE); AgentSpan span; - if (context != null && (span = spanFromContext(context)) != null) { + if (context != null && (span = AgentSpan.fromContext(context)) != null) { DECORATE.onError(span, throwable); DECORATE.beforeFinish(context); span.finish(); diff --git a/dd-java-agent/instrumentation/java/java-net/java-net-1.8/src/main/java/datadog/trace/instrumentation/java/net/HttpUrlConnectionInstrumentation.java b/dd-java-agent/instrumentation/java/java-net/java-net-1.8/src/main/java/datadog/trace/instrumentation/java/net/HttpUrlConnectionInstrumentation.java index a51087c85eb..fb59f988a66 100644 --- a/dd-java-agent/instrumentation/java/java-net/java-net-1.8/src/main/java/datadog/trace/instrumentation/java/net/HttpUrlConnectionInstrumentation.java +++ b/dd-java-agent/instrumentation/java/java-net/java-net-1.8/src/main/java/datadog/trace/instrumentation/java/net/HttpUrlConnectionInstrumentation.java @@ -2,7 +2,7 @@ import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.namedOneOf; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.bootstrap.instrumentation.decorator.UrlConnectionDecorator.DECORATE; import static datadog.trace.bootstrap.instrumentation.httpurlconnection.HeadersInjectAdapter.SETTER; import static java.util.Collections.singletonMap; @@ -85,7 +85,7 @@ public static HttpUrlState methodEnter( if (!state.hasSpan() && !state.isFinished()) { final AgentSpan span = state.start(thiz); if (!connected) { - DECORATE.injectContext(getCurrentContext().with(span), thiz, SETTER); + DECORATE.injectContext(currentContext().with(span), thiz, SETTER); } } return state; diff --git a/dd-java-agent/instrumentation/java/java-net/java-net-11.0/src/main/java11/datadog/trace/instrumentation/httpclient/HeadersAdvice.java b/dd-java-agent/instrumentation/java/java-net/java-net-11.0/src/main/java11/datadog/trace/instrumentation/httpclient/HeadersAdvice.java index 0657b3f44f5..4dd8ffd96e0 100644 --- a/dd-java-agent/instrumentation/java/java-net/java-net-11.0/src/main/java11/datadog/trace/instrumentation/httpclient/HeadersAdvice.java +++ b/dd-java-agent/instrumentation/java/java-net/java-net-11.0/src/main/java11/datadog/trace/instrumentation/httpclient/HeadersAdvice.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.httpclient; import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.instrumentation.httpclient.HttpHeadersInjectAdapter.KEEP; import static datadog.trace.instrumentation.httpclient.HttpHeadersInjectAdapter.SETTER; import static datadog.trace.instrumentation.httpclient.JavaNetClientDecorator.DECORATE; @@ -24,7 +24,7 @@ public static void methodExit(@Advice.Return(readOnly = false) HttpHeaders heade // case insensitively final Map> headerMap = new TreeMap<>(CASE_INSENSITIVE_ORDER); headerMap.putAll(headers.map()); - DECORATE.injectContext(getCurrentContext(), headerMap, SETTER); + DECORATE.injectContext(currentContext(), headerMap, SETTER); headers = HttpHeaders.of(headerMap, KEEP); } } diff --git a/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-10.0/src/main/java11/datadog/trace/instrumentation/jetty_client10/SendContextPropagationAdvice.java b/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-10.0/src/main/java11/datadog/trace/instrumentation/jetty_client10/SendContextPropagationAdvice.java index 8a0f4846f1e..1123e8d1cbd 100644 --- a/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-10.0/src/main/java11/datadog/trace/instrumentation/jetty_client10/SendContextPropagationAdvice.java +++ b/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-10.0/src/main/java11/datadog/trace/instrumentation/jetty_client10/SendContextPropagationAdvice.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.jetty_client10; import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.instrumentation.jetty_client.HeadersInjectAdapter.SETTER; import static datadog.trace.instrumentation.jetty_client10.JettyClientDecorator.DECORATE; @@ -17,7 +17,7 @@ public class SendContextPropagationAdvice { @Advice.OnMethodEnter(suppress = Throwable.class) public static void methodEnter(@Advice.Argument(0) final Request request) { final AgentSpan span = InstrumentationContext.get(Request.class, AgentSpan.class).get(request); - Context destination = getCurrentContext(); + Context destination = currentContext(); if (span != null) { destination = destination.with(span); } diff --git a/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-12.0/src/main/java17/datadog/trace/instrumentation/jetty_client12/SendContextPropagationAdvice.java b/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-12.0/src/main/java17/datadog/trace/instrumentation/jetty_client12/SendContextPropagationAdvice.java index 490763613f8..ab0a1e45132 100644 --- a/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-12.0/src/main/java17/datadog/trace/instrumentation/jetty_client12/SendContextPropagationAdvice.java +++ b/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-12.0/src/main/java17/datadog/trace/instrumentation/jetty_client12/SendContextPropagationAdvice.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.jetty_client12; import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.instrumentation.jetty_client12.HeadersInjectAdapter.SETTER; import static datadog.trace.instrumentation.jetty_client12.JettyClientDecorator.DECORATE; @@ -20,6 +20,6 @@ public static void methodEnter(@Advice.This final HttpRequest request) { if (span == null) { return; } - DECORATE.injectContext(getCurrentContext().with(span), request, SETTER); + DECORATE.injectContext(currentContext().with(span), request, SETTER); } } diff --git a/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-9.1/src/main/java/datadog/trace/instrumentation/jetty_client91/JettyClientInstrumentation.java b/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-9.1/src/main/java/datadog/trace/instrumentation/jetty_client91/JettyClientInstrumentation.java index ccdfad18391..eb0ffb52c1e 100644 --- a/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-9.1/src/main/java/datadog/trace/instrumentation/jetty_client91/JettyClientInstrumentation.java +++ b/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-9.1/src/main/java/datadog/trace/instrumentation/jetty_client91/JettyClientInstrumentation.java @@ -4,7 +4,7 @@ import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.namedOneOf; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; -import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext; +import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext; import static datadog.trace.bootstrap.instrumentation.java.concurrent.ExcludeFilter.ExcludeType.RUNNABLE; import static datadog.trace.instrumentation.jetty_client.HeadersInjectAdapter.SETTER; import static datadog.trace.instrumentation.jetty_client91.JettyClientDecorator.DECORATE; @@ -114,7 +114,7 @@ public static class ContextPropagationAdvice { public static void methodEnter(@Advice.Argument(0) final Request request) { final AgentSpan span = InstrumentationContext.get(Request.class, AgentSpan.class).get(request); - Context destination = getCurrentContext(); + Context destination = currentContext(); if (span != null) { destination = destination.with(span); } diff --git a/dd-java-agent/instrumentation/jetty/jetty-common/src/main/java/datadog/trace/instrumentation/jetty/HandleRequestVisitor.java b/dd-java-agent/instrumentation/jetty/jetty-common/src/main/java/datadog/trace/instrumentation/jetty/HandleRequestVisitor.java index e8081846844..4c832fa4891 100644 --- a/dd-java-agent/instrumentation/jetty/jetty-common/src/main/java/datadog/trace/instrumentation/jetty/HandleRequestVisitor.java +++ b/dd-java-agent/instrumentation/jetty/jetty-common/src/main/java/datadog/trace/instrumentation/jetty/HandleRequestVisitor.java @@ -17,7 +17,7 @@ * and replaces it with: * *
- * if (JettyBlockingHelper.block(this.getRequest(), this.getResponse(), Java8BytecodeBridge.getCurrentContext()) {
+ * if (JettyBlockingHelper.block(this.getRequest(), this.getResponse(), Java8BytecodeBridge.currentContext()) {
  *   // nothing
  * } else {
  *   server.handle(this);
@@ -83,7 +83,7 @@ public void visitMethodInsn(
       super.visitMethodInsn(
           INVOKESTATIC,
           Type.getInternalName(Java8BytecodeBridge.class),
-          "getCurrentContext",
+          "currentContext",
           "()Ldatadog/context/Context;",
           false);
       // Call JettyBlockingHelper.block(request, response, context)
diff --git a/dd-java-agent/instrumentation/jetty/jetty-common/src/main/java/datadog/trace/instrumentation/jetty/JettyBlockingHelper.java b/dd-java-agent/instrumentation/jetty/jetty-common/src/main/java/datadog/trace/instrumentation/jetty/JettyBlockingHelper.java
index 53b059d7506..c8704f5f895 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-common/src/main/java/datadog/trace/instrumentation/jetty/JettyBlockingHelper.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-common/src/main/java/datadog/trace/instrumentation/jetty/JettyBlockingHelper.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.jetty;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static java.lang.invoke.MethodHandles.collectArguments;
 import static java.lang.invoke.MethodHandles.lookup;
 import static java.lang.invoke.MethodType.methodType;
@@ -229,7 +228,7 @@ public static boolean block(
   }
 
   public static boolean block(Request request, Response response, Context context) {
-    AgentSpan span = spanFromContext(context);
+    AgentSpan span = AgentSpan.fromContext(context);
     Flow.Action.RequestBlockingAction rba;
     if (span == null || (rba = span.getRequestBlockingAction()) == null) {
       return false;
@@ -245,7 +244,7 @@ public static boolean block(Request request, Response response, Context context)
   }
 
   public static boolean hasRequestBlockingAction(Context context) {
-    AgentSpan span = spanFromContext(context);
+    AgentSpan span = AgentSpan.fromContext(context);
     return span != null && span.getRequestBlockingAction() != null;
   }
 
diff --git a/dd-java-agent/instrumentation/jetty/jetty-common/src/main/java/datadog/trace/instrumentation/jetty9/HandleVisitor.java b/dd-java-agent/instrumentation/jetty/jetty-common/src/main/java/datadog/trace/instrumentation/jetty9/HandleVisitor.java
index 096c656cb7e..44cd32cf7e5 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-common/src/main/java/datadog/trace/instrumentation/jetty9/HandleVisitor.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-common/src/main/java/datadog/trace/instrumentation/jetty9/HandleVisitor.java
@@ -39,7 +39,7 @@
  * 
  *   case REQUEST_DISPATCH:
  *   // ...
- *   if (JettyBlockingHelper.block(this.getRequest(), this.getResponse(), Java8BytecodeBridge.getCurrentContext())) {
+ *   if (JettyBlockingHelper.block(this.getRequest(), this.getResponse(), Java8BytecodeBridge.currentContext())) {
  *     // nothing
  *   } else {
  *     getServer().handle(this);
@@ -65,10 +65,10 @@
  *   case DISPATCH:
  *   {
  *     // ...
- *     if (JettyBlockingHelper.hasBlockingRequest(Java8BytecodeBridge.getCurrentContext()) {
+ *     if (JettyBlockingHelper.hasBlockingRequest(Java8BytecodeBridge.currentContext()) {
  *       Request req = getRequest(); // actually on the stack only
  *       Response resp = getResponse(); // idem
- *       Context context = Java8BytecodeBridge.getCurrentContext() // idem
+ *       Context context = Java8BytecodeBridge.currentContext() // idem
  *       dispatch(DispatcherType.REQUEST, () -> {
  *         JettyBlockingHelper.blockAndThrowOnFailure(request, response, context);
  *       });
@@ -95,10 +95,10 @@
  *   case DISPATCH:
  *   {
  *     // ...
- *     if (JettyBlockingHelper.hasBlockingRequest(Java8BytecodeBridge.getCurrentContext()) {
+ *     if (JettyBlockingHelper.hasBlockingRequest(Java8BytecodeBridge.currentContext()) {
  *       Request req = getRequest(); // actually on the stack only
  *       Response resp = getResponse(); // idem
- *       Context context = Java8BytecodeBridge.getCurrentContext() // idem
+ *       Context context = Java8BytecodeBridge.currentContext() // idem
  *       dispatch(DispatcherType.REQUEST, () -> {
  *         JettyBlockingHelper.blockAndThrowOnFailure(request, response, context);
  *       });
@@ -170,7 +170,7 @@ public void visitMethodInsn(
       super.visitMethodInsn(
           INVOKESTATIC,
           Type.getInternalName(Java8BytecodeBridge.class),
-          "getCurrentContext",
+          "currentContext",
           "()Ldatadog/context/Context;",
           false);
       super.visitMethodInsn(
@@ -216,7 +216,7 @@ public void visitMethodInsn(
       super.visitMethodInsn(
           INVOKESTATIC,
           Type.getInternalName(Java8BytecodeBridge.class),
-          "getCurrentContext",
+          "currentContext",
           "()Ldatadog/context/Context;",
           false);
       // Call JettyBlockingHelper.hasRequestBlockingAction(context)
@@ -251,7 +251,7 @@ public void visitMethodInsn(
       super.visitMethodInsn(
           INVOKESTATIC,
           Type.getInternalName(Java8BytecodeBridge.class),
-          "getCurrentContext",
+          "currentContext",
           "()Ldatadog/context/Context;",
           false);
 
diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/DispatchableAdvice.java b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/DispatchableAdvice.java
index 5ea02dccb66..fe009a75de4 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/DispatchableAdvice.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/DispatchableAdvice.java
@@ -1,6 +1,7 @@
 package datadog.trace.instrumentation.jetty10;
 
-import datadog.context.Context;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+
 import datadog.trace.instrumentation.jetty.JettyBlockingHelper;
 import net.bytebuddy.asm.Advice;
 import org.eclipse.jetty.server.HttpChannel;
@@ -8,7 +9,6 @@
 public class DispatchableAdvice {
   @Advice.OnMethodEnter(suppress = Throwable.class, skipOn = Advice.OnNonDefaultValue.class)
   public static boolean /* skip */ before(@Advice.FieldValue("this$0") HttpChannel channel) {
-    return JettyBlockingHelper.block(
-        channel.getRequest(), channel.getResponse(), Context.current());
+    return JettyBlockingHelper.block(channel.getRequest(), channel.getResponse(), currentContext());
   }
 }
diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/HandleAdvice.java b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/HandleAdvice.java
index 879562a64cf..8857e7c5d46 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/HandleAdvice.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/HandleAdvice.java
@@ -1,7 +1,7 @@
 package datadog.trace.instrumentation.jetty10;
 
 import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.jetty10.JettyDecorator.DD_PARENT_CONTEXT_ATTRIBUTE;
@@ -54,7 +54,7 @@ public static ContextScope onEnter(
 
     final Object parentContextObj = req.getAttribute(DD_PARENT_CONTEXT_ATTRIBUTE);
     final Context parentContext =
-        (parentContextObj instanceof Context) ? (Context) parentContextObj : getRootContext();
+        (parentContextObj instanceof Context) ? (Context) parentContextObj : rootContext();
     final Context context = DECORATE.startSpan(req, parentContext);
     span = spanFromContext(context);
     DECORATE.afterStart(span);
diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/JettyCommitResponseHelper.java b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/JettyCommitResponseHelper.java
index 14afb30fc2a..be0be6eaa3a 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/JettyCommitResponseHelper.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/JettyCommitResponseHelper.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.jetty10;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_IGNORE_COMMIT_ATTRIBUTE;
 
@@ -63,7 +62,7 @@ public class JettyCommitResponseHelper {
     }
 
     Context context = (Context) contextObj;
-    AgentSpan span = spanFromContext(context);
+    AgentSpan span = AgentSpan.fromContext(context);
     if (span == null) {
       state.partialResponse();
       return false;
diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-11.0/src/main/java11/datadog/trace/instrumentation/jetty11/JettyServerAdvice.java b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-11.0/src/main/java11/datadog/trace/instrumentation/jetty11/JettyServerAdvice.java
index 786db5341dd..225c7dc64ba 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-11.0/src/main/java11/datadog/trace/instrumentation/jetty11/JettyServerAdvice.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-11.0/src/main/java11/datadog/trace/instrumentation/jetty11/JettyServerAdvice.java
@@ -2,7 +2,7 @@
 
 import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING;
 import static datadog.trace.bootstrap.instrumentation.api.AgentSpan.fromContext;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.jetty11.JettyDecorator.DD_PARENT_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.jetty11.JettyDecorator.DECORATE;
@@ -56,7 +56,7 @@ public static ContextScope onEnter(
 
       final Object parentContextObj = req.getAttribute(DD_PARENT_CONTEXT_ATTRIBUTE);
       final Context parentContext =
-          (parentContextObj instanceof Context) ? (Context) parentContextObj : getRootContext();
+          (parentContextObj instanceof Context) ? (Context) parentContextObj : rootContext();
       final Context context = DECORATE.startSpan(req, parentContext);
       final ContextScope scope = context.attach();
       span = fromContext(context);
diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-12.0/src/main/java17/datadog/trace/instrumentation/jetty12/JettyServerAdvice.java b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-12.0/src/main/java17/datadog/trace/instrumentation/jetty12/JettyServerAdvice.java
index 5c58258d5ce..e0c507071c5 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-12.0/src/main/java17/datadog/trace/instrumentation/jetty12/JettyServerAdvice.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-12.0/src/main/java17/datadog/trace/instrumentation/jetty12/JettyServerAdvice.java
@@ -2,7 +2,7 @@
 
 import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING;
 import static datadog.trace.bootstrap.instrumentation.api.AgentSpan.fromContext;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.jetty12.JettyDecorator.DD_PARENT_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.jetty12.JettyDecorator.DECORATE;
@@ -49,7 +49,7 @@ public static void onExit(
 
       final Object parentContextObj = req.getAttribute(DD_PARENT_CONTEXT_ATTRIBUTE);
       final Context parentContext =
-          (parentContextObj instanceof Context) ? (Context) parentContextObj : getRootContext();
+          (parentContextObj instanceof Context) ? (Context) parentContextObj : rootContext();
       final Context context = DECORATE.startSpan(req, parentContext);
       try (final ContextScope ignored = context.attach()) {
         final AgentSpan span = fromContext(context);
diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-7.0/src/main/java/datadog/trace/instrumentation/jetty70/JettyServerInstrumentation.java b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-7.0/src/main/java/datadog/trace/instrumentation/jetty70/JettyServerInstrumentation.java
index 673bcb2a232..4d5c864b046 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-7.0/src/main/java/datadog/trace/instrumentation/jetty70/JettyServerInstrumentation.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-7.0/src/main/java/datadog/trace/instrumentation/jetty70/JettyServerInstrumentation.java
@@ -2,7 +2,7 @@
 
 import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.jetty70.JettyDecorator.DD_PARENT_CONTEXT_ATTRIBUTE;
@@ -186,7 +186,7 @@ public static ContextScope onEnter(
 
       final Object parentContextObj = req.getAttribute(DD_PARENT_CONTEXT_ATTRIBUTE);
       final Context parentContext =
-          (parentContextObj instanceof Context) ? (Context) parentContextObj : getRootContext();
+          (parentContextObj instanceof Context) ? (Context) parentContextObj : rootContext();
       final Context context = DECORATE.startSpan(req, parentContext);
       final ContextScope scope = context.attach();
       span = spanFromContext(context);
diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-7.6/src/main/java/datadog/trace/instrumentation/jetty76/JettyServerInstrumentation.java b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-7.6/src/main/java/datadog/trace/instrumentation/jetty76/JettyServerInstrumentation.java
index 633c687743e..faec3acc4d7 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-7.6/src/main/java/datadog/trace/instrumentation/jetty76/JettyServerInstrumentation.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-7.6/src/main/java/datadog/trace/instrumentation/jetty76/JettyServerInstrumentation.java
@@ -2,7 +2,7 @@
 
 import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_FIN_DISP_LIST_SPAN_ATTRIBUTE;
@@ -187,7 +187,7 @@ public static ContextScope onEnter(
 
       final Object parentContextObj = req.getAttribute(DD_PARENT_CONTEXT_ATTRIBUTE);
       final Context parentContext =
-          (parentContextObj instanceof Context) ? (Context) parentContextObj : getRootContext();
+          (parentContextObj instanceof Context) ? (Context) parentContextObj : rootContext();
       final Context context = DECORATE.startSpan(req, parentContext);
       final ContextScope scope = context.attach();
       span = spanFromContext(context);
diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.0.4/src/main/java/datadog/trace/instrumentation/jetty904/JettyCommitResponseHelper.java b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.0.4/src/main/java/datadog/trace/instrumentation/jetty904/JettyCommitResponseHelper.java
index 7bdfa0bfb20..964f6e7a524 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.0.4/src/main/java/datadog/trace/instrumentation/jetty904/JettyCommitResponseHelper.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.0.4/src/main/java/datadog/trace/instrumentation/jetty904/JettyCommitResponseHelper.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.jetty904;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_IGNORE_COMMIT_ATTRIBUTE;
 import static datadog.trace.instrumentation.jetty9.JettyDecorator.DECORATE;
@@ -60,7 +59,7 @@ public class JettyCommitResponseHelper {
       return false;
     }
     Context context = (Context) contextObj;
-    AgentSpan span = spanFromContext(context);
+    AgentSpan span = AgentSpan.fromContext(context);
     if (span == null) {
       _committed.set(false);
       return false;
diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.0/src/main/java/datadog/trace/instrumentation/jetty9/JettyServerInstrumentation.java b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.0/src/main/java/datadog/trace/instrumentation/jetty9/JettyServerInstrumentation.java
index cb533ae9462..5eb6dad7e12 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.0/src/main/java/datadog/trace/instrumentation/jetty9/JettyServerInstrumentation.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.0/src/main/java/datadog/trace/instrumentation/jetty9/JettyServerInstrumentation.java
@@ -4,7 +4,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.HierarchyMatchers.declaresMethod;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.namedOneOf;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.bootstrap.instrumentation.java.concurrent.ExcludeFilter.ExcludeType.RUNNABLE;
@@ -191,7 +191,7 @@ public static ContextScope onEnter(
 
       Object parentContextObj = req.getAttribute(DD_PARENT_CONTEXT_ATTRIBUTE);
       Context parentContext =
-          (parentContextObj instanceof Context) ? (Context) parentContextObj : getRootContext();
+          (parentContextObj instanceof Context) ? (Context) parentContextObj : rootContext();
       final Context context = DECORATE.startSpan(req, parentContext);
       final ContextScope scope = context.attach();
       span = spanFromContext(context);
diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.3/src/main/java/datadog/trace/instrumentation/jetty93/JettyCommitResponseHelper.java b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.3/src/main/java/datadog/trace/instrumentation/jetty93/JettyCommitResponseHelper.java
index 5e4dc5fa078..9eb5a286891 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.3/src/main/java/datadog/trace/instrumentation/jetty93/JettyCommitResponseHelper.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.3/src/main/java/datadog/trace/instrumentation/jetty93/JettyCommitResponseHelper.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.jetty93;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_IGNORE_COMMIT_ATTRIBUTE;
 import static datadog.trace.instrumentation.jetty9.JettyDecorator.DECORATE;
@@ -56,7 +55,7 @@ public class JettyCommitResponseHelper {
     RequestContext requestContext;
     if (req.getAttribute(DD_IGNORE_COMMIT_ATTRIBUTE) != null
         || !((contextObj = req.getAttribute(DD_CONTEXT_ATTRIBUTE)) instanceof Context)
-        || (span = spanFromContext(context = (Context) contextObj)) == null
+        || (span = AgentSpan.fromContext(context = (Context) contextObj)) == null
         || (requestContext = span.getRequestContext()) == null) {
       _committed.set(false);
       return false;
diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.4.21/src/main/java/datadog/trace/instrumentation/jetty9421/JettyCommitResponseHelper.java b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.4.21/src/main/java/datadog/trace/instrumentation/jetty9421/JettyCommitResponseHelper.java
index ba34bd6412d..c51be7f1b20 100644
--- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.4.21/src/main/java/datadog/trace/instrumentation/jetty9421/JettyCommitResponseHelper.java
+++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.4.21/src/main/java/datadog/trace/instrumentation/jetty9421/JettyCommitResponseHelper.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.jetty9421;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_IGNORE_COMMIT_ATTRIBUTE;
 import static datadog.trace.instrumentation.jetty9.JettyDecorator.DECORATE;
@@ -59,7 +58,7 @@ public class JettyCommitResponseHelper {
     RequestContext requestContext;
     if (req.getAttribute(DD_IGNORE_COMMIT_ATTRIBUTE) != null
         || !((contextObj = req.getAttribute(DD_CONTEXT_ATTRIBUTE)) instanceof Context)
-        || (span = spanFromContext(context = (Context) contextObj)) == null
+        || (span = AgentSpan.fromContext(context = (Context) contextObj)) == null
         || (requestContext = span.getRequestContext()) == null) {
       state.partialResponse();
       return false;
diff --git a/dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java b/dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java
index 707876869db..06d53e1ba3b 100644
--- a/dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java
+++ b/dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java
@@ -9,7 +9,7 @@
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateNext;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.closePrevious;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.jms.JMSDecorator.BROKER_DECORATE;
 import static datadog.trace.instrumentation.jms.JMSDecorator.CONSUMER_DECORATE;
@@ -96,7 +96,7 @@ public static MessageConsumerState beforeReceive(@Advice.This final MessageConsu
       if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) {
         closePrevious(finishSpan);
       } else {
-        final AgentSpan previousSpan = spanFromContext(getRootContext().swap());
+        final AgentSpan previousSpan = spanFromContext(rootContext().swap());
         if (previousSpan != null) {
           CONSUMER_DECORATE.beforeFinish(previousSpan);
           previousSpan.finishWithEndToEnd();
@@ -209,7 +209,7 @@ public static void beforeClose(@Advice.This final MessageConsumer consumer) {
         if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) {
           closePrevious(finishSpan);
         } else {
-          final AgentSpan previousSpan = spanFromContext(getRootContext().swap());
+          final AgentSpan previousSpan = spanFromContext(rootContext().swap());
           if (previousSpan != null) {
             CONSUMER_DECORATE.beforeFinish(previousSpan);
             previousSpan.finishWithEndToEnd();
diff --git a/dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/MDBMessageConsumerInstrumentation.java b/dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/MDBMessageConsumerInstrumentation.java
index d9b878f9c69..9ae776c7ed4 100644
--- a/dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/MDBMessageConsumerInstrumentation.java
+++ b/dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/MDBMessageConsumerInstrumentation.java
@@ -8,7 +8,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.instrumentation.jms.JMSDecorator.CONSUMER_DECORATE;
 import static datadog.trace.instrumentation.jms.JMSDecorator.JMS_CONSUME;
 import static datadog.trace.instrumentation.jms.JMSDecorator.logJMSException;
@@ -70,7 +70,7 @@ public static class ContextPropagationAdvice {
     @Advice.OnMethodEnter(suppress = Throwable.class)
     public static void onEnter(
         @Advice.Argument(0) final Message message, @Advice.Local("ctxScope") ContextScope scope) {
-      scope = defaultPropagator().extract(getRootContext(), message, GETTER).attach();
+      scope = defaultPropagator().extract(rootContext(), message, GETTER).attach();
     }
 
     @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
diff --git a/dd-java-agent/instrumentation/kafka/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/TracingIterator.java b/dd-java-agent/instrumentation/kafka/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/TracingIterator.java
index ada3c0f31c6..93179e4e3f2 100644
--- a/dd-java-agent/instrumentation/kafka/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/TracingIterator.java
+++ b/dd-java-agent/instrumentation/kafka/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/TracingIterator.java
@@ -9,8 +9,6 @@
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.closePrevious;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.traceConfig;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.kafka_clients.KafkaDecorator.BROKER_DECORATE;
 import static datadog.trace.instrumentation.kafka_clients.KafkaDecorator.JAVA_KAFKA;
 import static datadog.trace.instrumentation.kafka_clients.KafkaDecorator.KAFKA_DELIVER;
@@ -22,6 +20,7 @@
 import static datadog.trace.instrumentation.kafka_common.Utils.computePayloadSizeBytes;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 
+import datadog.context.Context;
 import datadog.context.propagation.Propagator;
 import datadog.context.propagation.Propagators;
 import datadog.trace.api.Config;
@@ -72,7 +71,7 @@ public boolean hasNext() {
       if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) {
         closePrevious(true);
       } else {
-        final AgentSpan previousSpan = spanFromContext(getRootContext().swap());
+        final AgentSpan previousSpan = AgentSpan.fromContext(Context.root().swap());
         if (previousSpan != null) {
           previousSpan.finishWithEndToEnd();
         }
@@ -93,7 +92,7 @@ protected void startNewRecordSpan(ConsumerRecord val) {
       if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) {
         closePrevious(true);
       } else if (val == null) { // previous message span was the last
-        final AgentSpan previousSpan = spanFromContext(getRootContext().swap());
+        final AgentSpan previousSpan = AgentSpan.fromContext(Context.root().swap());
         if (previousSpan != null) {
           previousSpan.finishWithEndToEnd();
         }
@@ -151,7 +150,7 @@ protected void startNewRecordSpan(ConsumerRecord val) {
         if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) {
           activateNext(span);
         } else {
-          final AgentSpan previousSpan = spanFromContext(span.swap());
+          final AgentSpan previousSpan = AgentSpan.fromContext(span.swap());
           if (previousSpan != null) {
             previousSpan.finishWithEndToEnd();
           }
diff --git a/dd-java-agent/instrumentation/kafka/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/TracingListIterator.java b/dd-java-agent/instrumentation/kafka/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/TracingListIterator.java
index b3f1e1abe66..34e7bbe00df 100644
--- a/dd-java-agent/instrumentation/kafka/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/TracingListIterator.java
+++ b/dd-java-agent/instrumentation/kafka/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/TracingListIterator.java
@@ -1,9 +1,8 @@
 package datadog.trace.instrumentation.kafka_clients;
 
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.closePrevious;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 
+import datadog.context.Context;
 import datadog.trace.api.InstrumenterConfig;
 import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
 import java.util.ListIterator;
@@ -33,7 +32,7 @@ public boolean hasPrevious() {
       if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) {
         closePrevious(true);
       } else {
-        final AgentSpan previousSpan = spanFromContext(getRootContext().swap());
+        final AgentSpan previousSpan = AgentSpan.fromContext(Context.root().swap());
         if (previousSpan != null) {
           previousSpan.finishWithEndToEnd();
         }
diff --git a/dd-java-agent/instrumentation/kafka/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/TracingIterator.java b/dd-java-agent/instrumentation/kafka/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/TracingIterator.java
index e38094ac392..7beba848473 100644
--- a/dd-java-agent/instrumentation/kafka/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/TracingIterator.java
+++ b/dd-java-agent/instrumentation/kafka/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/TracingIterator.java
@@ -9,13 +9,12 @@
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.closePrevious;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.traceConfig;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.kafka_clients38.KafkaDecorator.JAVA_KAFKA;
 import static datadog.trace.instrumentation.kafka_clients38.TextMapExtractAdapter.GETTER;
 import static datadog.trace.instrumentation.kafka_clients38.TextMapInjectAdapter.SETTER;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 
+import datadog.context.Context;
 import datadog.context.propagation.Propagator;
 import datadog.context.propagation.Propagators;
 import datadog.trace.api.Config;
@@ -68,7 +67,7 @@ public boolean hasNext() {
       if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) {
         closePrevious(true);
       } else {
-        final AgentSpan previousSpan = spanFromContext(getRootContext().swap());
+        final AgentSpan previousSpan = AgentSpan.fromContext(Context.root().swap());
         if (previousSpan != null) {
           previousSpan.finishWithEndToEnd();
         }
@@ -89,7 +88,7 @@ protected void startNewRecordSpan(ConsumerRecord val) {
       if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) {
         closePrevious(true);
       } else if (val == null) { // previous message span was the last
-        final AgentSpan previousSpan = spanFromContext(getRootContext().swap());
+        final AgentSpan previousSpan = AgentSpan.fromContext(Context.root().swap());
         if (previousSpan != null) {
           previousSpan.finishWithEndToEnd();
         }
@@ -147,7 +146,7 @@ protected void startNewRecordSpan(ConsumerRecord val) {
         if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) {
           activateNext(span);
         } else {
-          final AgentSpan previousSpan = spanFromContext(span.swap());
+          final AgentSpan previousSpan = AgentSpan.fromContext(span.swap());
           if (previousSpan != null) {
             previousSpan.finishWithEndToEnd();
           }
diff --git a/dd-java-agent/instrumentation/kafka/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/TracingListIterator.java b/dd-java-agent/instrumentation/kafka/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/TracingListIterator.java
index 5d52061f884..3b17006d562 100644
--- a/dd-java-agent/instrumentation/kafka/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/TracingListIterator.java
+++ b/dd-java-agent/instrumentation/kafka/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/TracingListIterator.java
@@ -1,9 +1,8 @@
 package datadog.trace.instrumentation.kafka_clients38;
 
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.closePrevious;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 
+import datadog.context.Context;
 import datadog.trace.api.InstrumenterConfig;
 import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
 import java.util.ListIterator;
@@ -33,7 +32,7 @@ public boolean hasPrevious() {
       if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) {
         closePrevious(true);
       } else {
-        final AgentSpan previousSpan = spanFromContext(getRootContext().swap());
+        final AgentSpan previousSpan = AgentSpan.fromContext(Context.root().swap());
         if (previousSpan != null) {
           previousSpan.finishWithEndToEnd();
         }
diff --git a/dd-java-agent/instrumentation/kafka/kafka-streams-0.11/src/main/java/datadog/trace/instrumentation/kafka_streams/KafkaStreamTaskInstrumentation.java b/dd-java-agent/instrumentation/kafka/kafka-streams-0.11/src/main/java/datadog/trace/instrumentation/kafka_streams/KafkaStreamTaskInstrumentation.java
index 4c3f94ee210..81ddfd4202f 100644
--- a/dd-java-agent/instrumentation/kafka/kafka-streams-0.11/src/main/java/datadog/trace/instrumentation/kafka_streams/KafkaStreamTaskInstrumentation.java
+++ b/dd-java-agent/instrumentation/kafka/kafka-streams-0.11/src/main/java/datadog/trace/instrumentation/kafka_streams/KafkaStreamTaskInstrumentation.java
@@ -10,7 +10,7 @@
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.traceConfig;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.instrumentation.kafka_common.StreamingContext.STREAMING_CONTEXT;
 import static datadog.trace.instrumentation.kafka_common.Utils.computePayloadSizeBytes;
 import static datadog.trace.instrumentation.kafka_streams.KafkaStreamsDecorator.BROKER_DECORATE;
@@ -233,7 +233,7 @@ public static void onEnter(
         return;
       }
       if (!Config.get().isKafkaClientPropagationDisabledForTopic(record.topic())) {
-        scope = defaultPropagator().extract(getRootContext(), record, SR_GETTER).attach();
+        scope = defaultPropagator().extract(rootContext(), record, SR_GETTER).attach();
       }
     }
 
@@ -254,7 +254,7 @@ public static void onEnter(
         return;
       }
       if (!Config.get().isKafkaClientPropagationDisabledForTopic(record.topic())) {
-        scope = defaultPropagator().extract(getRootContext(), record, PR_GETTER).attach();
+        scope = defaultPropagator().extract(rootContext(), record, PR_GETTER).attach();
       }
     }
 
diff --git a/dd-java-agent/instrumentation/liberty/liberty-20.0/src/main/java/datadog/trace/instrumentation/liberty20/LibertyServerInstrumentation.java b/dd-java-agent/instrumentation/liberty/liberty-20.0/src/main/java/datadog/trace/instrumentation/liberty20/LibertyServerInstrumentation.java
index 7a9e2de6d15..ff48dbf536c 100644
--- a/dd-java-agent/instrumentation/liberty/liberty-20.0/src/main/java/datadog/trace/instrumentation/liberty20/LibertyServerInstrumentation.java
+++ b/dd-java-agent/instrumentation/liberty/liberty-20.0/src/main/java/datadog/trace/instrumentation/liberty20/LibertyServerInstrumentation.java
@@ -3,7 +3,7 @@
 import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentSpan.fromContext;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.liberty20.HttpInboundServiceContextImplInstrumentation.REQUEST_MSG_TYPE;
 import static datadog.trace.instrumentation.liberty20.LibertyDecorator.DD_PARENT_CONTEXT_ATTRIBUTE;
@@ -138,7 +138,7 @@ public static class HandleRequestAdvice {
 
       Object parentContextObj = request.getAttribute(DD_PARENT_CONTEXT_ATTRIBUTE);
       final Context parentContext =
-          (parentContextObj instanceof Context) ? (Context) parentContextObj : getRootContext();
+          (parentContextObj instanceof Context) ? (Context) parentContextObj : rootContext();
       final Context context = DECORATE.startSpan(request, parentContext);
       scope = context.attach();
       final AgentSpan span = fromContext(context);
diff --git a/dd-java-agent/instrumentation/liberty/liberty-23.0/src/main/java/datadog/trace/instrumentation/liberty23/LibertyServerInstrumentation.java b/dd-java-agent/instrumentation/liberty/liberty-23.0/src/main/java/datadog/trace/instrumentation/liberty23/LibertyServerInstrumentation.java
index 522d450adb1..093ded54b47 100644
--- a/dd-java-agent/instrumentation/liberty/liberty-23.0/src/main/java/datadog/trace/instrumentation/liberty23/LibertyServerInstrumentation.java
+++ b/dd-java-agent/instrumentation/liberty/liberty-23.0/src/main/java/datadog/trace/instrumentation/liberty23/LibertyServerInstrumentation.java
@@ -3,7 +3,7 @@
 import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentSpan.fromContext;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.liberty23.HttpInboundServiceContextImplInstrumentation.REQUEST_MSG_TYPE;
 import static datadog.trace.instrumentation.liberty23.LibertyDecorator.DD_PARENT_CONTEXT_ATTRIBUTE;
@@ -140,7 +140,7 @@ public static class HandleRequestAdvice {
 
       Object parentContextObj = request.getAttribute(DD_PARENT_CONTEXT_ATTRIBUTE);
       final Context parentContext =
-          (parentContextObj instanceof Context) ? (Context) parentContextObj : getRootContext();
+          (parentContextObj instanceof Context) ? (Context) parentContextObj : rootContext();
       final Context context = DECORATE.startSpan(request, parentContext);
       scope = context.attach();
       final AgentSpan span = fromContext(context);
diff --git a/dd-java-agent/instrumentation/micronaut/micronaut-http-server-netty/micronaut-http-server-netty-common/src/main/java/datadog/trace/instrumentation/micronaut/WriteFinalNettyResponseAdvice.java b/dd-java-agent/instrumentation/micronaut/micronaut-http-server-netty/micronaut-http-server-netty-common/src/main/java/datadog/trace/instrumentation/micronaut/WriteFinalNettyResponseAdvice.java
index 47802519796..92697bf2923 100644
--- a/dd-java-agent/instrumentation/micronaut/micronaut-http-server-netty/micronaut-http-server-netty-common/src/main/java/datadog/trace/instrumentation/micronaut/WriteFinalNettyResponseAdvice.java
+++ b/dd-java-agent/instrumentation/micronaut/micronaut-http-server-netty/micronaut-http-server-netty-common/src/main/java/datadog/trace/instrumentation/micronaut/WriteFinalNettyResponseAdvice.java
@@ -1,6 +1,6 @@
 package datadog.trace.instrumentation.micronaut;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.instrumentation.micronaut.MicronautDecorator.DECORATE;
 import static datadog.trace.instrumentation.micronaut.MicronautDecorator.SPAN_ATTRIBUTE;
 
@@ -20,7 +20,7 @@ public static void beginRequest(
       return;
     }
 
-    try (final ContextScope scope = getCurrentContext().with(span).attach()) {
+    try (final ContextScope scope = currentContext().with(span).attach()) {
       DECORATE.onResponse(span, message);
       DECORATE.beforeFinish(scope.context());
       span.finish();
diff --git a/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/ChannelFutureListenerInstrumentation.java b/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/ChannelFutureListenerInstrumentation.java
index 2757b52f7d9..4cf60ebf76f 100644
--- a/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/ChannelFutureListenerInstrumentation.java
+++ b/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/ChannelFutureListenerInstrumentation.java
@@ -3,7 +3,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.HierarchyMatchers.implementsInterface;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.instrumentation.netty38.server.NettyHttpServerDecorator.DECORATE;
 import static datadog.trace.instrumentation.netty38.server.NettyHttpServerDecorator.NETTY;
 import static datadog.trace.instrumentation.netty38.server.NettyHttpServerDecorator.NETTY_CONNECT;
@@ -110,7 +110,7 @@ public static AgentScope activateScope(@Advice.Argument(0) final ChannelFuture f
 
       final AgentSpan errorSpan = startSpan("netty", NETTY_CONNECT).setTag(Tags.COMPONENT, "netty");
       errorSpan.spanContext().setIntegrationName(NETTY);
-      try (final ContextScope scope = getCurrentContext().with(errorSpan).attach()) {
+      try (final ContextScope scope = currentContext().with(errorSpan).attach()) {
         DECORATE.onError(errorSpan, cause);
         DECORATE.beforeFinish(scope.context());
         errorSpan.finish();
diff --git a/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/client/HttpClientRequestTracingHandler.java b/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/client/HttpClientRequestTracingHandler.java
index 0ba5fee3b3a..6713f7c7bfc 100644
--- a/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/client/HttpClientRequestTracingHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/client/HttpClientRequestTracingHandler.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.netty38.client;
 
-import static datadog.context.Context.current;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
@@ -10,6 +9,7 @@
 import static datadog.trace.instrumentation.netty38.client.NettyHttpClientDecorator.NETTY_CLIENT_REQUEST;
 import static datadog.trace.instrumentation.netty38.client.NettyResponseInjectAdapter.SETTER;
 
+import datadog.context.Context;
 import datadog.context.ContextScope;
 import datadog.trace.bootstrap.ContextStore;
 import datadog.trace.bootstrap.instrumentation.api.AgentScope;
@@ -66,7 +66,7 @@ public void writeRequested(final ChannelHandlerContext ctx, final MessageEvent m
         decorate.onPeerConnection(span, (InetSocketAddress) socketAddress);
       }
 
-      DECORATE.injectContext(current(), request.headers(), SETTER);
+      DECORATE.injectContext(Context.current(), request.headers(), SETTER);
 
       channelTraceContext.setClientSpan(span);
 
diff --git a/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/server/HttpServerRequestTracingHandler.java b/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/server/HttpServerRequestTracingHandler.java
index ee355088118..ae8cfd62eb5 100644
--- a/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/server/HttpServerRequestTracingHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/server/HttpServerRequestTracingHandler.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.netty38.server;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.netty38.server.NettyHttpServerDecorator.DECORATE;
 
 import datadog.context.Context;
@@ -51,7 +50,7 @@ public void messageReceived(final ChannelHandlerContext ctx, final MessageEvent
     channelTraceContext.setRequestHeaders(headers);
 
     try (final ContextScope scope = context.attach()) {
-      final AgentSpan span = spanFromContext(context);
+      final AgentSpan span = AgentSpan.fromContext(context);
       DECORATE.afterStart(span);
       DECORATE.onRequest(span, ctx.getChannel(), request, parentContext);
 
diff --git a/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/server/HttpServerResponseTracingHandler.java b/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/server/HttpServerResponseTracingHandler.java
index 984af432114..b167e593492 100644
--- a/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/server/HttpServerResponseTracingHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/server/HttpServerResponseTracingHandler.java
@@ -1,8 +1,8 @@
 package datadog.trace.instrumentation.netty38.server;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
 import static datadog.trace.instrumentation.netty38.server.NettyHttpServerDecorator.DECORATE;
 
+import datadog.context.Context;
 import datadog.context.ContextScope;
 import datadog.trace.bootstrap.ContextStore;
 import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
@@ -36,7 +36,7 @@ public void writeRequested(final ChannelHandlerContext ctx, final MessageEvent m
       return;
     }
 
-    try (final ContextScope scope = getCurrentContext().with(span).attach()) {
+    try (final ContextScope scope = Context.current().with(span).attach()) {
       final HttpResponse response = (HttpResponse) msg.getMessage();
 
       try {
diff --git a/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java b/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java
index 0bb84c90181..69de67f85d9 100644
--- a/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java
+++ b/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java
@@ -3,7 +3,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.HierarchyMatchers.implementsInterface;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.CONNECT_PARENT_CONTINUATION_ATTRIBUTE_KEY;
 import static datadog.trace.instrumentation.netty40.server.NettyHttpServerDecorator.NETTY;
 import static datadog.trace.instrumentation.netty40.server.NettyHttpServerDecorator.NETTY_CONNECT;
@@ -95,7 +95,7 @@ public static AgentScope activateScope(@Advice.Argument(0) final ChannelFuture f
 
       final AgentSpan errorSpan = startSpan("netty", NETTY_CONNECT).setTag(Tags.COMPONENT, "netty");
       errorSpan.spanContext().setIntegrationName(NETTY);
-      try (final ContextScope scope = getCurrentContext().with(errorSpan).attach()) {
+      try (final ContextScope scope = currentContext().with(errorSpan).attach()) {
         NettyHttpServerDecorator.DECORATE.onError(errorSpan, cause);
         NettyHttpServerDecorator.DECORATE.beforeFinish(scope.context());
         errorSpan.finish();
diff --git a/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/client/HttpClientRequestTracingHandler.java b/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/client/HttpClientRequestTracingHandler.java
index 3cef514fb35..ce04eeef111 100644
--- a/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/client/HttpClientRequestTracingHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/client/HttpClientRequestTracingHandler.java
@@ -1,10 +1,8 @@
 package datadog.trace.instrumentation.netty40.client;
 
-import static datadog.context.Context.current;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.CLIENT_PARENT_ATTRIBUTE_KEY;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.CONNECT_PARENT_CONTINUATION_ATTRIBUTE_KEY;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.CONTEXT_ATTRIBUTE_KEY;
@@ -80,7 +78,7 @@ public void write(final ChannelHandlerContext ctx, final Object msg, final Chann
     NettyHttpClientDecorator decorate = isSecure ? DECORATE_SECURE : DECORATE;
 
     final AgentSpan span = startSpan(NETTY_CLIENT.toString(), NETTY_CLIENT_REQUEST);
-    final Context context = getCurrentContext().with(span);
+    final Context context = Context.current().with(span);
     try (final ContextScope scope = activateSpan(span)) {
       decorate.afterStart(span);
       decorate.onRequest(span, request);
@@ -92,7 +90,7 @@ public void write(final ChannelHandlerContext ctx, final Object msg, final Chann
 
       // AWS calls are often signed, so we can't add headers without breaking the signature.
       if (!awsClientCall) {
-        DECORATE.injectContext(current(), request.headers(), SETTER);
+        DECORATE.injectContext(Context.current(), request.headers(), SETTER);
       }
 
       ctx.channel().attr(CONTEXT_ATTRIBUTE_KEY).set(context);
diff --git a/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/client/HttpClientResponseTracingHandler.java b/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/client/HttpClientResponseTracingHandler.java
index 0983dec8529..b353d24c9a5 100644
--- a/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/client/HttpClientResponseTracingHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/client/HttpClientResponseTracingHandler.java
@@ -2,7 +2,6 @@
 
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.CLIENT_PARENT_ATTRIBUTE_KEY;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.CONTEXT_ATTRIBUTE_KEY;
 import static datadog.trace.instrumentation.netty40.client.NettyHttpClientDecorator.DECORATE;
@@ -27,7 +26,7 @@ public void channelRead(final ChannelHandlerContext ctx, final Object msg) {
     parentAttr.setIfAbsent(noopSpan());
     final AgentSpan parent = parentAttr.get();
     final Context storedContext = ctx.channel().attr(CONTEXT_ATTRIBUTE_KEY).get();
-    final AgentSpan span = spanFromContext(storedContext);
+    final AgentSpan span = AgentSpan.fromContext(storedContext);
 
     // Set parent context back to maintain the same functionality as getAndSet(parent)
     if (storedContext != null) {
@@ -56,7 +55,7 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws E
     parentAttr.setIfAbsent(noopSpan());
     final AgentSpan parent = parentAttr.get();
     final Context storedContext = ctx.channel().attr(CONTEXT_ATTRIBUTE_KEY).get();
-    final AgentSpan span = spanFromContext(storedContext);
+    final AgentSpan span = AgentSpan.fromContext(storedContext);
 
     // Set parent context back to maintain the same functionality as getAndSet(parent)
     if (storedContext != null) {
@@ -84,7 +83,7 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception {
     parentAttr.setIfAbsent(noopSpan());
     final AgentSpan parent = parentAttr.get();
     final Context storedContext = ctx.channel().attr(CONTEXT_ATTRIBUTE_KEY).get();
-    final AgentSpan span = spanFromContext(storedContext);
+    final AgentSpan span = AgentSpan.fromContext(storedContext);
 
     // Set parent context back to maintain the same functionality as getAndSet(parent)
     if (storedContext != null) {
diff --git a/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/HttpServerRequestTracingHandler.java b/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/HttpServerRequestTracingHandler.java
index 4b212bcfa1e..1b524e7051c 100644
--- a/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/HttpServerRequestTracingHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/HttpServerRequestTracingHandler.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.netty40.server;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.ANALYZED_RESPONSE_KEY;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.BLOCKED_RESPONSE_KEY;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.CONTEXT_ATTRIBUTE_KEY;
@@ -47,7 +46,7 @@ public void channelRead(final ChannelHandlerContext ctx, final Object msg) {
     final Context context = DECORATE.startSpan(headers, parentContext);
 
     try (final ContextScope ignored = context.attach()) {
-      final AgentSpan span = spanFromContext(context);
+      final AgentSpan span = AgentSpan.fromContext(context);
       DECORATE.afterStart(span);
       DECORATE.onRequest(span, channel, request, parentContext);
 
@@ -85,7 +84,7 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception {
     } finally {
       try {
         final Context storedContext = ctx.channel().attr(CONTEXT_ATTRIBUTE_KEY).getAndRemove();
-        final AgentSpan span = spanFromContext(storedContext);
+        final AgentSpan span = AgentSpan.fromContext(storedContext);
         if (span != null && span.phasedFinish()) {
           // at this point we can just publish this span to avoid loosing the rest of the trace
           span.publish();
diff --git a/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/HttpServerResponseTracingHandler.java b/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/HttpServerResponseTracingHandler.java
index 6b5dd488e76..22d970a8da7 100644
--- a/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/HttpServerResponseTracingHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/HttpServerResponseTracingHandler.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.netty40.server;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.CHANNEL_ID;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.CONTEXT_ATTRIBUTE_KEY;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.WEBSOCKET_SENDER_HANDLER_CONTEXT;
@@ -26,7 +25,7 @@ public class HttpServerResponseTracingHandler extends ChannelOutboundHandlerAdap
   @Override
   public void write(final ChannelHandlerContext ctx, final Object msg, final ChannelPromise prm) {
     final Context storedContext = ctx.channel().attr(CONTEXT_ATTRIBUTE_KEY).get();
-    final AgentSpan span = spanFromContext(storedContext);
+    final AgentSpan span = AgentSpan.fromContext(storedContext);
     if (span == null || !(msg instanceof HttpResponse)) {
       ctx.write(msg, prm);
       return;
diff --git a/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/MaybeBlockResponseHandler.java b/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/MaybeBlockResponseHandler.java
index 8ccc6af32e1..d7ec1c109ef 100644
--- a/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/MaybeBlockResponseHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/MaybeBlockResponseHandler.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.netty40.server;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.ANALYZED_RESPONSE_KEY;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.BLOCKED_RESPONSE_KEY;
 import static datadog.trace.instrumentation.netty40.AttributeKeys.CONTEXT_ATTRIBUTE_KEY;
@@ -59,7 +58,7 @@ public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise prm) thr
     Channel channel = ctx.channel();
 
     Context storedContext = channel.attr(CONTEXT_ATTRIBUTE_KEY).get();
-    AgentSpan span = spanFromContext(storedContext);
+    AgentSpan span = AgentSpan.fromContext(storedContext);
     RequestContext requestContext;
     if (span == null
         || (requestContext = span.getRequestContext()) == null
diff --git a/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/ChannelFutureListenerInstrumentation.java b/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/ChannelFutureListenerInstrumentation.java
index 1239363a25e..f76af39d098 100644
--- a/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/ChannelFutureListenerInstrumentation.java
+++ b/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/ChannelFutureListenerInstrumentation.java
@@ -3,7 +3,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.HierarchyMatchers.implementsInterface;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.CONNECT_PARENT_CONTINUATION_ATTRIBUTE_KEY;
 import static datadog.trace.instrumentation.netty41.server.NettyHttpServerDecorator.NETTY;
 import static datadog.trace.instrumentation.netty41.server.NettyHttpServerDecorator.NETTY_CONNECT;
@@ -95,7 +95,7 @@ public static AgentScope activateScope(@Advice.Argument(0) final ChannelFuture f
 
       final AgentSpan errorSpan = startSpan("netty", NETTY_CONNECT).setTag(Tags.COMPONENT, "netty");
       errorSpan.spanContext().setIntegrationName(NETTY);
-      try (final ContextScope scope = getCurrentContext().with(errorSpan).attach()) {
+      try (final ContextScope scope = currentContext().with(errorSpan).attach()) {
         NettyHttpServerDecorator.DECORATE.onError(errorSpan, cause);
         NettyHttpServerDecorator.DECORATE.beforeFinish(scope.context());
         errorSpan.finish();
diff --git a/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/client/HttpClientRequestTracingHandler.java b/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/client/HttpClientRequestTracingHandler.java
index 33031aa4c73..239baf02021 100644
--- a/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/client/HttpClientRequestTracingHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/client/HttpClientRequestTracingHandler.java
@@ -1,10 +1,8 @@
 package datadog.trace.instrumentation.netty41.client;
 
-import static datadog.context.Context.current;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.CLIENT_PARENT_ATTRIBUTE_KEY;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.CONNECT_PARENT_CONTINUATION_ATTRIBUTE_KEY;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.CONTEXT_ATTRIBUTE_KEY;
@@ -81,7 +79,7 @@ public void write(final ChannelHandlerContext ctx, final Object msg, final Chann
     NettyHttpClientDecorator decorate = isSecure ? DECORATE_SECURE : DECORATE;
 
     final AgentSpan span = startSpan(NETTY_CLIENT.toString(), NETTY_CLIENT_REQUEST);
-    final Context context = getCurrentContext().with(span);
+    final Context context = Context.current().with(span);
     try (final ContextScope scope = activateSpan(span)) {
       decorate.afterStart(span);
       decorate.onRequest(span, request);
@@ -93,7 +91,7 @@ public void write(final ChannelHandlerContext ctx, final Object msg, final Chann
 
       // AWS calls are often signed, so we can't add headers without breaking the signature.
       if (!awsClientCall) {
-        DECORATE.injectContext(current(), request.headers(), SETTER);
+        DECORATE.injectContext(Context.current(), request.headers(), SETTER);
       }
 
       ctx.channel().attr(CONTEXT_ATTRIBUTE_KEY).set(context);
diff --git a/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/client/HttpClientResponseTracingHandler.java b/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/client/HttpClientResponseTracingHandler.java
index 871745c00d7..b80f967a3fb 100644
--- a/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/client/HttpClientResponseTracingHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/client/HttpClientResponseTracingHandler.java
@@ -2,7 +2,6 @@
 
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.CLIENT_PARENT_ATTRIBUTE_KEY;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.CONTEXT_ATTRIBUTE_KEY;
 import static datadog.trace.instrumentation.netty41.client.NettyHttpClientDecorator.DECORATE;
@@ -29,7 +28,7 @@ public void channelRead(final ChannelHandlerContext ctx, final Object msg) {
     parentAttr.setIfAbsent(noopSpan());
     final AgentSpan parent = parentAttr.get();
     final Context storedContext = ctx.channel().attr(CONTEXT_ATTRIBUTE_KEY).get();
-    final AgentSpan span = spanFromContext(storedContext);
+    final AgentSpan span = AgentSpan.fromContext(storedContext);
 
     // Set parent context back to maintain the same functionality as getAndSet(parent)
     if (storedContext != null) {
@@ -67,7 +66,7 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws E
     parentAttr.setIfAbsent(noopSpan());
     final AgentSpan parent = parentAttr.get();
     final Context storedContext = ctx.channel().attr(CONTEXT_ATTRIBUTE_KEY).get();
-    final AgentSpan span = spanFromContext(storedContext);
+    final AgentSpan span = AgentSpan.fromContext(storedContext);
 
     // Set parent context back to maintain the same functionality as getAndSet(parent)
     if (storedContext != null) {
@@ -95,7 +94,7 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception {
     parentAttr.setIfAbsent(noopSpan());
     final AgentSpan parent = parentAttr.get();
     final Context storedContext = ctx.channel().attr(CONTEXT_ATTRIBUTE_KEY).get();
-    final AgentSpan span = spanFromContext(storedContext);
+    final AgentSpan span = AgentSpan.fromContext(storedContext);
 
     // Set parent context back to maintain the same functionality  as getAndSet(parent)
     if (storedContext != null) {
diff --git a/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/HttpServerRequestTracingHandler.java b/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/HttpServerRequestTracingHandler.java
index 251b157b22f..ce58fac2ded 100644
--- a/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/HttpServerRequestTracingHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/HttpServerRequestTracingHandler.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.netty41.server;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.ANALYZED_RESPONSE_KEY;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.BLOCKED_RESPONSE_KEY;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.CONTEXT_ATTRIBUTE_KEY;
@@ -46,7 +45,7 @@ public void channelRead(final ChannelHandlerContext ctx, final Object msg) {
     final Context context = DECORATE.startSpan(headers, parentContext);
 
     try (final ContextScope ignored = context.attach()) {
-      final AgentSpan span = spanFromContext(context);
+      final AgentSpan span = AgentSpan.fromContext(context);
       DECORATE.afterStart(span);
       DECORATE.onRequest(span, channel, request, parentContext);
 
@@ -90,7 +89,7 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception {
     } finally {
       try {
         final Context storedContext = ctx.channel().attr(CONTEXT_ATTRIBUTE_KEY).getAndRemove();
-        final AgentSpan span = spanFromContext(storedContext);
+        final AgentSpan span = AgentSpan.fromContext(storedContext);
         if (span != null && span.phasedFinish()) {
           // at this point we can just publish this span to avoid loosing the rest of the trace
           span.publish();
diff --git a/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/HttpServerResponseTracingHandler.java b/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/HttpServerResponseTracingHandler.java
index 1cf31f91eae..04d7f8893fc 100644
--- a/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/HttpServerResponseTracingHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/HttpServerResponseTracingHandler.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.netty41.server;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.CONTEXT_ATTRIBUTE_KEY;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.WEBSOCKET_SENDER_HANDLER_CONTEXT;
 import static datadog.trace.instrumentation.netty41.server.NettyHttpServerDecorator.DECORATE;
@@ -24,7 +23,7 @@ public class HttpServerResponseTracingHandler extends ChannelOutboundHandlerAdap
   @Override
   public void write(final ChannelHandlerContext ctx, final Object msg, final ChannelPromise prm) {
     final Context storedContext = ctx.channel().attr(CONTEXT_ATTRIBUTE_KEY).get();
-    final AgentSpan span = spanFromContext(storedContext);
+    final AgentSpan span = AgentSpan.fromContext(storedContext);
 
     if (span == null || !(msg instanceof HttpResponse)) {
       ctx.write(msg, prm);
diff --git a/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/MaybeBlockResponseHandler.java b/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/MaybeBlockResponseHandler.java
index 99da41b19d6..4f79bd6aea6 100644
--- a/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/MaybeBlockResponseHandler.java
+++ b/dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/MaybeBlockResponseHandler.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.netty41.server;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.ANALYZED_RESPONSE_KEY;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.BLOCKED_RESPONSE_KEY;
 import static datadog.trace.instrumentation.netty41.AttributeKeys.CONTEXT_ATTRIBUTE_KEY;
@@ -58,7 +57,7 @@ public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise prm) thr
     Channel channel = ctx.channel();
 
     Context storedContext = channel.attr(CONTEXT_ATTRIBUTE_KEY).get();
-    AgentSpan span = spanFromContext(storedContext);
+    AgentSpan span = AgentSpan.fromContext(storedContext);
     RequestContext requestContext;
     if (span == null || (requestContext = span.getRequestContext()) == null) {
       super.write(ctx, msg, prm);
diff --git a/dd-java-agent/instrumentation/pekko/pekko-concurrent-1.0/src/main/java/datadog/trace/instrumentation/pekko/concurrent/PekkoActorCellInstrumentation.java b/dd-java-agent/instrumentation/pekko/pekko-concurrent-1.0/src/main/java/datadog/trace/instrumentation/pekko/concurrent/PekkoActorCellInstrumentation.java
index e33bae813e6..34590c39227 100644
--- a/dd-java-agent/instrumentation/pekko/pekko-concurrent-1.0/src/main/java/datadog/trace/instrumentation/pekko/concurrent/PekkoActorCellInstrumentation.java
+++ b/dd-java-agent/instrumentation/pekko/pekko-concurrent-1.0/src/main/java/datadog/trace/instrumentation/pekko/concurrent/PekkoActorCellInstrumentation.java
@@ -3,7 +3,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.checkpointActiveForRollback;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.rollbackActiveToCheckpoint;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static java.util.Collections.singletonMap;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
 
@@ -71,7 +71,7 @@ public static Context enter(
         checkpointActiveForRollback();
         return null;
       } else {
-        return getCurrentContext().swap();
+        return currentContext().swap();
       }
     }
 
diff --git a/dd-java-agent/instrumentation/pekko/pekko-concurrent-1.0/src/main/java/datadog/trace/instrumentation/pekko/concurrent/PekkoMailboxInstrumentation.java b/dd-java-agent/instrumentation/pekko/pekko-concurrent-1.0/src/main/java/datadog/trace/instrumentation/pekko/concurrent/PekkoMailboxInstrumentation.java
index 83c144a8c36..ff88946b8d3 100644
--- a/dd-java-agent/instrumentation/pekko/pekko-concurrent-1.0/src/main/java/datadog/trace/instrumentation/pekko/concurrent/PekkoMailboxInstrumentation.java
+++ b/dd-java-agent/instrumentation/pekko/pekko-concurrent-1.0/src/main/java/datadog/trace/instrumentation/pekko/concurrent/PekkoMailboxInstrumentation.java
@@ -3,7 +3,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.checkpointActiveForRollback;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.rollbackActiveToCheckpoint;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static java.util.Collections.singletonList;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
 
@@ -68,7 +68,7 @@ public static Context enter() {
         checkpointActiveForRollback();
         return null;
       } else {
-        return getCurrentContext().swap();
+        return currentContext().swap();
       }
     }
 
diff --git a/dd-java-agent/instrumentation/pekko/pekko-http-1.0/src/main/java/datadog/trace/instrumentation/pekkohttp/PekkoHttpSingleRequestInstrumentation.java b/dd-java-agent/instrumentation/pekko/pekko-http-1.0/src/main/java/datadog/trace/instrumentation/pekkohttp/PekkoHttpSingleRequestInstrumentation.java
index fd4be3153c4..a8e30ecc03e 100644
--- a/dd-java-agent/instrumentation/pekko/pekko-http-1.0/src/main/java/datadog/trace/instrumentation/pekkohttp/PekkoHttpSingleRequestInstrumentation.java
+++ b/dd-java-agent/instrumentation/pekko/pekko-http-1.0/src/main/java/datadog/trace/instrumentation/pekkohttp/PekkoHttpSingleRequestInstrumentation.java
@@ -4,7 +4,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.instrumentation.pekkohttp.PekkoHttpClientDecorator.DECORATE;
 import static datadog.trace.instrumentation.pekkohttp.PekkoHttpClientDecorator.PEKKO_CLIENT_REQUEST;
 import static datadog.trace.instrumentation.pekkohttp.PekkoHttpClientDecorator.PEKKO_HTTP_CLIENT;
@@ -115,7 +115,7 @@ public static class SingleRequestContextPropagationAdvice {
     public static void methodEnter(
         @Advice.Argument(value = 0, readOnly = false) HttpRequest request) {
       final PekkoHttpHeaders headers = new PekkoHttpHeaders(request);
-      DECORATE.injectContext(getCurrentContext(), request, headers);
+      DECORATE.injectContext(currentContext(), request, headers);
       request = headers.getRequest();
     }
   }
diff --git a/dd-java-agent/instrumentation/play-ws/play-ws-1.0/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java b/dd-java-agent/instrumentation/play-ws/play-ws-1.0/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java
index 154ff59edb0..45c427c63a4 100644
--- a/dd-java-agent/instrumentation/play-ws/play-ws-1.0/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java
+++ b/dd-java-agent/instrumentation/play-ws/play-ws-1.0/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java
@@ -1,6 +1,8 @@
 package datadog.trace.instrumentation.playws1;
 
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.playws.PlayWSClientDecorator.DECORATE;
 import static datadog.trace.instrumentation.playws.PlayWSClientDecorator.PLAY_WS_REQUEST;
 
@@ -8,7 +10,6 @@
 import datadog.context.ContextScope;
 import datadog.trace.agent.tooling.InstrumenterModule;
 import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge;
 import datadog.trace.instrumentation.playws.BasePlayWSClientInstrumentation;
 import net.bytebuddy.asm.Advice;
 import play.shaded.ahc.org.asynchttpclient.AsyncHandler;
@@ -36,7 +37,7 @@ public static ContextScope methodEnter(
         asyncHandler = new AsyncHandlerWrapper(asyncHandler, span);
       }
 
-      return Java8BytecodeBridge.getCurrentContext().with(span).attach();
+      return currentContext().with(span).attach();
     }
 
     @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
@@ -46,7 +47,7 @@ public static void methodExit(
         return;
       }
       if (throwable != null) {
-        final AgentSpan span = Java8BytecodeBridge.spanFromContext(scope.context());
+        final AgentSpan span = spanFromContext(scope.context());
         DECORATE.onError(span, throwable);
         DECORATE.beforeFinish(span);
         span.finish();
diff --git a/dd-java-agent/instrumentation/play-ws/play-ws-2.0/src/main/java/datadog/trace/instrumentation/playws2/PlayWSClientInstrumentation.java b/dd-java-agent/instrumentation/play-ws/play-ws-2.0/src/main/java/datadog/trace/instrumentation/playws2/PlayWSClientInstrumentation.java
index 08ea1c509f2..e07b4cf592d 100644
--- a/dd-java-agent/instrumentation/play-ws/play-ws-2.0/src/main/java/datadog/trace/instrumentation/playws2/PlayWSClientInstrumentation.java
+++ b/dd-java-agent/instrumentation/play-ws/play-ws-2.0/src/main/java/datadog/trace/instrumentation/playws2/PlayWSClientInstrumentation.java
@@ -1,6 +1,8 @@
 package datadog.trace.instrumentation.playws2;
 
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.playws.PlayWSClientDecorator.DECORATE;
 import static datadog.trace.instrumentation.playws.PlayWSClientDecorator.PLAY_WS_REQUEST;
 
@@ -8,7 +10,6 @@
 import datadog.context.ContextScope;
 import datadog.trace.agent.tooling.InstrumenterModule;
 import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge;
 import datadog.trace.instrumentation.playws.BasePlayWSClientInstrumentation;
 import net.bytebuddy.asm.Advice;
 import play.shaded.ahc.org.asynchttpclient.AsyncHandler;
@@ -36,7 +37,7 @@ public static ContextScope methodEnter(
         asyncHandler = new AsyncHandlerWrapper(asyncHandler, span);
       }
 
-      return Java8BytecodeBridge.getCurrentContext().with(span).attach();
+      return currentContext().with(span).attach();
     }
 
     @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
@@ -46,7 +47,7 @@ public static void methodExit(
         return;
       }
       if (throwable != null) {
-        final AgentSpan span = Java8BytecodeBridge.spanFromContext(scope.context());
+        final AgentSpan span = spanFromContext(scope.context());
         DECORATE.onError(span, throwable);
         DECORATE.beforeFinish(span);
         span.finish();
diff --git a/dd-java-agent/instrumentation/play-ws/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/PlayWSClientInstrumentation.java b/dd-java-agent/instrumentation/play-ws/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/PlayWSClientInstrumentation.java
index a28952016ff..c6329f87658 100644
--- a/dd-java-agent/instrumentation/play-ws/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/PlayWSClientInstrumentation.java
+++ b/dd-java-agent/instrumentation/play-ws/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/PlayWSClientInstrumentation.java
@@ -1,6 +1,8 @@
 package datadog.trace.instrumentation.playws21;
 
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.playws.PlayWSClientDecorator.DECORATE;
 import static datadog.trace.instrumentation.playws.PlayWSClientDecorator.PLAY_WS_REQUEST;
 
@@ -8,7 +10,6 @@
 import datadog.context.ContextScope;
 import datadog.trace.agent.tooling.InstrumenterModule;
 import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge;
 import datadog.trace.instrumentation.playws.BasePlayWSClientInstrumentation;
 import net.bytebuddy.asm.Advice;
 import play.shaded.ahc.org.asynchttpclient.AsyncHandler;
@@ -36,7 +37,7 @@ public static ContextScope methodEnter(
         asyncHandler = new AsyncHandlerWrapper(asyncHandler, span);
       }
 
-      return Java8BytecodeBridge.getCurrentContext().with(span).attach();
+      return currentContext().with(span).attach();
     }
 
     @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
@@ -46,7 +47,7 @@ public static void methodExit(
         return;
       }
       if (throwable != null) {
-        final AgentSpan span = Java8BytecodeBridge.spanFromContext(scope.context());
+        final AgentSpan span = spanFromContext(scope.context());
         DECORATE.onError(span, throwable);
         DECORATE.beforeFinish(span);
         span.finish();
diff --git a/dd-java-agent/instrumentation/play-ws/play-ws-common/src/main/java/datadog/trace/instrumentation/playws/BasePlayWSClientInstrumentation.java b/dd-java-agent/instrumentation/play-ws/play-ws-common/src/main/java/datadog/trace/instrumentation/playws/BasePlayWSClientInstrumentation.java
index fcf90c9088d..d10ef50ad78 100644
--- a/dd-java-agent/instrumentation/play-ws/play-ws-common/src/main/java/datadog/trace/instrumentation/playws/BasePlayWSClientInstrumentation.java
+++ b/dd-java-agent/instrumentation/play-ws/play-ws-common/src/main/java/datadog/trace/instrumentation/playws/BasePlayWSClientInstrumentation.java
@@ -4,7 +4,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.HierarchyMatchers.implementsInterface;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.nameStartsWith;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.instrumentation.playws.HeadersInjectAdapter.SETTER;
 import static datadog.trace.instrumentation.playws.PlayWSClientDecorator.DECORATE;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
@@ -67,7 +67,7 @@ public String[] helperClassNames() {
   public static class ClientContextPropagationAdvice {
     @Advice.OnMethodEnter(suppress = Throwable.class)
     public static void methodEnter(@Advice.Argument(0) final Request request) {
-      DECORATE.injectContext(getCurrentContext(), request, SETTER);
+      DECORATE.injectContext(currentContext(), request, SETTER);
     }
   }
 }
diff --git a/dd-java-agent/instrumentation/play/play-2.3/src/main/java/datadog/trace/instrumentation/play23/PlayAdvice.java b/dd-java-agent/instrumentation/play/play-2.3/src/main/java/datadog/trace/instrumentation/play23/PlayAdvice.java
index 8532f467fa5..a8fd07f45ad 100644
--- a/dd-java-agent/instrumentation/play/play-2.3/src/main/java/datadog/trace/instrumentation/play23/PlayAdvice.java
+++ b/dd-java-agent/instrumentation/play/play-2.3/src/main/java/datadog/trace/instrumentation/play23/PlayAdvice.java
@@ -2,7 +2,7 @@
 
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.play23.PlayHttpServerDecorator.DECORATE;
 import static datadog.trace.instrumentation.play23.PlayHttpServerDecorator.PLAY_ACTION;
@@ -52,7 +52,7 @@ public static void stopTraceOnResponse(
     final AgentSpan playControllerSpan = spanFromContext(playControllerScope.context());
 
     // Call onRequest on return after tags are populated.
-    DECORATE.onRequest(playControllerSpan, req, req, getRootContext());
+    DECORATE.onRequest(playControllerSpan, req, req, rootContext());
 
     if (throwable == null) {
       responseFuture.onComplete(
@@ -72,7 +72,7 @@ public static void stopTraceOnResponse(
     final AgentSpan rootSpan = activeSpan();
     // set the resource name on the upstream akka/netty span if there is one
     if (rootSpan != null) {
-      DECORATE.onRequest(rootSpan, req, req, getRootContext());
+      DECORATE.onRequest(rootSpan, req, req, rootContext());
     }
   }
 }
diff --git a/dd-java-agent/instrumentation/play/play-2.3/src/main/java/datadog/trace/instrumentation/play23/RequestCompleteCallback.java b/dd-java-agent/instrumentation/play/play-2.3/src/main/java/datadog/trace/instrumentation/play23/RequestCompleteCallback.java
index 6a51c2cf294..09be3dd9992 100644
--- a/dd-java-agent/instrumentation/play/play-2.3/src/main/java/datadog/trace/instrumentation/play23/RequestCompleteCallback.java
+++ b/dd-java-agent/instrumentation/play/play-2.3/src/main/java/datadog/trace/instrumentation/play23/RequestCompleteCallback.java
@@ -1,6 +1,5 @@
 package datadog.trace.instrumentation.play23;
 
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.play23.PlayHttpServerDecorator.DECORATE;
 import static datadog.trace.instrumentation.play23.PlayHttpServerDecorator.REPORT_HTTP_STATUS;
 
@@ -19,7 +18,7 @@ public class RequestCompleteCallback extends scala.runtime.AbstractFunction1 flowable) {
-      Context parentContext = Java8BytecodeBridge.getCurrentContext();
-      if (parentContext != null && parentContext != Java8BytecodeBridge.getRootContext()) {
+      Context parentContext = currentContext();
+      if (parentContext != null && parentContext != rootContext()) {
         InstrumentationContext.get(Flowable.class, Context.class).put(flowable, parentContext);
       }
     }
diff --git a/dd-java-agent/instrumentation/rxjava/rxjava-2.0/src/main/java/datadog/trace/instrumentation/rxjava2/MaybeInstrumentation.java b/dd-java-agent/instrumentation/rxjava/rxjava-2.0/src/main/java/datadog/trace/instrumentation/rxjava2/MaybeInstrumentation.java
index 89ee0bf813c..9a681b488a8 100644
--- a/dd-java-agent/instrumentation/rxjava/rxjava-2.0/src/main/java/datadog/trace/instrumentation/rxjava2/MaybeInstrumentation.java
+++ b/dd-java-agent/instrumentation/rxjava/rxjava-2.0/src/main/java/datadog/trace/instrumentation/rxjava2/MaybeInstrumentation.java
@@ -1,6 +1,8 @@
 package datadog.trace.instrumentation.rxjava2;
 
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
 import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
@@ -10,7 +12,6 @@
 import datadog.context.ContextScope;
 import datadog.trace.agent.tooling.Instrumenter;
 import datadog.trace.bootstrap.InstrumentationContext;
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge;
 import io.reactivex.Maybe;
 import io.reactivex.MaybeObserver;
 import net.bytebuddy.asm.Advice;
@@ -36,8 +37,8 @@ public void methodAdvice(MethodTransformer transformer) {
   public static class CaptureParentSpanAdvice {
     @Advice.OnMethodExit(suppress = Throwable.class)
     public static void onConstruct(@Advice.This final Maybe maybe) {
-      Context parentContext = Java8BytecodeBridge.getCurrentContext();
-      if (parentContext != null && parentContext != Java8BytecodeBridge.getRootContext()) {
+      Context parentContext = currentContext();
+      if (parentContext != null && parentContext != rootContext()) {
         InstrumentationContext.get(Maybe.class, Context.class).put(maybe, parentContext);
       }
     }
diff --git a/dd-java-agent/instrumentation/rxjava/rxjava-2.0/src/main/java/datadog/trace/instrumentation/rxjava2/ObservableInstrumentation.java b/dd-java-agent/instrumentation/rxjava/rxjava-2.0/src/main/java/datadog/trace/instrumentation/rxjava2/ObservableInstrumentation.java
index cfd51d9bb06..e50b706f7f3 100644
--- a/dd-java-agent/instrumentation/rxjava/rxjava-2.0/src/main/java/datadog/trace/instrumentation/rxjava2/ObservableInstrumentation.java
+++ b/dd-java-agent/instrumentation/rxjava/rxjava-2.0/src/main/java/datadog/trace/instrumentation/rxjava2/ObservableInstrumentation.java
@@ -1,6 +1,8 @@
 package datadog.trace.instrumentation.rxjava2;
 
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
 import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
@@ -10,7 +12,6 @@
 import datadog.context.ContextScope;
 import datadog.trace.agent.tooling.Instrumenter;
 import datadog.trace.bootstrap.InstrumentationContext;
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge;
 import io.reactivex.Observable;
 import io.reactivex.Observer;
 import net.bytebuddy.asm.Advice;
@@ -36,7 +37,7 @@ public void methodAdvice(MethodTransformer transformer) {
   public static class CaptureParentSpanAdvice {
     @Advice.OnMethodExit(suppress = Throwable.class)
     public static void onConstruct(@Advice.This final Observable observable) {
-      Context parentContext = Java8BytecodeBridge.getCurrentContext();
+      Context parentContext = currentContext();
       if (parentContext != null) {
         InstrumentationContext.get(Observable.class, Context.class).put(observable, parentContext);
       }
@@ -51,7 +52,7 @@ public static ContextScope onSubscribe(
       if (observer != null) {
         Context parentContext =
             InstrumentationContext.get(Observable.class, Context.class).get(observable);
-        if (parentContext != null && parentContext != Java8BytecodeBridge.getRootContext()) {
+        if (parentContext != null && parentContext != rootContext()) {
           // wrap the observer so spans from its events treat the captured span as their parent
           observer = new TracingObserver<>(observer, parentContext);
           // attach the context here in case additional observers are created during subscribe
diff --git a/dd-java-agent/instrumentation/rxjava/rxjava-2.0/src/main/java/datadog/trace/instrumentation/rxjava2/SingleInstrumentation.java b/dd-java-agent/instrumentation/rxjava/rxjava-2.0/src/main/java/datadog/trace/instrumentation/rxjava2/SingleInstrumentation.java
index 98d214606bb..6173c5a525a 100644
--- a/dd-java-agent/instrumentation/rxjava/rxjava-2.0/src/main/java/datadog/trace/instrumentation/rxjava2/SingleInstrumentation.java
+++ b/dd-java-agent/instrumentation/rxjava/rxjava-2.0/src/main/java/datadog/trace/instrumentation/rxjava2/SingleInstrumentation.java
@@ -1,6 +1,8 @@
 package datadog.trace.instrumentation.rxjava2;
 
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
 import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
@@ -10,7 +12,6 @@
 import datadog.context.ContextScope;
 import datadog.trace.agent.tooling.Instrumenter;
 import datadog.trace.bootstrap.InstrumentationContext;
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge;
 import io.reactivex.Single;
 import io.reactivex.SingleObserver;
 import net.bytebuddy.asm.Advice;
@@ -37,7 +38,7 @@ public void methodAdvice(MethodTransformer transformer) {
   public static class CaptureParentSpanAdvice {
     @Advice.OnMethodExit(suppress = Throwable.class)
     public static void onConstruct(@Advice.This final Single single) {
-      Context parentContext = Java8BytecodeBridge.getCurrentContext();
+      Context parentContext = currentContext();
       if (parentContext != null) {
         InstrumentationContext.get(Single.class, Context.class).put(single, parentContext);
       }
@@ -51,7 +52,7 @@ public static ContextScope onSubscribe(
         @Advice.Argument(value = 0, readOnly = false) SingleObserver observer) {
       if (observer != null) {
         Context parentContext = InstrumentationContext.get(Single.class, Context.class).get(single);
-        if (parentContext != null && parentContext != Java8BytecodeBridge.getRootContext()) {
+        if (parentContext != null && parentContext != rootContext()) {
           // wrap the observer so spans from its events treat the captured span as their parent
           observer = new TracingSingleObserver<>(observer, parentContext);
           // attach the context here in case additional observers are created during subscribe
diff --git a/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/CompletableInstrumentation.java b/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/CompletableInstrumentation.java
index 1da60b7db8a..a77e46fe698 100644
--- a/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/CompletableInstrumentation.java
+++ b/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/CompletableInstrumentation.java
@@ -1,6 +1,8 @@
 package datadog.trace.instrumentation.rxjava3;
 
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
 import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
@@ -10,7 +12,6 @@
 import datadog.context.ContextScope;
 import datadog.trace.agent.tooling.Instrumenter;
 import datadog.trace.bootstrap.InstrumentationContext;
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge;
 import io.reactivex.rxjava3.core.Completable;
 import io.reactivex.rxjava3.core.CompletableObserver;
 import net.bytebuddy.asm.Advice;
@@ -37,8 +38,8 @@ public void methodAdvice(MethodTransformer transformer) {
   public static class CaptureParentSpanAdvice {
     @Advice.OnMethodExit(suppress = Throwable.class)
     public static void onConstruct(@Advice.This final Completable completable) {
-      Context parentContext = Java8BytecodeBridge.getCurrentContext();
-      if (parentContext != Java8BytecodeBridge.getRootContext()) {
+      Context parentContext = currentContext();
+      if (parentContext != rootContext()) {
         InstrumentationContext.get(Completable.class, Context.class)
             .put(completable, parentContext);
       }
diff --git a/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/FlowableInstrumentation.java b/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/FlowableInstrumentation.java
index 3005d7154c4..35f06daed79 100644
--- a/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/FlowableInstrumentation.java
+++ b/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/FlowableInstrumentation.java
@@ -1,6 +1,8 @@
 package datadog.trace.instrumentation.rxjava3;
 
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
 import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
@@ -10,7 +12,6 @@
 import datadog.context.ContextScope;
 import datadog.trace.agent.tooling.Instrumenter;
 import datadog.trace.bootstrap.InstrumentationContext;
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge;
 import io.reactivex.rxjava3.core.Flowable;
 import io.reactivex.rxjava3.core.FlowableSubscriber;
 import net.bytebuddy.asm.Advice;
@@ -37,8 +38,8 @@ public void methodAdvice(MethodTransformer transformer) {
   public static class CaptureParentSpanAdvice {
     @Advice.OnMethodExit(suppress = Throwable.class)
     public static void onConstruct(@Advice.This final Flowable flowable) {
-      Context parentContext = Java8BytecodeBridge.getCurrentContext();
-      if (parentContext != Java8BytecodeBridge.getRootContext()) {
+      Context parentContext = currentContext();
+      if (parentContext != rootContext()) {
         InstrumentationContext.get(Flowable.class, Context.class).put(flowable, parentContext);
       }
     }
diff --git a/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/MaybeInstrumentation.java b/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/MaybeInstrumentation.java
index dee2b6a8a27..0bc833922be 100644
--- a/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/MaybeInstrumentation.java
+++ b/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/MaybeInstrumentation.java
@@ -1,6 +1,8 @@
 package datadog.trace.instrumentation.rxjava3;
 
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
 import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
@@ -10,7 +12,6 @@
 import datadog.context.ContextScope;
 import datadog.trace.agent.tooling.Instrumenter;
 import datadog.trace.bootstrap.InstrumentationContext;
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge;
 import io.reactivex.rxjava3.core.Maybe;
 import io.reactivex.rxjava3.core.MaybeObserver;
 import net.bytebuddy.asm.Advice;
@@ -36,8 +37,8 @@ public void methodAdvice(MethodTransformer transformer) {
   public static class CaptureParentSpanAdvice {
     @Advice.OnMethodExit(suppress = Throwable.class)
     public static void onConstruct(@Advice.This final Maybe maybe) {
-      Context parentContext = Java8BytecodeBridge.getCurrentContext();
-      if (parentContext != Java8BytecodeBridge.getRootContext()) {
+      Context parentContext = currentContext();
+      if (parentContext != rootContext()) {
         InstrumentationContext.get(Maybe.class, Context.class).put(maybe, parentContext);
       }
     }
diff --git a/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/ObservableInstrumentation.java b/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/ObservableInstrumentation.java
index 663f9a273d7..304b710aa87 100644
--- a/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/ObservableInstrumentation.java
+++ b/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/ObservableInstrumentation.java
@@ -1,6 +1,8 @@
 package datadog.trace.instrumentation.rxjava3;
 
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
 import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
@@ -10,7 +12,6 @@
 import datadog.context.ContextScope;
 import datadog.trace.agent.tooling.Instrumenter;
 import datadog.trace.bootstrap.InstrumentationContext;
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge;
 import io.reactivex.rxjava3.core.Observable;
 import io.reactivex.rxjava3.core.Observer;
 import net.bytebuddy.asm.Advice;
@@ -36,8 +37,8 @@ public void methodAdvice(MethodTransformer transformer) {
   public static class CaptureParentSpanAdvice {
     @Advice.OnMethodExit(suppress = Throwable.class)
     public static void onConstruct(@Advice.This final Observable observable) {
-      Context parentContext = Java8BytecodeBridge.getCurrentContext();
-      if (parentContext != Java8BytecodeBridge.getRootContext()) {
+      Context parentContext = currentContext();
+      if (parentContext != rootContext()) {
         InstrumentationContext.get(Observable.class, Context.class).put(observable, parentContext);
       }
     }
diff --git a/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/SingleInstrumentation.java b/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/SingleInstrumentation.java
index c9abbd2ef0c..3dfc1382da2 100644
--- a/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/SingleInstrumentation.java
+++ b/dd-java-agent/instrumentation/rxjava/rxjava-3.0/src/main/java/datadog/trace/instrumentation/rxjava3/SingleInstrumentation.java
@@ -1,6 +1,8 @@
 package datadog.trace.instrumentation.rxjava3;
 
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
 import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
@@ -10,7 +12,6 @@
 import datadog.context.ContextScope;
 import datadog.trace.agent.tooling.Instrumenter;
 import datadog.trace.bootstrap.InstrumentationContext;
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge;
 import io.reactivex.rxjava3.core.Single;
 import io.reactivex.rxjava3.core.SingleObserver;
 import net.bytebuddy.asm.Advice;
@@ -37,8 +38,8 @@ public void methodAdvice(MethodTransformer transformer) {
   public static class CaptureParentSpanAdvice {
     @Advice.OnMethodExit(suppress = Throwable.class)
     public static void onConstruct(@Advice.This final Single single) {
-      Context parentContext = Java8BytecodeBridge.getCurrentContext();
-      if (parentContext != Java8BytecodeBridge.getRootContext()) {
+      Context parentContext = currentContext();
+      if (parentContext != rootContext()) {
         InstrumentationContext.get(Single.class, Context.class).put(single, parentContext);
       }
     }
diff --git a/dd-java-agent/instrumentation/scala/scala-promise/scala-promise-2.10/src/main/java/datadog/trace/instrumentation/scala210/concurrent/PromiseObjectInstrumentation.java b/dd-java-agent/instrumentation/scala/scala-promise/scala-promise-2.10/src/main/java/datadog/trace/instrumentation/scala210/concurrent/PromiseObjectInstrumentation.java
index 935251e27d6..d29f7075db3 100644
--- a/dd-java-agent/instrumentation/scala/scala-promise/scala-promise-2.10/src/main/java/datadog/trace/instrumentation/scala210/concurrent/PromiseObjectInstrumentation.java
+++ b/dd-java-agent/instrumentation/scala/scala-promise/scala-promise-2.10/src/main/java/datadog/trace/instrumentation/scala210/concurrent/PromiseObjectInstrumentation.java
@@ -1,6 +1,7 @@
 package datadog.trace.instrumentation.scala210.concurrent;
 
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
 
 import datadog.context.Context;
@@ -8,7 +9,6 @@
 import datadog.trace.bootstrap.ContextStore;
 import datadog.trace.bootstrap.InstrumentationContext;
 import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge;
 import datadog.trace.instrumentation.scala.PromiseHelper;
 import net.bytebuddy.asm.Advice;
 import scala.concurrent.impl.CallbackRunnable;
@@ -43,8 +43,7 @@ public static  void afterResolve(@Advice.Return(readOnly = false) Try reso
         ContextStore contextStore =
             InstrumentationContext.get(Try.class, Context.class);
         final Context existing = contextStore.get(resolved);
-        Try next =
-            PromiseHelper.getTry(resolved, span, Java8BytecodeBridge.spanFromContext(existing));
+        Try next = PromiseHelper.getTry(resolved, span, spanFromContext(existing));
         if (next != resolved) {
           contextStore.put(next, span);
           resolved = next;
diff --git a/dd-java-agent/instrumentation/scala/scala-promise/scala-promise-common/src/main/java/datadog/trace/instrumentation/scala/PromiseHelper.java b/dd-java-agent/instrumentation/scala/scala-promise/scala-promise-common/src/main/java/datadog/trace/instrumentation/scala/PromiseHelper.java
index 3a34267ebd2..ec61394cd2e 100644
--- a/dd-java-agent/instrumentation/scala/scala-promise/scala-promise-common/src/main/java/datadog/trace/instrumentation/scala/PromiseHelper.java
+++ b/dd-java-agent/instrumentation/scala/scala-promise/scala-promise-common/src/main/java/datadog/trace/instrumentation/scala/PromiseHelper.java
@@ -3,7 +3,6 @@
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.captureSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 
 import datadog.context.Context;
 import datadog.trace.api.InstrumenterConfig;
@@ -104,7 +103,7 @@ public static  State executeCaptureSpan(
       ContextStore taskStore,
       K task,
       State state) {
-    final AgentSpan span = spanFromContext(tryStore.get(resolved));
+    final AgentSpan span = AgentSpan.fromContext(tryStore.get(resolved));
     if (span != null) {
       // Check if the new Span is the same as the currently stored one
       if (null != state && state.getSpan() == span) {
diff --git a/dd-java-agent/instrumentation/servlet/javax-servlet/javax-servlet-3.0/src/main/java/datadog/trace/instrumentation/servlet3/FinishAsyncDispatchListener.java b/dd-java-agent/instrumentation/servlet/javax-servlet/javax-servlet-3.0/src/main/java/datadog/trace/instrumentation/servlet3/FinishAsyncDispatchListener.java
index 8d7080bba95..7799a54ab67 100644
--- a/dd-java-agent/instrumentation/servlet/javax-servlet/javax-servlet-3.0/src/main/java/datadog/trace/instrumentation/servlet3/FinishAsyncDispatchListener.java
+++ b/dd-java-agent/instrumentation/servlet/javax-servlet/javax-servlet-3.0/src/main/java/datadog/trace/instrumentation/servlet3/FinishAsyncDispatchListener.java
@@ -1,7 +1,6 @@
 package datadog.trace.instrumentation.servlet3;
 
 import static datadog.trace.bootstrap.instrumentation.api.InstrumentationTags.TIMEOUT;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.servlet3.Servlet3Decorator.DECORATE;
 
 import datadog.context.ContextScope;
@@ -37,7 +36,7 @@ public FinishAsyncDispatchListener(final ContextScope scope, boolean doOnRespons
   public FinishAsyncDispatchListener(
       final ContextScope scope, AtomicBoolean activated, boolean doOnResponse) {
     this.scope = scope;
-    this.span = spanFromContext(scope.context());
+    this.span = AgentSpan.fromContext(scope.context());
     this.activated = activated;
     this.doOnResponse = doOnResponse;
   }
diff --git a/dd-java-agent/instrumentation/servlet/javax-servlet/javax-servlet-common/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java b/dd-java-agent/instrumentation/servlet/javax-servlet/javax-servlet-common/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java
index 6941a72830e..aa4ab0fa21c 100644
--- a/dd-java-agent/instrumentation/servlet/javax-servlet/javax-servlet-common/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java
+++ b/dd-java-agent/instrumentation/servlet/javax-servlet/javax-servlet-common/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java
@@ -7,7 +7,7 @@
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
 import static datadog.trace.bootstrap.instrumentation.api.InstrumentationTags.SERVLET_CONTEXT;
 import static datadog.trace.bootstrap.instrumentation.api.InstrumentationTags.SERVLET_PATH;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.servlet.ServletRequestSetter.SETTER;
@@ -136,7 +136,7 @@ public static ContextScope start(
       // temporarily replace from request to avoid spring resource name bubbling up:
       requestContext = request.getAttribute(DD_CONTEXT_ATTRIBUTE);
 
-      final ContextScope scope = getCurrentContext().with(span).attach();
+      final ContextScope scope = currentContext().with(span).attach();
       // Set the context after activation so we have the proper Context object
       request.setAttribute(DD_CONTEXT_ATTRIBUTE, scope.context());
 
diff --git a/dd-java-agent/instrumentation/spray-1.3/src/main/scala/datadog/trace/instrumentation/spray/SprayHelper.scala b/dd-java-agent/instrumentation/spray-1.3/src/main/scala/datadog/trace/instrumentation/spray/SprayHelper.scala
index f1c994b33d2..0c37f91fd66 100644
--- a/dd-java-agent/instrumentation/spray-1.3/src/main/scala/datadog/trace/instrumentation/spray/SprayHelper.scala
+++ b/dd-java-agent/instrumentation/spray-1.3/src/main/scala/datadog/trace/instrumentation/spray/SprayHelper.scala
@@ -4,7 +4,7 @@ import datadog.context.Context;
 import datadog.context.ContextScope;
 import datadog.trace.bootstrap.instrumentation.api.AgentSpan
 import datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan
-import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import datadog.trace.instrumentation.spray.SprayHttpServerDecorator.DECORATE
 import spray.http.HttpResponse
 import spray.routing.{RequestContext, Route}
@@ -34,7 +34,7 @@ object SprayHelper {
 
   def wrapRoute(route: Route): Route = { ctx =>
     {
-      DECORATE.onRequest(activeSpan(), ctx, ctx.request, getRootContext())
+      DECORATE.onRequest(activeSpan(), ctx, ctx.request, rootContext())
       try route(ctx)
       catch {
         case NonFatal(e) =>
diff --git a/dd-java-agent/instrumentation/spray-1.3/src/main/scala/datadog/trace/instrumentation/spray/SprayHttpServerRunSealedRouteAdvice.java b/dd-java-agent/instrumentation/spray-1.3/src/main/scala/datadog/trace/instrumentation/spray/SprayHttpServerRunSealedRouteAdvice.java
index 8f45c40d26e..f3ba5b60e1b 100644
--- a/dd-java-agent/instrumentation/spray-1.3/src/main/scala/datadog/trace/instrumentation/spray/SprayHttpServerRunSealedRouteAdvice.java
+++ b/dd-java-agent/instrumentation/spray-1.3/src/main/scala/datadog/trace/instrumentation/spray/SprayHttpServerRunSealedRouteAdvice.java
@@ -2,7 +2,7 @@
 
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.spray.SprayHttpServerDecorator.DECORATE;
 import static datadog.trace.instrumentation.spray.SprayHttpServerDecorator.SPRAY_HTTP_SERVER;
@@ -29,7 +29,7 @@ public static ContextScope enter(
       context = DECORATE.startSpan(request, parentContext);
       span = spanFromContext(context);
     } else {
-      parentContext = getRootContext();
+      parentContext = rootContext();
       span = startSpan(SPRAY_HTTP_SERVER.toString(), DECORATE.spanName());
       context = span;
     }
diff --git a/dd-java-agent/instrumentation/spring/spring-jms-3.1/src/main/java/datadog/trace/instrumentation/springjms/AbstractPollingMessageListenerContainerInstrumentation.java b/dd-java-agent/instrumentation/spring/spring-jms-3.1/src/main/java/datadog/trace/instrumentation/springjms/AbstractPollingMessageListenerContainerInstrumentation.java
index 30915126a55..3ad07247953 100644
--- a/dd-java-agent/instrumentation/spring/spring-jms-3.1/src/main/java/datadog/trace/instrumentation/springjms/AbstractPollingMessageListenerContainerInstrumentation.java
+++ b/dd-java-agent/instrumentation/spring/spring-jms-3.1/src/main/java/datadog/trace/instrumentation/springjms/AbstractPollingMessageListenerContainerInstrumentation.java
@@ -2,7 +2,7 @@
 
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.closePrevious;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static java.util.Collections.singletonMap;
 import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
@@ -62,7 +62,7 @@ public static void afterExecute(@Advice.Argument(2) final MessageConsumer consum
         if (InstrumenterConfig.get().isLegacyContextManagerEnabled()) {
           closePrevious(finishSpan);
         } else {
-          final AgentSpan previousSpan = spanFromContext(getRootContext().swap());
+          final AgentSpan previousSpan = spanFromContext(rootContext().swap());
           if (previousSpan != null) {
             previousSpan.finishWithEndToEnd();
           }
diff --git a/dd-java-agent/instrumentation/spring/spring-messaging-4.0/src/main/java/datadog/trace/instrumentation/springmessaging/KotlinAwareHandlerInstrumentation.java b/dd-java-agent/instrumentation/spring/spring-messaging-4.0/src/main/java/datadog/trace/instrumentation/springmessaging/KotlinAwareHandlerInstrumentation.java
index dc2020327f2..081de301d3f 100644
--- a/dd-java-agent/instrumentation/spring/spring-messaging-4.0/src/main/java/datadog/trace/instrumentation/springmessaging/KotlinAwareHandlerInstrumentation.java
+++ b/dd-java-agent/instrumentation/spring/spring-messaging-4.0/src/main/java/datadog/trace/instrumentation/springmessaging/KotlinAwareHandlerInstrumentation.java
@@ -1,6 +1,7 @@
 package datadog.trace.instrumentation.springmessaging;
 
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static net.bytebuddy.matcher.ElementMatchers.isMethod;
 
 import com.google.auto.service.AutoService;
@@ -61,7 +62,7 @@ public static class DoInvokeAdvice {
     public static void onExit(@Advice.Return Object result) {
       if (result instanceof Publisher) {
         InstrumentationContext.get(Publisher.class, HandoffContext.class)
-            .put((Publisher) result, HandoffContext.anyThread(Context.current()));
+            .put((Publisher) result, HandoffContext.anyThread(currentContext()));
       }
     }
   }
diff --git a/dd-java-agent/instrumentation/spring/spring-messaging-4.0/src/main/java/datadog/trace/instrumentation/springmessaging/SpringMessageHandlerInstrumentation.java b/dd-java-agent/instrumentation/spring/spring-messaging-4.0/src/main/java/datadog/trace/instrumentation/springmessaging/SpringMessageHandlerInstrumentation.java
index 47106e41cc0..69e8d73408e 100644
--- a/dd-java-agent/instrumentation/spring/spring-messaging-4.0/src/main/java/datadog/trace/instrumentation/springmessaging/SpringMessageHandlerInstrumentation.java
+++ b/dd-java-agent/instrumentation/spring/spring-messaging-4.0/src/main/java/datadog/trace/instrumentation/springmessaging/SpringMessageHandlerInstrumentation.java
@@ -6,7 +6,7 @@
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.instrumentation.springmessaging.SpringMessageDecorator.COMPONENT_NAME;
 import static datadog.trace.instrumentation.springmessaging.SpringMessageDecorator.DECORATE;
 import static datadog.trace.instrumentation.springmessaging.SpringMessageDecorator.SPRING_INBOUND;
@@ -67,7 +67,7 @@ public static void onEnter(
         @Advice.Argument(0) Message message, @Advice.Local("ctxScope") ContextScope scope) {
       if (activeSpan() == null) {
         // no local active span, so extract from message to avoid disconnected trace
-        scope = defaultPropagator().extract(getRootContext(), message, GETTER).attach();
+        scope = defaultPropagator().extract(rootContext(), message, GETTER).attach();
       }
     }
 
diff --git a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/DispatcherServletInstrumentation.java b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/DispatcherServletInstrumentation.java
index fd5be84e1d7..bc56967ba13 100644
--- a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/DispatcherServletInstrumentation.java
+++ b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/DispatcherServletInstrumentation.java
@@ -4,7 +4,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.springweb.SpringWebHttpServerDecorator.DECORATE;
 import static datadog.trace.instrumentation.springweb.SpringWebHttpServerDecorator.DECORATE_RENDER;
@@ -100,7 +100,7 @@ public static ContextScope onEnter(@Advice.Argument(0) final ModelAndView mv) {
       final AgentSpan span = startSpan("spring-webmvc", RESPONSE_RENDER);
       DECORATE_RENDER.afterStart(span);
       DECORATE_RENDER.onRender(span, mv);
-      return getCurrentContext().with(span).attach();
+      return currentContext().with(span).attach();
     }
 
     @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
diff --git a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerAdapterInstrumentation.java b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerAdapterInstrumentation.java
index ea8282e5681..0c052859422 100644
--- a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerAdapterInstrumentation.java
+++ b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerAdapterInstrumentation.java
@@ -5,8 +5,8 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.springweb.SpringWebHttpServerDecorator.DD_HANDLER_SPAN_CONTINUE_SUFFIX;
@@ -80,7 +80,7 @@ public static ContextScope nameResourceAndStartSpan(
         Context context = (Context) contextObj;
         AgentSpan parentSpan = spanFromContext(context);
         if (parentSpan != null) {
-          DECORATE.onRequest(parentSpan, request, request, getRootContext());
+          DECORATE.onRequest(parentSpan, request, request, rootContext());
         }
       }
 
@@ -110,7 +110,7 @@ public static ContextScope nameResourceAndStartSpan(
       DECORATE.onHandle(span, handler);
 
       request.setAttribute(handlerSpanKey, span);
-      return getCurrentContext().with(span).attach();
+      return currentContext().with(span).attach();
     }
 
     @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
diff --git a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerMappingResourceNameFilter.java b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerMappingResourceNameFilter.java
index 073bce859f1..1307d98fdc1 100644
--- a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerMappingResourceNameFilter.java
+++ b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerMappingResourceNameFilter.java
@@ -1,7 +1,6 @@
 package datadog.trace.instrumentation.springweb;
 
 import static datadog.context.Context.root;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.springweb.SpringWebHttpServerDecorator.DECORATE;
 
@@ -26,6 +25,7 @@
 public class HandlerMappingResourceNameFilter extends OncePerRequestFilter implements Ordered {
 
   private static final Logger log = LoggerFactory.getLogger(HandlerMappingResourceNameFilter.class);
+
   private final List handlerMappings = new CopyOnWriteArrayList<>();
 
   @Override
@@ -38,7 +38,7 @@ protected void doFilterInternal(
     final Object contextObj = request.getAttribute(DD_CONTEXT_ATTRIBUTE);
     if (contextObj instanceof Context) {
       Context context = (Context) contextObj;
-      AgentSpan parentSpan = spanFromContext(context);
+      AgentSpan parentSpan = AgentSpan.fromContext(context);
       if (parentSpan != null) {
         PathMatchingHttpServletRequestWrapper wrappedRequest =
             new PathMatchingHttpServletRequestWrapper(request);
diff --git a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/ControllerAdvice.java b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/ControllerAdvice.java
index b5eaeb2b9bd..5fc42a4bf41 100644
--- a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/ControllerAdvice.java
+++ b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/ControllerAdvice.java
@@ -3,7 +3,7 @@
 import static datadog.context.Context.root;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.springweb6.SpringWebHttpServerDecorator.DD_HANDLER_SPAN_CONTINUE_SUFFIX;
@@ -65,7 +65,7 @@ By the time HandlerAdapter.handle runs, every handler mapping kind (annotated an
     DECORATE.onHandle(span, handler);
 
     request.setAttribute(handlerSpanKey, span);
-    return getCurrentContext().with(span).attach();
+    return currentContext().with(span).attach();
   }
 
   @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
diff --git a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/HandlerMappingResourceNameFilter.java b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/HandlerMappingResourceNameFilter.java
index eac11f69ca2..85fd73633c9 100644
--- a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/HandlerMappingResourceNameFilter.java
+++ b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/HandlerMappingResourceNameFilter.java
@@ -1,7 +1,6 @@
 package datadog.trace.instrumentation.springweb6;
 
 import static datadog.context.Context.root;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.instrumentation.springweb6.SpringWebHttpServerDecorator.DECORATE;
 
@@ -38,7 +37,7 @@ protected void doFilterInternal(
     final Object contextObj = request.getAttribute(DD_CONTEXT_ATTRIBUTE);
     if (contextObj instanceof Context) {
       Context context = (Context) contextObj;
-      AgentSpan parentSpan = spanFromContext(context);
+      AgentSpan parentSpan = AgentSpan.fromContext(context);
       if (parentSpan != null) {
         PathMatchingHttpServletRequestWrapper wrappedRequest =
             new PathMatchingHttpServletRequestWrapper(request);
diff --git a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/RenderAdvice.java b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/RenderAdvice.java
index 52a18e2c2f1..5df54c294d3 100644
--- a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/RenderAdvice.java
+++ b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/RenderAdvice.java
@@ -1,7 +1,7 @@
 package datadog.trace.instrumentation.springweb6;
 
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 
 import datadog.context.ContextScope;
@@ -16,7 +16,7 @@ public static ContextScope onEnter(@Advice.Argument(0) final ModelAndView mv) {
     final AgentSpan span = startSpan("spring-webmvc", SpringWebHttpServerDecorator.RESPONSE_RENDER);
     SpringWebHttpServerDecorator.DECORATE_RENDER.afterStart(span);
     SpringWebHttpServerDecorator.DECORATE_RENDER.onRender(span, mv);
-    return getCurrentContext().with(span).attach();
+    return currentContext().with(span).attach();
   }
 
   @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
diff --git a/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseClientInstrumentation.java b/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseClientInstrumentation.java
index e81d069d1dc..2ce58b4b181 100644
--- a/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseClientInstrumentation.java
+++ b/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseClientInstrumentation.java
@@ -6,7 +6,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.namedOneOf;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.synapse3.SynapseClientDecorator.DECORATE;
 import static datadog.trace.instrumentation.synapse3.SynapseClientDecorator.SYNAPSE_CLIENT;
@@ -94,7 +94,7 @@ public static ContextScope beginRequest(
 
       DECORATE.afterStart(span);
 
-      Context context = getCurrentContext().with(span);
+      Context context = currentContext().with(span);
 
       // capture context to be finished by one of the various client response advices
       connection.getContext().setAttribute(SYNAPSE_CONTEXT_KEY, context);
diff --git a/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseClientWorkerInstrumentation.java b/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseClientWorkerInstrumentation.java
index b514bc39d56..cf86044f00b 100644
--- a/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseClientWorkerInstrumentation.java
+++ b/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseClientWorkerInstrumentation.java
@@ -3,7 +3,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.captureActiveSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopContinuation;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.synapse3.SynapseClientDecorator.DECORATE;
 import static datadog.trace.instrumentation.synapse3.SynapseClientDecorator.SYNAPSE_CONTINUATION_KEY;
@@ -73,7 +73,7 @@ public static ContextScope beginResponse(
       if (null != continuation) {
         AgentScope agentScope = continuation.activate();
         try {
-          return getCurrentContext().with(agentScope.span()).attach();
+          return currentContext().with(agentScope.span()).attach();
         } finally {
           agentScope.close();
         }
diff --git a/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseServerInstrumentation.java b/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseServerInstrumentation.java
index f46d6ac3956..755d409face 100644
--- a/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseServerInstrumentation.java
+++ b/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseServerInstrumentation.java
@@ -3,8 +3,8 @@
 import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.namedOneOf;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.synapse3.SynapseServerDecorator.DECORATE;
 import static datadog.trace.instrumentation.synapse3.SynapseServerDecorator.SYNAPSE_CONTEXT_KEY;
@@ -88,8 +88,7 @@ public static ContextScope beginRequest(
 
       // check incoming request for distributed trace ids
       HttpRequest request = connection.getHttpRequest();
-      Context parentContext =
-          getCurrentContext(); // parent context attached by ContextTrackingAdvice
+      Context parentContext = currentContext(); // parent context attached by ContextTrackingAdvice
       Context context = DECORATE.startSpan(request, parentContext);
       ContextScope scope = context.attach();
       AgentSpan span = spanFromContext(context);
@@ -161,7 +160,7 @@ public static void errorResponse(
         @Advice.Argument(value = 1, optional = true) final Object error) {
       // check and remove context so it won't be finished twice
       Context context = (Context) connection.getContext().removeAttribute(SYNAPSE_CONTEXT_KEY);
-      if (null != context && context != getRootContext()) {
+      if (null != context && context != rootContext()) {
         AgentSpan span = spanFromContext(context);
         if (null != span) {
           if (error instanceof Throwable) {
diff --git a/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseServerWorkerInstrumentation.java b/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseServerWorkerInstrumentation.java
index 9c01b7f021a..4eebb57a8ec 100644
--- a/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseServerWorkerInstrumentation.java
+++ b/dd-java-agent/instrumentation/synapse-3.0/src/main/java/datadog/trace/instrumentation/synapse3/SynapseServerWorkerInstrumentation.java
@@ -3,7 +3,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.captureActiveSpan;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopContinuation;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getCurrentContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.currentContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.synapse3.SynapseServerDecorator.DECORATE;
 import static datadog.trace.instrumentation.synapse3.SynapseServerDecorator.SYNAPSE_CONTEXT_KEY;
@@ -77,7 +77,7 @@ public static ContextScope beginResponse(
       if (null != continuation) {
         AgentScope agentScope = continuation.activate();
         try {
-          return getCurrentContext().with(agentScope.span()).attach();
+          return currentContext().with(agentScope.span()).attach();
         } finally {
           agentScope.close();
         }
diff --git a/dd-java-agent/instrumentation/tomcat/tomcat-5.5/src/main/java/datadog/trace/instrumentation/tomcat/TomcatServerInstrumentation.java b/dd-java-agent/instrumentation/tomcat/tomcat-5.5/src/main/java/datadog/trace/instrumentation/tomcat/TomcatServerInstrumentation.java
index 07c88563d59..3c2b1eaf62e 100644
--- a/dd-java-agent/instrumentation/tomcat/tomcat-5.5/src/main/java/datadog/trace/instrumentation/tomcat/TomcatServerInstrumentation.java
+++ b/dd-java-agent/instrumentation/tomcat/tomcat-5.5/src/main/java/datadog/trace/instrumentation/tomcat/TomcatServerInstrumentation.java
@@ -3,7 +3,7 @@
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.agent.tooling.muzzle.Reference.EXPECTS_NON_STATIC;
 import static datadog.trace.agent.tooling.muzzle.Reference.EXPECTS_PUBLIC;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.DD_CONTEXT_ATTRIBUTE;
 import static datadog.trace.bootstrap.instrumentation.java.concurrent.ExcludeFilter.ExcludeType.RUNNABLE;
@@ -198,7 +198,7 @@ public static void afterParse(
               CorrelationIdentifier.getTraceIdKey(), AgentTracer.get().getTraceId(span));
           req.setAttribute(CorrelationIdentifier.getSpanIdKey(), AgentTracer.get().getSpanId(span));
           Object ctxObj = req.getAttribute(DD_PARENT_CONTEXT_ATTRIBUTE);
-          Context parentContext = ctxObj instanceof Context ? (Context) ctxObj : getRootContext();
+          Context parentContext = ctxObj instanceof Context ? (Context) ctxObj : rootContext();
           DECORATE.onRequest(span, req, req, parentContext);
           Flow.Action.RequestBlockingAction rba = span.getRequestBlockingAction();
           if (rba != null) {
diff --git a/dd-java-agent/instrumentation/undertow/undertow-2.0/src/main/java/datadog/trace/instrumentation/undertow/HandlerInstrumentation.java b/dd-java-agent/instrumentation/undertow/undertow-2.0/src/main/java/datadog/trace/instrumentation/undertow/HandlerInstrumentation.java
index cc5ed26ba9f..3d3714c30be 100644
--- a/dd-java-agent/instrumentation/undertow/undertow-2.0/src/main/java/datadog/trace/instrumentation/undertow/HandlerInstrumentation.java
+++ b/dd-java-agent/instrumentation/undertow/undertow-2.0/src/main/java/datadog/trace/instrumentation/undertow/HandlerInstrumentation.java
@@ -3,7 +3,7 @@
 import static datadog.trace.agent.tooling.InstrumenterModule.TargetSystem.CONTEXT_TRACKING;
 import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
 import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.captureSpan;
-import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.getRootContext;
+import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.rootContext;
 import static datadog.trace.bootstrap.instrumentation.api.Java8BytecodeBridge.spanFromContext;
 import static datadog.trace.instrumentation.undertow.UndertowBlockingHandler.REQUEST_BLOCKING_DATA;
 import static datadog.trace.instrumentation.undertow.UndertowBlockingHandler.TRACE_SEGMENT;
@@ -120,7 +120,7 @@ public static void onEnter(
       }
 
       Context parentContext = exchange.getAttachment(PARENT_CONTEXT_KEY);
-      if (parentContext == null) parentContext = getRootContext();
+      if (parentContext == null) parentContext = rootContext();
       final Context context = DECORATE.startSpan(exchange, parentContext);
       scope = context.attach();
       final AgentSpan span = spanFromContext(context);
diff --git a/internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentSpan.java b/internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentSpan.java
index 0eb67f3ad52..c42d98b5f3d 100644
--- a/internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentSpan.java
+++ b/internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentSpan.java
@@ -26,7 +26,16 @@ public interface AgentSpan
         WithAgentSpan {
 
   /**
-   * Extracts the span from context.
+   * Extracts the span from the current {@link Context}.
+   *
+   * @return the current span if existing, {@code null} otherwise.
+   */
+  static AgentSpan current() {
+    return Context.current().get(SPAN_KEY);
+  }
+
+  /**
+   * Extracts the span from the given {@link Context}.
    *
    * @param context the context to extract the span from.
    * @return the span if existing, {@code null} otherwise.