Skip to content

Commit f7476ec

Browse files
committed
add ExtendedOpenTelemetry
1 parent 38b9d43 commit f7476ec

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ public class ApplicationOpenTelemetry implements OpenTelemetry {
1919
public static final OpenTelemetry INSTANCE;
2020

2121
static {
22-
OpenTelemetry instance = getOpenTelemetry127();
22+
OpenTelemetry instance = getOpenTelemetry155();
23+
if (instance == null) {
24+
instance = getOpenTelemetry127();
25+
}
2326
if (instance == null) {
2427
instance = getOpenTelemetry110();
2528
}
@@ -52,6 +55,19 @@ public ContextPropagators getPropagators() {
5255
return applicationContextPropagators;
5356
}
5457

58+
@Nullable
59+
private static OpenTelemetry getOpenTelemetry155() {
60+
try {
61+
// this class is defined in opentelemetry-api-1.55
62+
Class<?> clazz =
63+
Class.forName(
64+
"io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.ApplicationOpenTelemetry155Incubator");
65+
return (OpenTelemetry) clazz.getField("INSTANCE").get(null);
66+
} catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) {
67+
return null;
68+
}
69+
}
70+
5571
@Nullable
5672
private static OpenTelemetry getOpenTelemetry127() {
5773
try {

instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java

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

66
package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator;
77

8+
import application.io.opentelemetry.api.OpenTelemetry;
89
import application.io.opentelemetry.api.incubator.ExtendedOpenTelemetry;
910
import application.io.opentelemetry.api.incubator.config.ConfigProvider;
1011
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127;
@@ -13,6 +14,10 @@
1314
public class ApplicationOpenTelemetry155Incubator extends ApplicationOpenTelemetry127
1415
implements ExtendedOpenTelemetry {
1516

17+
// Accessed with reflection
18+
@SuppressWarnings("unused")
19+
public static final OpenTelemetry INSTANCE = new ApplicationOpenTelemetry155Incubator();
20+
1621
private final ConfigProvider configProvider =
1722
new ApplicationConfigProvider155Incubator(
1823
((io.opentelemetry.api.incubator.ExtendedOpenTelemetry)

0 commit comments

Comments
 (0)