From 990deceb0e119c72b4d32db6c38b1664d7e97103 Mon Sep 17 00:00:00 2001 From: Steve Rao Date: Tue, 8 Oct 2024 15:32:08 +0800 Subject: [PATCH 1/3] Add missing assertInverse --- instrumentation/jsp-2.3/javaagent/build.gradle.kts | 2 +- .../log4j/log4j-appender-1.2/javaagent/build.gradle.kts | 1 + instrumentation/log4j/log4j-mdc-1.2/javaagent/build.gradle.kts | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/instrumentation/jsp-2.3/javaagent/build.gradle.kts b/instrumentation/jsp-2.3/javaagent/build.gradle.kts index 497c7630f36e..1fe0652a9475 100644 --- a/instrumentation/jsp-2.3/javaagent/build.gradle.kts +++ b/instrumentation/jsp-2.3/javaagent/build.gradle.kts @@ -6,7 +6,7 @@ muzzle { pass { group.set("org.apache.tomcat") module.set("tomcat-jasper") - // version range [7.0.0,7.0.19) is missing from maven + // version range [7.0.0,7.0.19) is missing from maven, can't add assertInverse // tomcat 10 uses JSP 3.0 versions.set("[7.0.19,10)") // version 8.0.9 depends on org.eclipse.jdt.core.compiler:ecj:4.4RC4 which does not exist diff --git a/instrumentation/log4j/log4j-appender-1.2/javaagent/build.gradle.kts b/instrumentation/log4j/log4j-appender-1.2/javaagent/build.gradle.kts index 6fdfe9074f03..bc336ded66ca 100644 --- a/instrumentation/log4j/log4j-appender-1.2/javaagent/build.gradle.kts +++ b/instrumentation/log4j/log4j-appender-1.2/javaagent/build.gradle.kts @@ -9,6 +9,7 @@ muzzle { versions.set("[1.2,)") // version 1.2.15 has a bad dependency on javax.jms:jms:1.1 which was released as pom only skip("1.2.15") + assertInverse.set(true) } } diff --git a/instrumentation/log4j/log4j-mdc-1.2/javaagent/build.gradle.kts b/instrumentation/log4j/log4j-mdc-1.2/javaagent/build.gradle.kts index 5054629f77fc..0887ad4e9abe 100644 --- a/instrumentation/log4j/log4j-mdc-1.2/javaagent/build.gradle.kts +++ b/instrumentation/log4j/log4j-mdc-1.2/javaagent/build.gradle.kts @@ -8,7 +8,8 @@ muzzle { module.set("log4j") versions.set("[1.2,)") // version 1.2.15 has a bad dependency on javax.jms:jms:1.1 which was released as pom only - skip("1.2.15") + skip("1.1.3", "1.2.15") + assertInverse.set(true) } } From d6bc8438141030f2b284c43f99e1d058c73363f4 Mon Sep 17 00:00:00 2001 From: Steve Rao Date: Wed, 9 Oct 2024 22:44:59 +0800 Subject: [PATCH 2/3] Address comment problems --- instrumentation/jsp-2.3/javaagent/build.gradle.kts | 3 ++- .../log4j/log4j-mdc-1.2/javaagent/build.gradle.kts | 2 +- .../log4j/mdc/v1_2/Log4j1InstrumentationModule.java | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/instrumentation/jsp-2.3/javaagent/build.gradle.kts b/instrumentation/jsp-2.3/javaagent/build.gradle.kts index 1fe0652a9475..64736b46a75e 100644 --- a/instrumentation/jsp-2.3/javaagent/build.gradle.kts +++ b/instrumentation/jsp-2.3/javaagent/build.gradle.kts @@ -6,11 +6,12 @@ muzzle { pass { group.set("org.apache.tomcat") module.set("tomcat-jasper") - // version range [7.0.0,7.0.19) is missing from maven, can't add assertInverse // tomcat 10 uses JSP 3.0 versions.set("[7.0.19,10)") // version 8.0.9 depends on org.eclipse.jdt.core.compiler:ecj:4.4RC4 which does not exist skip("8.0.9") + // can't add assertInverse.set(true) + // Because when muzzle check within the range [7.0.0, 7.0.19), it appears that org.eclipse.jdt.core.compiler:ecj:xx does not exist. } } diff --git a/instrumentation/log4j/log4j-mdc-1.2/javaagent/build.gradle.kts b/instrumentation/log4j/log4j-mdc-1.2/javaagent/build.gradle.kts index 0887ad4e9abe..0be275ae3ab2 100644 --- a/instrumentation/log4j/log4j-mdc-1.2/javaagent/build.gradle.kts +++ b/instrumentation/log4j/log4j-mdc-1.2/javaagent/build.gradle.kts @@ -8,7 +8,7 @@ muzzle { module.set("log4j") versions.set("[1.2,)") // version 1.2.15 has a bad dependency on javax.jms:jms:1.1 which was released as pom only - skip("1.1.3", "1.2.15") + skip("1.2.15") assertInverse.set(true) } } diff --git a/instrumentation/log4j/log4j-mdc-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/mdc/v1_2/Log4j1InstrumentationModule.java b/instrumentation/log4j/log4j-mdc-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/mdc/v1_2/Log4j1InstrumentationModule.java index 4f50030d567d..6e257a8a9865 100644 --- a/instrumentation/log4j/log4j-mdc-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/mdc/v1_2/Log4j1InstrumentationModule.java +++ b/instrumentation/log4j/log4j-mdc-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/mdc/v1_2/Log4j1InstrumentationModule.java @@ -5,12 +5,14 @@ package io.opentelemetry.javaagent.instrumentation.log4j.mdc.v1_2; +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; import static java.util.Arrays.asList; import com.google.auto.service.AutoService; import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import java.util.List; +import net.bytebuddy.matcher.ElementMatcher; @AutoService(InstrumentationModule.class) public class Log4j1InstrumentationModule extends InstrumentationModule { @@ -18,6 +20,11 @@ public Log4j1InstrumentationModule() { super("log4j-mdc", "log4j-mdc-1.2"); } + @Override + public ElementMatcher.Junction classLoaderMatcher() { + return hasClassesNamed("org.apache.log4j.MDC"); + } + @Override public List typeInstrumentations() { return asList(new CategoryInstrumentation(), new LoggingEventInstrumentation()); From d67c639256f115c09f26a1251ada89c7a603aa7e Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Thu, 17 Oct 2024 10:46:56 +0300 Subject: [PATCH 3/3] add explicit fail blocks because assertInverse can't be used --- instrumentation/jsp-2.3/javaagent/build.gradle.kts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/instrumentation/jsp-2.3/javaagent/build.gradle.kts b/instrumentation/jsp-2.3/javaagent/build.gradle.kts index 64736b46a75e..fc36f60a5036 100644 --- a/instrumentation/jsp-2.3/javaagent/build.gradle.kts +++ b/instrumentation/jsp-2.3/javaagent/build.gradle.kts @@ -10,8 +10,18 @@ muzzle { versions.set("[7.0.19,10)") // version 8.0.9 depends on org.eclipse.jdt.core.compiler:ecj:4.4RC4 which does not exist skip("8.0.9") - // can't add assertInverse.set(true) - // Because when muzzle check within the range [7.0.0, 7.0.19), it appears that org.eclipse.jdt.core.compiler:ecj:xx does not exist. + // not using assertInverse.set(true) because org.eclipse.jdt.core.compiler:ecj:xxx dependency + // is missing for versions in range [7.0.0, 7.0.19) + } + fail { + group.set("org.apache.tomcat") + module.set("tomcat-jasper") + versions.set("[,7.0.0)") + } + fail { + group.set("org.apache.tomcat") + module.set("tomcat-jasper") + versions.set("[10,)") } }