Skip to content

Commit d0c829c

Browse files
committed
use filter directly
1 parent fb4dfd7 commit d0c829c

File tree

8 files changed

+28
-24
lines changed

8 files changed

+28
-24
lines changed

.fossa.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff 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'

instrumentation/helidon/helidon-4.3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/helidon/HelidonInstrumentation.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package io.opentelemetry.javaagent.instrumentation.helidon;
77

8-
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.extendsClass;
98
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
109
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
1110
import 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
}

instrumentation/helidon/helidon-4.3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/helidon/HelidonInstrumentationModule.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,15 @@
77

88
import static java.util.Collections.singletonList;
99

10-
import java.util.List;
11-
1210
import com.google.auto.service.AutoService;
13-
1411
import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
1512
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
13+
import java.util.List;
1614

1715
@AutoService(InstrumentationModule.class)
1816
public class HelidonInstrumentationModule extends InstrumentationModule {
1917
public HelidonInstrumentationModule() {
20-
super("helidon");
18+
super("helidon", "helidon-4.3.0");
2119
}
2220

2321
@Override

instrumentation/helidon/helidon-4.3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/helidon/HelidonSingletons.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,17 @@
55

66
package io.opentelemetry.javaagent.instrumentation.helidon;
77

8-
import java.util.Arrays;
98
import java.util.List;
109

11-
import io.helidon.webserver.http.HttpFeature;
10+
import io.helidon.webserver.http.Filter;
1211
import io.opentelemetry.api.GlobalOpenTelemetry;
1312
import io.opentelemetry.instrumentation.helidon.HelidonTelemetry;
1413
import io.opentelemetry.instrumentation.helidon.internal.HelidonInstrumenterBuilderUtil;
1514
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
1615

1716
public 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() {}

instrumentation/helidon/helidon-4.3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/helidon/ResponseCustomizingFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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();

instrumentation/helidon/helidon-4.3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/helidon/JavaHttpServerTest.java renamed to instrumentation/helidon/helidon-4.3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/helidon/HelidonServerTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55

66
package 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;
911
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1012
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
1113
import 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
}

instrumentation/helidon/helidon-4.3.0/library/src/main/java/io/opentelemetry/instrumentation/helidon/HelidonTelemetry.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,14 @@
55

66
package 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;
109
import io.helidon.webserver.http.ServerRequest;
1110
import io.helidon.webserver.http.ServerResponse;
1211
import io.opentelemetry.api.OpenTelemetry;
1312
import 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
}

instrumentation/helidon/helidon-4.3.0/library/src/test/java/io/opentelemetry/instrumentation/helidon/HelidonServerTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55

66
package io.opentelemetry.instrumentation.helidon;
77

8+
import java.util.Collections;
9+
10+
import org.junit.jupiter.api.extension.RegisterExtension;
11+
812
import io.helidon.webserver.http.HttpRouting;
913
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1014
import io.opentelemetry.instrumentation.testing.junit.http.AbstractHttpServerTest;
1115
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
12-
import java.util.Collections;
13-
import org.junit.jupiter.api.extension.RegisterExtension;
1416

1517
class 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
}

0 commit comments

Comments
 (0)