From 3144a916c028d3a2334745f3c91e1cae4da90869 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Wed, 29 Oct 2025 17:05:43 +0100 Subject: [PATCH 01/18] add ExtendedOpenTelemetry --- .../v1_27/ApplicationOpenTelemetry127.java | 4 +- .../javaagent/build.gradle.kts | 18 ++++++++ .../ApplicationOpenTelemetry155Incubator.java | 19 +++++++++ ...etryApiIncubatorInstrumentationModule.java | 41 +++++++++++++++++++ ...OpenTelemetryIncubatorInstrumentation.java | 38 +++++++++++++++++ ...ApplicationConfigProvider155Incubator.java | 13 ++++++ ...clarativeConfigProperties155Incubator.java | 6 +++ .../opentelemetry-api-1.55/metadata.yaml | 1 + javaagent/build.gradle.kts | 1 + .../build.gradle.kts | 21 ++++++++++ settings.gradle.kts | 1 + 11 files changed, 161 insertions(+), 2 deletions(-) create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/build.gradle.kts create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryIncubatorInstrumentation.java create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationConfigProvider155Incubator.java create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationDeclarativeConfigProperties155Incubator.java create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.55/metadata.yaml diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java index 7e4b0df3fb4a..d2d5481e51dd 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java @@ -22,7 +22,7 @@ import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_4.trace.ApplicationTracerProvider14; import java.lang.reflect.InvocationTargetException; -public final class ApplicationOpenTelemetry127 implements OpenTelemetry { +public class ApplicationOpenTelemetry127 implements OpenTelemetry { // Accessed with reflection @SuppressWarnings("unused") @@ -34,7 +34,7 @@ public final class ApplicationOpenTelemetry127 implements OpenTelemetry { private final LoggerProvider applicationLoggerProvider; @SuppressWarnings("UnnecessarilyFullyQualified") - private ApplicationOpenTelemetry127() { + protected ApplicationOpenTelemetry127() { io.opentelemetry.api.OpenTelemetry agentOpenTelemetry = io.opentelemetry.api.GlobalOpenTelemetry.get(); applicationTracerProvider = diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/build.gradle.kts new file mode 100644 index 000000000000..2ee0a476b091 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/build.gradle.kts @@ -0,0 +1,18 @@ +plugins { + id("otel.javaagent-instrumentation") +} + +dependencies { + compileOnly(project(":opentelemetry-api-shaded-for-instrumenting", configuration = "v1_55")) + compileOnly("io.opentelemetry:opentelemetry-api-incubator") + + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.40:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.42:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent")) + + testImplementation("io.opentelemetry:opentelemetry-api-incubator") +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java new file mode 100644 index 000000000000..7f5cd1c6d58b --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java @@ -0,0 +1,19 @@ +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator; + +import application.io.opentelemetry.api.incubator.ExtendedOpenTelemetry; +import application.io.opentelemetry.api.incubator.config.ConfigProvider; + +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127; + +public class ApplicationOpenTelemetry155Incubator extends ApplicationOpenTelemetry127 + implements ExtendedOpenTelemetry { + + io.opentelemetry.api.incubator.ExtendedOpenTelemetry extendedOpenTelemetry = + (io.opentelemetry.api.incubator.ExtendedOpenTelemetry) + io.opentelemetry.api.GlobalOpenTelemetry.get(); + + @Override + public ConfigProvider getConfigProvider() { + return extendedOpenTelemetry.getConfigProvider(); + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java new file mode 100644 index 000000000000..e7f4b68ed0e6 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java @@ -0,0 +1,41 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator; + +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; +import static java.util.Collections.singletonList; + +import com.google.auto.service.AutoService; +import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; +import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule; +import java.util.List; +import net.bytebuddy.matcher.ElementMatcher; + +@AutoService(InstrumentationModule.class) +public class OpenTelemetryApiIncubatorInstrumentationModule extends InstrumentationModule + implements ExperimentalInstrumentationModule { + public OpenTelemetryApiIncubatorInstrumentationModule() { + super("opentelemetry-api", "opentelemetry-api-1.55", "opentelemetry-api-incubator-1.55"); + } + + @Override + public ElementMatcher.Junction classLoaderMatcher() { + return hasClassesNamed( + "application.io.opentelemetry.api.common.Value", + "io.opentelemetry.api.incubator.ExtendedOpenTelemetry"); + } + + @Override + public List typeInstrumentations() { + return singletonList(new OpenTelemetryIncubatorInstrumentation()); + } + + @Override + public String getModuleGroup() { + return "opentelemetry-api-bridge"; + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryIncubatorInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryIncubatorInstrumentation.java new file mode 100644 index 000000000000..f3ef958faf21 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryIncubatorInstrumentation.java @@ -0,0 +1,38 @@ +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator;/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.none; + +import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator.logs.ApplicationLoggerFactory152Incubator; +import net.bytebuddy.asm.Advice; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; + +public class OpenTelemetryIncubatorInstrumentation implements TypeInstrumentation { + + @Override + public ElementMatcher typeMatcher() { + return named("application.io.opentelemetry.api.GlobalOpenTelemetry"); + } + + @Override + public void transform(TypeTransformer transformer) { + transformer.applyAdviceToMethod( + none(), OpenTelemetryIncubatorInstrumentation.class.getName() + "$InitAdvice"); + } + + @SuppressWarnings({"ReturnValueIgnored", "unused"}) + public static class InitAdvice { + @Advice.OnMethodEnter + public static void init() { + // the sole purpose of this advice is to ensure that ApplicationLoggerFactory152Incubator is + // recognized as helper class and injected into class loader + ApplicationLoggerFactory152Incubator.class.getName(); + } + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationConfigProvider155Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationConfigProvider155Incubator.java new file mode 100644 index 000000000000..6a147f97be32 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationConfigProvider155Incubator.java @@ -0,0 +1,13 @@ +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config; + +import application.io.opentelemetry.api.incubator.config.ConfigProvider; +import application.io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; +import javax.annotation.Nullable; + +public class ApplicationConfigProvider155Incubator implements ConfigProvider { + @Nullable + @Override + public DeclarativeConfigProperties getInstrumentationConfig() { + return null; + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationDeclarativeConfigProperties155Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationDeclarativeConfigProperties155Incubator.java new file mode 100644 index 000000000000..96e9e1dfc51d --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationDeclarativeConfigProperties155Incubator.java @@ -0,0 +1,6 @@ +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config; + +import application.io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; + +public class ApplicationDeclarativeConfigProperties155Incubator implements + DeclarativeConfigProperties {} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/metadata.yaml b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/metadata.yaml new file mode 100644 index 000000000000..5a03ece2f748 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/metadata.yaml @@ -0,0 +1 @@ +classification: internal diff --git a/javaagent/build.gradle.kts b/javaagent/build.gradle.kts index 9a7c777f6bc5..4f7babf38601 100644 --- a/javaagent/build.gradle.kts +++ b/javaagent/build.gradle.kts @@ -90,6 +90,7 @@ dependencies { baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.55:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-instrumentation-api:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-instrumentation-annotations-1.16:javaagent")) baseJavaagentLibs(project(":instrumentation:executors:javaagent")) diff --git a/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts b/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts index 6f24d2c0ee6e..c81f0f456727 100644 --- a/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts +++ b/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts @@ -93,6 +93,13 @@ val v1_52Deps by configurations.creating { exclude("io.opentelemetry", "opentelemetry-bom") exclude("io.opentelemetry", "opentelemetry-bom-alpha") } +val v1_55Deps by configurations.creating { + isCanBeResolved = true + isCanBeConsumed = false + // exclude the bom added by dependencyManagement + exclude("io.opentelemetry", "opentelemetry-bom") + exclude("io.opentelemetry", "opentelemetry-bom-alpha") +} // configuration for publishing the shadowed artifact val v1_10 by configurations.creating { isCanBeConsumed = true @@ -142,6 +149,10 @@ val v1_52 by configurations.creating { isCanBeConsumed = true isCanBeResolved = false } +val v1_55 by configurations.creating { + isCanBeConsumed = true + isCanBeResolved = false +} dependencies { latestDeps("io.opentelemetry:opentelemetry-api") @@ -223,6 +234,11 @@ dependencies { strictly("1.52.0-alpha") } } + v1_55Deps("io.opentelemetry:$it") { + version { + strictly("1.55.0-alpha") + } + } } } @@ -286,6 +302,10 @@ tasks { configurations = listOf(v1_52Deps) archiveClassifier.set("v1_52") } + val v1_55Shadow by registering(ShadowJar::class) { + configurations = listOf(v1_55Deps) + archiveClassifier.set("v1_55") + } artifacts { add(v1_10.name, v1_10Shadow) @@ -300,5 +320,6 @@ tasks { add(v1_47.name, v1_47Shadow) add(v1_50.name, v1_50Shadow) add(v1_52.name, v1_52Shadow) + add(v1_55.name, v1_55Shadow) } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 4488c3620b13..2309a1ba1ed6 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -503,6 +503,7 @@ include(":instrumentation:opentelemetry-api:opentelemetry-api-1.42:javaagent") include(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent") include(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent") include(":instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent") +include(":instrumentation:opentelemetry-api:opentelemetry-api-1.55:javaagent") include(":instrumentation:opentelemetry-extension-annotations-1.0:javaagent") include(":instrumentation:opentelemetry-extension-kotlin-1.0:javaagent") include(":instrumentation:opentelemetry-instrumentation-annotations-1.16:javaagent") From 3e8918d4b847444d852ea75c4b9a6e951fe3342c Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Wed, 29 Oct 2025 17:41:35 +0100 Subject: [PATCH 02/18] add ExtendedOpenTelemetry --- .../common/ApplicationComponentLoader155.java | 22 ++++ .../ApplicationOpenTelemetry155Incubator.java | 17 ++- ...OpenTelemetryIncubatorInstrumentation.java | 13 +- ...ApplicationConfigProvider155Incubator.java | 17 ++- ...clarativeConfigProperties155Incubator.java | 120 +++++++++++++++++- .../incubator/ExtendedOpenTelemetryTest.java | 36 ++++++ 6 files changed, 213 insertions(+), 12 deletions(-) create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/common/ApplicationComponentLoader155.java create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/common/ApplicationComponentLoader155.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/common/ApplicationComponentLoader155.java new file mode 100644 index 000000000000..4405b9a63cef --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/common/ApplicationComponentLoader155.java @@ -0,0 +1,22 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.common; + +import application.io.opentelemetry.common.ComponentLoader; + +public class ApplicationComponentLoader155 implements ComponentLoader { + + private final io.opentelemetry.common.ComponentLoader componentLoader; + + public ApplicationComponentLoader155(io.opentelemetry.common.ComponentLoader componentLoader) { + this.componentLoader = componentLoader; + } + + @Override + public Iterable load(Class aClass) { + return componentLoader.load(aClass); + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java index 7f5cd1c6d58b..2a69d499b305 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java @@ -1,19 +1,26 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator; import application.io.opentelemetry.api.incubator.ExtendedOpenTelemetry; import application.io.opentelemetry.api.incubator.config.ConfigProvider; - import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config.ApplicationConfigProvider155Incubator; public class ApplicationOpenTelemetry155Incubator extends ApplicationOpenTelemetry127 implements ExtendedOpenTelemetry { - io.opentelemetry.api.incubator.ExtendedOpenTelemetry extendedOpenTelemetry = - (io.opentelemetry.api.incubator.ExtendedOpenTelemetry) - io.opentelemetry.api.GlobalOpenTelemetry.get(); + private final ConfigProvider configProvider = + new ApplicationConfigProvider155Incubator( + ((io.opentelemetry.api.incubator.ExtendedOpenTelemetry) + io.opentelemetry.api.GlobalOpenTelemetry.get()) + .getConfigProvider()); @Override public ConfigProvider getConfigProvider() { - return extendedOpenTelemetry.getConfigProvider(); + return configProvider; } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryIncubatorInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryIncubatorInstrumentation.java index f3ef958faf21..b7a1faeeba5c 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryIncubatorInstrumentation.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryIncubatorInstrumentation.java @@ -1,14 +1,17 @@ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator;/* +/* * Copyright The OpenTelemetry Authors * SPDX-License-Identifier: Apache-2.0 */ +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator; + import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.none; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator.logs.ApplicationLoggerFactory152Incubator; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config.ApplicationConfigProvider155Incubator; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config.ApplicationDeclarativeConfigProperties155Incubator; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -30,9 +33,11 @@ public void transform(TypeTransformer transformer) { public static class InitAdvice { @Advice.OnMethodEnter public static void init() { - // the sole purpose of this advice is to ensure that ApplicationLoggerFactory152Incubator is + // the sole purpose of this advice is to ensure that the classes are // recognized as helper class and injected into class loader - ApplicationLoggerFactory152Incubator.class.getName(); + ApplicationOpenTelemetry155Incubator.class.getName(); + ApplicationDeclarativeConfigProperties155Incubator.class.getName(); + ApplicationConfigProvider155Incubator.class.getName(); } } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationConfigProvider155Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationConfigProvider155Incubator.java index 6a147f97be32..3544b7e8e466 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationConfigProvider155Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationConfigProvider155Incubator.java @@ -1,3 +1,8 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config; import application.io.opentelemetry.api.incubator.config.ConfigProvider; @@ -5,9 +10,19 @@ import javax.annotation.Nullable; public class ApplicationConfigProvider155Incubator implements ConfigProvider { + + private final DeclarativeConfigProperties declarativeConfigProperties; + + public ApplicationConfigProvider155Incubator( + io.opentelemetry.api.incubator.config.ConfigProvider configProvider) { + this.declarativeConfigProperties = + new ApplicationDeclarativeConfigProperties155Incubator( + configProvider.getInstrumentationConfig()); + } + @Nullable @Override public DeclarativeConfigProperties getInstrumentationConfig() { - return null; + return declarativeConfigProperties; } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationDeclarativeConfigProperties155Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationDeclarativeConfigProperties155Incubator.java index 96e9e1dfc51d..dd156e41e3be 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationDeclarativeConfigProperties155Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationDeclarativeConfigProperties155Incubator.java @@ -1,6 +1,122 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config; import application.io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; +import application.io.opentelemetry.common.ComponentLoader; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.common.ApplicationComponentLoader155; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; +import javax.annotation.Nullable; + +public class ApplicationDeclarativeConfigProperties155Incubator + implements DeclarativeConfigProperties { + private final io.opentelemetry.api.incubator.config.DeclarativeConfigProperties + instrumentationConfig; + + public ApplicationDeclarativeConfigProperties155Incubator( + io.opentelemetry.api.incubator.config.DeclarativeConfigProperties instrumentationConfig) { + this.instrumentationConfig = instrumentationConfig; + } + + @Nullable + @Override + public String getString(String name) { + return instrumentationConfig.getString(name); + } + + @Override + public String getString(String name, String defaultValue) { + return instrumentationConfig.getString(name, defaultValue); + } + + @Nullable + @Override + public Boolean getBoolean(String name) { + return instrumentationConfig.getBoolean(name); + } + + @Override + public boolean getBoolean(String name, boolean defaultValue) { + return instrumentationConfig.getBoolean(name, defaultValue); + } + + @Nullable + @Override + public Integer getInt(String name) { + return instrumentationConfig.getInt(name); + } + + @Override + public int getInt(String name, int defaultValue) { + return instrumentationConfig.getInt(name, defaultValue); + } + + @Nullable + @Override + public Long getLong(String name) { + return instrumentationConfig.getLong(name); + } + + @Override + public long getLong(String name, long defaultValue) { + return instrumentationConfig.getLong(name, defaultValue); + } + + @Nullable + @Override + public Double getDouble(String name) { + return instrumentationConfig.getDouble(name); + } + + @Override + public double getDouble(String name, double defaultValue) { + return instrumentationConfig.getDouble(name, defaultValue); + } + + @Nullable + @Override + public List getScalarList(String name, Class scalarType) { + return instrumentationConfig.getScalarList(name, scalarType); + } + + @Override + public List getScalarList(String name, Class scalarType, List defaultValue) { + return instrumentationConfig.getScalarList(name, scalarType, defaultValue); + } + + @Nullable + @Override + public DeclarativeConfigProperties getStructured(String name) { + return new ApplicationDeclarativeConfigProperties155Incubator( + instrumentationConfig.getStructured(name)); + } + + @Nullable + @Override + public List getStructuredList(String name) { + List structuredList = + instrumentationConfig.getStructuredList(name); + if (structuredList == null) { + return null; + } + + return structuredList.stream() + .map(e -> new ApplicationDeclarativeConfigProperties155Incubator(e)) + .collect(Collectors.toList()); + } + + @Override + public Set getPropertyKeys() { + return instrumentationConfig.getPropertyKeys(); + } -public class ApplicationDeclarativeConfigProperties155Incubator implements - DeclarativeConfigProperties {} + @Override + public ComponentLoader getComponentLoader() { + return new ApplicationComponentLoader155(instrumentationConfig.getComponentLoader()); + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java new file mode 100644 index 000000000000..0ebadfc0a68c --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java @@ -0,0 +1,36 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator; + +import static org.assertj.core.api.Assertions.assertThat; + +import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.api.incubator.ExtendedOpenTelemetry; +import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; +import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +class ExtendedOpenTelemetryTest { + @RegisterExtension + static final AgentInstrumentationExtension testing = AgentInstrumentationExtension.create(); + + private ExtendedOpenTelemetry extendedOpenTelemetry; + + @BeforeEach + void setup() { + extendedOpenTelemetry = (ExtendedOpenTelemetry) GlobalOpenTelemetry.get(); + } + + @Test + void getConfig() { + DeclarativeConfigProperties instrumentationConfig = + extendedOpenTelemetry.getConfigProvider().getInstrumentationConfig(); + // todo test for not null with declarative config present + assertThat(instrumentationConfig).isNull(); + } +} From 6631a53cc2f6269943ad1ea434253b07a14183b4 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Wed, 29 Oct 2025 17:47:56 +0100 Subject: [PATCH 03/18] add ExtendedOpenTelemetry --- ...OpenTelemetryApiInstrumentationModule.java | 43 ++++++++++++++++++ .../v1_55/OpenTelemetryInstrumentation.java | 44 +++++++++++++++++++ .../incubator/ExtendedOpenTelemetryTest.java | 1 - 3 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryApiInstrumentationModule.java create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryInstrumentation.java diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryApiInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryApiInstrumentationModule.java new file mode 100644 index 000000000000..72df029200fc --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryApiInstrumentationModule.java @@ -0,0 +1,43 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55; + +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; +import static java.util.Collections.singletonList; +import static net.bytebuddy.matcher.ElementMatchers.not; + +import com.google.auto.service.AutoService; +import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; +import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule; +import java.util.List; +import net.bytebuddy.matcher.ElementMatcher; + +@AutoService(InstrumentationModule.class) +public class OpenTelemetryApiInstrumentationModule extends InstrumentationModule + implements ExperimentalInstrumentationModule { + public OpenTelemetryApiInstrumentationModule() { + super("opentelemetry-api", "opentelemetry-api-1.55"); + } + + @Override + public ElementMatcher.Junction classLoaderMatcher() { + return hasClassesNamed("application.io.opentelemetry.api.common.Value") + .and( + // disable when incubating api is present + not(hasClassesNamed("io.opentelemetry.api.incubator.ExtendedOpenTelemetry"))); + } + + @Override + public List typeInstrumentations() { + return singletonList(new OpenTelemetryInstrumentation()); + } + + @Override + public String getModuleGroup() { + return "opentelemetry-api-bridge"; + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryInstrumentation.java new file mode 100644 index 000000000000..5b661b998d9f --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryInstrumentation.java @@ -0,0 +1,44 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55; + +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.none; + +import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.ApplicationOpenTelemetry155Incubator; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config.ApplicationConfigProvider155Incubator; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config.ApplicationDeclarativeConfigProperties155Incubator; +import net.bytebuddy.asm.Advice; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; + +public class OpenTelemetryInstrumentation implements TypeInstrumentation { + + @Override + public ElementMatcher typeMatcher() { + return named("application.io.opentelemetry.api.GlobalOpenTelemetry"); + } + + @Override + public void transform(TypeTransformer transformer) { + transformer.applyAdviceToMethod( + none(), OpenTelemetryInstrumentation.class.getName() + "$InitAdvice"); + } + + @SuppressWarnings({"ReturnValueIgnored", "unused"}) + public static class InitAdvice { + @Advice.OnMethodEnter + public static void init() { + // the sole purpose of this advice is to ensure that the classes are + // recognized as helper class and injected into class loader + ApplicationOpenTelemetry155Incubator.class.getName(); + ApplicationDeclarativeConfigProperties155Incubator.class.getName(); + ApplicationConfigProvider155Incubator.class.getName(); + } + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java index 0ebadfc0a68c..1b60db92ef3c 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java @@ -30,7 +30,6 @@ void setup() { void getConfig() { DeclarativeConfigProperties instrumentationConfig = extendedOpenTelemetry.getConfigProvider().getInstrumentationConfig(); - // todo test for not null with declarative config present assertThat(instrumentationConfig).isNull(); } } From bae78fb2e7d5761e1ac70cda8d92a91930c665cb Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Thu, 30 Oct 2025 11:13:13 +0100 Subject: [PATCH 04/18] add ExtendedOpenTelemetry --- .../ApplicationOpenTelemetry.java | 18 +++++++++++++++++- .../ApplicationOpenTelemetry155Incubator.java | 5 +++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java index 184b0ef819ea..f0468a7c4c60 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java @@ -19,7 +19,10 @@ public class ApplicationOpenTelemetry implements OpenTelemetry { public static final OpenTelemetry INSTANCE; static { - OpenTelemetry instance = getOpenTelemetry127(); + OpenTelemetry instance = getOpenTelemetry155(); + if (instance == null) { + instance = getOpenTelemetry127(); + } if (instance == null) { instance = getOpenTelemetry110(); } @@ -52,6 +55,19 @@ public ContextPropagators getPropagators() { return applicationContextPropagators; } + @Nullable + private static OpenTelemetry getOpenTelemetry155() { + try { + // this class is defined in opentelemetry-api-1.55 + Class clazz = + Class.forName( + "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.ApplicationOpenTelemetry155Incubator"); + return (OpenTelemetry) clazz.getField("INSTANCE").get(null); + } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) { + return null; + } + } + @Nullable private static OpenTelemetry getOpenTelemetry127() { try { diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java index 2a69d499b305..2ce7f112c6d0 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java @@ -5,6 +5,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator; +import application.io.opentelemetry.api.OpenTelemetry; import application.io.opentelemetry.api.incubator.ExtendedOpenTelemetry; import application.io.opentelemetry.api.incubator.config.ConfigProvider; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127; @@ -13,6 +14,10 @@ public class ApplicationOpenTelemetry155Incubator extends ApplicationOpenTelemetry127 implements ExtendedOpenTelemetry { + // Accessed with reflection + @SuppressWarnings("unused") + public static final OpenTelemetry INSTANCE = new ApplicationOpenTelemetry155Incubator(); + private final ConfigProvider configProvider = new ApplicationConfigProvider155Incubator( ((io.opentelemetry.api.incubator.ExtendedOpenTelemetry) From 37555397bd3f5f10f13a43fd20f35a37bd6d2b52 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Thu, 30 Oct 2025 12:26:41 +0100 Subject: [PATCH 05/18] add ExtendedOpenTelemetry --- .../ApplicationOpenTelemetry155Incubator.java | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java index 2ce7f112c6d0..f07c1f3df1c7 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java @@ -8,21 +8,36 @@ import application.io.opentelemetry.api.OpenTelemetry; import application.io.opentelemetry.api.incubator.ExtendedOpenTelemetry; import application.io.opentelemetry.api.incubator.config.ConfigProvider; +import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config.ApplicationConfigProvider155Incubator; +import javax.annotation.Nullable; public class ApplicationOpenTelemetry155Incubator extends ApplicationOpenTelemetry127 implements ExtendedOpenTelemetry { // Accessed with reflection + @Nullable @SuppressWarnings("unused") - public static final OpenTelemetry INSTANCE = new ApplicationOpenTelemetry155Incubator(); + public static final OpenTelemetry INSTANCE = create(); - private final ConfigProvider configProvider = - new ApplicationConfigProvider155Incubator( - ((io.opentelemetry.api.incubator.ExtendedOpenTelemetry) - io.opentelemetry.api.GlobalOpenTelemetry.get()) + private final ConfigProvider configProvider; + + @Nullable + private static ApplicationOpenTelemetry155Incubator create() { + io.opentelemetry.api.OpenTelemetry openTelemetry = GlobalOpenTelemetry.get(); + if (openTelemetry instanceof io.opentelemetry.api.incubator.ExtendedOpenTelemetry) { + return new ApplicationOpenTelemetry155Incubator( + ((io.opentelemetry.api.incubator.ExtendedOpenTelemetry) openTelemetry) .getConfigProvider()); + } + return null; + } + + public ApplicationOpenTelemetry155Incubator( + io.opentelemetry.api.incubator.config.ConfigProvider configProvider) { + this.configProvider = new ApplicationConfigProvider155Incubator(configProvider); + } @Override public ConfigProvider getConfigProvider() { From 74f027a9250a7f9206390968006f5ac421941ed6 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Thu, 30 Oct 2025 13:23:35 +0100 Subject: [PATCH 06/18] add ExtendedOpenTelemetry --- .../opentelemetry-api-1.55/javaagent/build.gradle.kts | 6 ++++++ .../v1_55/incubator/ExtendedOpenTelemetryTest.java | 11 +++++++---- .../src/test/resources/declarative-config.yaml | 7 +++++++ 3 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/resources/declarative-config.yaml diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/build.gradle.kts index 2ee0a476b091..d20550954102 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/build.gradle.kts @@ -16,3 +16,9 @@ dependencies { testImplementation("io.opentelemetry:opentelemetry-api-incubator") } + +tasks.withType().configureEach { + jvmArgs( + "-Dotel.experimental.config.file=$projectDir/src/test/resources/declarative-config.yaml" + ) +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java index 1b60db92ef3c..afa321ea6cf2 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java @@ -8,6 +8,7 @@ import static org.assertj.core.api.Assertions.assertThat; import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.api.incubator.ExtendedOpenTelemetry; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension; @@ -19,17 +20,19 @@ class ExtendedOpenTelemetryTest { @RegisterExtension static final AgentInstrumentationExtension testing = AgentInstrumentationExtension.create(); - private ExtendedOpenTelemetry extendedOpenTelemetry; + private OpenTelemetry openTelemetry; @BeforeEach void setup() { - extendedOpenTelemetry = (ExtendedOpenTelemetry) GlobalOpenTelemetry.get(); + openTelemetry = GlobalOpenTelemetry.get(); } @Test void getConfig() { + assertThat(openTelemetry).isInstanceOf(ExtendedOpenTelemetry.class); + DeclarativeConfigProperties instrumentationConfig = - extendedOpenTelemetry.getConfigProvider().getInstrumentationConfig(); - assertThat(instrumentationConfig).isNull(); + ((ExtendedOpenTelemetry) openTelemetry).getConfigProvider().getInstrumentationConfig(); + assertThat(instrumentationConfig).isNotNull(); } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/resources/declarative-config.yaml b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/resources/declarative-config.yaml new file mode 100644 index 000000000000..4c146ffdec0c --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/resources/declarative-config.yaml @@ -0,0 +1,7 @@ +file_format: 1.0-rc.1 + +tracer_provider: + processors: + - simple: + exporter: + console: From ac231819bf26ce2df21dad96a566de15ad5b1eab Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Thu, 30 Oct 2025 14:21:40 +0100 Subject: [PATCH 07/18] add ExtendedOpenTelemetry --- .fossa.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.fossa.yml b/.fossa.yml index 0b6c25d6df66..3ceb2cc20167 100644 --- a/.fossa.yml +++ b/.fossa.yml @@ -826,6 +826,9 @@ targets: - type: gradle path: ./ target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent' + - type: gradle + path: ./ + target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.55:javaagent' - type: gradle path: ./ target: ':instrumentation:pekko:pekko-actor-1.0:javaagent' From c0276d9dd6ce923e6eb1b38ce0a2a2581719c9bb Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Sat, 8 Nov 2025 11:41:14 +0100 Subject: [PATCH 08/18] checkstyle --- .../v1_55/common/ApplicationComponentLoader155.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/common/ApplicationComponentLoader155.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/common/ApplicationComponentLoader155.java index 4405b9a63cef..ce3950c31559 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/common/ApplicationComponentLoader155.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/common/ApplicationComponentLoader155.java @@ -16,7 +16,7 @@ public ApplicationComponentLoader155(io.opentelemetry.common.ComponentLoader com } @Override - public Iterable load(Class aClass) { - return componentLoader.load(aClass); + public Iterable load(Class type) { + return componentLoader.load(type); } } From c0b2f4d0ffc0a781656eca0c70d36963c0ba5792 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Sat, 8 Nov 2025 11:52:38 +0100 Subject: [PATCH 09/18] use 1.56 --- .fossa.yml | 2 +- .../ApplicationOpenTelemetry.java | 8 ++++---- .../javaagent/build.gradle.kts | 2 +- .../OpenTelemetryApiInstrumentationModule.java | 4 ++-- .../v1_56}/OpenTelemetryInstrumentation.java | 14 +++++++------- .../common/ApplicationComponentLoader156.java} | 6 +++--- .../ApplicationOpenTelemetry156Incubator.java} | 14 +++++++------- ...lemetryApiIncubatorInstrumentationModule.java | 4 ++-- .../OpenTelemetryIncubatorInstrumentation.java | 12 ++++++------ .../ApplicationConfigProvider156Incubator.java} | 8 ++++---- ...DeclarativeConfigProperties156Incubator.java} | 14 +++++++------- .../incubator/ExtendedOpenTelemetryTest.java | 2 +- .../src/test/resources/declarative-config.yaml | 0 .../metadata.yaml | 0 javaagent/build.gradle.kts | 2 +- .../build.gradle.kts | 16 ++++++++-------- settings.gradle.kts | 2 +- 17 files changed, 55 insertions(+), 55 deletions(-) rename instrumentation/opentelemetry-api/{opentelemetry-api-1.55 => opentelemetry-api-1.56}/javaagent/build.gradle.kts (97%) rename instrumentation/opentelemetry-api/{opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55 => opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56}/OpenTelemetryApiInstrumentationModule.java (95%) rename instrumentation/opentelemetry-api/{opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55 => opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56}/OpenTelemetryInstrumentation.java (78%) rename instrumentation/opentelemetry-api/{opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/common/ApplicationComponentLoader155.java => opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/common/ApplicationComponentLoader156.java} (76%) rename instrumentation/opentelemetry-api/{opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java => opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ApplicationOpenTelemetry156Incubator.java} (78%) rename instrumentation/opentelemetry-api/{opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55 => opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56}/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java (92%) rename instrumentation/opentelemetry-api/{opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55 => opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56}/incubator/OpenTelemetryIncubatorInstrumentation.java (80%) rename instrumentation/opentelemetry-api/{opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationConfigProvider155Incubator.java => opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationConfigProvider156Incubator.java} (78%) rename instrumentation/opentelemetry-api/{opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationDeclarativeConfigProperties155Incubator.java => opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java} (89%) rename instrumentation/opentelemetry-api/{opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55 => opentelemetry-api-1.56/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56}/incubator/ExtendedOpenTelemetryTest.java (98%) rename instrumentation/opentelemetry-api/{opentelemetry-api-1.55 => opentelemetry-api-1.56}/javaagent/src/test/resources/declarative-config.yaml (100%) rename instrumentation/opentelemetry-api/{opentelemetry-api-1.55 => opentelemetry-api-1.56}/metadata.yaml (100%) diff --git a/.fossa.yml b/.fossa.yml index 3ceb2cc20167..76378200dc4f 100644 --- a/.fossa.yml +++ b/.fossa.yml @@ -828,7 +828,7 @@ targets: target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent' - type: gradle path: ./ - target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.55:javaagent' + target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.56:javaagent' - type: gradle path: ./ target: ':instrumentation:pekko:pekko-actor-1.0:javaagent' diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java index f0468a7c4c60..fdc70fec4c3c 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java @@ -19,7 +19,7 @@ public class ApplicationOpenTelemetry implements OpenTelemetry { public static final OpenTelemetry INSTANCE; static { - OpenTelemetry instance = getOpenTelemetry155(); + OpenTelemetry instance = getOpenTelemetry156(); if (instance == null) { instance = getOpenTelemetry127(); } @@ -56,12 +56,12 @@ public ContextPropagators getPropagators() { } @Nullable - private static OpenTelemetry getOpenTelemetry155() { + private static OpenTelemetry getOpenTelemetry156() { try { - // this class is defined in opentelemetry-api-1.55 + // this class is defined in opentelemetry-api-1.56 Class clazz = Class.forName( - "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.ApplicationOpenTelemetry155Incubator"); + "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.ApplicationOpenTelemetry156Incubator"); return (OpenTelemetry) clazz.getField("INSTANCE").get(null); } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) { return null; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/build.gradle.kts similarity index 97% rename from instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/build.gradle.kts rename to instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/build.gradle.kts index d20550954102..a78efb3431ce 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/build.gradle.kts @@ -3,7 +3,7 @@ plugins { } dependencies { - compileOnly(project(":opentelemetry-api-shaded-for-instrumenting", configuration = "v1_55")) + compileOnly(project(":opentelemetry-api-shaded-for-instrumenting", configuration = "v1_56")) compileOnly("io.opentelemetry:opentelemetry-api-incubator") implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryApiInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryApiInstrumentationModule.java similarity index 95% rename from instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryApiInstrumentationModule.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryApiInstrumentationModule.java index 72df029200fc..10dc8a7bc29f 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryApiInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryApiInstrumentationModule.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56; import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; import static java.util.Collections.singletonList; @@ -20,7 +20,7 @@ public class OpenTelemetryApiInstrumentationModule extends InstrumentationModule implements ExperimentalInstrumentationModule { public OpenTelemetryApiInstrumentationModule() { - super("opentelemetry-api", "opentelemetry-api-1.55"); + super("opentelemetry-api", "opentelemetry-api-1.56"); } @Override diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java similarity index 78% rename from instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryInstrumentation.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java index 5b661b998d9f..868cec1bb3d9 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/OpenTelemetryInstrumentation.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java @@ -3,16 +3,16 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.none; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.ApplicationOpenTelemetry155Incubator; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config.ApplicationConfigProvider155Incubator; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config.ApplicationDeclarativeConfigProperties155Incubator; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.ApplicationOpenTelemetry156Incubator; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationConfigProvider156Incubator; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationDeclarativeConfigProperties156Incubator; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -36,9 +36,9 @@ public static class InitAdvice { public static void init() { // the sole purpose of this advice is to ensure that the classes are // recognized as helper class and injected into class loader - ApplicationOpenTelemetry155Incubator.class.getName(); - ApplicationDeclarativeConfigProperties155Incubator.class.getName(); - ApplicationConfigProvider155Incubator.class.getName(); + ApplicationOpenTelemetry156Incubator.class.getName(); + ApplicationDeclarativeConfigProperties156Incubator.class.getName(); + ApplicationConfigProvider156Incubator.class.getName(); } } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/common/ApplicationComponentLoader155.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/common/ApplicationComponentLoader156.java similarity index 76% rename from instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/common/ApplicationComponentLoader155.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/common/ApplicationComponentLoader156.java index ce3950c31559..aaaf5117eefa 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/common/ApplicationComponentLoader155.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/common/ApplicationComponentLoader156.java @@ -3,15 +3,15 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.common; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.common; import application.io.opentelemetry.common.ComponentLoader; -public class ApplicationComponentLoader155 implements ComponentLoader { +public class ApplicationComponentLoader156 implements ComponentLoader { private final io.opentelemetry.common.ComponentLoader componentLoader; - public ApplicationComponentLoader155(io.opentelemetry.common.ComponentLoader componentLoader) { + public ApplicationComponentLoader156(io.opentelemetry.common.ComponentLoader componentLoader) { this.componentLoader = componentLoader; } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ApplicationOpenTelemetry156Incubator.java similarity index 78% rename from instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ApplicationOpenTelemetry156Incubator.java index f07c1f3df1c7..46790b336609 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ApplicationOpenTelemetry155Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ApplicationOpenTelemetry156Incubator.java @@ -3,17 +3,17 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator; import application.io.opentelemetry.api.OpenTelemetry; import application.io.opentelemetry.api.incubator.ExtendedOpenTelemetry; import application.io.opentelemetry.api.incubator.config.ConfigProvider; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config.ApplicationConfigProvider155Incubator; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationConfigProvider156Incubator; import javax.annotation.Nullable; -public class ApplicationOpenTelemetry155Incubator extends ApplicationOpenTelemetry127 +public class ApplicationOpenTelemetry156Incubator extends ApplicationOpenTelemetry127 implements ExtendedOpenTelemetry { // Accessed with reflection @@ -24,19 +24,19 @@ public class ApplicationOpenTelemetry155Incubator extends ApplicationOpenTelemet private final ConfigProvider configProvider; @Nullable - private static ApplicationOpenTelemetry155Incubator create() { + private static ApplicationOpenTelemetry156Incubator create() { io.opentelemetry.api.OpenTelemetry openTelemetry = GlobalOpenTelemetry.get(); if (openTelemetry instanceof io.opentelemetry.api.incubator.ExtendedOpenTelemetry) { - return new ApplicationOpenTelemetry155Incubator( + return new ApplicationOpenTelemetry156Incubator( ((io.opentelemetry.api.incubator.ExtendedOpenTelemetry) openTelemetry) .getConfigProvider()); } return null; } - public ApplicationOpenTelemetry155Incubator( + public ApplicationOpenTelemetry156Incubator( io.opentelemetry.api.incubator.config.ConfigProvider configProvider) { - this.configProvider = new ApplicationConfigProvider155Incubator(configProvider); + this.configProvider = new ApplicationConfigProvider156Incubator(configProvider); } @Override diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java similarity index 92% rename from instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java index e7f4b68ed0e6..756058eb9c5c 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator; import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; import static java.util.Collections.singletonList; @@ -19,7 +19,7 @@ public class OpenTelemetryApiIncubatorInstrumentationModule extends InstrumentationModule implements ExperimentalInstrumentationModule { public OpenTelemetryApiIncubatorInstrumentationModule() { - super("opentelemetry-api", "opentelemetry-api-1.55", "opentelemetry-api-incubator-1.55"); + super("opentelemetry-api", "opentelemetry-api-1.56", "opentelemetry-api-incubator-1.56"); } @Override diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryIncubatorInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java similarity index 80% rename from instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryIncubatorInstrumentation.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java index b7a1faeeba5c..efdee846b4b1 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/OpenTelemetryIncubatorInstrumentation.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java @@ -3,15 +3,15 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.none; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config.ApplicationConfigProvider155Incubator; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config.ApplicationDeclarativeConfigProperties155Incubator; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationConfigProvider156Incubator; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationDeclarativeConfigProperties156Incubator; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -35,9 +35,9 @@ public static class InitAdvice { public static void init() { // the sole purpose of this advice is to ensure that the classes are // recognized as helper class and injected into class loader - ApplicationOpenTelemetry155Incubator.class.getName(); - ApplicationDeclarativeConfigProperties155Incubator.class.getName(); - ApplicationConfigProvider155Incubator.class.getName(); + ApplicationOpenTelemetry156Incubator.class.getName(); + ApplicationDeclarativeConfigProperties156Incubator.class.getName(); + ApplicationConfigProvider156Incubator.class.getName(); } } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationConfigProvider155Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationConfigProvider156Incubator.java similarity index 78% rename from instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationConfigProvider155Incubator.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationConfigProvider156Incubator.java index 3544b7e8e466..cf989cf4588f 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationConfigProvider155Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationConfigProvider156Incubator.java @@ -3,20 +3,20 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config; import application.io.opentelemetry.api.incubator.config.ConfigProvider; import application.io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import javax.annotation.Nullable; -public class ApplicationConfigProvider155Incubator implements ConfigProvider { +public class ApplicationConfigProvider156Incubator implements ConfigProvider { private final DeclarativeConfigProperties declarativeConfigProperties; - public ApplicationConfigProvider155Incubator( + public ApplicationConfigProvider156Incubator( io.opentelemetry.api.incubator.config.ConfigProvider configProvider) { this.declarativeConfigProperties = - new ApplicationDeclarativeConfigProperties155Incubator( + new ApplicationDeclarativeConfigProperties156Incubator( configProvider.getInstrumentationConfig()); } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationDeclarativeConfigProperties155Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java similarity index 89% rename from instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationDeclarativeConfigProperties155Incubator.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java index dd156e41e3be..44c6b8d2a103 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/config/ApplicationDeclarativeConfigProperties155Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java @@ -3,22 +3,22 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config; import application.io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import application.io.opentelemetry.common.ComponentLoader; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.common.ApplicationComponentLoader155; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.common.ApplicationComponentLoader156; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import javax.annotation.Nullable; -public class ApplicationDeclarativeConfigProperties155Incubator +public class ApplicationDeclarativeConfigProperties156Incubator implements DeclarativeConfigProperties { private final io.opentelemetry.api.incubator.config.DeclarativeConfigProperties instrumentationConfig; - public ApplicationDeclarativeConfigProperties155Incubator( + public ApplicationDeclarativeConfigProperties156Incubator( io.opentelemetry.api.incubator.config.DeclarativeConfigProperties instrumentationConfig) { this.instrumentationConfig = instrumentationConfig; } @@ -92,7 +92,7 @@ public List getScalarList(String name, Class scalarType, List defau @Nullable @Override public DeclarativeConfigProperties getStructured(String name) { - return new ApplicationDeclarativeConfigProperties155Incubator( + return new ApplicationDeclarativeConfigProperties156Incubator( instrumentationConfig.getStructured(name)); } @@ -106,7 +106,7 @@ public List getStructuredList(String name) { } return structuredList.stream() - .map(e -> new ApplicationDeclarativeConfigProperties155Incubator(e)) + .map(e -> new ApplicationDeclarativeConfigProperties156Incubator(e)) .collect(Collectors.toList()); } @@ -117,6 +117,6 @@ public Set getPropertyKeys() { @Override public ComponentLoader getComponentLoader() { - return new ApplicationComponentLoader155(instrumentationConfig.getComponentLoader()); + return new ApplicationComponentLoader156(instrumentationConfig.getComponentLoader()); } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ExtendedOpenTelemetryTest.java similarity index 98% rename from instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ExtendedOpenTelemetryTest.java index afa321ea6cf2..5e82f292ff9e 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_55/incubator/ExtendedOpenTelemetryTest.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ExtendedOpenTelemetryTest.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator; import static org.assertj.core.api.Assertions.assertThat; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/resources/declarative-config.yaml b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/resources/declarative-config.yaml similarity index 100% rename from instrumentation/opentelemetry-api/opentelemetry-api-1.55/javaagent/src/test/resources/declarative-config.yaml rename to instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/resources/declarative-config.yaml diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.55/metadata.yaml b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/metadata.yaml similarity index 100% rename from instrumentation/opentelemetry-api/opentelemetry-api-1.55/metadata.yaml rename to instrumentation/opentelemetry-api/opentelemetry-api-1.56/metadata.yaml diff --git a/javaagent/build.gradle.kts b/javaagent/build.gradle.kts index 4f7babf38601..5c472c1f4034 100644 --- a/javaagent/build.gradle.kts +++ b/javaagent/build.gradle.kts @@ -90,7 +90,7 @@ dependencies { baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent")) - baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.55:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.56:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-instrumentation-api:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-instrumentation-annotations-1.16:javaagent")) baseJavaagentLibs(project(":instrumentation:executors:javaagent")) diff --git a/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts b/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts index c81f0f456727..fe864970cfb1 100644 --- a/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts +++ b/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts @@ -93,7 +93,7 @@ val v1_52Deps by configurations.creating { exclude("io.opentelemetry", "opentelemetry-bom") exclude("io.opentelemetry", "opentelemetry-bom-alpha") } -val v1_55Deps by configurations.creating { +val v1_56Deps by configurations.creating { isCanBeResolved = true isCanBeConsumed = false // exclude the bom added by dependencyManagement @@ -149,7 +149,7 @@ val v1_52 by configurations.creating { isCanBeConsumed = true isCanBeResolved = false } -val v1_55 by configurations.creating { +val v1_56 by configurations.creating { isCanBeConsumed = true isCanBeResolved = false } @@ -234,9 +234,9 @@ dependencies { strictly("1.52.0-alpha") } } - v1_55Deps("io.opentelemetry:$it") { + v1_56Deps("io.opentelemetry:$it") { version { - strictly("1.55.0-alpha") + strictly("1.56.0-alpha") } } } @@ -302,9 +302,9 @@ tasks { configurations = listOf(v1_52Deps) archiveClassifier.set("v1_52") } - val v1_55Shadow by registering(ShadowJar::class) { - configurations = listOf(v1_55Deps) - archiveClassifier.set("v1_55") + val v1_56Shadow by registering(ShadowJar::class) { + configurations = listOf(v1_56Deps) + archiveClassifier.set("v1_56") } artifacts { @@ -320,6 +320,6 @@ tasks { add(v1_47.name, v1_47Shadow) add(v1_50.name, v1_50Shadow) add(v1_52.name, v1_52Shadow) - add(v1_55.name, v1_55Shadow) + add(v1_56.name, v1_56Shadow) } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 2309a1ba1ed6..311f1b477b2d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -503,7 +503,7 @@ include(":instrumentation:opentelemetry-api:opentelemetry-api-1.42:javaagent") include(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent") include(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent") include(":instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent") -include(":instrumentation:opentelemetry-api:opentelemetry-api-1.55:javaagent") +include(":instrumentation:opentelemetry-api:opentelemetry-api-1.56:javaagent") include(":instrumentation:opentelemetry-extension-annotations-1.0:javaagent") include(":instrumentation:opentelemetry-extension-kotlin-1.0:javaagent") include(":instrumentation:opentelemetry-instrumentation-annotations-1.16:javaagent") From 86bff09d2c5e7d2c322caf923f9b8a4ba4f13569 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Sun, 9 Nov 2025 12:34:49 +0100 Subject: [PATCH 10/18] fix --- .../v1_56/OpenTelemetryApiInstrumentationModule.java | 4 +++- .../OpenTelemetryApiIncubatorInstrumentationModule.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryApiInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryApiInstrumentationModule.java index 10dc8a7bc29f..bc7804592cbf 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryApiInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryApiInstrumentationModule.java @@ -28,7 +28,9 @@ public ElementMatcher.Junction classLoaderMatcher() { return hasClassesNamed("application.io.opentelemetry.api.common.Value") .and( // disable when incubating api is present - not(hasClassesNamed("io.opentelemetry.api.incubator.ExtendedOpenTelemetry"))); + not( + hasClassesNamed( + "application.io.opentelemetry.api.incubator.ExtendedOpenTelemetry"))); } @Override diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java index 756058eb9c5c..5c15fc0c87f5 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java @@ -26,7 +26,7 @@ public OpenTelemetryApiIncubatorInstrumentationModule() { public ElementMatcher.Junction classLoaderMatcher() { return hasClassesNamed( "application.io.opentelemetry.api.common.Value", - "io.opentelemetry.api.incubator.ExtendedOpenTelemetry"); + "application.io.opentelemetry.api.incubator.ExtendedOpenTelemetry"); } @Override From 3626eca43f1230fb0a01949cb2e0a89f3cf69ac5 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Sun, 9 Nov 2025 12:45:59 +0100 Subject: [PATCH 11/18] fix --- .../v1_56/OpenTelemetryInstrumentation.java | 11 +---------- .../OpenTelemetryIncubatorInstrumentation.java | 2 ++ 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java index 868cec1bb3d9..94ed02c2a5a0 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java @@ -10,9 +10,6 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.ApplicationOpenTelemetry156Incubator; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationConfigProvider156Incubator; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationDeclarativeConfigProperties156Incubator; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -33,12 +30,6 @@ public void transform(TypeTransformer transformer) { @SuppressWarnings({"ReturnValueIgnored", "unused"}) public static class InitAdvice { @Advice.OnMethodEnter - public static void init() { - // the sole purpose of this advice is to ensure that the classes are - // recognized as helper class and injected into class loader - ApplicationOpenTelemetry156Incubator.class.getName(); - ApplicationDeclarativeConfigProperties156Incubator.class.getName(); - ApplicationConfigProvider156Incubator.class.getName(); - } + public static void init() {} } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java index efdee846b4b1..6190d6dc0340 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java @@ -10,6 +10,7 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.common.ApplicationComponentLoader156; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationConfigProvider156Incubator; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationDeclarativeConfigProperties156Incubator; import net.bytebuddy.asm.Advice; @@ -38,6 +39,7 @@ public static void init() { ApplicationOpenTelemetry156Incubator.class.getName(); ApplicationDeclarativeConfigProperties156Incubator.class.getName(); ApplicationConfigProvider156Incubator.class.getName(); + ApplicationComponentLoader156.class.getName(); } } } From 26df417d62dc23b491a8b46f6526ac478331499a Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Sun, 9 Nov 2025 12:52:42 +0100 Subject: [PATCH 12/18] fix --- .../v1_56/OpenTelemetryInstrumentation.java | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java index 94ed02c2a5a0..4e35731745b4 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java @@ -6,11 +6,9 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56; import static net.bytebuddy.matcher.ElementMatchers.named; -import static net.bytebuddy.matcher.ElementMatchers.none; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; -import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -22,14 +20,5 @@ public ElementMatcher typeMatcher() { } @Override - public void transform(TypeTransformer transformer) { - transformer.applyAdviceToMethod( - none(), OpenTelemetryInstrumentation.class.getName() + "$InitAdvice"); - } - - @SuppressWarnings({"ReturnValueIgnored", "unused"}) - public static class InitAdvice { - @Advice.OnMethodEnter - public static void init() {} - } + public void transform(TypeTransformer transformer) {} } From 3f448efeaeade9e240c5e08301597ed1d7363661 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Sun, 9 Nov 2025 12:56:59 +0100 Subject: [PATCH 13/18] remove unneeded classes --- ...OpenTelemetryApiInstrumentationModule.java | 45 ------------------- .../v1_56/OpenTelemetryInstrumentation.java | 24 ---------- 2 files changed, 69 deletions(-) delete mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryApiInstrumentationModule.java delete mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryApiInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryApiInstrumentationModule.java deleted file mode 100644 index bc7804592cbf..000000000000 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryApiInstrumentationModule.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56; - -import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; -import static java.util.Collections.singletonList; -import static net.bytebuddy.matcher.ElementMatchers.not; - -import com.google.auto.service.AutoService; -import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; -import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; -import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule; -import java.util.List; -import net.bytebuddy.matcher.ElementMatcher; - -@AutoService(InstrumentationModule.class) -public class OpenTelemetryApiInstrumentationModule extends InstrumentationModule - implements ExperimentalInstrumentationModule { - public OpenTelemetryApiInstrumentationModule() { - super("opentelemetry-api", "opentelemetry-api-1.56"); - } - - @Override - public ElementMatcher.Junction classLoaderMatcher() { - return hasClassesNamed("application.io.opentelemetry.api.common.Value") - .and( - // disable when incubating api is present - not( - hasClassesNamed( - "application.io.opentelemetry.api.incubator.ExtendedOpenTelemetry"))); - } - - @Override - public List typeInstrumentations() { - return singletonList(new OpenTelemetryInstrumentation()); - } - - @Override - public String getModuleGroup() { - return "opentelemetry-api-bridge"; - } -} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java deleted file mode 100644 index 4e35731745b4..000000000000 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/OpenTelemetryInstrumentation.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56; - -import static net.bytebuddy.matcher.ElementMatchers.named; - -import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; -import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; -import net.bytebuddy.description.type.TypeDescription; -import net.bytebuddy.matcher.ElementMatcher; - -public class OpenTelemetryInstrumentation implements TypeInstrumentation { - - @Override - public ElementMatcher typeMatcher() { - return named("application.io.opentelemetry.api.GlobalOpenTelemetry"); - } - - @Override - public void transform(TypeTransformer transformer) {} -} From fa352a6d39e27270692f6d6e5f40ee329ab4c376 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Tue, 11 Nov 2025 14:36:22 +0100 Subject: [PATCH 14/18] extract method --- .../ApplicationOpenTelemetry.java | 32 ++++++------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java index fdc70fec4c3c..1eb1ebb0ffab 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java @@ -57,37 +57,25 @@ public ContextPropagators getPropagators() { @Nullable private static OpenTelemetry getOpenTelemetry156() { - try { - // this class is defined in opentelemetry-api-1.56 - Class clazz = - Class.forName( - "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.ApplicationOpenTelemetry156Incubator"); - return (OpenTelemetry) clazz.getField("INSTANCE").get(null); - } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) { - return null; - } + return getOpenTelemetry( + "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.ApplicationOpenTelemetry156Incubator"); } @Nullable private static OpenTelemetry getOpenTelemetry127() { - try { - // this class is defined in opentelemetry-api-1.27 - Class clazz = - Class.forName( - "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127"); - return (OpenTelemetry) clazz.getField("INSTANCE").get(null); - } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) { - return null; - } + return getOpenTelemetry( + "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127"); } @Nullable private static OpenTelemetry getOpenTelemetry110() { + return getOpenTelemetry( + "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.ApplicationOpenTelemetry110"); + } + + private static OpenTelemetry getOpenTelemetry(String className) { try { - // this class is defined in opentelemetry-api-1.10 - Class clazz = - Class.forName( - "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.ApplicationOpenTelemetry110"); + Class clazz = Class.forName(className); return (OpenTelemetry) clazz.getField("INSTANCE").get(null); } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) { return null; From 27ae2dc9559386ae1dd7b613fccadc98c90b5e73 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Tue, 11 Nov 2025 14:38:53 +0100 Subject: [PATCH 15/18] make final --- .../v1_56/common/ApplicationComponentLoader156.java | 2 +- .../v1_56/incubator/ApplicationOpenTelemetry156Incubator.java | 2 +- .../incubator/config/ApplicationConfigProvider156Incubator.java | 2 +- .../ApplicationDeclarativeConfigProperties156Incubator.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/common/ApplicationComponentLoader156.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/common/ApplicationComponentLoader156.java index aaaf5117eefa..771260a54af9 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/common/ApplicationComponentLoader156.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/common/ApplicationComponentLoader156.java @@ -7,7 +7,7 @@ import application.io.opentelemetry.common.ComponentLoader; -public class ApplicationComponentLoader156 implements ComponentLoader { +public final class ApplicationComponentLoader156 implements ComponentLoader { private final io.opentelemetry.common.ComponentLoader componentLoader; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ApplicationOpenTelemetry156Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ApplicationOpenTelemetry156Incubator.java index 46790b336609..fff94b8f092b 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ApplicationOpenTelemetry156Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ApplicationOpenTelemetry156Incubator.java @@ -13,7 +13,7 @@ import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationConfigProvider156Incubator; import javax.annotation.Nullable; -public class ApplicationOpenTelemetry156Incubator extends ApplicationOpenTelemetry127 +public final class ApplicationOpenTelemetry156Incubator extends ApplicationOpenTelemetry127 implements ExtendedOpenTelemetry { // Accessed with reflection diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationConfigProvider156Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationConfigProvider156Incubator.java index cf989cf4588f..9165adde7019 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationConfigProvider156Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationConfigProvider156Incubator.java @@ -9,7 +9,7 @@ import application.io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import javax.annotation.Nullable; -public class ApplicationConfigProvider156Incubator implements ConfigProvider { +public final class ApplicationConfigProvider156Incubator implements ConfigProvider { private final DeclarativeConfigProperties declarativeConfigProperties; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java index 44c6b8d2a103..f3ebc775bc5b 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java @@ -13,7 +13,7 @@ import java.util.stream.Collectors; import javax.annotation.Nullable; -public class ApplicationDeclarativeConfigProperties156Incubator +public final class ApplicationDeclarativeConfigProperties156Incubator implements DeclarativeConfigProperties { private final io.opentelemetry.api.incubator.config.DeclarativeConfigProperties instrumentationConfig; From 3c7ecbbd1d30b7dee60a825a34f0bbba8638a4ca Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Tue, 11 Nov 2025 14:43:02 +0100 Subject: [PATCH 16/18] pr review --- .../v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java index 6190d6dc0340..5098683b76ca 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java @@ -37,9 +37,6 @@ public static void init() { // the sole purpose of this advice is to ensure that the classes are // recognized as helper class and injected into class loader ApplicationOpenTelemetry156Incubator.class.getName(); - ApplicationDeclarativeConfigProperties156Incubator.class.getName(); - ApplicationConfigProvider156Incubator.class.getName(); - ApplicationComponentLoader156.class.getName(); } } } From 3f89d7c623e0ce887d33e963445f54171dee58ef Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Tue, 11 Nov 2025 14:46:28 +0100 Subject: [PATCH 17/18] component loader doesn't work --- .../common/ApplicationComponentLoader156.java | 22 ------------------- ...OpenTelemetryIncubatorInstrumentation.java | 3 --- ...clarativeConfigProperties156Incubator.java | 6 +++-- 3 files changed, 4 insertions(+), 27 deletions(-) delete mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/common/ApplicationComponentLoader156.java diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/common/ApplicationComponentLoader156.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/common/ApplicationComponentLoader156.java deleted file mode 100644 index 771260a54af9..000000000000 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/common/ApplicationComponentLoader156.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.common; - -import application.io.opentelemetry.common.ComponentLoader; - -public final class ApplicationComponentLoader156 implements ComponentLoader { - - private final io.opentelemetry.common.ComponentLoader componentLoader; - - public ApplicationComponentLoader156(io.opentelemetry.common.ComponentLoader componentLoader) { - this.componentLoader = componentLoader; - } - - @Override - public Iterable load(Class type) { - return componentLoader.load(type); - } -} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java index 5098683b76ca..b5cc132ee775 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/OpenTelemetryIncubatorInstrumentation.java @@ -10,9 +10,6 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.common.ApplicationComponentLoader156; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationConfigProvider156Incubator; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config.ApplicationDeclarativeConfigProperties156Incubator; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java index f3ebc775bc5b..731defc77272 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/config/ApplicationDeclarativeConfigProperties156Incubator.java @@ -5,9 +5,9 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.incubator.config; +import application.io.opentelemetry.api.incubator.config.DeclarativeConfigException; import application.io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import application.io.opentelemetry.common.ComponentLoader; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_56.common.ApplicationComponentLoader156; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -117,6 +117,8 @@ public Set getPropertyKeys() { @Override public ComponentLoader getComponentLoader() { - return new ApplicationComponentLoader156(instrumentationConfig.getComponentLoader()); + throw new DeclarativeConfigException( + "getComponentLoader is not supported in application code. " + + "It is only used to set up the OpenTelemetry SDK in the agent."); } } From b673cb8535229ed2e728bbfe36a242fd9a5e5ea1 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Tue, 11 Nov 2025 14:49:44 +0100 Subject: [PATCH 18/18] add more tests --- .../v1_56/incubator/ExtendedOpenTelemetryTest.java | 3 +++ .../javaagent/src/test/resources/declarative-config.yaml | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ExtendedOpenTelemetryTest.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ExtendedOpenTelemetryTest.java index 5e82f292ff9e..4cb46eeafef2 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ExtendedOpenTelemetryTest.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_56/incubator/ExtendedOpenTelemetryTest.java @@ -34,5 +34,8 @@ void getConfig() { DeclarativeConfigProperties instrumentationConfig = ((ExtendedOpenTelemetry) openTelemetry).getConfigProvider().getInstrumentationConfig(); assertThat(instrumentationConfig).isNotNull(); + + assertThat(instrumentationConfig.getStructured("java").getStructured("foo").getString("bar")) + .isEqualTo("baz"); } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/resources/declarative-config.yaml b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/resources/declarative-config.yaml index 4c146ffdec0c..5c56733593e3 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/resources/declarative-config.yaml +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.56/javaagent/src/test/resources/declarative-config.yaml @@ -5,3 +5,9 @@ tracer_provider: - simple: exporter: console: + +instrumentation/development: + java: + foo: + bar: baz +