Skip to content

Commit f92e3fb

Browse files
authored
Add support for cxf 4.0 jaxws (#12077)
1 parent d64eda3 commit f92e3fb

File tree

23 files changed

+165
-46
lines changed

23 files changed

+165
-46
lines changed

instrumentation/jaxws/jaxws-2.0-cxf-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cxf/CxfServerSpanNaming.java

Lines changed: 0 additions & 39 deletions
This file was deleted.

instrumentation/jaxws/jaxws-2.0-tomee-testing/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ dependencies {
1111

1212
testInstrumentation(project(":instrumentation:servlet:servlet-3.0:javaagent"))
1313
testInstrumentation(project(":instrumentation:jaxws:jaxws-2.0:javaagent"))
14-
testInstrumentation(project(":instrumentation:jaxws:jaxws-2.0-cxf-3.0:javaagent"))
14+
testInstrumentation(project(":instrumentation:jaxws:jaxws-cxf-3.0:javaagent"))
1515
testInstrumentation(project(":instrumentation:jaxws:jaxws-jws-api-1.1:javaagent"))
1616
}
1717

instrumentation/jaxws/jaxws-2.0-wildfly-testing/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ dependencies {
1212

1313
testInstrumentation(project(":instrumentation:servlet:servlet-3.0:javaagent"))
1414
testInstrumentation(project(":instrumentation:jaxws:jaxws-2.0:javaagent"))
15-
testInstrumentation(project(":instrumentation:jaxws:jaxws-2.0-cxf-3.0:javaagent"))
15+
testInstrumentation(project(":instrumentation:jaxws:jaxws-cxf-3.0:javaagent"))
1616
testInstrumentation(project(":instrumentation:jaxws:jaxws-jws-api-1.1:javaagent"))
1717

1818
// wildfly version used to run tests
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
plugins {
2+
id("otel.javaagent-testing")
3+
}
4+
5+
dependencies {
6+
testLibrary("org.apache.cxf:cxf-rt-frontend-jaxws:4.0.0")
7+
testLibrary("org.apache.cxf:cxf-rt-transports-http:4.0.0")
8+
9+
testImplementation("jakarta.servlet:jakarta.servlet-api:5.0.0")
10+
testImplementation(project(":instrumentation:jaxws:jaxws-3.0-common-testing"))
11+
12+
testInstrumentation(project(":instrumentation:jaxws:jaxws-cxf-3.0:javaagent"))
13+
14+
testInstrumentation(project(":instrumentation:servlet:servlet-5.0:javaagent"))
15+
testInstrumentation(project(":instrumentation:jetty:jetty-11.0:javaagent"))
16+
}
17+
18+
otelJava {
19+
minJavaVersionSupported.set(JavaVersion.VERSION_17)
20+
}
21+
22+
tasks.withType<Test>().configureEach {
23+
// required on jdk17
24+
jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")
25+
jvmArgs("-XX:+IgnoreUnrecognizedVMOptions")
26+
jvmArgs("-Dotel.instrumentation.common.experimental.controller-telemetry.enabled=true")
27+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
import hello.HelloServiceImpl
7+
import io.opentelemetry.api.trace.Span
8+
import io.opentelemetry.context.Context
9+
import io.opentelemetry.instrumentation.api.instrumenter.LocalRootSpan
10+
import org.apache.cxf.jaxws.EndpointImpl
11+
import org.apache.cxf.message.Message
12+
import org.apache.cxf.phase.AbstractPhaseInterceptor
13+
import org.apache.cxf.phase.Phase
14+
import org.apache.cxf.transport.servlet.CXFNonSpringServlet
15+
16+
import jakarta.servlet.ServletConfig
17+
18+
class TestWsServlet extends CXFNonSpringServlet {
19+
@Override
20+
void loadBus(ServletConfig servletConfig) {
21+
super.loadBus(servletConfig)
22+
23+
// publish test webservice
24+
Object implementor = new HelloServiceImpl()
25+
EndpointImpl endpoint = new EndpointImpl(bus, implementor)
26+
endpoint.publish("/HelloService")
27+
endpoint.getOutInterceptors().add(new AbstractPhaseInterceptor<Message>(Phase.SETUP) {
28+
@Override
29+
void handleMessage(Message message) {
30+
Context context = Context.current()
31+
if (LocalRootSpan.fromContext(context) != Span.fromContext(context)) {
32+
throw new IllegalStateException("handler span should be ended before outgoing interceptors")
33+
}
34+
}
35+
})
36+
}
37+
}

instrumentation/jaxws/jaxws-2.0-cxf-3.0/javaagent-unit-tests/build.gradle.kts renamed to instrumentation/jaxws/jaxws-cxf-3.0/javaagent-unit-tests/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ dependencies {
66
compileOnly("javax.servlet:javax.servlet-api:3.0.1")
77
compileOnly("org.apache.cxf:cxf-rt-frontend-jaxws:3.0.0")
88

9-
implementation(project(":instrumentation:jaxws:jaxws-2.0-cxf-3.0:javaagent"))
9+
implementation(project(":instrumentation:jaxws:jaxws-cxf-3.0:javaagent"))
1010

1111
testImplementation(project(":instrumentation-api"))
1212
testImplementation("org.apache.cxf:cxf-rt-frontend-jaxws:3.0.0")

instrumentation/jaxws/jaxws-2.0-cxf-3.0/javaagent/build.gradle.kts renamed to instrumentation/jaxws/jaxws-cxf-3.0/javaagent/build.gradle.kts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ muzzle {
88
module.set("cxf-rt-frontend-jaxws")
99
// all earlier versions in maven central also pass muzzle check,
1010
// but 3.0.0 is already 8 years old and testing earlier versions adds complexity
11-
versions.set("[3.0.0,4)")
11+
versions.set("[3.0.0,)")
1212
extraDependency("javax.servlet:javax.servlet-api:3.0.1")
13+
extraDependency("jakarta.servlet:jakarta.servlet-api:5.0.0")
1314
}
1415
}
1516

@@ -18,6 +19,8 @@ dependencies {
1819

1920
library("org.apache.cxf:cxf-rt-frontend-jaxws:3.0.0")
2021
compileOnly("javax.servlet:javax.servlet-api:3.0.1")
22+
compileOnly("jakarta.servlet:jakarta.servlet-api:5.0.0")
23+
compileOnly(project(":muzzle"))
2124

2225
testLibrary("org.apache.cxf:cxf-rt-transports-http:3.0.0")
2326

0 commit comments

Comments
 (0)