Skip to content

Commit 239d9a9

Browse files
authored
Align classLoaderMatcher signature with OpenTelemetry (#7125)
* Align classLoaderMatcher signature with OpenTelemetry to avoid need for bridge method * Improve mapping of AgentElementMatchers * Fix resource leak in RequestImplementationClassLoaderMatcher
1 parent 244260b commit 239d9a9

File tree

45 files changed

+100
-60
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+100
-60
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package datadog.opentelemetry.tooling;
2+
3+
import datadog.trace.agent.tooling.bytebuddy.matcher.ClassLoaderMatchers;
4+
import datadog.trace.agent.tooling.bytebuddy.matcher.HierarchyMatchers;
5+
import net.bytebuddy.description.method.MethodDescription;
6+
import net.bytebuddy.description.type.TypeDescription;
7+
import net.bytebuddy.matcher.ElementMatcher;
8+
import net.bytebuddy.matcher.ElementMatchers;
9+
10+
/** Replaces OpenTelemetry's {@code AgentElementMatchers} when mapping extensions. */
11+
public final class OtelElementMatchers {
12+
13+
public static ElementMatcher.Junction<TypeDescription> extendsClass(
14+
ElementMatcher<TypeDescription> matcher) {
15+
return HierarchyMatchers.extendsClass(matcher);
16+
}
17+
18+
public static ElementMatcher.Junction<TypeDescription> implementsInterface(
19+
ElementMatcher<TypeDescription> matcher) {
20+
return HierarchyMatchers.implementsInterface(matcher);
21+
}
22+
23+
public static ElementMatcher.Junction<TypeDescription> hasSuperType(
24+
ElementMatcher<TypeDescription> matcher) {
25+
return HierarchyMatchers.hasSuperType(matcher);
26+
}
27+
28+
public static ElementMatcher.Junction<MethodDescription> methodIsDeclaredByType(
29+
ElementMatcher<? super TypeDescription> matcher) {
30+
return ElementMatchers.isDeclaredBy(matcher);
31+
}
32+
33+
public static ElementMatcher.Junction<MethodDescription> hasSuperMethod(
34+
ElementMatcher<? super MethodDescription> matcher) {
35+
return HierarchyMatchers.hasSuperMethod(matcher);
36+
}
37+
38+
public static ElementMatcher.Junction<ClassLoader> hasClassesNamed(String... classNames) {
39+
return ClassLoaderMatchers.hasClassNamedOneOf(classNames);
40+
}
41+
42+
private OtelElementMatchers() {}
43+
}

dd-java-agent/agent-otel/otel-tooling/src/main/java/datadog/opentelemetry/tooling/OtelInstrumentationMapper.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,10 @@ public void visit(
4545
@Override
4646
public MethodVisitor visitMethod(
4747
int access, String name, String descriptor, String signature, String[] exceptions) {
48-
if (!UNSUPPORTED_METHODS.contains(name)) {
49-
return super.visitMethod(access, name, descriptor, signature, exceptions);
50-
} else {
48+
if (UNSUPPORTED_METHODS.contains(name)) {
5149
return null; // remove unsupported method
5250
}
51+
return super.visitMethod(access, name, descriptor, signature, exceptions);
5352
}
5453

5554
private String[] removeUnsupportedTypes(String[] interfaces) {
@@ -84,12 +83,12 @@ static final class Renamer extends Remapper {
8483
RENAMED_TYPES.put(
8584
"io/opentelemetry/javaagent/extension/instrumentation/TypeTransformer",
8685
"datadog/opentelemetry/tooling/OtelTransformer");
86+
RENAMED_TYPES.put(
87+
"io/opentelemetry/javaagent/extension/matcher/AgentElementMatchers",
88+
"datadog/opentelemetry/tooling/OtelElementMatchers");
8789
RENAMED_TYPES.put(
8890
"io/opentelemetry/javaagent/bootstrap/Java8BytecodeBridge",
8991
"datadog/trace/bootstrap/otel/Java8BytecodeBridge");
90-
RENAMED_TYPES.put(
91-
"io/opentelemetry/javaagent/extension/matcher/AgentElementMatchers",
92-
"datadog/trace/agent/tooling/bytebuddy/matcher/HierarchyMatchers");
9392
}
9493

9594
@Override

dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ public String muzzleDirective() {
142142
}
143143

144144
/** Override this to supply additional class-loader requirements. */
145-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
145+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
146146
return ANY_CLASS_LOADER;
147147
}
148148

dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/ClassLoaderMatchers.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
public final class ClassLoaderMatchers {
2323
private static final Logger log = LoggerFactory.getLogger(ClassLoaderMatchers.class);
2424

25-
public static final ElementMatcher<ClassLoader> ANY_CLASS_LOADER = any();
25+
public static final ElementMatcher.Junction<ClassLoader> ANY_CLASS_LOADER = any();
2626

2727
private static final ClassLoader BOOTSTRAP_CLASSLOADER = null;
2828

dd-java-agent/instrumentation/armeria-jetty/src/main/java/datadog/trace/instrumentation/armeria/jetty/ArmeriaHttpConnectionInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public String instrumentedType() {
2424
}
2525

2626
@Override
27-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
27+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
2828
return hasClassNamed("com.linecorp.armeria.server.ServiceRequestContext");
2929
}
3030

dd-java-agent/instrumentation/cxf-2.1/src/main/java/datadog/trace/instrumentation/cxf/InvokerInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public InvokerInstrumentation() {
2424
}
2525

2626
@Override
27-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
27+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
2828
return ClassLoaderMatchers.hasClassNamed("javax.servlet.ServletRequest")
2929
.or(ClassLoaderMatchers.hasClassNamed("jakarta.servlet.ServletRequest"));
3030
}

dd-java-agent/instrumentation/datastax-cassandra-3.8/src/main/java/datadog/trace/instrumentation/datastax/cassandra38/CassandraClusterInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public Map<String, String> contextStore() {
3636
}
3737

3838
@Override
39-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
39+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
4040
return hasClassNamed("com.datastax.driver.core.EndPoint");
4141
}
4242

dd-java-agent/instrumentation/datastax-cassandra-3/src/main/java/datadog/trace/instrumentation/datastax/cassandra/CassandraClusterInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public Map<String, String> contextStore() {
3737
}
3838

3939
@Override
40-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
40+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
4141
return not(hasClassNamed("com.datastax.driver.core.EndPoint"));
4242
}
4343

dd-java-agent/instrumentation/elasticsearch/rest-7/src/main/java/datadog/trace/instrumentation/elasticsearch7/Elasticsearch7RestClientInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public Elasticsearch7RestClientInstrumentation() {
3131
}
3232

3333
@Override
34-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
34+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3535
// Avoid matching pre-ES7 releases which have their own instrumentations.
3636
return hasClassNamed("org.elasticsearch.client.RestClient$InternalRequest");
3737
}

dd-java-agent/instrumentation/elasticsearch/transport-7.3/src/main/java/datadog/trace/instrumentation/elasticsearch7_3/Elasticsearch73TransportClientInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public Elasticsearch73TransportClientInstrumentation() {
3232
}
3333

3434
@Override
35-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
35+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3636
// Avoid matching pre-ES7 releases which have their own instrumentations.
3737
return hasClassNamed("org.elasticsearch.action.ActionType");
3838
}

dd-java-agent/instrumentation/gradle/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServicesInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public GradleBuildScopeServicesInstrumentation() {
2323
}
2424

2525
@Override
26-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
26+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
2727
// Only instrument Gradle 8.3+
2828
return hasClassNamed("org.gradle.api.file.ConfigurableFilePermissions");
2929
}

dd-java-agent/instrumentation/gradle/src/main/groovy/datadog/trace/instrumentation/gradle/GradlePluginInjectorInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public GradlePluginInjectorInstrumentation() {
1818
}
1919

2020
@Override
21-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
21+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
2222
// Only instrument Gradle 8.3+
2323
return hasClassNamed("org.gradle.api.file.ConfigurableFilePermissions");
2424
}

dd-java-agent/instrumentation/gradle/src/main/groovy/datadog/trace/instrumentation/gradle/legacy/GradleBuildListenerInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public GradleBuildListenerInstrumentation() {
2222
}
2323

2424
@Override
25-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
25+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
2626
// Only instrument Gradle older than 8.3
2727
return not(hasClassNamed("org.gradle.api.file.ConfigurableFilePermissions"));
2828
}

dd-java-agent/instrumentation/gson-1.6/src/main/java/datadog/trace/instrumentation/gson/JsonReaderInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public String instrumentedType() {
3434
}
3535

3636
@Override
37-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
37+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3838
return hasClassNamed("com.google.gson.stream.JsonReader");
3939
}
4040

dd-java-agent/instrumentation/java-http-client/src/main/java/datadog/trace/instrumentation/httpclient/HttpClientInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public HttpClientInstrumentation() {
2626
}
2727

2828
@Override
29-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
29+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3030
return hasClassNamed("java.net.http.HttpClient");
3131
}
3232

dd-java-agent/instrumentation/java-http-client/src/main/java/datadog/trace/instrumentation/httpclient/HttpHeadersInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public HttpHeadersInstrumentation() {
2222
}
2323

2424
@Override
25-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
25+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
2626
return hasClassNamed("java.net.http.HttpRequest");
2727
}
2828

dd-java-agent/instrumentation/jax-rs-annotations-1/src/main/java/datadog/trace/instrumentation/jaxrs1/JaxRsAnnotationsInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ private Collection<String> getJaxRsAnnotations() {
5454
}
5555

5656
@Override
57-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
57+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
5858
// Avoid matching JAX-RS 2 which has its own instrumentation.
5959
return not(hasClassNamed("javax.ws.rs.container.AsyncResponse"));
6060
}

dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAnnotationsInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public Map<String, String> contextStore() {
6464
}
6565

6666
@Override
67-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
67+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
6868
// Avoid matching JAX-RS 1 which has its own instrumentation.
6969
return hasClassNamed("javax.ws.rs.container.AsyncResponse");
7070
}

dd-java-agent/instrumentation/jedis-1.4/src/main/java/datadog/trace/instrumentation/jedis/JedisInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public JedisInstrumentation() {
2929
}
3030

3131
@Override
32-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
32+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3333
// Avoid matching Jedis 3+ which has its own instrumentation.
3434
return not(hasClassNamed("redis.clients.jedis.commands.ProtocolCommand"));
3535
}

dd-java-agent/instrumentation/jetty-appsec-8.1.3/src/main/java/datadog/trace/instrumentation/jetty8/RequestGetPartsInstrumentation.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -75,28 +75,26 @@ public void methodAdvice(MethodTransformer transformer) {
7575
}
7676

7777
@Override
78-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
78+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
7979
return RequestImplementationClassLoaderMatcher.INSTANCE;
8080
}
8181

8282
public static class RequestImplementationClassLoaderMatcher
83-
implements ElementMatcher<ClassLoader> {
84-
public static final ElementMatcher<ClassLoader> INSTANCE =
83+
extends ElementMatcher.Junction.ForNonNullValues<ClassLoader> {
84+
public static final ElementMatcher.Junction<ClassLoader> INSTANCE =
8585
new RequestImplementationClassLoaderMatcher();
8686

8787
@Override
88-
public boolean matches(ClassLoader cl) {
89-
InputStream is = cl.getResourceAsStream("org/eclipse/jetty/server/Request.class");
90-
if (is == null) {
91-
return false;
92-
}
93-
try {
88+
protected boolean doMatch(ClassLoader cl) {
89+
try (InputStream is = cl.getResourceAsStream("org/eclipse/jetty/server/Request.class")) {
90+
if (is == null) {
91+
return false;
92+
}
9493
ClassReader classReader = new ClassReader(is);
9594
final boolean[] foundField = new boolean[1];
9695
final boolean[] foundGetParameters = new boolean[1];
9796
classReader.accept(new ClassLoaderMatcherClassVisitor(foundField, foundGetParameters), 0);
9897
return !foundField[0] && foundGetParameters[0];
99-
10098
} catch (IOException e) {
10199
return false;
102100
}

dd-java-agent/instrumentation/junit-5.3/cucumber-junit-5/src/main/java/datadog/trace/instrumentation/junit5/JUnit5CucumberInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public JUnit5CucumberInstrumentation() {
3030
}
3131

3232
@Override
33-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
33+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3434
return hasClassNamed("io.cucumber.junit.platform.engine.CucumberTestEngine");
3535
}
3636

dd-java-agent/instrumentation/junit-5.3/cucumber-junit-5/src/main/java/datadog/trace/instrumentation/junit5/JUnit5CucumberItrInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public JUnit5CucumberItrInstrumentation() {
3131
}
3232

3333
@Override
34-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
34+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3535
return hasClassNamed("io.cucumber.junit.platform.engine.CucumberTestEngine");
3636
}
3737

dd-java-agent/instrumentation/junit-5.3/spock-junit-5/src/main/java/datadog/trace/instrumentation/junit5/JUnit5SpockInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public JUnit5SpockInstrumentation() {
3030
}
3131

3232
@Override
33-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
33+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3434
return hasClassNamed("org.spockframework.runtime.SpockEngine");
3535
}
3636

dd-java-agent/instrumentation/junit-5.3/spock-junit-5/src/main/java/datadog/trace/instrumentation/junit5/JUnit5SpockItrInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public JUnit5SpockItrInstrumentation() {
3232
}
3333

3434
@Override
35-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
35+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3636
return hasClassNamed("org.spockframework.runtime.SpockEngine");
3737
}
3838

dd-java-agent/instrumentation/opensearch/transport/src/main/java/datadog/trace/instrumentation/opensearch/OpensearchTransportClientInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public OpensearchTransportClientInstrumentation() {
3131
}
3232

3333
@Override
34-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
34+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3535
return hasClassNamed("org.opensearch.action.ActionType");
3636
}
3737

dd-java-agent/instrumentation/opentracing/api-0.31/src/main/java/datadog/trace/instrumentation/opentracing31/GlobalTracerInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public GlobalTracerInstrumentation() {
2626
}
2727

2828
@Override
29-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
29+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3030
// Avoid matching OT 0.32+ which has its own instrumentation.
3131
return not(hasClassNamed("io.opentracing.tag.Tag"));
3232
}

dd-java-agent/instrumentation/osgi-4.3/src/main/java/datadog/trace/instrumentation/osgi43/BundleReferenceInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public BundleReferenceInstrumentation() {
2929
}
3030

3131
@Override
32-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
32+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3333
// Avoid matching older versions of OSGi that don't have the wiring API.
3434
return hasClassNamed("org.osgi.framework.wiring.BundleWiring");
3535
}

dd-java-agent/instrumentation/reactor-netty-1/src/main/java/datadog/trace/instrumentation/reactor/netty/HttpClientInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public HttpClientInstrumentation() {
2626
}
2727

2828
@Override
29-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
29+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3030
// Avoid matching pre-1.0 releases which are not compatible.
3131
return hasClassNamed("reactor.netty.transport.AddressUtils");
3232
}

dd-java-agent/instrumentation/servlet/request-2/src/main/java/datadog/trace/instrumentation/servlet2/IastServlet2Instrumentation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ public String muzzleDirective() {
3131
}
3232

3333
// Avoid matching servlet 3 which has its own instrumentation
34-
static final ElementMatcher<ClassLoader> NOT_SERVLET_3 =
34+
static final ElementMatcher.Junction<ClassLoader> NOT_SERVLET_3 =
3535
not(hasClassNamed("javax.servlet.AsyncEvent"));
3636

3737
@Override
38-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
38+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3939
return NOT_SERVLET_3;
4040
}
4141

dd-java-agent/instrumentation/servlet/request-2/src/main/java/datadog/trace/instrumentation/servlet2/Servlet2Instrumentation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ public String muzzleDirective() {
3131
}
3232

3333
// Avoid matching servlet 3 which has its own instrumentation
34-
static final ElementMatcher<ClassLoader> NOT_SERVLET_3 =
34+
static final ElementMatcher.Junction<ClassLoader> NOT_SERVLET_3 =
3535
not(hasClassNamed("javax.servlet.AsyncEvent"));
3636

3737
@Override
38-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
38+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3939
return NOT_SERVLET_3;
4040
}
4141

dd-java-agent/instrumentation/servlet/request-2/src/main/java/datadog/trace/instrumentation/servlet2/Servlet2ResponseStatusInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public String muzzleDirective() {
2626
}
2727

2828
@Override
29-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
29+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3030
return Servlet2Instrumentation.NOT_SERVLET_3;
3131
}
3232

dd-java-agent/instrumentation/servlet/request-2/src/main/java/datadog/trace/instrumentation/servlet2/ServletRequestBodyInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public String muzzleDirective() {
5353
}
5454

5555
@Override
56-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
56+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
5757
// Avoid matching request bodies after 3.0.x which have their own instrumentation
5858
return not(hasClassNamed("javax.servlet.ReadListener"));
5959
}

dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/IastServlet3Instrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public String muzzleDirective() {
2929
}
3030

3131
@Override
32-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
32+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3333
// Avoid matching servlet 2 which has its own instrumentation
3434
return hasClassNamed("javax.servlet.AsyncEvent");
3535
}

dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/Servlet31RequestBodyInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public String muzzleDirective() {
3333
}
3434

3535
@Override
36-
public ElementMatcher<ClassLoader> classLoaderMatcher() {
36+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3737
// Avoid matching request bodies before 3.1.x which have their own instrumentation
3838
return hasClassNamed("javax.servlet.ReadListener");
3939
}

0 commit comments

Comments
 (0)