diff --git a/instrumentation/wicket-8.0/common-testing/src/main/java/io/opentelemetry/javaagent/instrumentation/wicket/v8_0/AbstractWicketTest.java b/instrumentation/wicket-8.0/common-testing/src/main/java/io/opentelemetry/javaagent/instrumentation/wicket/v8_0/AbstractWicketTest.java index 3c8ff5c90b32..ea84c5cd2175 100644 --- a/instrumentation/wicket-8.0/common-testing/src/main/java/io/opentelemetry/javaagent/instrumentation/wicket/v8_0/AbstractWicketTest.java +++ b/instrumentation/wicket-8.0/common-testing/src/main/java/io/opentelemetry/javaagent/instrumentation/wicket/v8_0/AbstractWicketTest.java @@ -22,6 +22,9 @@ abstract class AbstractWicketTest extends AbstractHttpServerUsingTest { + private static final boolean V3_PREVIEW = + Boolean.getBoolean("otel.instrumentation.common.v3-preview"); + @RegisterExtension private static final InstrumentationExtension testing = HttpServerInstrumentationExtension.forAgent(); @@ -89,8 +92,15 @@ void testResource() { trace -> trace.hasSpansSatisfyingExactly( span -> - span.hasName("GET " + getContextPath() + "/wicket-test/hello.HelloResource") + span.hasName(expectedResourceSpanName()) .hasKind(SpanKind.SERVER) .hasNoParent())); } + + private String expectedResourceSpanName() { + if (V3_PREVIEW) { + return "GET " + getContextPath() + "/wicket-test/hello.HelloResource"; + } + return "GET " + getContextPath() + "/wicket-test/*"; + } } diff --git a/instrumentation/wicket-8.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/wicket/v8_0/RequestHandlerExecutorInstrumentation.java b/instrumentation/wicket-8.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/wicket/v8_0/RequestHandlerExecutorInstrumentation.java index f899bc255341..197c7d45baa2 100644 --- a/instrumentation/wicket-8.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/wicket/v8_0/RequestHandlerExecutorInstrumentation.java +++ b/instrumentation/wicket-8.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/wicket/v8_0/RequestHandlerExecutorInstrumentation.java @@ -5,6 +5,7 @@ package io.opentelemetry.javaagent.instrumentation.wicket.v8_0; +import static io.opentelemetry.instrumentation.api.internal.SemconvStability.v3Preview; import static io.opentelemetry.instrumentation.api.semconv.http.HttpServerRouteSource.CONTROLLER; import static io.opentelemetry.javaagent.instrumentation.wicket.v8_0.WicketServerSpanNaming.serverSpanName; import static io.opentelemetry.javaagent.instrumentation.wicket.v8_0.WicketServerSpanNaming.serverSpanNameResource; @@ -48,7 +49,7 @@ public static void onEnter(@Advice.Argument(0) IRequestHandler handler) { serverSpanName(), (IPageClassRequestHandler) handler); } - if (handler instanceof ResourceReferenceRequestHandler) { + if (handler instanceof ResourceReferenceRequestHandler && v3Preview()) { HttpServerRoute.update( Java8BytecodeBridge.currentContext(), CONTROLLER, diff --git a/instrumentation/wicket-8.0/wicket10-testing/build.gradle.kts b/instrumentation/wicket-8.0/wicket10-testing/build.gradle.kts index b819365bfc79..f1ba882fa52c 100644 --- a/instrumentation/wicket-8.0/wicket10-testing/build.gradle.kts +++ b/instrumentation/wicket-8.0/wicket10-testing/build.gradle.kts @@ -16,3 +16,15 @@ dependencies { otelJava { minJavaVersionSupported.set(JavaVersion.VERSION_17) } + +tasks { + val testV3Preview by registering(Test::class) { + testClassesDirs = sourceSets.test.get().output.classesDirs + classpath = sourceSets.test.get().runtimeClasspath + jvmArgs("-Dotel.instrumentation.common.v3-preview=true") + } + + check { + dependsOn(testV3Preview) + } +} diff --git a/instrumentation/wicket-8.0/wicket8-testing/build.gradle.kts b/instrumentation/wicket-8.0/wicket8-testing/build.gradle.kts index 5521c03cd3a7..7e12c6b2ab65 100644 --- a/instrumentation/wicket-8.0/wicket8-testing/build.gradle.kts +++ b/instrumentation/wicket-8.0/wicket8-testing/build.gradle.kts @@ -21,3 +21,15 @@ if (otelProps.testLatestDeps) { minJavaVersionSupported.set(JavaVersion.VERSION_11) } } + +tasks { + val testV3Preview by registering(Test::class) { + testClassesDirs = sourceSets.test.get().output.classesDirs + classpath = sourceSets.test.get().runtimeClasspath + jvmArgs("-Dotel.instrumentation.common.v3-preview=true") + } + + check { + dependsOn(testV3Preview) + } +}