File tree Expand file tree Collapse file tree 2 files changed +32
-0
lines changed
instrumentation/spring/spring-web
spring-web-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/springweb/v3_1
spring-web-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/web/v6_0 Expand file tree Collapse file tree 2 files changed +32
-0
lines changed Original file line number Diff line number Diff line change 1010import static net .bytebuddy .matcher .ElementMatchers .not ;
1111
1212import com .google .auto .service .AutoService ;
13+ import io .opentelemetry .javaagent .extension .instrumentation .HelperResourceBuilder ;
1314import io .opentelemetry .javaagent .extension .instrumentation .InstrumentationModule ;
1415import io .opentelemetry .javaagent .extension .instrumentation .TypeInstrumentation ;
1516import io .opentelemetry .javaagent .extension .instrumentation .internal .ExperimentalInstrumentationModule ;
@@ -31,6 +32,21 @@ public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3132 .and (not (hasClassesNamed ("org.springframework.web.ErrorResponse" )));
3233 }
3334
35+ @ Override
36+ public void registerHelperResources (HelperResourceBuilder helperResourceBuilder ) {
37+ if (!isIndyModule ()) {
38+ // make the filter class file loadable by ClassPathResource - in some cases (e.g.
39+ // spring-guice,
40+ // see https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7428)
41+ // Spring
42+ // might want to read the class file metadata; this line will make the filter class file
43+ // visible
44+ // to the bean class loader
45+ helperResourceBuilder .register (
46+ "org/springframework/web/servlet/v3_1/OpenTelemetryHandlerMappingFilter.class" );
47+ }
48+ }
49+
3450 @ Override
3551 public String getModuleGroup () {
3652 // depends on OpenTelemetryHandlerMappingFilter
Original file line number Diff line number Diff line change 99import static java .util .Collections .singletonList ;
1010
1111import com .google .auto .service .AutoService ;
12+ import io .opentelemetry .javaagent .extension .instrumentation .HelperResourceBuilder ;
1213import io .opentelemetry .javaagent .extension .instrumentation .InstrumentationModule ;
1314import io .opentelemetry .javaagent .extension .instrumentation .TypeInstrumentation ;
1415import io .opentelemetry .javaagent .extension .instrumentation .internal .ExperimentalInstrumentationModule ;
@@ -29,6 +30,21 @@ public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
2930 return hasClassesNamed ("org.springframework.web.ErrorResponse" );
3031 }
3132
33+ @ Override
34+ public void registerHelperResources (HelperResourceBuilder helperResourceBuilder ) {
35+ if (!isIndyModule ()) {
36+ // make the filter class file loadable by ClassPathResource - in some cases (e.g.
37+ // spring-guice,
38+ // see https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7428)
39+ // Spring
40+ // might want to read the class file metadata; this line will make the filter class file
41+ // visible
42+ // to the bean class loader
43+ helperResourceBuilder .register (
44+ "org/springframework/web/servlet/v6_0/OpenTelemetryHandlerMappingFilter.class" );
45+ }
46+ }
47+
3248 @ Override
3349 public String getModuleGroup () {
3450 // depends on OpenTelemetryHandlerMappingFilter
You can’t perform that action at this time.
0 commit comments