Skip to content

Commit 476fbd9

Browse files
authored
Indy-ready - r2dbc (#15123)
1 parent 950bb5e commit 476fbd9

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

instrumentation/r2dbc-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/r2dbc/v1_0/R2dbcInstrumentation.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1515
import io.r2dbc.spi.ConnectionFactory;
1616
import io.r2dbc.spi.ConnectionFactoryOptions;
17+
import javax.annotation.Nullable;
1718
import net.bytebuddy.asm.Advice;
1819
import net.bytebuddy.description.type.TypeDescription;
1920
import net.bytebuddy.matcher.ElementMatcher;
@@ -38,14 +39,17 @@ public void transform(TypeTransformer transformer) {
3839
@SuppressWarnings("unused")
3940
public static class FactoryAdvice {
4041

42+
@Advice.AssignReturned.ToReturned
4143
@Advice.OnMethodExit(suppress = Throwable.class)
42-
public static void methodExit(
43-
@Advice.Return(readOnly = false) ConnectionFactory factory,
44+
public static ConnectionFactory methodExit(
45+
@Advice.Return @Nullable ConnectionFactory factory,
4446
@Advice.Argument(0) ConnectionFactoryOptions factoryOptions) {
4547

46-
if (factory != null) {
47-
factory = R2dbcSingletons.telemetry().wrapConnectionFactory(factory, factoryOptions);
48+
if (factory == null) {
49+
return null;
4850
}
51+
52+
return R2dbcSingletons.telemetry().wrapConnectionFactory(factory, factoryOptions);
4953
}
5054
}
5155
}

instrumentation/r2dbc-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/r2dbc/v1_0/R2dbcInstrumentationModule.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
import com.google.auto.service.AutoService;
99
import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
1010
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
11+
import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule;
1112
import java.util.Collections;
1213
import java.util.List;
1314

1415
@AutoService(InstrumentationModule.class)
15-
public class R2dbcInstrumentationModule extends InstrumentationModule {
16+
public class R2dbcInstrumentationModule extends InstrumentationModule
17+
implements ExperimentalInstrumentationModule {
1618

1719
public R2dbcInstrumentationModule() {
1820
super("r2dbc", "r2dbc-1.0");
@@ -22,4 +24,9 @@ public R2dbcInstrumentationModule() {
2224
public List<TypeInstrumentation> typeInstrumentations() {
2325
return Collections.singletonList(new R2dbcInstrumentation());
2426
}
27+
28+
@Override
29+
public boolean isIndyReady() {
30+
return true;
31+
}
2532
}

0 commit comments

Comments
 (0)