Skip to content

Commit 96e710a

Browse files
authored
make graphql indy-ready (#14862)
1 parent 1d947dc commit 96e710a

File tree

4 files changed

+21
-5
lines changed

4 files changed

+21
-5
lines changed

instrumentation/graphql-java/graphql-java-12.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v12_0/GraphqlInstrumentation.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1515
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1616
import net.bytebuddy.asm.Advice;
17+
import net.bytebuddy.asm.Advice.AssignReturned;
1718
import net.bytebuddy.description.type.TypeDescription;
1819
import net.bytebuddy.matcher.ElementMatcher;
1920

@@ -34,9 +35,10 @@ public void transform(TypeTransformer transformer) {
3435

3536
@SuppressWarnings("unused")
3637
public static class AddInstrumentationAdvice {
38+
@AssignReturned.ToReturned
3739
@Advice.OnMethodExit(suppress = Throwable.class)
38-
public static void onExit(@Advice.Return(readOnly = false) Instrumentation instrumentation) {
39-
instrumentation = addInstrumentation(instrumentation);
40+
public static Instrumentation onExit(@Advice.Return Instrumentation instrumentation) {
41+
return addInstrumentation(instrumentation);
4042
}
4143
}
4244
}

instrumentation/graphql-java/graphql-java-12.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v12_0/GraphqlInstrumentationModule.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@
1111
import com.google.auto.service.AutoService;
1212
import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
1313
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
14+
import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule;
1415
import java.util.Collections;
1516
import java.util.List;
1617
import net.bytebuddy.matcher.ElementMatcher;
1718

1819
@SuppressWarnings("unused")
1920
@AutoService(InstrumentationModule.class)
20-
public class GraphqlInstrumentationModule extends InstrumentationModule {
21+
public class GraphqlInstrumentationModule extends InstrumentationModule
22+
implements ExperimentalInstrumentationModule {
2123

2224
public GraphqlInstrumentationModule() {
2325
super("graphql-java", "graphql-java-12.0");
@@ -34,4 +36,9 @@ public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3436
public List<TypeInstrumentation> typeInstrumentations() {
3537
return Collections.singletonList(new GraphqlInstrumentation());
3638
}
39+
40+
@Override
41+
public boolean isIndyReady() {
42+
return true;
43+
}
3744
}

instrumentation/graphql-java/graphql-java-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v20_0/GraphqlInstrumentation.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1515
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1616
import net.bytebuddy.asm.Advice;
17+
import net.bytebuddy.asm.Advice.AssignReturned;
1718
import net.bytebuddy.asm.AsmVisitorWrapper;
1819
import net.bytebuddy.description.field.FieldDescription;
1920
import net.bytebuddy.description.field.FieldList;
@@ -106,10 +107,11 @@ public void visitFieldInsn(
106107

107108
@SuppressWarnings("unused")
108109
public static class AddInstrumentationAdvice {
110+
@AssignReturned.ToReturned
109111
@Advice.OnMethodExit(suppress = Throwable.class)
110-
public static void onExit(@Advice.Return(readOnly = false) Instrumentation instrumentation) {
112+
public static Instrumentation onExit(@Advice.Return Instrumentation instrumentation) {
111113
// this advice is here only to get GraphqlSingletons injected and checked by muzzle
112-
instrumentation = addInstrumentation(instrumentation);
114+
return addInstrumentation(instrumentation);
113115
}
114116
}
115117
}

instrumentation/graphql-java/graphql-java-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v20_0/GraphqlInstrumentationModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,9 @@ public void injectClasses(ClassInjector injector) {
4646
.proxyBuilder("io.opentelemetry.javaagent.instrumentation.graphql.v20_0.GraphqlSingletons")
4747
.inject(InjectionMode.CLASS_ONLY);
4848
}
49+
50+
@Override
51+
public boolean isIndyReady() {
52+
return true;
53+
}
4954
}

0 commit comments

Comments
 (0)