From 706fb51d6d27c1f1e5b2dd3cd748fb7eef03df8a Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 30 Oct 2025 16:51:15 -0400 Subject: [PATCH 1/2] JAXWS Metro metadata --- docs/instrumentation-list.yaml | 17 ++++++++++ instrumentation-docs/instrumentations.sh | 1 + .../build.gradle.kts | 32 ------------------- .../javaagent/build.gradle.kts | 29 +++++++++++++++++ .../metro/MetroJaxWs2Test.java | 0 .../resources/test-app/WEB-INF/sun-jaxws.xml | 0 .../test/resources/test-app/WEB-INF/web.xml | 0 .../jaxws/jaxws-metro-2.2/metadata.yaml | 13 ++++++++ settings.gradle.kts | 1 - 9 files changed, 60 insertions(+), 33 deletions(-) delete mode 100644 instrumentation/jaxws/jaxws-2.0-metro-2.2-testing/build.gradle.kts rename instrumentation/jaxws/{jaxws-2.0-metro-2.2-testing => jaxws-metro-2.2/javaagent}/src/test/java/io/opentelemetry/javaagent/instrumentation/metro/MetroJaxWs2Test.java (100%) rename instrumentation/jaxws/{jaxws-2.0-metro-2.2-testing => jaxws-metro-2.2/javaagent}/src/test/resources/test-app/WEB-INF/sun-jaxws.xml (100%) rename instrumentation/jaxws/{jaxws-2.0-metro-2.2-testing => jaxws-metro-2.2/javaagent}/src/test/resources/test-app/WEB-INF/web.xml (100%) create mode 100644 instrumentation/jaxws/jaxws-metro-2.2/metadata.yaml diff --git a/docs/instrumentation-list.yaml b/docs/instrumentation-list.yaml index 8eca7a850e93..dbdbeb5b44cc 100644 --- a/docs/instrumentation-list.yaml +++ b/docs/instrumentation-list.yaml @@ -5755,12 +5755,29 @@ libraries: - name: code.namespace type: STRING - name: jaxws-metro-2.2 + display_name: Metro JAX-WS + description: | + This instrumentation enriches HTTP server spans with route information, and enables controller spans for Metro JAX-WS web services (controller spans are disabled by default). + library_link: https://javaee.github.io/metro/ + features: + - HTTP_ROUTE + - CONTROLLER_SPANS source_path: instrumentation/jaxws/jaxws-metro-2.2 scope: name: io.opentelemetry.jaxws-metro-2.2 target_versions: javaagent: - com.sun.xml.ws:jaxws-rt:[2.2.0.1,) + configurations: + - name: otel.instrumentation.common.experimental.controller-telemetry.enabled + description: Enables the creation of experimental controller spans. + type: boolean + default: false + telemetry: + - when: otel.instrumentation.common.experimental.controller-telemetry.enabled=true + spans: + - span_kind: INTERNAL + attributes: [] jboss: - name: jboss-logmanager-appender-1.1 source_path: instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1 diff --git a/instrumentation-docs/instrumentations.sh b/instrumentation-docs/instrumentations.sh index 2f581a7878d8..5b1cd86e9383 100755 --- a/instrumentation-docs/instrumentations.sh +++ b/instrumentation-docs/instrumentations.sh @@ -127,6 +127,7 @@ readonly INSTRUMENTATIONS=( "jaxws:jaxws-2.0-axis2-1.6:javaagent:test" "jaxws:jaxws-cxf-3.0:javaagent:test" "jaxws:jaxws-jws-api-1.1:javaagent:test" + "jaxws:jaxws-metro-2.2:javaagent:test" "jetty-httpclient:jetty-httpclient-12.0:javaagent:test" "jetty-httpclient:jetty-httpclient-9.2:javaagent:test" "jodd-http-4.2:javaagent:test" diff --git a/instrumentation/jaxws/jaxws-2.0-metro-2.2-testing/build.gradle.kts b/instrumentation/jaxws/jaxws-2.0-metro-2.2-testing/build.gradle.kts deleted file mode 100644 index f8307a77e21a..000000000000 --- a/instrumentation/jaxws/jaxws-2.0-metro-2.2-testing/build.gradle.kts +++ /dev/null @@ -1,32 +0,0 @@ -plugins { - id("otel.javaagent-testing") -} - -dependencies { - testLibrary("com.sun.xml.ws:jaxws-rt:2.2.0.1") - // early versions of streambuffer depend on latest release of org.jvnet.staxex:stax-ex - // which doesn't work with java 8 - testLibrary("com.sun.xml.stream.buffer:streambuffer:1.4") - - testImplementation("javax.servlet:javax.servlet-api:3.0.1") - testImplementation(project(":instrumentation:jaxws:jaxws-2.0-common-testing")) - - testInstrumentation(project(":instrumentation:jaxws:jaxws-metro-2.2:javaagent")) - testInstrumentation(project(":instrumentation:jaxws:jaxws-2.0:javaagent")) - testInstrumentation(project(":instrumentation:jaxws:jaxws-jws-api-1.1:javaagent")) - - testInstrumentation(project(":instrumentation:servlet:servlet-3.0:javaagent")) - testInstrumentation(project(":instrumentation:jetty:jetty-8.0:javaagent")) - - latestDepTestLibrary("com.sun.xml.ws:jaxws-rt:2.+") // see jaxws-3.0-metro-3.0-testing module - latestDepTestLibrary("com.sun.xml.stream.buffer:streambuffer:1.+") // see jaxws-3.0-metro-3.0-testing module -} - -tasks.withType().configureEach { - // required on jdk17 - jvmArgs("--add-exports=java.xml/com.sun.org.apache.xerces.internal.dom=ALL-UNNAMED") - jvmArgs("--add-exports=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED") - jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED") - jvmArgs("-XX:+IgnoreUnrecognizedVMOptions") - jvmArgs("-Dotel.instrumentation.common.experimental.controller-telemetry.enabled=true") -} diff --git a/instrumentation/jaxws/jaxws-metro-2.2/javaagent/build.gradle.kts b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/build.gradle.kts index a5c19447373d..eee4bc9d411a 100644 --- a/instrumentation/jaxws/jaxws-metro-2.2/javaagent/build.gradle.kts +++ b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/build.gradle.kts @@ -23,4 +23,33 @@ dependencies { compileOnly("javax.xml.ws:jaxws-api:2.0") compileOnly("jakarta.xml.ws:jakarta.xml.ws-api:3.0.0") + + testLibrary("com.sun.xml.ws:jaxws-rt:2.2.0.1") + // early versions of streambuffer depend on latest release of org.jvnet.staxex:stax-ex + // which doesn't work with java 8 + testLibrary("com.sun.xml.stream.buffer:streambuffer:1.4") + + testImplementation("javax.servlet:javax.servlet-api:3.0.1") + testImplementation(project(":instrumentation:jaxws:jaxws-2.0-common-testing")) + + testInstrumentation(project(":instrumentation:jaxws:jaxws-metro-2.2:javaagent")) + testInstrumentation(project(":instrumentation:jaxws:jaxws-2.0:javaagent")) + testInstrumentation(project(":instrumentation:jaxws:jaxws-jws-api-1.1:javaagent")) + + testInstrumentation(project(":instrumentation:servlet:servlet-3.0:javaagent")) + testInstrumentation(project(":instrumentation:jetty:jetty-8.0:javaagent")) + + latestDepTestLibrary("com.sun.xml.ws:jaxws-rt:2.+") // see jaxws-3.0-metro-3.0-testing module + latestDepTestLibrary("com.sun.xml.stream.buffer:streambuffer:1.+") // see jaxws-3.0-metro-3.0-testing module +} + +tasks.withType().configureEach { + // required on jdk17 + jvmArgs("--add-exports=java.xml/com.sun.org.apache.xerces.internal.dom=ALL-UNNAMED") + jvmArgs("--add-exports=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED") + jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED") + jvmArgs("-XX:+IgnoreUnrecognizedVMOptions") + jvmArgs("-Dotel.instrumentation.common.experimental.controller-telemetry.enabled=true") + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") + systemProperty("metadataConfig", "otel.instrumentation.common.experimental.controller-telemetry.enabled=true") } diff --git a/instrumentation/jaxws/jaxws-2.0-metro-2.2-testing/src/test/java/io/opentelemetry/javaagent/instrumentation/metro/MetroJaxWs2Test.java b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/metro/MetroJaxWs2Test.java similarity index 100% rename from instrumentation/jaxws/jaxws-2.0-metro-2.2-testing/src/test/java/io/opentelemetry/javaagent/instrumentation/metro/MetroJaxWs2Test.java rename to instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/metro/MetroJaxWs2Test.java diff --git a/instrumentation/jaxws/jaxws-2.0-metro-2.2-testing/src/test/resources/test-app/WEB-INF/sun-jaxws.xml b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/test/resources/test-app/WEB-INF/sun-jaxws.xml similarity index 100% rename from instrumentation/jaxws/jaxws-2.0-metro-2.2-testing/src/test/resources/test-app/WEB-INF/sun-jaxws.xml rename to instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/test/resources/test-app/WEB-INF/sun-jaxws.xml diff --git a/instrumentation/jaxws/jaxws-2.0-metro-2.2-testing/src/test/resources/test-app/WEB-INF/web.xml b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/test/resources/test-app/WEB-INF/web.xml similarity index 100% rename from instrumentation/jaxws/jaxws-2.0-metro-2.2-testing/src/test/resources/test-app/WEB-INF/web.xml rename to instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/test/resources/test-app/WEB-INF/web.xml diff --git a/instrumentation/jaxws/jaxws-metro-2.2/metadata.yaml b/instrumentation/jaxws/jaxws-metro-2.2/metadata.yaml new file mode 100644 index 000000000000..8c0a52c2a14a --- /dev/null +++ b/instrumentation/jaxws/jaxws-metro-2.2/metadata.yaml @@ -0,0 +1,13 @@ +display_name: Metro JAX-WS +description: > + This instrumentation enriches HTTP server spans with route information, and enables controller + spans for Metro JAX-WS web services (controller spans are disabled by default). +library_link: https://javaee.github.io/metro/ +features: + - HTTP_ROUTE + - CONTROLLER_SPANS +configurations: + - name: otel.instrumentation.common.experimental.controller-telemetry.enabled + description: Enables the creation of experimental controller spans. + type: boolean + default: false diff --git a/settings.gradle.kts b/settings.gradle.kts index f1757a2155a3..45ec0a86191d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -351,7 +351,6 @@ include(":instrumentation:jaxws:jaxws-2.0:javaagent") include(":instrumentation:jaxws:jaxws-2.0-arquillian-testing") include(":instrumentation:jaxws:jaxws-2.0-axis2-1.6:javaagent") include(":instrumentation:jaxws:jaxws-2.0-common-testing") -include(":instrumentation:jaxws:jaxws-2.0-metro-2.2-testing") include(":instrumentation:jaxws:jaxws-2.0-tomee-testing") include(":instrumentation:jaxws:jaxws-2.0-wildfly-testing") include(":instrumentation:jaxws:jaxws-3.0-axis2-2.0-testing") From 68fb49e7ee1afc2484d540cc00869bc0115dffd6 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Fri, 31 Oct 2025 06:09:10 -0400 Subject: [PATCH 2/2] cleanup dependencies --- .../jaxws/jaxws-metro-2.2/javaagent/build.gradle.kts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/instrumentation/jaxws/jaxws-metro-2.2/javaagent/build.gradle.kts b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/build.gradle.kts index eee4bc9d411a..5019812fd9ed 100644 --- a/instrumentation/jaxws/jaxws-metro-2.2/javaagent/build.gradle.kts +++ b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/build.gradle.kts @@ -24,15 +24,9 @@ dependencies { compileOnly("javax.xml.ws:jaxws-api:2.0") compileOnly("jakarta.xml.ws:jakarta.xml.ws-api:3.0.0") - testLibrary("com.sun.xml.ws:jaxws-rt:2.2.0.1") - // early versions of streambuffer depend on latest release of org.jvnet.staxex:stax-ex - // which doesn't work with java 8 - testLibrary("com.sun.xml.stream.buffer:streambuffer:1.4") - testImplementation("javax.servlet:javax.servlet-api:3.0.1") testImplementation(project(":instrumentation:jaxws:jaxws-2.0-common-testing")) - testInstrumentation(project(":instrumentation:jaxws:jaxws-metro-2.2:javaagent")) testInstrumentation(project(":instrumentation:jaxws:jaxws-2.0:javaagent")) testInstrumentation(project(":instrumentation:jaxws:jaxws-jws-api-1.1:javaagent"))