Skip to content

Commit 661c100

Browse files
authored
Remove special handling for indy instrumentation (#17256)
1 parent 93fd9e4 commit 661c100

File tree

7 files changed

+41
-30
lines changed

7 files changed

+41
-30
lines changed

instrumentation/spring/spring-boot-actuator-autoconfigure-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/actuator/v2_0/SpringBootActuatorInstrumentationModule.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,16 @@ public void registerHelperResources(HelperResourceBuilder helperResourceBuilder)
4343
// this line will make OpenTelemetryMeterRegistryAutoConfiguration available to all
4444
// classloaders, so that the bean class loader (different from the instrumented class loader)
4545
// can load it
46-
if (!isIndyModule()) {
47-
// For indy module the proxy-bytecode will be injected as resource by injectClasses()
48-
helperResourceBuilder.registerForAllClassLoaders(
49-
"io/opentelemetry/javaagent/instrumentation/spring/actuator/v2_0/OpenTelemetryMeterRegistryAutoConfiguration.class");
50-
}
46+
helperResourceBuilder.registerForAllClassLoaders(
47+
"io/opentelemetry/javaagent/instrumentation/spring/actuator/v2_0/OpenTelemetryMeterRegistryAutoConfiguration.class");
5148
}
5249

5350
@Override
5451
public void injectClasses(ClassInjector injector) {
5552
injector
5653
.proxyBuilder(
5754
"io.opentelemetry.javaagent.instrumentation.spring.actuator.v2_0.OpenTelemetryMeterRegistryAutoConfiguration")
58-
.inject(InjectionMode.CLASS_AND_RESOURCE);
55+
.inject(InjectionMode.CLASS_ONLY);
5956
}
6057

6158
@Override

instrumentation/spring/spring-web/spring-web-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/springweb/v3_1/SpringWebInstrumentationModule.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,12 @@ public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3434

3535
@Override
3636
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-
}
37+
// make the filter class file loadable by ClassPathResource - in some cases (e.g. spring-guice,
38+
// see https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7428)
39+
// Spring might want to read the class file metadata; this line will make the filter class file
40+
// visible to the bean class loader
41+
helperResourceBuilder.register(
42+
"org/springframework/web/servlet/v3_1/OpenTelemetryHandlerMappingFilter.class");
4843
}
4944

5045
@Override

instrumentation/spring/spring-web/spring-web-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/web/v6_0/SpringWebInstrumentationModule.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,12 @@ public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3232

3333
@Override
3434
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-
}
35+
// make the filter class file loadable by ClassPathResource - in some cases (e.g. spring-guice,
36+
// see https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7428)
37+
// Spring might want to read the class file metadata; this line will make the filter class file
38+
// visible to the bean class loader
39+
helperResourceBuilder.register(
40+
"org/springframework/web/servlet/v6_0/OpenTelemetryHandlerMappingFilter.class");
4641
}
4742

4843
@Override

instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v3_1/SpringWebMvcInstrumentationModule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public boolean isHelperClass(String className) {
4242
public void injectClasses(ClassInjector injector) {
4343
injector
4444
.proxyBuilder("org.springframework.web.servlet.v3_1.OpenTelemetryHandlerMappingFilter")
45-
.inject(InjectionMode.CLASS_AND_RESOURCE);
45+
.inject(InjectionMode.CLASS_ONLY);
4646
}
4747

4848
@Override

instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v3_1/boot/SpringBootBasedTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
package io.opentelemetry.javaagent.instrumentation.spring.webmvc.v3_1.boot;
77

88
import static io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint.EXCEPTION;
9+
import static org.assertj.core.api.Assertions.assertThat;
910

1011
import com.google.common.collect.ImmutableMap;
1112
import io.opentelemetry.instrumentation.spring.webmvc.boot.AbstractSpringBootBasedTest;
1213
import io.opentelemetry.instrumentation.spring.webmvc.boot.AppConfig;
1314
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1415
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
1516
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions;
17+
import org.junit.jupiter.api.Test;
1618
import org.junit.jupiter.api.extension.RegisterExtension;
1719
import org.springframework.boot.SpringApplication;
1820
import org.springframework.context.ConfigurableApplicationContext;
@@ -66,4 +68,14 @@ protected boolean shouldTestDeferredResult() {
6668
// resulting in a separate trace instead of a single trace
6769
return Boolean.getBoolean("testLatestDeps");
6870
}
71+
72+
@Test
73+
void handlerMappingFilterResourceAvailable() {
74+
assertThat(
75+
getClass()
76+
.getClassLoader()
77+
.getResource(
78+
"org/springframework/web/servlet/v3_1/OpenTelemetryHandlerMappingFilter.class"))
79+
.isNotNull();
80+
}
6981
}

instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v6_0/SpringWebMvcInstrumentationModule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public boolean isHelperClass(String className) {
4242
public void injectClasses(ClassInjector injector) {
4343
injector
4444
.proxyBuilder("org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter")
45-
.inject(InjectionMode.CLASS_AND_RESOURCE);
45+
.inject(InjectionMode.CLASS_ONLY);
4646
}
4747

4848
@Override

instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v6_0/boot/SpringBootBasedTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_MESSAGE;
1313
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_STACKTRACE;
1414
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_TYPE;
15+
import static org.assertj.core.api.Assertions.assertThat;
1516

1617
import io.opentelemetry.api.trace.SpanKind;
1718
import io.opentelemetry.instrumentation.spring.webmvc.boot.AbstractSpringBootBasedTest;
@@ -24,6 +25,7 @@
2425
import io.opentelemetry.sdk.trace.data.SpanData;
2526
import io.opentelemetry.sdk.trace.data.StatusData;
2627
import java.util.Map;
28+
import org.junit.jupiter.api.Test;
2729
import org.junit.jupiter.api.extension.RegisterExtension;
2830
import org.springframework.boot.SpringApplication;
2931
import org.springframework.context.ConfigurableApplicationContext;
@@ -111,4 +113,14 @@ protected void configure(HttpServerTestOptions options) {
111113
options.setResponseCodeOnNonStandardHttpMethod(400);
112114
options.setExpectedException(new RuntimeException(EXCEPTION.getBody()));
113115
}
116+
117+
@Test
118+
void handlerMappingFilterResourceAvailable() {
119+
assertThat(
120+
getClass()
121+
.getClassLoader()
122+
.getResource(
123+
"org/springframework/web/servlet/v6_0/OpenTelemetryHandlerMappingFilter.class"))
124+
.isNotNull();
125+
}
114126
}

0 commit comments

Comments
 (0)