diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt index 0ecde9a39820..d76dfe013c25 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of opentelemetry-instrumentation-annotations-2.21.0-SNAPSHOT.jar against opentelemetry-instrumentation-annotations-2.19.0.jar +Comparing source compatibility of opentelemetry-instrumentation-annotations-2.21.0-SNAPSHOT.jar against opentelemetry-instrumentation-annotations-2.20.0.jar No changes. \ No newline at end of file diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt index aed995845269..a8cc389260bc 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of opentelemetry-instrumentation-api-2.21.0-SNAPSHOT.jar against opentelemetry-instrumentation-api-2.19.0.jar +Comparing source compatibility of opentelemetry-instrumentation-api-2.21.0-SNAPSHOT.jar against opentelemetry-instrumentation-api-2.20.0.jar No changes. \ No newline at end of file diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-autoconfigure.txt b/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-autoconfigure.txt index ef4436cde114..f73852b6fdb2 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-autoconfigure.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-autoconfigure.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of opentelemetry-spring-boot-autoconfigure-2.21.0-SNAPSHOT.jar against opentelemetry-spring-boot-autoconfigure-2.19.0.jar +Comparing source compatibility of opentelemetry-spring-boot-autoconfigure-2.21.0-SNAPSHOT.jar against opentelemetry-spring-boot-autoconfigure-2.20.0.jar No changes. \ No newline at end of file diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-starter.txt b/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-starter.txt index b72b005bf8b4..da03adf59ff4 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-starter.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-starter.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of opentelemetry-spring-boot-starter-2.21.0-SNAPSHOT.jar against opentelemetry-spring-boot-starter-2.19.0.jar +Comparing source compatibility of opentelemetry-spring-boot-starter-2.21.0-SNAPSHOT.jar against opentelemetry-spring-boot-starter-2.20.0.jar No changes. \ No newline at end of file diff --git a/instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/BaseClusterInstrumentation.java b/instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/BaseClusterInstrumentation.java index 1a0429974752..a3832f92f5d4 100644 --- a/instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/BaseClusterInstrumentation.java +++ b/instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/BaseClusterInstrumentation.java @@ -16,6 +16,8 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import net.bytebuddy.asm.Advice; +import net.bytebuddy.asm.Advice.AssignReturned; +import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -41,10 +43,11 @@ public void transform(TypeTransformer transformer) { @SuppressWarnings("unused") public static class SingleResultCallbackArg1Advice { + @AssignReturned.ToArguments(@ToArgument(1)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 1, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(1) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } } diff --git a/instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/InternalStreamConnectionInstrumentation.java b/instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/InternalStreamConnectionInstrumentation.java index 0dd929ae5b65..7884491445df 100644 --- a/instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/InternalStreamConnectionInstrumentation.java +++ b/instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/InternalStreamConnectionInstrumentation.java @@ -14,6 +14,8 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import net.bytebuddy.asm.Advice; +import net.bytebuddy.asm.Advice.AssignReturned; +import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -46,20 +48,22 @@ public void transform(TypeTransformer transformer) { @SuppressWarnings("unused") public static class SingleResultCallbackArg0Advice { + @AssignReturned.ToArguments(@ToArgument(0)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 0, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(0) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } @SuppressWarnings("unused") public static class SingleResultCallbackArg1Advice { + @AssignReturned.ToArguments(@ToArgument(1)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 1, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(1) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } } diff --git a/instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/MongoClientInstrumentationModule.java b/instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/MongoClientInstrumentationModule.java index 17107bbd1989..7d518ff712a4 100644 --- a/instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/MongoClientInstrumentationModule.java +++ b/instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/MongoClientInstrumentationModule.java @@ -11,11 +11,13 @@ import com.google.auto.service.AutoService; import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule; import java.util.List; import net.bytebuddy.matcher.ElementMatcher; @AutoService(InstrumentationModule.class) -public class MongoClientInstrumentationModule extends InstrumentationModule { +public class MongoClientInstrumentationModule extends InstrumentationModule + implements ExperimentalInstrumentationModule { public MongoClientInstrumentationModule() { super("mongo", "mongo-3.7"); @@ -34,4 +36,9 @@ public List typeInstrumentations() { new InternalStreamConnectionInstrumentation(), new BaseClusterInstrumentation()); } + + @Override + public boolean isIndyReady() { + return true; + } } diff --git a/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/BaseClusterInstrumentation.java b/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/BaseClusterInstrumentation.java index 24994d4d1972..3479e50bbb5c 100644 --- a/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/BaseClusterInstrumentation.java +++ b/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/BaseClusterInstrumentation.java @@ -15,6 +15,8 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import net.bytebuddy.asm.Advice; +import net.bytebuddy.asm.Advice.AssignReturned; +import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -47,20 +49,22 @@ public void transform(TypeTransformer transformer) { @SuppressWarnings("unused") public static class SingleResultCallbackArg1Advice { + @AssignReturned.ToArguments(@ToArgument(1)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 1, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(1) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } @SuppressWarnings("unused") public static class SingleResultCallbackArg2Advice { + @AssignReturned.ToArguments(@ToArgument(2)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 2, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(2) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } } diff --git a/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/DefaultConnectionPoolInstrumentation.java b/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/DefaultConnectionPoolInstrumentation.java index 7b65e6ed7b82..c6eb08d3875d 100644 --- a/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/DefaultConnectionPoolInstrumentation.java +++ b/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/DefaultConnectionPoolInstrumentation.java @@ -13,6 +13,8 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import net.bytebuddy.asm.Advice; +import net.bytebuddy.asm.Advice.AssignReturned; +import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -34,10 +36,11 @@ public void transform(TypeTransformer transformer) { @SuppressWarnings("unused") public static class SingleResultCallbackAdvice { + @AssignReturned.ToArguments(@ToArgument(0)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 0, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(0) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } } diff --git a/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/DefaultConnectionPoolTaskInstrumentation.java b/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/DefaultConnectionPoolTaskInstrumentation.java index b5df18ed04ae..f206e1494395 100644 --- a/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/DefaultConnectionPoolTaskInstrumentation.java +++ b/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/DefaultConnectionPoolTaskInstrumentation.java @@ -14,6 +14,8 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import java.util.function.Consumer; import net.bytebuddy.asm.Advice; +import net.bytebuddy.asm.Advice.AssignReturned; +import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -43,30 +45,30 @@ public void transform(TypeTransformer transformer) { @SuppressWarnings("unused") public static class TaskArg2Advice { + @AssignReturned.ToArguments(@ToArgument(2)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 2, readOnly = false) Consumer action) { - action = new TaskWrapper(Java8BytecodeBridge.currentContext(), action); + public static Consumer wrapCallback(@Advice.Argument(2) Consumer action) { + return new TaskWrapper(Java8BytecodeBridge.currentContext(), action); } } @SuppressWarnings("unused") public static class TaskArg3Advice { + @AssignReturned.ToArguments(@ToArgument(3)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 3, readOnly = false) Consumer action) { - action = new TaskWrapper(Java8BytecodeBridge.currentContext(), action); + public static Consumer wrapCallback(@Advice.Argument(3) Consumer action) { + return new TaskWrapper(Java8BytecodeBridge.currentContext(), action); } } @SuppressWarnings("unused") public static class TaskArg4Advice { + @AssignReturned.ToArguments(@ToArgument(4)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 4, readOnly = false) Consumer action) { - action = new TaskWrapper(Java8BytecodeBridge.currentContext(), action); + public static Consumer wrapCallback(@Advice.Argument(4) Consumer action) { + return new TaskWrapper(Java8BytecodeBridge.currentContext(), action); } } } diff --git a/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/InternalStreamConnectionInstrumentation.java b/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/InternalStreamConnectionInstrumentation.java index 3316353583df..4a45db991cd3 100644 --- a/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/InternalStreamConnectionInstrumentation.java +++ b/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/InternalStreamConnectionInstrumentation.java @@ -14,6 +14,8 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import net.bytebuddy.asm.Advice; +import net.bytebuddy.asm.Advice.AssignReturned; +import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -67,40 +69,44 @@ public void transform(TypeTransformer transformer) { @SuppressWarnings("unused") public static class SingleResultCallbackArg0Advice { + @AssignReturned.ToArguments(@ToArgument(0)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 0, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(0) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } @SuppressWarnings("unused") public static class SingleResultCallbackArg1Advice { + @AssignReturned.ToArguments(@ToArgument(1)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 1, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(1) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } @SuppressWarnings("unused") public static class SingleResultCallbackArg2Advice { + @AssignReturned.ToArguments(@ToArgument(2)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 2, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(2) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } @SuppressWarnings("unused") public static class SingleResultCallbackArg3Advice { + @AssignReturned.ToArguments(@ToArgument(3)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 3, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(3) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } } diff --git a/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/MongoClientInstrumentationModule.java b/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/MongoClientInstrumentationModule.java index 25b8abe5c0c2..4975340cf949 100644 --- a/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/MongoClientInstrumentationModule.java +++ b/instrumentation/mongo/mongo-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v4_0/MongoClientInstrumentationModule.java @@ -11,11 +11,13 @@ import com.google.auto.service.AutoService; import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule; import java.util.List; import net.bytebuddy.matcher.ElementMatcher; @AutoService(InstrumentationModule.class) -public class MongoClientInstrumentationModule extends InstrumentationModule { +public class MongoClientInstrumentationModule extends InstrumentationModule + implements ExperimentalInstrumentationModule { public MongoClientInstrumentationModule() { super("mongo", "mongo-4.0"); @@ -36,4 +38,9 @@ public List typeInstrumentations() { new DefaultConnectionPoolTaskInstrumentation(), new AsyncWorkManagerInstrumentation()); } + + @Override + public boolean isIndyReady() { + return true; + } } diff --git a/instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/BaseClusterInstrumentation.java b/instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/BaseClusterInstrumentation.java index 4ef663c0ed13..5989cf9d4251 100644 --- a/instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/BaseClusterInstrumentation.java +++ b/instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/BaseClusterInstrumentation.java @@ -15,6 +15,8 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import net.bytebuddy.asm.Advice; +import net.bytebuddy.asm.Advice.AssignReturned; +import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -39,10 +41,11 @@ public void transform(TypeTransformer transformer) { @SuppressWarnings("unused") public static class SingleResultCallbackArg1Advice { + @AssignReturned.ToArguments(@ToArgument(1)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 1, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(1) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } } diff --git a/instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/InternalStreamConnectionInstrumentation.java b/instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/InternalStreamConnectionInstrumentation.java index 546cf01fb797..20056604b79f 100644 --- a/instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/InternalStreamConnectionInstrumentation.java +++ b/instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/InternalStreamConnectionInstrumentation.java @@ -14,6 +14,8 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import net.bytebuddy.asm.Advice; +import net.bytebuddy.asm.Advice.AssignReturned; +import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -46,30 +48,33 @@ public void transform(TypeTransformer transformer) { @SuppressWarnings("unused") public static class SingleResultCallbackArg0Advice { + @AssignReturned.ToArguments(@ToArgument(0)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 0, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(0) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } @SuppressWarnings("unused") public static class SingleResultCallbackArg1Advice { + @AssignReturned.ToArguments(@ToArgument(1)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 1, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(1) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } @SuppressWarnings("unused") public static class SingleResultCallbackArg2Advice { + @AssignReturned.ToArguments(@ToArgument(2)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void wrapCallback( - @Advice.Argument(value = 2, readOnly = false) SingleResultCallback callback) { - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); + public static SingleResultCallback wrapCallback( + @Advice.Argument(2) SingleResultCallback callback) { + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); } } } diff --git a/instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/MongoAsyncClientInstrumentationModule.java b/instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/MongoAsyncClientInstrumentationModule.java index 21a72176bb1e..c53607f91b1c 100644 --- a/instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/MongoAsyncClientInstrumentationModule.java +++ b/instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/MongoAsyncClientInstrumentationModule.java @@ -11,11 +11,13 @@ import com.google.auto.service.AutoService; import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule; import java.util.List; import net.bytebuddy.matcher.ElementMatcher; @AutoService(InstrumentationModule.class) -public class MongoAsyncClientInstrumentationModule extends InstrumentationModule { +public class MongoAsyncClientInstrumentationModule extends InstrumentationModule + implements ExperimentalInstrumentationModule { public MongoAsyncClientInstrumentationModule() { super("mongo-async", "mongo-async-3.3", "mongo"); @@ -33,4 +35,9 @@ public List typeInstrumentations() { new InternalStreamConnectionInstrumentation(), new BaseClusterInstrumentation()); } + + @Override + public boolean isIndyReady() { + return true; + } }