Skip to content

Commit a88177b

Browse files
committed
virtual-fields
1 parent e4baf55 commit a88177b

File tree

9 files changed

+35
-24
lines changed

9 files changed

+35
-24
lines changed

instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2Advice.java

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

66
package io.opentelemetry.javaagent.instrumentation.servlet.v2_2;
77

8+
import static io.opentelemetry.javaagent.instrumentation.servlet.v2_2.Servlet2Singletons.RESPONSE_STATUS;
89
import static io.opentelemetry.javaagent.instrumentation.servlet.v2_2.Servlet2Singletons.helper;
910

1011
import io.opentelemetry.context.Context;
1112
import io.opentelemetry.context.Scope;
12-
import io.opentelemetry.instrumentation.api.util.VirtualField;
1313
import io.opentelemetry.javaagent.bootstrap.CallDepth;
1414
import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge;
1515
import io.opentelemetry.javaagent.bootstrap.http.HttpServerResponseCustomizerHolder;
@@ -27,8 +27,7 @@
2727
public class Servlet2Advice {
2828

2929
public static class AdviceScope {
30-
private static final VirtualField<ServletResponse, Integer> RESPONSE_STATUS =
31-
VirtualField.find(ServletResponse.class, Integer.class);
30+
3231
private final CallDepth callDepth;
3332
private final ServletRequestContext<HttpServletRequest> requestContext;
3433
private final Context context;

instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2HttpServletResponseInstrumentation.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77

88
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
99
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasSuperType;
10+
import static io.opentelemetry.javaagent.instrumentation.servlet.v2_2.Servlet2Singletons.RESPONSE_STATUS;
1011
import static net.bytebuddy.matcher.ElementMatchers.named;
1112
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
1213

1314
import io.opentelemetry.context.Context;
1415
import io.opentelemetry.context.Scope;
15-
import io.opentelemetry.instrumentation.api.util.VirtualField;
1616
import io.opentelemetry.javaagent.bootstrap.CallDepth;
1717
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1818
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
@@ -63,7 +63,7 @@ public static class Servlet2ResponseRedirectAdvice {
6363

6464
@Advice.OnMethodEnter(suppress = Throwable.class)
6565
public static void onEnter(@Advice.This HttpServletResponse response) {
66-
VirtualField.find(ServletResponse.class, Integer.class).set(response, 302);
66+
RESPONSE_STATUS.set(response, 302);
6767
}
6868
}
6969

@@ -73,7 +73,7 @@ public static class Servlet2ResponseStatusAdvice {
7373
@Advice.OnMethodEnter(suppress = Throwable.class)
7474
public static void onEnter(
7575
@Advice.This HttpServletResponse response, @Advice.Argument(0) Integer status) {
76-
VirtualField.find(ServletResponse.class, Integer.class).set(response, status);
76+
RESPONSE_STATUS.set(response, status);
7777
}
7878
}
7979
}

instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2Singletons.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,21 @@
88
import io.opentelemetry.instrumentation.api.incubator.semconv.util.ClassAndMethod;
99
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1010
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
11+
import io.opentelemetry.instrumentation.api.util.VirtualField;
1112
import io.opentelemetry.javaagent.instrumentation.servlet.ServletInstrumenterBuilder;
1213
import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext;
1314
import io.opentelemetry.javaagent.instrumentation.servlet.ServletResponseContext;
1415
import io.opentelemetry.javaagent.instrumentation.servlet.common.response.ResponseInstrumenterFactory;
16+
import javax.servlet.ServletResponse;
1517
import javax.servlet.http.HttpServletRequest;
1618
import javax.servlet.http.HttpServletResponse;
1719

1820
public final class Servlet2Singletons {
1921
private static final String INSTRUMENTATION_NAME = "io.opentelemetry.servlet-2.2";
2022

23+
public static final VirtualField<ServletResponse, Integer> RESPONSE_STATUS =
24+
VirtualField.find(ServletResponse.class, Integer.class);
25+
2126
private static final Servlet2Helper HELPER;
2227
private static final Instrumenter<ClassAndMethod, Void> RESPONSE_INSTRUMENTER;
2328

instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3FilterInitAdvice.java

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

66
package io.opentelemetry.javaagent.instrumentation.servlet.v3_0;
77

8-
import io.opentelemetry.instrumentation.api.util.VirtualField;
9-
import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
8+
import static io.opentelemetry.javaagent.instrumentation.servlet.v3_0.Servlet3Singletons.FILTER_MAPPING_RESOLVER_FACTORY;
9+
1010
import javax.servlet.Filter;
1111
import javax.servlet.FilterConfig;
1212
import net.bytebuddy.asm.Advice;
@@ -20,7 +20,7 @@ public static void filterInit(
2020
if (filterConfig == null) {
2121
return;
2222
}
23-
VirtualField.find(Filter.class, MappingResolver.Factory.class)
24-
.set(filter, new Servlet3FilterMappingResolverFactory(filterConfig));
23+
FILTER_MAPPING_RESOLVER_FACTORY.set(
24+
filter, new Servlet3FilterMappingResolverFactory(filterConfig));
2525
}
2626
}

instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3InitAdvice.java

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

66
package io.opentelemetry.javaagent.instrumentation.servlet.v3_0;
77

8-
import io.opentelemetry.instrumentation.api.util.VirtualField;
9-
import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
8+
import static io.opentelemetry.javaagent.instrumentation.servlet.v3_0.Servlet3Singletons.SERVLET_MAPPING_RESOLVER_FACTORY;
9+
1010
import javax.servlet.Servlet;
1111
import javax.servlet.ServletConfig;
1212
import net.bytebuddy.asm.Advice;
@@ -20,7 +20,7 @@ public static void servletInit(
2020
if (servletConfig == null) {
2121
return;
2222
}
23-
VirtualField.find(Servlet.class, MappingResolver.Factory.class)
24-
.set(servlet, new Servlet3MappingResolverFactory(servletConfig));
23+
SERVLET_MAPPING_RESOLVER_FACTORY.set(
24+
servlet, new Servlet3MappingResolverFactory(servletConfig));
2525
}
2626
}

instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3Singletons.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@
2424
public final class Servlet3Singletons {
2525
private static final String INSTRUMENTATION_NAME = "io.opentelemetry.servlet-3.0";
2626

27+
public static final VirtualField<Servlet, MappingResolver.Factory>
28+
SERVLET_MAPPING_RESOLVER_FACTORY =
29+
VirtualField.find(Servlet.class, MappingResolver.Factory.class);
30+
31+
public static final VirtualField<Filter, MappingResolver.Factory>
32+
FILTER_MAPPING_RESOLVER_FACTORY =
33+
VirtualField.find(Filter.class, MappingResolver.Factory.class);
34+
2735
private static final Instrumenter<
2836
ServletRequestContext<HttpServletRequest>, ServletResponseContext<HttpServletResponse>>
2937
INSTRUMENTER =

instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/Servlet5Singletons.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ public final class Servlet5Singletons {
3434
private static final ServletHelper<HttpServletRequest, HttpServletResponse> HELPER =
3535
new ServletHelper<>(INSTRUMENTER, Servlet5Accessor.INSTANCE);
3636

37-
private static final VirtualField<Servlet, MappingResolver.Factory> SERVLET_MAPPING_RESOLVER =
37+
public static final VirtualField<Servlet, MappingResolver.Factory> SERVLET_MAPPING_RESOLVER =
3838
VirtualField.find(Servlet.class, MappingResolver.Factory.class);
39-
private static final VirtualField<Filter, MappingResolver.Factory> FILTER_MAPPING_RESOLVER =
39+
public static final VirtualField<Filter, MappingResolver.Factory> FILTER_MAPPING_RESOLVER =
4040
VirtualField.find(Filter.class, MappingResolver.Factory.class);
4141

4242
private static final Instrumenter<ClassAndMethod, Void> RESPONSE_INSTRUMENTER =

instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletFilterInitAdvice.java

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

66
package io.opentelemetry.javaagent.instrumentation.servlet.v5_0.service;
77

8-
import io.opentelemetry.instrumentation.api.util.VirtualField;
9-
import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
8+
import static io.opentelemetry.javaagent.instrumentation.servlet.v5_0.Servlet5Singletons.FILTER_MAPPING_RESOLVER;
9+
1010
import jakarta.servlet.Filter;
1111
import jakarta.servlet.FilterConfig;
1212
import net.bytebuddy.asm.Advice;
@@ -20,7 +20,7 @@ public static void filterInit(
2020
if (filterConfig == null) {
2121
return;
2222
}
23-
VirtualField.find(Filter.class, MappingResolver.Factory.class)
24-
.set(filter, new JakartaServletFilterMappingResolverFactory(filterConfig));
23+
FILTER_MAPPING_RESOLVER.set(
24+
filter, new JakartaServletFilterMappingResolverFactory(filterConfig));
2525
}
2626
}

instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletInitAdvice.java

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

66
package io.opentelemetry.javaagent.instrumentation.servlet.v5_0.service;
77

8-
import io.opentelemetry.instrumentation.api.util.VirtualField;
9-
import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
8+
import static io.opentelemetry.javaagent.instrumentation.servlet.v5_0.Servlet5Singletons.SERVLET_MAPPING_RESOLVER;
9+
1010
import jakarta.servlet.Servlet;
1111
import jakarta.servlet.ServletConfig;
1212
import net.bytebuddy.asm.Advice;
@@ -20,7 +20,6 @@ public static void servletInit(
2020
if (servletConfig == null) {
2121
return;
2222
}
23-
VirtualField.find(Servlet.class, MappingResolver.Factory.class)
24-
.set(servlet, new JakartaServletMappingResolverFactory(servletConfig));
23+
SERVLET_MAPPING_RESOLVER.set(servlet, new JakartaServletMappingResolverFactory(servletConfig));
2524
}
2625
}

0 commit comments

Comments
 (0)