From cefaecab3fc3e587b8d76ff94759ebe611f69398 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Sun, 6 Jun 2021 19:41:34 -0700 Subject: [PATCH] Use more efficient namedOneOf where possible (#3200) * Use more efficient namedOneOf where possible * Fix - hasClassesNamed does and not or --- .../ExternalAnnotationInstrumentation.java | 13 +++-------- .../geode/GeodeRegionInstrumentation.java | 22 ++++++++++--------- ...yClientConnectionErrorInstrumentation.java | 3 ++- ...sourceMethodDispatcherInstrumentation.java | 6 +++-- .../ResteasyRootNodeTypeInstrumentation.java | 6 +++-- .../KotlinCoroutinesInstrumentation.java | 7 +++--- .../v1_0/LoggingEventInstrumentation.java | 3 ++- .../methods/MethodInstrumentation.java | 14 +++--------- .../v3_7/BaseClusterInstrumentation.java | 5 +++-- ...tChannelHandlerContextInstrumentation.java | 6 +++-- .../netty/v4_0/ChannelInstrumentation.java | 3 ++- .../netty/v4_1/ChannelInstrumentation.java | 3 ++- .../chunk/StepBuilderInstrumentation.java | 8 ++++--- .../AsyncResultSingleInstrumentation.java | 6 +++-- 14 files changed, 53 insertions(+), 52 deletions(-) diff --git a/instrumentation/external-annotations/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/extannotations/ExternalAnnotationInstrumentation.java b/instrumentation/external-annotations/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/extannotations/ExternalAnnotationInstrumentation.java index 6c856a6488..7c2d3027cc 100644 --- a/instrumentation/external-annotations/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/extannotations/ExternalAnnotationInstrumentation.java +++ b/instrumentation/external-annotations/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/extannotations/ExternalAnnotationInstrumentation.java @@ -11,7 +11,7 @@ import static io.opentelemetry.javaagent.instrumentation.extannotations.External import static net.bytebuddy.matcher.ElementMatchers.declaresMethod; import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith; import static net.bytebuddy.matcher.ElementMatchers.isDeclaredBy; -import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.none; import static net.bytebuddy.matcher.ElementMatchers.not; @@ -82,18 +82,11 @@ public class ExternalAnnotationInstrumentation implements TypeInstrumentation { traceAnnotationMatcher = none(); } else { ElementMatcher.Junction classLoaderMatcher = none(); - ElementMatcher.Junction methodTraceMatcher = none(); for (String annotationName : additionalTraceAnnotations) { - if (methodTraceMatcher == null) { - classLoaderMatcher = hasClassesNamed(annotationName); - methodTraceMatcher = named(annotationName); - } else { - classLoaderMatcher = classLoaderMatcher.or(hasClassesNamed(annotationName)); - methodTraceMatcher = methodTraceMatcher.or(named(annotationName)); - } + classLoaderMatcher = classLoaderMatcher.or(hasClassesNamed(annotationName)); } this.classLoaderOptimization = classLoaderMatcher; - this.traceAnnotationMatcher = methodTraceMatcher; + this.traceAnnotationMatcher = namedOneOf(additionalTraceAnnotations.toArray(new String[0])); } excludedMethodsMatcher = configureExcludedMethods(); diff --git a/instrumentation/geode-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/geode/GeodeRegionInstrumentation.java b/instrumentation/geode-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/geode/GeodeRegionInstrumentation.java index 70ca656f5e..9b466e22a6 100644 --- a/instrumentation/geode-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/geode/GeodeRegionInstrumentation.java +++ b/instrumentation/geode-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/geode/GeodeRegionInstrumentation.java @@ -12,6 +12,7 @@ import static io.opentelemetry.javaagent.instrumentation.geode.GeodeInstrumenter import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import io.opentelemetry.context.Context; @@ -40,22 +41,23 @@ public class GeodeRegionInstrumentation implements TypeInstrumentation { transformer.applyAdviceToMethod( isMethod() .and( - named("clear") + namedOneOf( + "clear", + "create", + "destroy", + "entrySet", + "get", + "getAll", + "invalidate", + "replace") .or(nameStartsWith("contains")) - .or(named("create")) - .or(named("destroy")) - .or(named("entrySet")) - .or(named("get")) - .or(named("getAll")) - .or(named("invalidate")) .or(nameStartsWith("keySet")) .or(nameStartsWith("put")) - .or(nameStartsWith("remove")) - .or(named("replace"))), + .or(nameStartsWith("remove"))), this.getClass().getName() + "$SimpleAdvice"); transformer.applyAdviceToMethod( isMethod() - .and(named("existsValue").or(named("query")).or(named("selectValue"))) + .and(namedOneOf("existsValue", "query", "selectValue")) .and(takesArgument(0, String.class)), this.getClass().getName() + "$QueryAdvice"); } diff --git a/instrumentation/jaxrs-client/jaxrs-client-2.0/jaxrs-client-2.0-jersey-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v2_0/JerseyClientConnectionErrorInstrumentation.java b/instrumentation/jaxrs-client/jaxrs-client-2.0/jaxrs-client-2.0-jersey-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v2_0/JerseyClientConnectionErrorInstrumentation.java index b889f045e4..a2d2e0fe6c 100644 --- a/instrumentation/jaxrs-client/jaxrs-client-2.0/jaxrs-client-2.0-jersey-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v2_0/JerseyClientConnectionErrorInstrumentation.java +++ b/instrumentation/jaxrs-client/jaxrs-client-2.0/jaxrs-client-2.0-jersey-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v2_0/JerseyClientConnectionErrorInstrumentation.java @@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.jaxrsclient.v2_0; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; @@ -35,7 +36,7 @@ public class JerseyClientConnectionErrorInstrumentation implements TypeInstrumen this.getClass().getName() + "$InvokeAdvice"); transformer.applyAdviceToMethod( isMethod() - .and(named("submit").or(named("createRunnableForAsyncProcessing"))) + .and(namedOneOf("submit", "createRunnableForAsyncProcessing")) .and(takesArgument(0, named("org.glassfish.jersey.client.ClientRequest"))) .and(takesArgument(1, named("org.glassfish.jersey.client.ResponseCallback"))), this.getClass().getName() + "$SubmitAdvice"); diff --git a/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-jersey-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/JerseyResourceMethodDispatcherInstrumentation.java b/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-jersey-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/JerseyResourceMethodDispatcherInstrumentation.java index fe29247101..04a1b7a8fe 100644 --- a/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-jersey-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/JerseyResourceMethodDispatcherInstrumentation.java +++ b/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-jersey-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/JerseyResourceMethodDispatcherInstrumentation.java @@ -6,6 +6,7 @@ package io.opentelemetry.javaagent.instrumentation.jaxrs.v2_0; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; @@ -29,8 +30,9 @@ public class JerseyResourceMethodDispatcherInstrumentation implements TypeInstru .and( takesArgument( 1, - named("javax.ws.rs.core.Request") - .or(named("org.glassfish.jersey.server.ContainerRequest")))), + namedOneOf( + "javax.ws.rs.core.Request", + "org.glassfish.jersey.server.ContainerRequest"))), JerseyResourceMethodDispatcherInstrumentation.class.getName() + "$DispatchAdvice"); } diff --git a/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/ResteasyRootNodeTypeInstrumentation.java b/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/ResteasyRootNodeTypeInstrumentation.java index ab16217538..23c1be9b92 100644 --- a/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/ResteasyRootNodeTypeInstrumentation.java +++ b/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/ResteasyRootNodeTypeInstrumentation.java @@ -6,6 +6,7 @@ package io.opentelemetry.javaagent.instrumentation.jaxrs.v2_0; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; @@ -33,8 +34,9 @@ public class ResteasyRootNodeTypeInstrumentation implements TypeInstrumentation .and( takesArgument( 1, - named("org.jboss.resteasy.core.ResourceInvoker") - .or(named("org.jboss.resteasy.spi.ResourceInvoker")))), + namedOneOf( + "org.jboss.resteasy.core.ResourceInvoker", + "org.jboss.resteasy.spi.ResourceInvoker"))), ResteasyRootNodeTypeInstrumentation.class.getName() + "$AddInvokerAdvice"); } diff --git a/instrumentation/kotlinx-coroutines/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kotlinxcoroutines/KotlinCoroutinesInstrumentation.java b/instrumentation/kotlinx-coroutines/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kotlinxcoroutines/KotlinCoroutinesInstrumentation.java index b9acda4245..202177e848 100644 --- a/instrumentation/kotlinx-coroutines/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kotlinxcoroutines/KotlinCoroutinesInstrumentation.java +++ b/instrumentation/kotlinx-coroutines/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kotlinxcoroutines/KotlinCoroutinesInstrumentation.java @@ -6,6 +6,7 @@ package io.opentelemetry.javaagent.instrumentation.kotlinxcoroutines; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; @@ -24,13 +25,11 @@ public class KotlinCoroutinesInstrumentation implements TypeInstrumentation { @Override public void transform(TypeTransformer transformer) { transformer.applyAdviceToMethod( - named("launch") - .or(named("launch$default")) + namedOneOf("launch", "launch$default") .and(takesArgument(1, named("kotlin.coroutines.CoroutineContext"))), this.getClass().getName() + "$LaunchAdvice"); transformer.applyAdviceToMethod( - named("runBlocking") - .or(named("runBlocking$default")) + namedOneOf("runBlocking", "runBlocking$default") .and(takesArgument(0, named("kotlin.coroutines.CoroutineContext"))), this.getClass().getName() + "$RunBlockingAdvice"); } diff --git a/instrumentation/logback-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/logback/v1_0/LoggingEventInstrumentation.java b/instrumentation/logback-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/logback/v1_0/LoggingEventInstrumentation.java index 57564051f6..b0af2c7230 100644 --- a/instrumentation/logback-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/logback/v1_0/LoggingEventInstrumentation.java +++ b/instrumentation/logback-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/logback/v1_0/LoggingEventInstrumentation.java @@ -13,6 +13,7 @@ import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.ha import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import ch.qos.logback.classic.spi.ILoggingEvent; @@ -45,7 +46,7 @@ public class LoggingEventInstrumentation implements TypeInstrumentation { transformer.applyAdviceToMethod( isMethod() .and(isPublic()) - .and(named("getMDCPropertyMap").or(named("getMdc"))) + .and(namedOneOf("getMDCPropertyMap", "getMdc")) .and(takesArguments(0)), LoggingEventInstrumentation.class.getName() + "$GetMdcAdvice"); } diff --git a/instrumentation/methods/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/MethodInstrumentation.java b/instrumentation/methods/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/MethodInstrumentation.java index 6b3baea5c9..23023992ab 100644 --- a/instrumentation/methods/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/MethodInstrumentation.java +++ b/instrumentation/methods/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/MethodInstrumentation.java @@ -10,6 +10,7 @@ import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.ha import static io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge.currentContext; import static io.opentelemetry.javaagent.instrumentation.methods.MethodInstrumenters.instrumenter; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; @@ -18,7 +19,6 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import java.lang.reflect.Method; import java.util.Set; import net.bytebuddy.asm.Advice; -import net.bytebuddy.description.method.MethodDescription; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -43,17 +43,9 @@ public class MethodInstrumentation implements TypeInstrumentation { @Override public void transform(TypeTransformer transformer) { - ElementMatcher.Junction methodMatchers = null; - for (String methodName : methodNames) { - if (methodMatchers == null) { - methodMatchers = named(methodName); - } else { - methodMatchers = methodMatchers.or(named(methodName)); - } - } - transformer.applyAdviceToMethod( - methodMatchers, MethodInstrumentation.class.getName() + "$MethodAdvice"); + namedOneOf(methodNames.toArray(new String[0])), + MethodInstrumentation.class.getName() + "$MethodAdvice"); } public static class MethodAdvice { 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 f11e2ecb5a..4cd5970075 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 @@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.mongo.v3_7; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import com.mongodb.async.SingleResultCallback; @@ -22,8 +23,8 @@ final class BaseClusterInstrumentation implements TypeInstrumentation { @Override public ElementMatcher typeMatcher() { - return named("com.mongodb.connection.BaseCluster") - .or(named("com.mongodb.internal.connection.BaseCluster")); + return namedOneOf( + "com.mongodb.connection.BaseCluster", "com.mongodb.internal.connection.BaseCluster"); } @Override diff --git a/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/AbstractChannelHandlerContextInstrumentation.java b/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/AbstractChannelHandlerContextInstrumentation.java index 708cb21c5a..68281a271c 100644 --- a/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/AbstractChannelHandlerContextInstrumentation.java +++ b/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/AbstractChannelHandlerContextInstrumentation.java @@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.netty.v4_0; import static io.opentelemetry.javaagent.instrumentation.netty.v4_0.server.NettyHttpServerTracer.tracer; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; @@ -22,8 +23,9 @@ public class AbstractChannelHandlerContextInstrumentation implements TypeInstrum @Override public ElementMatcher typeMatcher() { // Different classes depending on Netty version - return named("io.netty.channel.AbstractChannelHandlerContext") - .or(named("io.netty.channel.DefaultChannelHandlerContext")); + return namedOneOf( + "io.netty.channel.AbstractChannelHandlerContext", + "io.netty.channel.DefaultChannelHandlerContext"); } @Override diff --git a/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/ChannelInstrumentation.java b/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/ChannelInstrumentation.java index 27612d39d4..abd46f75a5 100644 --- a/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/ChannelInstrumentation.java +++ b/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/ChannelInstrumentation.java @@ -9,6 +9,7 @@ import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers. import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.hasClassesNamed; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import io.netty.channel.Channel; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; @@ -38,7 +39,7 @@ public class ChannelInstrumentation implements TypeInstrumentation { @Override public void transform(TypeTransformer transformer) { transformer.applyAdviceToMethod( - isMethod().and(named("write").or(named("writeAndFlush"))), + isMethod().and(namedOneOf("write", "writeAndFlush")), ChannelInstrumentation.class.getName() + "$AttachContextAdvice"); } diff --git a/instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/ChannelInstrumentation.java b/instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/ChannelInstrumentation.java index b192de6fb0..0f09366c4e 100644 --- a/instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/ChannelInstrumentation.java +++ b/instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/ChannelInstrumentation.java @@ -9,6 +9,7 @@ import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers. import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.hasClassesNamed; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import io.netty.channel.Channel; import io.opentelemetry.instrumentation.netty.v4_1.AttributeKeys; @@ -39,7 +40,7 @@ public class ChannelInstrumentation implements TypeInstrumentation { @Override public void transform(TypeTransformer transformer) { transformer.applyAdviceToMethod( - isMethod().and(named("write").or(named("writeAndFlush"))), + isMethod().and(namedOneOf("write", "writeAndFlush")), ChannelInstrumentation.class.getName() + "$AttachContextAdvice"); } diff --git a/instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/chunk/StepBuilderInstrumentation.java b/instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/chunk/StepBuilderInstrumentation.java index f35c99705a..14806da838 100644 --- a/instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/chunk/StepBuilderInstrumentation.java +++ b/instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/chunk/StepBuilderInstrumentation.java @@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.spring.batch.chunk; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; @@ -24,10 +25,11 @@ public class StepBuilderInstrumentation implements TypeInstrumentation { @Override public ElementMatcher typeMatcher() { // Spring Batch Java DSL and XML config - return named("org.springframework.batch.core.step.builder.AbstractTaskletStepBuilder") + return namedOneOf( + "org.springframework.batch.core.step.builder.AbstractTaskletStepBuilder", // JSR-352 XML config - .or(named("org.springframework.batch.core.jsr.step.builder.JsrSimpleStepBuilder")) - .or(named("org.springframework.batch.core.jsr.step.builder.JsrBatchletStepBuilder")); + "org.springframework.batch.core.jsr.step.builder.JsrSimpleStepBuilder", + "org.springframework.batch.core.jsr.step.builder.JsrBatchletStepBuilder"); } @Override diff --git a/instrumentation/vertx-reactive-3.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/reactive/AsyncResultSingleInstrumentation.java b/instrumentation/vertx-reactive-3.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/reactive/AsyncResultSingleInstrumentation.java index 456f2f7194..9f6c68e7f4 100644 --- a/instrumentation/vertx-reactive-3.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/reactive/AsyncResultSingleInstrumentation.java +++ b/instrumentation/vertx-reactive-3.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/reactive/AsyncResultSingleInstrumentation.java @@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.vertx.reactive; import static io.opentelemetry.javaagent.extension.matcher.ClassLoaderMatcher.hasClassesNamed; import static net.bytebuddy.matcher.ElementMatchers.isConstructor; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; @@ -31,8 +32,9 @@ public class AsyncResultSingleInstrumentation implements TypeInstrumentation { @Override public ElementMatcher typeMatcher() { - return named("io.vertx.reactivex.core.impl.AsyncResultSingle") - .or(named("io.vertx.reactivex.impl.AsyncResultSingle")); + return namedOneOf( + "io.vertx.reactivex.core.impl.AsyncResultSingle", + "io.vertx.reactivex.impl.AsyncResultSingle"); } @Override