From 1dfd8654f61fd39461c23ef0a2ee414710df9f63 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Fri, 22 Oct 2021 22:57:53 +0300 Subject: [PATCH] Avoid logging servlet3 muzzle failure when running on servlet2 (#4474) --- .../servlet/servlet-2.2/javaagent/build.gradle.kts | 1 + .../servlet/v3_0/Servlet3InstrumentationModule.java | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/instrumentation/servlet/servlet-2.2/javaagent/build.gradle.kts b/instrumentation/servlet/servlet-2.2/javaagent/build.gradle.kts index c8e00410f1..3392ccc97d 100644 --- a/instrumentation/servlet/servlet-2.2/javaagent/build.gradle.kts +++ b/instrumentation/servlet/servlet-2.2/javaagent/build.gradle.kts @@ -23,6 +23,7 @@ dependencies { implementation(project(":instrumentation:servlet:servlet-javax-common:library")) testInstrumentation(project(":instrumentation:servlet:servlet-javax-common:javaagent")) + testInstrumentation(project(":instrumentation:servlet:servlet-3.0:javaagent")) testLibrary("org.eclipse.jetty:jetty-server:7.0.0.v20091005") testLibrary("org.eclipse.jetty:jetty-servlet:7.0.0.v20091005") diff --git a/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3InstrumentationModule.java b/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3InstrumentationModule.java index 46fbb2bd00..80d635590e 100644 --- a/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3InstrumentationModule.java +++ b/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3InstrumentationModule.java @@ -5,6 +5,7 @@ package io.opentelemetry.javaagent.instrumentation.servlet.v3_0; +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; import static java.util.Arrays.asList; import com.google.auto.service.AutoService; @@ -14,6 +15,7 @@ import io.opentelemetry.javaagent.instrumentation.servlet.common.async.AsyncCont import io.opentelemetry.javaagent.instrumentation.servlet.common.async.AsyncStartInstrumentation; import io.opentelemetry.javaagent.instrumentation.servlet.common.service.ServletAndFilterInstrumentation; import java.util.List; +import net.bytebuddy.matcher.ElementMatcher; @AutoService(InstrumentationModule.class) public class Servlet3InstrumentationModule extends InstrumentationModule { @@ -23,6 +25,11 @@ public class Servlet3InstrumentationModule extends InstrumentationModule { super("servlet", "servlet-3.0"); } + @Override + public ElementMatcher.Junction classLoaderMatcher() { + return hasClassesNamed("javax.servlet.ServletRegistration"); + } + @Override public List typeInstrumentations() { return asList(