Skip to content

Commit be189c5

Browse files
committed
virtualfield 2
1 parent befadfa commit be189c5

File tree

4 files changed

+28
-12
lines changed

4 files changed

+28
-12
lines changed

instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/ResteasyResourceLocatorInvokerInstrumentation.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import io.opentelemetry.context.Context;
1212
import io.opentelemetry.context.Scope;
13-
import io.opentelemetry.instrumentation.api.util.VirtualField;
1413
import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge;
1514
import io.opentelemetry.javaagent.bootstrap.jaxrs.JaxrsContextPath;
1615
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
@@ -47,8 +46,7 @@ public static Scope onEnter(@Advice.This ResourceLocatorInvoker resourceInvoker)
4746

4847
Context currentContext = Java8BytecodeBridge.currentContext();
4948

50-
String name =
51-
VirtualField.find(ResourceLocatorInvoker.class, String.class).get(resourceInvoker);
49+
String name = ResteasySingletons.LOCATOR_NAME.get(resourceInvoker);
5250
ResteasySpanName.INSTANCE.updateServerSpanName(currentContext, name);
5351

5452
// subresource locator returns a resources class that may have @Path annotations

instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/ResteasyResourceMethodInvokerInstrumentation.java

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

66
package io.opentelemetry.javaagent.instrumentation.jaxrs.v2_0;
77

8+
import static io.opentelemetry.javaagent.instrumentation.jaxrs.v2_0.ResteasySingletons.INVOKER_NAME;
89
import static net.bytebuddy.matcher.ElementMatchers.named;
910
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
1011

11-
import io.opentelemetry.instrumentation.api.util.VirtualField;
1212
import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge;
1313
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1414
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
@@ -38,9 +38,7 @@ public static class InvokeOnTargetAdvice {
3838

3939
@Advice.OnMethodEnter(suppress = Throwable.class)
4040
public static void onEnter(@Advice.This ResourceMethodInvoker resourceInvoker) {
41-
42-
String name =
43-
VirtualField.find(ResourceMethodInvoker.class, String.class).get(resourceInvoker);
41+
String name = INVOKER_NAME.get(resourceInvoker);
4442
ResteasySpanName.INSTANCE.updateServerSpanName(Java8BytecodeBridge.currentContext(), name);
4543
}
4644
}

instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/ResteasyRootNodeTypeInstrumentation.java

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

66
package io.opentelemetry.javaagent.instrumentation.jaxrs.v2_0;
77

8+
import static io.opentelemetry.javaagent.instrumentation.jaxrs.v2_0.ResteasySingletons.INVOKER_NAME;
9+
import static io.opentelemetry.javaagent.instrumentation.jaxrs.v2_0.ResteasySingletons.LOCATOR_NAME;
810
import static net.bytebuddy.matcher.ElementMatchers.named;
911
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
1012
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
1113

12-
import io.opentelemetry.instrumentation.api.util.VirtualField;
1314
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1415
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1516
import io.opentelemetry.javaagent.instrumentation.jaxrs.JaxrsPathUtil;
@@ -51,12 +52,10 @@ public static void addInvoker(
5152
String normalizedPath = JaxrsPathUtil.normalizePath(path);
5253
if (invoker instanceof ResourceLocatorInvoker) {
5354
ResourceLocatorInvoker resourceLocatorInvoker = (ResourceLocatorInvoker) invoker;
54-
VirtualField.find(ResourceLocatorInvoker.class, String.class)
55-
.set(resourceLocatorInvoker, normalizedPath);
55+
LOCATOR_NAME.set(resourceLocatorInvoker, normalizedPath);
5656
} else if (invoker instanceof ResourceMethodInvoker) {
5757
ResourceMethodInvoker resourceMethodInvoker = (ResourceMethodInvoker) invoker;
58-
VirtualField.find(ResourceMethodInvoker.class, String.class)
59-
.set(resourceMethodInvoker, normalizedPath);
58+
INVOKER_NAME.set(resourceMethodInvoker, normalizedPath);
6059
}
6160
}
6261
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.jaxrs.v2_0;
7+
8+
import io.opentelemetry.instrumentation.api.util.VirtualField;
9+
import org.jboss.resteasy.core.ResourceLocatorInvoker;
10+
import org.jboss.resteasy.core.ResourceMethodInvoker;
11+
12+
public class ResteasySingletons {
13+
14+
public static final VirtualField<ResourceLocatorInvoker, String> LOCATOR_NAME =
15+
VirtualField.find(ResourceLocatorInvoker.class, String.class);
16+
17+
public static final VirtualField<ResourceMethodInvoker, String> INVOKER_NAME =
18+
VirtualField.find(ResourceMethodInvoker.class, String.class);
19+
20+
private ResteasySingletons() {}
21+
}

0 commit comments

Comments
 (0)