Skip to content

Commit c10ebeb

Browse files
make opentelemetry-* indy-ready (#14695)
Co-authored-by: otelbot <[email protected]>
1 parent 3541d6d commit c10ebeb

File tree

21 files changed

+332
-200
lines changed

21 files changed

+332
-200
lines changed

instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ContextInstrumentation.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1616
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage;
1717
import net.bytebuddy.asm.Advice;
18+
import net.bytebuddy.asm.Advice.AssignReturned;
1819
import net.bytebuddy.description.type.TypeDescription;
1920
import net.bytebuddy.matcher.ElementMatcher;
2021

@@ -41,9 +42,10 @@ public void transform(TypeTransformer transformer) {
4142
@SuppressWarnings("unused")
4243
public static class WrapRootAdvice {
4344

45+
@AssignReturned.ToReturned
4446
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
45-
public static void methodExit(@Advice.Return(readOnly = false) Context root) {
46-
root = AgentContextStorage.wrapRootContext(root);
47+
public static Context methodExit(@Advice.Return Context root) {
48+
return AgentContextStorage.wrapRootContext(root);
4749
}
4850
}
4951
}

instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ContextStorageWrappersInstrumentation.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import java.util.List;
1616
import java.util.function.Function;
1717
import net.bytebuddy.asm.Advice;
18+
import net.bytebuddy.asm.Advice.AssignReturned;
1819
import net.bytebuddy.description.type.TypeDescription;
1920
import net.bytebuddy.matcher.ElementMatcher;
2021

@@ -41,13 +42,16 @@ public void transform(TypeTransformer transformer) {
4142
@SuppressWarnings("unused")
4243
public static class AddWrapperAdvice {
4344

45+
@AssignReturned.ToReturned
4446
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
45-
public static void methodExit(
46-
@Advice.Return(readOnly = false)
47-
List<Function<? super ContextStorage, ? extends ContextStorage>> wrappers) {
48-
wrappers = new ArrayList<>(wrappers);
47+
public static List<Function<? super ContextStorage, ? extends ContextStorage>> methodExit(
48+
@Advice.Return
49+
List<Function<? super ContextStorage, ? extends ContextStorage>> originalWrappers) {
50+
List<Function<? super ContextStorage, ? extends ContextStorage>> wrappers =
51+
new ArrayList<>(originalWrappers);
4952
// AgentContextStorage wrapper doesn't delegate, so needs to be the innermost wrapper
5053
wrappers.add(0, AgentContextStorage.wrap());
54+
return wrappers;
5155
}
5256
}
5357
}

instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/InstrumentationUtilInstrumentation.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1616
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage;
1717
import net.bytebuddy.asm.Advice;
18+
import net.bytebuddy.asm.Advice.AssignReturned;
1819
import net.bytebuddy.description.type.TypeDescription;
1920
import net.bytebuddy.matcher.ElementMatcher;
2021

@@ -44,12 +45,11 @@ public static boolean methodEnter() {
4445
return true;
4546
}
4647

48+
@AssignReturned.ToReturned
4749
@Advice.OnMethodExit(suppress = Throwable.class)
48-
public static void methodExit(
49-
@Advice.Argument(0) Context context, @Advice.Return(readOnly = false) boolean result) {
50-
result =
51-
InstrumentationUtil.shouldSuppressInstrumentation(
52-
AgentContextStorage.getAgentContext(context));
50+
public static boolean methodExit(@Advice.Argument(0) Context context) {
51+
return InstrumentationUtil.shouldSuppressInstrumentation(
52+
AgentContextStorage.getAgentContext(context));
5353
}
5454
}
5555

instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/OpenTelemetryApiInstrumentationModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,9 @@ public List<String> agentPackagesToHide() {
4343
// when they haven't been injected
4444
return Collections.singletonList("io.opentelemetry.javaagent.instrumentation.opentelemetryapi");
4545
}
46+
47+
@Override
48+
public boolean isIndyReady() {
49+
return true;
50+
}
4651
}

instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/OpenTelemetryInstrumentation.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1818
import java.util.logging.Logger;
1919
import net.bytebuddy.asm.Advice;
20+
import net.bytebuddy.asm.Advice.AssignReturned;
2021
import net.bytebuddy.description.type.TypeDescription;
2122
import net.bytebuddy.matcher.ElementMatcher;
2223

@@ -58,11 +59,10 @@ public static Object onEnter() {
5859
return null;
5960
}
6061

62+
@AssignReturned.ToReturned
6163
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
62-
public static void methodExit(
63-
@Advice.Return(readOnly = false)
64-
application.io.opentelemetry.api.OpenTelemetry openTelemetry) {
65-
openTelemetry = ApplicationOpenTelemetry.INSTANCE;
64+
public static application.io.opentelemetry.api.OpenTelemetry methodExit() {
65+
return ApplicationOpenTelemetry.INSTANCE;
6666
}
6767
}
6868

instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/SpanInstrumentation.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1616
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.Bridging;
1717
import net.bytebuddy.asm.Advice;
18+
import net.bytebuddy.asm.Advice.AssignReturned;
1819
import net.bytebuddy.description.type.TypeDescription;
1920
import net.bytebuddy.matcher.ElementMatcher;
2021

@@ -40,13 +41,11 @@ public static boolean methodEnter() {
4041
return false;
4142
}
4243

44+
@AssignReturned.ToReturned
4345
@Advice.OnMethodExit
44-
public static void methodExit(
45-
@Advice.Argument(0) SpanContext applicationSpanContext,
46-
@Advice.Return(readOnly = false) Span applicationSpan) {
47-
applicationSpan =
48-
Bridging.toApplication(
49-
io.opentelemetry.api.trace.Span.wrap(Bridging.toAgent(applicationSpanContext)));
46+
public static Span methodExit(@Advice.Argument(0) SpanContext applicationSpanContext) {
47+
return Bridging.toApplication(
48+
io.opentelemetry.api.trace.Span.wrap(Bridging.toAgent(applicationSpanContext)));
5049
}
5150
}
5251
}

instrumentation/opentelemetry-api/opentelemetry-api-1.0/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/TestInstrumentation.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1414
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage;
1515
import net.bytebuddy.asm.Advice;
16+
import net.bytebuddy.asm.Advice.AssignReturned;
1617
import net.bytebuddy.description.type.TypeDescription;
1718
import net.bytebuddy.matcher.ElementMatcher;
1819

@@ -31,12 +32,11 @@ public void transform(TypeTransformer transformer) {
3132
@SuppressWarnings("unused")
3233
public static class TestAdvice {
3334

35+
@AssignReturned.ToReturned
3436
@Advice.OnMethodExit(suppress = Throwable.class)
35-
public static void onExit(
36-
@Advice.Argument(0) Context context, @Advice.Return(readOnly = false) boolean result) {
37-
result =
38-
InstrumentationUtil.shouldSuppressInstrumentation(
39-
AgentContextStorage.getAgentContext(context));
37+
public static boolean onExit(@Advice.Argument(0) Context context) {
38+
return InstrumentationUtil.shouldSuppressInstrumentation(
39+
AgentContextStorage.getAgentContext(context));
4040
}
4141
}
4242
}

instrumentation/opentelemetry-api/opentelemetry-api-1.0/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/TestInstrumentationModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,9 @@ public String getModuleGroup() {
2929
public List<TypeInstrumentation> typeInstrumentations() {
3030
return singletonList(new TestInstrumentation());
3131
}
32+
33+
@Override
34+
public boolean isIndyReady() {
35+
return true;
36+
}
3237
}

instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/OpenTelemetryApiInstrumentationModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,9 @@ public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3737
public String getModuleGroup() {
3838
return "opentelemetry-api-bridge";
3939
}
40+
41+
@Override
42+
public boolean isIndyReady() {
43+
return true;
44+
}
4045
}

instrumentation/opentelemetry-api/opentelemetry-api-1.31/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_31/incubator/OpenTelemetryApiInstrumentationModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,9 @@ public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3737
public String getModuleGroup() {
3838
return "opentelemetry-api-bridge";
3939
}
40+
41+
@Override
42+
public boolean isIndyReady() {
43+
return true;
44+
}
4045
}

0 commit comments

Comments
 (0)