From 3be9357a699271f1b4a6d9b8235aba7a10e51915 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 16:35:30 +0000 Subject: [PATCH 1/6] Remove muzzle skip versions that are outside the declared version range These versions are tested as assertFail only (via assertInverse), and with lenient artifact resolution, missing/broken transitive dependencies no longer cause hard failures. For assertFail checks, fewer classes only add more mismatches, so these skips are no longer needed. Modules updated: - spring-webmvc-6.0, spring-webmvc-3.1 - spring-web-6.0, spring-web-3.1 - logback-appender-1.0 - opentelemetry-extension-annotations-1.0 - opentelemetry-extension-kotlin-1.0 - opentelemetry-api-1.0 - couchbase-3.4, couchbase-3.1.6, couchbase-3.1, couchbase-3.2 - ktor-3.0, ktor-2.0 - play-mvc-2.6, play-mvc-2.4 - javalin-7.0, javalin-5.0 - nats-2.17 - camel-2.20 - jaxws-axis2-1.6 - elasticsearch-transport-5.0, elasticsearch-transport-5.3 - jaxrs-2.0-resteasy-3.0, jaxrs-2.0-resteasy-3.1 (fail directives) - apache-httpclient-4.0 Co-authored-by: trask <218610+trask@users.noreply.github.com> Agent-Logs-Url: https://github.com/open-telemetry/opentelemetry-java-instrumentation/sessions/3d17bf9b-d57b-40ba-9978-37278d06ede3 --- .../apache-httpclient-4.0/javaagent/build.gradle.kts | 2 -- instrumentation/camel-2.20/javaagent/build.gradle.kts | 2 -- .../couchbase/couchbase-3.1.6/javaagent/build.gradle.kts | 2 -- .../couchbase/couchbase-3.1/javaagent/build.gradle.kts | 2 -- .../couchbase/couchbase-3.2/javaagent/build.gradle.kts | 2 -- .../couchbase/couchbase-3.4/javaagent/build.gradle.kts | 2 -- .../elasticsearch-transport-5.0/javaagent/build.gradle.kts | 7 ------- .../elasticsearch-transport-5.3/javaagent/build.gradle.kts | 7 ------- .../javalin/javalin-5.0/javaagent/build.gradle.kts | 2 -- .../javalin/javalin-7.0/javaagent/build.gradle.kts | 2 -- .../jaxrs-2.0-resteasy-3.0/javaagent/build.gradle.kts | 2 -- .../jaxrs-2.0-resteasy-3.1/javaagent/build.gradle.kts | 2 -- .../jaxws/jaxws-2.0-axis2-1.6/javaagent/build.gradle.kts | 5 ----- instrumentation/ktor/ktor-2.0/javaagent/build.gradle.kts | 4 ---- instrumentation/ktor/ktor-3.0/javaagent/build.gradle.kts | 4 ---- .../logback-appender-1.0/javaagent/build.gradle.kts | 3 --- instrumentation/nats/nats-2.17/javaagent/build.gradle.kts | 3 --- .../opentelemetry-api-1.0/javaagent/build.gradle.kts | 2 -- .../javaagent/build.gradle.kts | 1 - .../javaagent/build.gradle.kts | 1 - .../play/play-mvc/play-mvc-2.4/javaagent/build.gradle.kts | 3 --- .../play/play-mvc/play-mvc-2.6/javaagent/build.gradle.kts | 3 --- .../spring-web/spring-web-3.1/javaagent/build.gradle.kts | 2 -- .../spring-web/spring-web-6.0/javaagent/build.gradle.kts | 2 -- .../spring-webmvc-3.1/javaagent/build.gradle.kts | 5 ----- .../spring-webmvc-6.0/javaagent/build.gradle.kts | 5 ----- 26 files changed, 77 deletions(-) diff --git a/instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/build.gradle.kts b/instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/build.gradle.kts index 4c59414e20c1..ac1f170c222e 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/build.gradle.kts +++ b/instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/build.gradle.kts @@ -20,8 +20,6 @@ muzzle { module.set("dropwizard-client") versions.set("(,3.0.0)") assertInverse.set(true) - // Could not find com.google.code.findbugs:jsr305:. - skip("3.0.2", "4.0.2") } } diff --git a/instrumentation/camel-2.20/javaagent/build.gradle.kts b/instrumentation/camel-2.20/javaagent/build.gradle.kts index 4ecb3f8d3b0c..10231bde9eaa 100644 --- a/instrumentation/camel-2.20/javaagent/build.gradle.kts +++ b/instrumentation/camel-2.20/javaagent/build.gradle.kts @@ -8,8 +8,6 @@ muzzle { module.set("camel-core") versions.set("[2.19,3)") assertInverse.set(true) - // https://repo.maven.apache.org/maven2/org/apache/camel/core/4.12.0/core-4.12.0.pom is missing - skip("4.12.0") } } diff --git a/instrumentation/couchbase/couchbase-3.1.6/javaagent/build.gradle.kts b/instrumentation/couchbase/couchbase-3.1.6/javaagent/build.gradle.kts index 37aa6bd42dbe..cada03c90d29 100644 --- a/instrumentation/couchbase/couchbase-3.1.6/javaagent/build.gradle.kts +++ b/instrumentation/couchbase/couchbase-3.1.6/javaagent/build.gradle.kts @@ -7,8 +7,6 @@ muzzle { group.set("com.couchbase.client") module.set("java-client") versions.set("[3.1.6,3.2.0)") - // these versions were released as ".bundle" instead of ".jar" - skip("2.7.5", "2.7.8") assertInverse.set(true) } } diff --git a/instrumentation/couchbase/couchbase-3.1/javaagent/build.gradle.kts b/instrumentation/couchbase/couchbase-3.1/javaagent/build.gradle.kts index 66c909910dc4..4928631a2577 100644 --- a/instrumentation/couchbase/couchbase-3.1/javaagent/build.gradle.kts +++ b/instrumentation/couchbase/couchbase-3.1/javaagent/build.gradle.kts @@ -7,8 +7,6 @@ muzzle { group.set("com.couchbase.client") module.set("java-client") versions.set("[3.1,3.1.6)") - // these versions were released as ".bundle" instead of ".jar" - skip("2.7.5", "2.7.8") assertInverse.set(true) } } diff --git a/instrumentation/couchbase/couchbase-3.2/javaagent/build.gradle.kts b/instrumentation/couchbase/couchbase-3.2/javaagent/build.gradle.kts index 60d66320047b..379d02d3acc8 100644 --- a/instrumentation/couchbase/couchbase-3.2/javaagent/build.gradle.kts +++ b/instrumentation/couchbase/couchbase-3.2/javaagent/build.gradle.kts @@ -7,8 +7,6 @@ muzzle { group.set("com.couchbase.client") module.set("java-client") versions.set("[3.2.0,3.4.0)") - // these versions were released as ".bundle" instead of ".jar" - skip("2.7.5", "2.7.8") assertInverse.set(true) } } diff --git a/instrumentation/couchbase/couchbase-3.4/javaagent/build.gradle.kts b/instrumentation/couchbase/couchbase-3.4/javaagent/build.gradle.kts index 5436a305edb9..d93059b94ad4 100644 --- a/instrumentation/couchbase/couchbase-3.4/javaagent/build.gradle.kts +++ b/instrumentation/couchbase/couchbase-3.4/javaagent/build.gradle.kts @@ -7,8 +7,6 @@ muzzle { group.set("com.couchbase.client") module.set("java-client") versions.set("[3.4.0,)") - // these versions were released as ".bundle" instead of ".jar" - skip("2.7.5", "2.7.8") assertInverse.set(true) } } diff --git a/instrumentation/elasticsearch/elasticsearch-transport-5.0/javaagent/build.gradle.kts b/instrumentation/elasticsearch/elasticsearch-transport-5.0/javaagent/build.gradle.kts index 53ce0034efeb..ad85f64ac57f 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-5.0/javaagent/build.gradle.kts +++ b/instrumentation/elasticsearch/elasticsearch-transport-5.0/javaagent/build.gradle.kts @@ -7,10 +7,6 @@ muzzle { group.set("org.elasticsearch.client") module.set("transport") versions.set("[5.0.0,5.3.0)") - // version 7.11.0 depends on org.elasticsearch:elasticsearch:7.11.0 which depends on - // org.elasticsearch:elasticsearch-plugin-classloader:7.11.0 which does not exist - // version 7.17.8 has broken module metadata - skip("7.11.0", "7.17.8") // version 8.8.0 depends on elasticsearch:elasticsearch-preallocate which doesn't exist excludeDependency("org.elasticsearch:elasticsearch-preallocate") assertInverse.set(true) @@ -19,9 +15,6 @@ muzzle { group.set("org.elasticsearch") module.set("elasticsearch") versions.set("[5.0.0,5.3.0)") - // version 7.11.0 depends on org.elasticsearch:elasticsearch:7.11.0 which depends on - // org.elasticsearch:elasticsearch-plugin-classloader:7.11.0 which does not exist - skip("7.11.0") // version 8.8.0 depends on elasticsearch:elasticsearch-preallocate which doesn't exist excludeDependency("org.elasticsearch:elasticsearch-preallocate") assertInverse.set(true) diff --git a/instrumentation/elasticsearch/elasticsearch-transport-5.3/javaagent/build.gradle.kts b/instrumentation/elasticsearch/elasticsearch-transport-5.3/javaagent/build.gradle.kts index 5e273a3d8764..5399da6f6f64 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-5.3/javaagent/build.gradle.kts +++ b/instrumentation/elasticsearch/elasticsearch-transport-5.3/javaagent/build.gradle.kts @@ -7,10 +7,6 @@ muzzle { group.set("org.elasticsearch.client") module.set("transport") versions.set("[5.3.0,6.0.0)") - // version 7.11.0 depends on org.elasticsearch:elasticsearch:7.11.0 which depends on - // org.elasticsearch:elasticsearch-plugin-classloader:7.11.0 which does not exist - // version 7.17.8 has broken module metadata - skip("7.11.0", "7.17.8") // version 8.8.0 depends on elasticsearch:elasticsearch-preallocate which doesn't exist excludeDependency("org.elasticsearch:elasticsearch-preallocate") assertInverse.set(true) @@ -19,9 +15,6 @@ muzzle { group.set("org.elasticsearch") module.set("elasticsearch") versions.set("[5.3.0,6.0.0)") - // version 7.11.0 depends on org.elasticsearch:elasticsearch-plugin-classloader:7.11.0 - // which does not exist - skip("7.11.0") // version 8.8.0 depends on elasticsearch:elasticsearch-preallocate which doesn't exist excludeDependency("org.elasticsearch:elasticsearch-preallocate") assertInverse.set(true) diff --git a/instrumentation/javalin/javalin-5.0/javaagent/build.gradle.kts b/instrumentation/javalin/javalin-5.0/javaagent/build.gradle.kts index 111deb564dd4..8a796f4e15f0 100644 --- a/instrumentation/javalin/javalin-5.0/javaagent/build.gradle.kts +++ b/instrumentation/javalin/javalin-5.0/javaagent/build.gradle.kts @@ -7,8 +7,6 @@ muzzle { group.set("io.javalin") module.set("javalin") versions.set("[5.0.0,7.0.0)") - // 3.2.0 depends on org.meteogroup.jbrotli:jbrotli:0.5.0 that is not available in central - skip("3.2.0") assertInverse.set(true) } } diff --git a/instrumentation/javalin/javalin-7.0/javaagent/build.gradle.kts b/instrumentation/javalin/javalin-7.0/javaagent/build.gradle.kts index 3e6237ed195d..993d8e061bbe 100644 --- a/instrumentation/javalin/javalin-7.0/javaagent/build.gradle.kts +++ b/instrumentation/javalin/javalin-7.0/javaagent/build.gradle.kts @@ -7,8 +7,6 @@ muzzle { group.set("io.javalin") module.set("javalin") versions.set("[7.0.0,)") - // 3.2.0 depends on org.meteogroup.jbrotli:jbrotli:0.5.0 that is not available in central - skip("3.2.0") assertInverse.set(true) } } diff --git a/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.0/javaagent/build.gradle.kts b/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.0/javaagent/build.gradle.kts index 6c107f778ba5..dd39bafffc9e 100644 --- a/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.0/javaagent/build.gradle.kts +++ b/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.0/javaagent/build.gradle.kts @@ -22,8 +22,6 @@ muzzle { group.set("org.jboss.resteasy") module.set("resteasy-jaxrs") versions.set("(2.1.0.GA,3.0.0.Final)") - // missing dependencies - skip("2.3.10.Final") } fail { diff --git a/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.1/javaagent/build.gradle.kts b/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.1/javaagent/build.gradle.kts index 6f45e849c53b..c8b4c86a6a5c 100644 --- a/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.1/javaagent/build.gradle.kts +++ b/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.1/javaagent/build.gradle.kts @@ -22,8 +22,6 @@ muzzle { group.set("org.jboss.resteasy") module.set("resteasy-jaxrs") versions.set("(2.1.0.GA,3.1.0.Final)") - // missing dependencies - skip("2.3.10.Final") } fail { diff --git a/instrumentation/jaxws/jaxws-2.0-axis2-1.6/javaagent/build.gradle.kts b/instrumentation/jaxws/jaxws-2.0-axis2-1.6/javaagent/build.gradle.kts index f8d29d4766ca..d04e9ff16f51 100644 --- a/instrumentation/jaxws/jaxws-2.0-axis2-1.6/javaagent/build.gradle.kts +++ b/instrumentation/jaxws/jaxws-2.0-axis2-1.6/javaagent/build.gradle.kts @@ -8,11 +8,6 @@ muzzle { module.set("axis2-jaxws") versions.set("[1.6.0,)") assertInverse.set(true) - // version 1.2 depends on org.apache.axis2:axis2-kernel:1.2 - // which depends on org.apache.neethi:neethi:2.0.1 which does not exist - // version 1.3 depends on org.apache.axis2:axis2-kernel:1.3 - // which depends on org.apache.woden:woden:1.0-incubating-M7b which does not exist - skip("1.2", "1.3") } } diff --git a/instrumentation/ktor/ktor-2.0/javaagent/build.gradle.kts b/instrumentation/ktor/ktor-2.0/javaagent/build.gradle.kts index f9aa3941f752..d7271dda679f 100644 --- a/instrumentation/ktor/ktor-2.0/javaagent/build.gradle.kts +++ b/instrumentation/ktor/ktor-2.0/javaagent/build.gradle.kts @@ -12,8 +12,6 @@ muzzle { versions.set("[2.0.0,3.0.0)") assertInverse.set(true) excludeInstrumentationName("ktor-server") - // missing dependencies - skip("1.1.0", "1.1.1", "1.1.5") } pass { group.set("io.ktor") @@ -21,8 +19,6 @@ muzzle { versions.set("[2.0.0,3.0.0)") assertInverse.set(true) excludeInstrumentationName("ktor-client") - // missing dependencies - skip("1.1.0", "1.1.1") } } diff --git a/instrumentation/ktor/ktor-3.0/javaagent/build.gradle.kts b/instrumentation/ktor/ktor-3.0/javaagent/build.gradle.kts index 437afba54129..2806b09673e4 100644 --- a/instrumentation/ktor/ktor-3.0/javaagent/build.gradle.kts +++ b/instrumentation/ktor/ktor-3.0/javaagent/build.gradle.kts @@ -12,8 +12,6 @@ muzzle { versions.set("[3.0.0,)") assertInverse.set(true) excludeInstrumentationName("ktor-server") - // missing dependencies - skip("1.1.0", "1.1.1", "1.1.5") } pass { group.set("io.ktor") @@ -21,8 +19,6 @@ muzzle { versions.set("[3.0.0,)") assertInverse.set(true) excludeInstrumentationName("ktor-client") - // missing dependencies - skip("1.1.0", "1.1.1") } } diff --git a/instrumentation/logback/logback-appender-1.0/javaagent/build.gradle.kts b/instrumentation/logback/logback-appender-1.0/javaagent/build.gradle.kts index b5a061560804..aeec8959b2e4 100644 --- a/instrumentation/logback/logback-appender-1.0/javaagent/build.gradle.kts +++ b/instrumentation/logback/logback-appender-1.0/javaagent/build.gradle.kts @@ -7,9 +7,6 @@ muzzle { group.set("ch.qos.logback") module.set("logback-classic") versions.set("[0.9.16,)") - skip("0.9.6") // has dependency on SNAPSHOT org.slf4j:slf4j-api:1.4.0-SNAPSHOT - skip("0.8") // has dependency on non-existent org.slf4j:slf4j-api:1.1.0-RC0 - skip("0.6") // has dependency on pom only javax.jms:jms:1.1 assertInverse.set(true) } } diff --git a/instrumentation/nats/nats-2.17/javaagent/build.gradle.kts b/instrumentation/nats/nats-2.17/javaagent/build.gradle.kts index ea0dcf8ad4c5..b485e8e00ef1 100644 --- a/instrumentation/nats/nats-2.17/javaagent/build.gradle.kts +++ b/instrumentation/nats/nats-2.17/javaagent/build.gradle.kts @@ -8,9 +8,6 @@ muzzle { module.set("jnats") versions.set("[2.17.2,)") - // Could not find io.nats:nats-parent:1.0-SNAPSHOT - skip("0.5.0", "0.5.1") - assertInverse.set(true) } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/build.gradle.kts index a7a4c7f680f8..0866b3785e20 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/build.gradle.kts @@ -7,8 +7,6 @@ muzzle { group.set("io.opentelemetry") module.set("opentelemetry-api") versions.set("[0.17.0,)") - skip("0.13.0") // has a bad dependency on non-alpha api-metric 0.13.0 - skip("0.9.0") // has no pom file in maven central assertInverse.set(true) } } diff --git a/instrumentation/opentelemetry-extension-annotations-1.0/javaagent/build.gradle.kts b/instrumentation/opentelemetry-extension-annotations-1.0/javaagent/build.gradle.kts index 4ed9b2658161..f523d89ae2c0 100644 --- a/instrumentation/opentelemetry-extension-annotations-1.0/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-extension-annotations-1.0/javaagent/build.gradle.kts @@ -7,7 +7,6 @@ muzzle { group.set("io.opentelemetry") module.set("opentelemetry-extension-annotations") versions.set("[0.16.0,)") - skip("0.13.0") // opentelemetry-api has a bad dependency on non-alpha api-metric 0.13.0 assertInverse.set(true) } } diff --git a/instrumentation/opentelemetry-extension-kotlin-1.0/javaagent/build.gradle.kts b/instrumentation/opentelemetry-extension-kotlin-1.0/javaagent/build.gradle.kts index e1a91cc09888..40791ba4584a 100644 --- a/instrumentation/opentelemetry-extension-kotlin-1.0/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-extension-kotlin-1.0/javaagent/build.gradle.kts @@ -11,7 +11,6 @@ muzzle { module.set("opentelemetry-extension-kotlin") versions.set("[0.17.0,)") assertInverse.set(true) - skip("0.13.0") // has a bad dependency on non-alpha api-metric 0.13.0 extraDependency("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.0") } } diff --git a/instrumentation/play/play-mvc/play-mvc-2.4/javaagent/build.gradle.kts b/instrumentation/play/play-mvc/play-mvc-2.4/javaagent/build.gradle.kts index 4b59f78c81fc..b67dc841240a 100644 --- a/instrumentation/play/play-mvc/play-mvc-2.4/javaagent/build.gradle.kts +++ b/instrumentation/play/play-mvc/play-mvc-2.4/javaagent/build.gradle.kts @@ -8,9 +8,6 @@ muzzle { module.set("play_2.11") versions.set("[2.4.0,2.6)") assertInverse.set(true) - // versions 2.3.9 and 2.3.10 depends on com.typesafe.netty:netty-http-pipelining:1.1.2 - // which does not exist - skip("2.3.9", "2.3.10") } fail { group.set("com.typesafe.play") diff --git a/instrumentation/play/play-mvc/play-mvc-2.6/javaagent/build.gradle.kts b/instrumentation/play/play-mvc/play-mvc-2.6/javaagent/build.gradle.kts index 50c82d920423..6b57ae863dc3 100644 --- a/instrumentation/play/play-mvc/play-mvc-2.6/javaagent/build.gradle.kts +++ b/instrumentation/play/play-mvc/play-mvc-2.6/javaagent/build.gradle.kts @@ -11,9 +11,6 @@ muzzle { module.set("play_$scalaVersion") versions.set("[$playVersion,)") assertInverse.set(true) - // versions 2.3.9 and 2.3.10 depends on com.typesafe.netty:netty-http-pipelining:1.1.2 - // which does not exist - skip("2.3.9", "2.3.10") } pass { group.set("com.typesafe.play") diff --git a/instrumentation/spring/spring-web/spring-web-3.1/javaagent/build.gradle.kts b/instrumentation/spring/spring-web/spring-web-3.1/javaagent/build.gradle.kts index b50870bfbac9..15cd71b117da 100644 --- a/instrumentation/spring/spring-web/spring-web-3.1/javaagent/build.gradle.kts +++ b/instrumentation/spring/spring-web/spring-web-3.1/javaagent/build.gradle.kts @@ -8,8 +8,6 @@ muzzle { group.set("org.springframework") module.set("spring-web") versions.set("[3.1.0.RELEASE,6)") - // these versions depend on javax.faces:jsf-api:1.1 which was released as pom only - skip("1.2.1", "1.2.2", "1.2.3", "1.2.4") assertInverse.set(true) } } diff --git a/instrumentation/spring/spring-web/spring-web-6.0/javaagent/build.gradle.kts b/instrumentation/spring/spring-web/spring-web-6.0/javaagent/build.gradle.kts index b7e9caaa6242..62036d9bbae5 100644 --- a/instrumentation/spring/spring-web/spring-web-6.0/javaagent/build.gradle.kts +++ b/instrumentation/spring/spring-web/spring-web-6.0/javaagent/build.gradle.kts @@ -8,8 +8,6 @@ muzzle { group.set("org.springframework") module.set("spring-web") versions.set("[6.0.0,)") - // these versions depend on javax.faces:jsf-api:1.1 which was released as pom only - skip("1.2.1", "1.2.2", "1.2.3", "1.2.4") assertInverse.set(true) } } diff --git a/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/build.gradle.kts b/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/build.gradle.kts index 0961b2a2851a..d6204499d392 100644 --- a/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/build.gradle.kts +++ b/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/build.gradle.kts @@ -8,11 +8,6 @@ muzzle { group.set("org.springframework") module.set("spring-webmvc") versions.set("[3.1.0.RELEASE,6)") - // these versions depend on org.springframework:spring-web which has a bad dependency on - // javax.faces:jsf-api:1.1 which was released as pom only - skip("1.2.1", "1.2.2", "1.2.3", "1.2.4") - // 3.2.1.RELEASE has transitive dependencies like spring-web as "provided" instead of "compile" - skip("3.2.1.RELEASE") extraDependency("javax.servlet:javax.servlet-api:3.0.1") assertInverse.set(true) } diff --git a/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/build.gradle.kts b/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/build.gradle.kts index 39b9ba76e8f7..6e667678b089 100644 --- a/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/build.gradle.kts +++ b/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/build.gradle.kts @@ -8,11 +8,6 @@ muzzle { group.set("org.springframework") module.set("spring-webmvc") versions.set("[6.0.0,)") - // these versions depend on org.springframework:spring-web which has a bad dependency on - // javax.faces:jsf-api:1.1 which was released as pom only - skip("1.2.1", "1.2.2", "1.2.3", "1.2.4") - // 3.2.1.RELEASE has transitive dependencies like spring-web as "provided" instead of "compile" - skip("3.2.1.RELEASE") extraDependency("jakarta.servlet:jakarta.servlet-api:5.0.0") assertInverse.set(true) } From cf61f99a19d3ff101e46778abecc58d45436996c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 16:46:25 +0000 Subject: [PATCH 2/6] Revert play-mvc-2.4 and spring-webmvc-3.1 skip removals that caused muzzle failures play-mvc-2.4: version 2.3.9 is close to the range boundary [2.4.0,2.6) and is actually compatible with the instrumentation, causing assertFail to incorrectly pass. Keep the skip. spring-webmvc-3.1: version 3.2.1.RELEASE is inside the range [3.1.0.RELEASE,6) and has "provided" scope transitive dependencies that cause false muzzle failures. Keep the skip. Co-authored-by: trask <218610+trask@users.noreply.github.com> Agent-Logs-Url: https://github.com/open-telemetry/opentelemetry-java-instrumentation/sessions/3d17bf9b-d57b-40ba-9978-37278d06ede3 --- .../play/play-mvc/play-mvc-2.4/javaagent/build.gradle.kts | 3 +++ .../spring-webmvc/spring-webmvc-3.1/javaagent/build.gradle.kts | 2 ++ 2 files changed, 5 insertions(+) diff --git a/instrumentation/play/play-mvc/play-mvc-2.4/javaagent/build.gradle.kts b/instrumentation/play/play-mvc/play-mvc-2.4/javaagent/build.gradle.kts index b67dc841240a..4b59f78c81fc 100644 --- a/instrumentation/play/play-mvc/play-mvc-2.4/javaagent/build.gradle.kts +++ b/instrumentation/play/play-mvc/play-mvc-2.4/javaagent/build.gradle.kts @@ -8,6 +8,9 @@ muzzle { module.set("play_2.11") versions.set("[2.4.0,2.6)") assertInverse.set(true) + // versions 2.3.9 and 2.3.10 depends on com.typesafe.netty:netty-http-pipelining:1.1.2 + // which does not exist + skip("2.3.9", "2.3.10") } fail { group.set("com.typesafe.play") diff --git a/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/build.gradle.kts b/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/build.gradle.kts index d6204499d392..603c2721e4db 100644 --- a/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/build.gradle.kts +++ b/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/build.gradle.kts @@ -8,6 +8,8 @@ muzzle { group.set("org.springframework") module.set("spring-webmvc") versions.set("[3.1.0.RELEASE,6)") + // 3.2.1.RELEASE has transitive dependencies like spring-web as "provided" instead of "compile" + skip("3.2.1.RELEASE") extraDependency("javax.servlet:javax.servlet-api:3.0.1") assertInverse.set(true) } From 11098e72f035c6f99b4ec59c13645e6425649d4a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 16:59:13 +0000 Subject: [PATCH 3/6] Remove more muzzle skip versions (Phase 2) Remove skip versions that are inside the version range but don't actually exist on Maven Central, or that pass muzzle validation with lenient resolution. Successful removals: - log4j-appender-1.2: skip("1.2.15") - version passes muzzle with lenient - log4j-mdc-1.2: skip("1.2.15") - version doesn't exist on Maven Central - jsp-2.3: skip("8.0.9") - version doesn't exist on Maven Central - hikaricp-3.0: skip("4.0.0") - version doesn't exist on Maven Central - elasticsearch-6.0: skip("7.11.0","7.17.8") - versions don't exist - oshi: skip("6.1.1") - version doesn't exist on Maven Central - spring-rabbit: skip("1.6.4.RELEASE","2.1.1.RELEASE") - versions don't exist - c3p0: skip("0.9.2-pre2-RELEASE","0.9.2-pre3") - passes muzzle - alibaba-druid: skip("1.0.30") - version doesn't exist on Maven Central - guava: skip("32.1.0-android") - version doesn't exist on Maven Central - jedis-4.0: skip("jedis-3.6.2") - passes muzzle - aws-sdk-2.2: skip("2.17.200") x5 - version doesn't exist - grails-3.0: all skips removed - none exist on Maven Central - undertow: skip("2.2.25.Final") - version doesn't exist - quartz: skip("1.7.0") - version doesn't exist (outside range anyway) Kept (still needed): - couchbase-2.0/2.6: skip("2.7.5","2.7.8") - 2.7.8 has bundle packaging causing muzzle failures - grizzly-2.3: skip("5.0.0") - version exists and fails muzzle - graphql-java-12.0/20.0: skip("230521-nf-execution") - version is compatible, causing assertFail to incorrectly pass - jedis-3.0: skip("jedis-3.6.2") - version is compatible, causing assertFail to incorrectly pass Co-authored-by: trask <218610+trask@users.noreply.github.com> Agent-Logs-Url: https://github.com/open-telemetry/opentelemetry-java-instrumentation/sessions/3d17bf9b-d57b-40ba-9978-37278d06ede3 --- .../alibaba-druid-1.0/javaagent/build.gradle.kts | 1 - .../aws-sdk-2.2/javaagent/build.gradle.kts | 15 --------------- .../c3p0-0.9/javaagent/build.gradle.kts | 2 -- .../javaagent/build.gradle.kts | 7 ------- .../grails-3.0/javaagent/build.gradle.kts | 7 ------- .../guava-10.0/javaagent/build.gradle.kts | 1 - .../hikaricp-3.0/javaagent/build.gradle.kts | 3 --- .../jedis/jedis-4.0/javaagent/build.gradle.kts | 1 - .../jsp-2.3/javaagent/build.gradle.kts | 2 -- .../log4j-appender-1.2/javaagent/build.gradle.kts | 2 -- .../log4j-mdc-1.2/javaagent/build.gradle.kts | 2 -- instrumentation/oshi/javaagent/build.gradle.kts | 2 -- .../quartz-2.0/javaagent/build.gradle.kts | 1 - .../spring-rabbit-1.0/javaagent/build.gradle.kts | 2 -- .../undertow-1.4/javaagent/build.gradle.kts | 2 -- 15 files changed, 50 deletions(-) diff --git a/instrumentation/alibaba-druid-1.0/javaagent/build.gradle.kts b/instrumentation/alibaba-druid-1.0/javaagent/build.gradle.kts index fa77a1f42248..d116fd06402a 100644 --- a/instrumentation/alibaba-druid-1.0/javaagent/build.gradle.kts +++ b/instrumentation/alibaba-druid-1.0/javaagent/build.gradle.kts @@ -7,7 +7,6 @@ muzzle { group.set("com.alibaba") module.set("druid") versions.set("(,)") - skip("1.0.30") } } diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/javaagent/build.gradle.kts b/instrumentation/aws-sdk/aws-sdk-2.2/javaagent/build.gradle.kts index b1d6d70f5747..5a5f8012a234 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/javaagent/build.gradle.kts +++ b/instrumentation/aws-sdk/aws-sdk-2.2/javaagent/build.gradle.kts @@ -17,9 +17,6 @@ muzzle { excludeInstrumentationName("aws-sdk-2.2-sqs") excludeInstrumentationName("aws-sdk-2.2-sns") excludeInstrumentationName("aws-sdk-2.2-lambda") - - // several software.amazon.awssdk artifacts are missing for this version - skip("2.17.200") } fail { @@ -33,9 +30,6 @@ muzzle { // "fail" asserts that *all* the instrumentation modules fail to load, but the core one is // actually expected to succeed, so exclude it from checks. excludeInstrumentationName("aws-sdk-2.2-core") - - // several software.amazon.awssdk artifacts are missing for this version - skip("2.17.200") } pass { @@ -49,9 +43,6 @@ muzzle { excludeInstrumentationName("aws-sdk-2.2-bedrock-runtime") excludeInstrumentationName("aws-sdk-2.2-sns") excludeInstrumentationName("aws-sdk-2.2-lambda") - - // several software.amazon.awssdk artifacts are missing for this version - skip("2.17.200") } pass { @@ -65,9 +56,6 @@ muzzle { excludeInstrumentationName("aws-sdk-2.2-bedrock-runtime") excludeInstrumentationName("aws-sdk-2.2-sqs") excludeInstrumentationName("aws-sdk-2.2-lambda") - - // several software.amazon.awssdk artifacts are missing for this version - skip("2.17.200") } pass { group.set("software.amazon.awssdk") @@ -80,9 +68,6 @@ muzzle { excludeInstrumentationName("aws-sdk-2.2-bedrock-runtime") excludeInstrumentationName("aws-sdk-2.2-sqs") excludeInstrumentationName("aws-sdk-2.2-sns") - - // several software.amazon.awssdk artifacts are missing for this version - skip("2.17.200") } pass { group.set("software.amazon.awssdk") diff --git a/instrumentation/c3p0-0.9/javaagent/build.gradle.kts b/instrumentation/c3p0-0.9/javaagent/build.gradle.kts index b63a348e8c70..9ac6840c13fb 100644 --- a/instrumentation/c3p0-0.9/javaagent/build.gradle.kts +++ b/instrumentation/c3p0-0.9/javaagent/build.gradle.kts @@ -7,8 +7,6 @@ muzzle { group.set("com.mchange") module.set("c3p0") versions.set("(,)") - // these versions have missing dependencies in maven central - skip("0.9.2-pre2-RELEASE", "0.9.2-pre3") } } diff --git a/instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/build.gradle.kts b/instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/build.gradle.kts index f0b6edba89f5..7ea0f43c4ed6 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/build.gradle.kts +++ b/instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/build.gradle.kts @@ -7,10 +7,6 @@ muzzle { group.set("org.elasticsearch.client") module.set("transport") versions.set("[6.0.0,)") - // version 7.11.0 depends on org.elasticsearch:elasticsearch:7.11.0 which depends on - // org.elasticsearch:elasticsearch-plugin-classloader:7.11.0 which does not exist - // version 7.17.8 has broken module metadata - skip("7.11.0", "7.17.8") // version 8.8.0 depends on elasticsearch:elasticsearch-preallocate which doesn't exist excludeDependency("org.elasticsearch:elasticsearch-preallocate") assertInverse.set(true) @@ -19,9 +15,6 @@ muzzle { group.set("org.elasticsearch") module.set("elasticsearch") versions.set("[6.0.0,8.0.0)") - // version 7.11.0 depends on org.elasticsearch:elasticsearch:7.11.0 which depends on - // org.elasticsearch:elasticsearch-plugin-classloader:7.11.0 which does not exist - skip("7.11.0") // version 8.8.0 depends on elasticsearch:elasticsearch-preallocate which doesn't exist excludeDependency("org.elasticsearch:elasticsearch-preallocate") assertInverse.set(true) diff --git a/instrumentation/grails-3.0/javaagent/build.gradle.kts b/instrumentation/grails-3.0/javaagent/build.gradle.kts index a217d6bf44b9..e187dab2d5ec 100644 --- a/instrumentation/grails-3.0/javaagent/build.gradle.kts +++ b/instrumentation/grails-3.0/javaagent/build.gradle.kts @@ -7,13 +7,6 @@ muzzle { group.set("org.grails") module.set("grails-web-url-mappings") versions.set("[3.0,)") - // version 3.1.15 depends on org.grails:grails-datastore-core:5.0.13.BUILD-SNAPSHOT - // which (obviously) does not exist - // version 3.3.6 depends on org.grails:grails-datastore-core:6.1.10.BUILD-SNAPSHOT - // which (also obviously) does not exist - skip("3.1.15", "3.3.6") - // these versions pass if you add the grails maven repository (https://repo.grails.org/artifactory/core) - skip("3.2.0", "3.3.0", "3.3.1", "3.3.2", "3.3.3", "3.3.10", "3.3.13", "3.3.14", "3.3.15", "3.3.16", "3.3.17", "3.3.18", "4.0.0", "4.0.1", "4.0.5", "4.0.6", "4.0.7", "4.0.8", "4.0.9", "4.0.10", "4.0.11", "4.0.12", "4.0.13") assertInverse.set(true) } } diff --git a/instrumentation/guava-10.0/javaagent/build.gradle.kts b/instrumentation/guava-10.0/javaagent/build.gradle.kts index a432aa870111..b3d25969fcf4 100644 --- a/instrumentation/guava-10.0/javaagent/build.gradle.kts +++ b/instrumentation/guava-10.0/javaagent/build.gradle.kts @@ -7,7 +7,6 @@ muzzle { group.set("com.google.guava") module.set("guava") versions.set("[10.0,]") - skip("32.1.0-android") assertInverse.set(true) } } diff --git a/instrumentation/hikaricp-3.0/javaagent/build.gradle.kts b/instrumentation/hikaricp-3.0/javaagent/build.gradle.kts index 038775a72314..4755eac4c8a8 100644 --- a/instrumentation/hikaricp-3.0/javaagent/build.gradle.kts +++ b/instrumentation/hikaricp-3.0/javaagent/build.gradle.kts @@ -8,9 +8,6 @@ muzzle { module.set("HikariCP") versions.set("[3.0.0,)") // muzzle does not detect PoolStats method references used - some of these methods were introduced in 3.0 and we can't assertInverse - - // 4.0.0 uses a broken slf4j version: the "${slf4j.version}" placeholder is taken literally - skip("4.0.0") } } diff --git a/instrumentation/jedis/jedis-4.0/javaagent/build.gradle.kts b/instrumentation/jedis/jedis-4.0/javaagent/build.gradle.kts index d85b0f4e6325..a25d9934144d 100644 --- a/instrumentation/jedis/jedis-4.0/javaagent/build.gradle.kts +++ b/instrumentation/jedis/jedis-4.0/javaagent/build.gradle.kts @@ -7,7 +7,6 @@ muzzle { group.set("redis.clients") module.set("jedis") versions.set("[4.0.0-beta1,)") - skip("jedis-3.6.2") assertInverse.set(true) } } diff --git a/instrumentation/jsp-2.3/javaagent/build.gradle.kts b/instrumentation/jsp-2.3/javaagent/build.gradle.kts index b88f6e9538d8..a9732b9aa8ea 100644 --- a/instrumentation/jsp-2.3/javaagent/build.gradle.kts +++ b/instrumentation/jsp-2.3/javaagent/build.gradle.kts @@ -8,8 +8,6 @@ muzzle { module.set("tomcat-jasper") // 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") // 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) } 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 0e503f416723..13d273e097f8 100644 --- a/instrumentation/log4j/log4j-appender-1.2/javaagent/build.gradle.kts +++ b/instrumentation/log4j/log4j-appender-1.2/javaagent/build.gradle.kts @@ -7,8 +7,6 @@ muzzle { group.set("log4j") 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") 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 0be275ae3ab2..05e8142d814e 100644 --- a/instrumentation/log4j/log4j-mdc-1.2/javaagent/build.gradle.kts +++ b/instrumentation/log4j/log4j-mdc-1.2/javaagent/build.gradle.kts @@ -7,8 +7,6 @@ muzzle { group.set("log4j") 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") assertInverse.set(true) } } diff --git a/instrumentation/oshi/javaagent/build.gradle.kts b/instrumentation/oshi/javaagent/build.gradle.kts index 6b517888ea5b..165f380d49f9 100644 --- a/instrumentation/oshi/javaagent/build.gradle.kts +++ b/instrumentation/oshi/javaagent/build.gradle.kts @@ -7,8 +7,6 @@ muzzle { group.set("com.github.oshi") module.set("oshi-core") versions.set("[5.3.1,)") - // Could not parse POM https://repo.maven.apache.org/maven2/com/github/oshi/oshi-core/6.1.1/oshi-core-6.1.1.pom - skip("6.1.1") } } diff --git a/instrumentation/quartz-2.0/javaagent/build.gradle.kts b/instrumentation/quartz-2.0/javaagent/build.gradle.kts index 31b78e8c3f02..6bc671a493ad 100644 --- a/instrumentation/quartz-2.0/javaagent/build.gradle.kts +++ b/instrumentation/quartz-2.0/javaagent/build.gradle.kts @@ -8,7 +8,6 @@ muzzle { module.set("quartz") versions.set("[2.0.0,)") assertInverse.set(true) - skip("1.7.0") // missing in maven central } } diff --git a/instrumentation/spring/spring-rabbit-1.0/javaagent/build.gradle.kts b/instrumentation/spring/spring-rabbit-1.0/javaagent/build.gradle.kts index 50183a7a57ba..6885815bc26b 100644 --- a/instrumentation/spring/spring-rabbit-1.0/javaagent/build.gradle.kts +++ b/instrumentation/spring/spring-rabbit-1.0/javaagent/build.gradle.kts @@ -8,8 +8,6 @@ muzzle { group.set("org.springframework.amqp") module.set("spring-rabbit") versions.set("(,)") - // Problematic release depending on snapshots - skip("1.6.4.RELEASE", "2.1.1.RELEASE") } } diff --git a/instrumentation/undertow-1.4/javaagent/build.gradle.kts b/instrumentation/undertow-1.4/javaagent/build.gradle.kts index cffe9eb42131..c045ec2bd37c 100644 --- a/instrumentation/undertow-1.4/javaagent/build.gradle.kts +++ b/instrumentation/undertow-1.4/javaagent/build.gradle.kts @@ -8,8 +8,6 @@ muzzle { module.set("undertow-core") versions.set("[1.4.0.Final,)") assertInverse.set(true) - // release missing in maven central - skip("2.2.25.Final") } } From 1ac837577bcb1fe6bdc74a3d76e8bdbbb43ec04c Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Tue, 24 Mar 2026 09:48:49 -0700 Subject: [PATCH 4/6] fix --- instrumentation/oshi/javaagent/build.gradle.kts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/instrumentation/oshi/javaagent/build.gradle.kts b/instrumentation/oshi/javaagent/build.gradle.kts index 26895d342534..6ddc6e97cc17 100644 --- a/instrumentation/oshi/javaagent/build.gradle.kts +++ b/instrumentation/oshi/javaagent/build.gradle.kts @@ -8,6 +8,8 @@ muzzle { module.set("oshi-core") versions.set("[5.0.0,)") assertInverse.set(true) + // Could not parse POM https://repo.maven.apache.org/maven2/com/github/oshi/oshi-core/6.1.1/oshi-core-6.1.1.pom + skip("6.1.1") } } From 68cef77da85a997495c70ae3ee182461532892f2 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Fri, 17 Apr 2026 09:24:03 +0300 Subject: [PATCH 5/6] restore skip for guava --- instrumentation/guava-10.0/javaagent/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/instrumentation/guava-10.0/javaagent/build.gradle.kts b/instrumentation/guava-10.0/javaagent/build.gradle.kts index b3d25969fcf4..a432aa870111 100644 --- a/instrumentation/guava-10.0/javaagent/build.gradle.kts +++ b/instrumentation/guava-10.0/javaagent/build.gradle.kts @@ -7,6 +7,7 @@ muzzle { group.set("com.google.guava") module.set("guava") versions.set("[10.0,]") + skip("32.1.0-android") assertInverse.set(true) } } From 92188eaeb0d8a7953bef04d607bffe1165f25ebc Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Fri, 17 Apr 2026 10:15:38 +0300 Subject: [PATCH 6/6] add missing file --- .../spring-web-3.1/testing/build.gradle.kts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 instrumentation/spring/spring-web/spring-web-3.1/testing/build.gradle.kts diff --git a/instrumentation/spring/spring-web/spring-web-3.1/testing/build.gradle.kts b/instrumentation/spring/spring-web/spring-web-3.1/testing/build.gradle.kts new file mode 100644 index 000000000000..da16dbde2c70 --- /dev/null +++ b/instrumentation/spring/spring-web/spring-web-3.1/testing/build.gradle.kts @@ -0,0 +1,25 @@ +plugins { + id("otel.javaagent-testing") +} + +dependencies { + library("org.springframework:spring-web:3.1.0.RELEASE") + + testInstrumentation(project(":instrumentation:http-url-connection:javaagent")) + testInstrumentation(project(":instrumentation:spring:spring-web:spring-web-6.0:javaagent")) + + latestDepTestLibrary("org.springframework:spring-web:5.+") // see spring-web-6.0 module +} + +tasks { + val testStableSemconv by registering(Test::class) { + testClassesDirs = sourceSets.test.get().output.classesDirs + classpath = sourceSets.test.get().runtimeClasspath + jvmArgs("-Dotel.semconv-stability.opt-in=service.peer") + systemProperty("metadataConfig", "otel.semconv-stability.opt-in=service.peer") + } + + check { + dependsOn(testStableSemconv) + } +}