File tree Expand file tree Collapse file tree 8 files changed +28
-24
lines changed
instrumentation/helidon/helidon-4.3.0
main/java/io/opentelemetry/javaagent/instrumentation/helidon
test/java/io/opentelemetry/javaagent/instrumentation/helidon
main/java/io/opentelemetry/instrumentation/helidon
test/java/io/opentelemetry/instrumentation/helidon Expand file tree Collapse file tree 8 files changed +28
-24
lines changed Original file line number Diff line number Diff line change @@ -463,6 +463,12 @@ targets:
463463 - type : gradle
464464 path : ./
465465 target : ' :instrumentation:graphql-java:graphql-java-common:library'
466+ - type : gradle
467+ path : ./
468+ target : ' :instrumentation:helidon:helidon-4.3.0:javaagent'
469+ - type : gradle
470+ path : ./
471+ target : ' :instrumentation:helidon:helidon-4.3.0:library'
466472 - type : gradle
467473 path : ./
468474 target : ' :instrumentation:hibernate:hibernate-3.3:javaagent'
Original file line number Diff line number Diff line change 55
66package io .opentelemetry .javaagent .instrumentation .helidon ;
77
8- import static io .opentelemetry .javaagent .extension .matcher .AgentElementMatchers .extendsClass ;
98import static net .bytebuddy .matcher .ElementMatchers .isMethod ;
109import static net .bytebuddy .matcher .ElementMatchers .isPublic ;
1110import static net .bytebuddy .matcher .ElementMatchers .isStatic ;
@@ -22,7 +21,7 @@ public class HelidonInstrumentation implements TypeInstrumentation {
2221
2322 @ Override
2423 public ElementMatcher <TypeDescription > typeMatcher () {
25- return extendsClass ( named ("io.helidon.webserver.http.HttpRouting" ) );
24+ return named ("io.helidon.webserver.http.HttpRouting" );
2625 }
2726
2827 @ Override
@@ -37,7 +36,7 @@ public static class BuildAdvice {
3736
3837 @ Advice .OnMethodExit (suppress = Throwable .class )
3938 public static void onExit (@ Advice .Return HttpRouting .Builder httpContext ) {
40- HelidonSingletons .FILTERS .forEach (httpContext ::addFeature );
39+ HelidonSingletons .FILTERS .forEach (httpContext ::addFilter );
4140 }
4241 }
4342}
Original file line number Diff line number Diff line change 77
88import static java .util .Collections .singletonList ;
99
10- import java .util .List ;
11-
1210import com .google .auto .service .AutoService ;
13-
1411import io .opentelemetry .javaagent .extension .instrumentation .InstrumentationModule ;
1512import io .opentelemetry .javaagent .extension .instrumentation .TypeInstrumentation ;
13+ import java .util .List ;
1614
1715@ AutoService (InstrumentationModule .class )
1816public class HelidonInstrumentationModule extends InstrumentationModule {
1917 public HelidonInstrumentationModule () {
20- super ("helidon" );
18+ super ("helidon" , "helidon-4.3.0" );
2119 }
2220
2321 @ Override
Original file line number Diff line number Diff line change 55
66package io .opentelemetry .javaagent .instrumentation .helidon ;
77
8- import java .util .Arrays ;
98import java .util .List ;
109
11- import io .helidon .webserver .http .HttpFeature ;
10+ import io .helidon .webserver .http .Filter ;
1211import io .opentelemetry .api .GlobalOpenTelemetry ;
1312import io .opentelemetry .instrumentation .helidon .HelidonTelemetry ;
1413import io .opentelemetry .instrumentation .helidon .internal .HelidonInstrumenterBuilderUtil ;
1514import io .opentelemetry .javaagent .bootstrap .internal .AgentCommonConfig ;
1615
1716public final class HelidonSingletons {
1817
19- public static final List <HttpFeature > FILTERS ;
18+ public static final List <Filter > FILTERS ;
2019
2120 static {
2221 var config = AgentCommonConfig .get ();
@@ -27,7 +26,7 @@ public final class HelidonSingletons {
2726 .configure (config );
2827 var serverTelemetry = serverBuilder .build ();
2928
30- FILTERS = Arrays . asList (serverTelemetry , r -> r . addFilter ( new ResponseCustomizingFilter () ));
29+ FILTERS = List . of (serverTelemetry . createFilter (), new ResponseCustomizingFilter ());
3130 }
3231
3332 private HelidonSingletons () {}
Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ final class ResponseCustomizingFilter implements Filter {
1919 @ Override
2020 public void filter (FilterChain chain , RoutingRequest req , RoutingResponse res ) {
2121
22- Context context = Context .current ();
22+ var context = Context .current ();
2323 HttpServerResponseCustomizerHolder .getCustomizer ()
2424 .customize (context , res , HelidonServerResponseMutator .INSTANCE );
2525 chain .proceed ();
Original file line number Diff line number Diff line change 55
66package io .opentelemetry .javaagent .instrumentation .helidon ;
77
8- import io .opentelemetry .instrumentation .javahttpserver .AbstractJavaHttpServerTest ;
8+ import org .junit .jupiter .api .extension .RegisterExtension ;
9+
10+ import io .opentelemetry .instrumentation .helidon .AbstractHelidonTest ;
911import io .opentelemetry .instrumentation .testing .junit .InstrumentationExtension ;
1012import io .opentelemetry .instrumentation .testing .junit .http .HttpServerInstrumentationExtension ;
1113import io .opentelemetry .instrumentation .testing .junit .http .HttpServerTestOptions ;
12- import org .junit .jupiter .api .extension .RegisterExtension ;
1314
14- class JavaHttpServerTest extends AbstractJavaHttpServerTest {
15+ class HelidonServerTest extends AbstractHelidonTest {
1516
1617 @ RegisterExtension
1718 static final InstrumentationExtension testing = HttpServerInstrumentationExtension .forAgent ();
@@ -21,5 +22,6 @@ protected void configure(HttpServerTestOptions options) {
2122 super .configure (options );
2223
2324 options .setHasResponseCustomizer (serverEndpoint -> true );
25+ options .setTestException (false );
2426 }
2527}
Original file line number Diff line number Diff line change 55
66package io .opentelemetry .instrumentation .helidon ;
77
8- import io .helidon .webserver .http .HttpFeature ;
9- import io .helidon .webserver .http .HttpRouting ;
8+ import io .helidon .webserver .http .Filter ;
109import io .helidon .webserver .http .ServerRequest ;
1110import io .helidon .webserver .http .ServerResponse ;
1211import io .opentelemetry .api .OpenTelemetry ;
1312import io .opentelemetry .instrumentation .api .instrumenter .Instrumenter ;
1413
1514/** Entrypoint for instrumenting Java HTTP Server services. */
16- public final class HelidonTelemetry implements HttpFeature {
15+ public final class HelidonTelemetry {
1716
1817 /** Returns a new {@link HelidonTelemetry} configured with the given {@link OpenTelemetry}. */
1918 public static HelidonTelemetry create (OpenTelemetry openTelemetry ) {
@@ -30,8 +29,7 @@ public static HelidonTelemetryBuilder builder(OpenTelemetry openTelemetry) {
3029 this .instrumenter = instrumenter ;
3130 }
3231
33- @ Override
34- public void setup (HttpRouting .Builder routing ) {
35- routing .addFilter (new OpenTelemetryFilter (instrumenter ));
32+ public Filter createFilter () {
33+ return new OpenTelemetryFilter (instrumenter );
3634 }
3735}
Original file line number Diff line number Diff line change 55
66package io .opentelemetry .instrumentation .helidon ;
77
8+ import java .util .Collections ;
9+
10+ import org .junit .jupiter .api .extension .RegisterExtension ;
11+
812import io .helidon .webserver .http .HttpRouting ;
913import io .opentelemetry .instrumentation .testing .junit .InstrumentationExtension ;
1014import io .opentelemetry .instrumentation .testing .junit .http .AbstractHttpServerTest ;
1115import io .opentelemetry .instrumentation .testing .junit .http .HttpServerInstrumentationExtension ;
12- import java .util .Collections ;
13- import org .junit .jupiter .api .extension .RegisterExtension ;
1416
1517class HelidonServerTest extends AbstractHelidonTest {
1618
@@ -27,6 +29,6 @@ protected void configureContexts(HttpRouting.Builder routing) {
2729 .setCapturedResponseHeaders (
2830 Collections .singletonList (AbstractHttpServerTest .TEST_RESPONSE_HEADER ))
2931 .build ();
30- routing .addFeature (feature );
32+ routing .addFilter (feature . createFilter () );
3133 }
3234}
You can’t perform that action at this time.
0 commit comments