From faa910ea7463bbe8072882a1ddb555c0af241523 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Fri, 29 Aug 2025 13:36:49 +0200 Subject: [PATCH 01/11] move to sdk-bridge --- .fossa.yml | 3 + javaagent-tooling/build.gradle.kts | 5 + .../tooling/OpenTelemetryInstaller.java | 2 +- javaagent/build.gradle.kts | 1 + sdk-bridge/README.md | 91 +++++++++++++++++++ sdk-bridge/build.gradle.kts | 18 ++++ .../sdk/ConfigPropertiesUtil.java | 23 +++++ .../DeclarativeConfigPropertiesBridge.java | 4 + ...larativeConfigPropertiesBridgeBuilder.java | 4 + .../sdk/ConfigPropertiesUtilTest.java | 19 ++++ ...tiveConfigPropertiesBridgeBuilderTest.java | 4 + ...DeclarativeConfigPropertiesBridgeTest.java | 4 + .../src/test/resources/config.yaml | 0 settings.gradle.kts | 1 + 14 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 sdk-bridge/README.md create mode 100644 sdk-bridge/build.gradle.kts create mode 100644 sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java rename {instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge => sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk}/DeclarativeConfigPropertiesBridge.java (94%) rename {instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge => sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk}/DeclarativeConfigPropertiesBridgeBuilder.java (92%) create mode 100644 sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtilTest.java rename {instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge => sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk}/DeclarativeConfigPropertiesBridgeBuilderTest.java (90%) rename {instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge => sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk}/DeclarativeConfigPropertiesBridgeTest.java (94%) rename {instrumentation-api-incubator => sdk-bridge}/src/test/resources/config.yaml (100%) diff --git a/.fossa.yml b/.fossa.yml index 7d094439bd12..f8bc5a689507 100644 --- a/.fossa.yml +++ b/.fossa.yml @@ -40,6 +40,9 @@ targets: - type: gradle path: ./ target: ':sdk-autoconfigure-support' + - type: gradle + path: ./ + target: ':sdk-bridge' - type: gradle path: ./ target: ':testing-common' diff --git a/javaagent-tooling/build.gradle.kts b/javaagent-tooling/build.gradle.kts index 0d94d1baeb09..f131a3e4ac04 100644 --- a/javaagent-tooling/build.gradle.kts +++ b/javaagent-tooling/build.gradle.kts @@ -17,6 +17,11 @@ dependencies { implementation(project(":instrumentation-annotations-support")) implementation(project(":muzzle")) implementation(project(":sdk-autoconfigure-support")) + implementation(project(":sdk-bridge")) { + // is part of bootstrap classpath + exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") + exclude(group = "io.opentelemetry", module = "opentelemetry-sdk-extension-autoconfigure-spi") + } implementation("io.opentelemetry:opentelemetry-api") implementation("io.opentelemetry:opentelemetry-sdk") diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java index 3a31d4986cdc..79c5126e5b79 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java @@ -6,7 +6,7 @@ package io.opentelemetry.javaagent.tooling; import io.opentelemetry.api.incubator.config.ConfigProvider; -import io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge.DeclarativeConfigPropertiesBridgeBuilder; +import io.opentelemetry.instrumentation.sdk.DeclarativeConfigPropertiesBridgeBuilder; import io.opentelemetry.javaagent.bootstrap.OpenTelemetrySdkAccess; import io.opentelemetry.javaagent.tooling.config.EarlyInitAgentConfig; import io.opentelemetry.sdk.OpenTelemetrySdk; diff --git a/javaagent/build.gradle.kts b/javaagent/build.gradle.kts index f4eec724b26c..9c8e71d1517c 100644 --- a/javaagent/build.gradle.kts +++ b/javaagent/build.gradle.kts @@ -68,6 +68,7 @@ dependencies { exclude("io.opentelemetry", "opentelemetry-sdk") exclude("io.opentelemetry", "opentelemetry-sdk-extension-autoconfigure") exclude("io.opentelemetry", "opentelemetry-sdk-extension-autoconfigure-spi") + exclude("io.opentelemetry.instrumentation", "sdk-bridge") } baseJavaagentLibs(project(":javaagent-extension-api")) baseJavaagentLibs(project(":instrumentation-api-incubator")) diff --git a/sdk-bridge/README.md b/sdk-bridge/README.md new file mode 100644 index 000000000000..348cd6bb1720 --- /dev/null +++ b/sdk-bridge/README.md @@ -0,0 +1,91 @@ +# OpenTelemetry Instrumentation API Incubator + +Instrumentation API Incubator is a collection of libraries that provide additional functionality +for OpenTelemetry instrumentation and auto-configuration. It is intended to be used by +instrumentation authors and auto-configuration providers to enhance their capabilities and provide a +more consistent experience when working with OpenTelemetry. + +## Declarative Config Bridge + +Declarative Config Bridge allows instrumentation authors to access configuration in a uniform way, +regardless of the configuration source. + +The bridge allows you to read configuration using the system property style when dealing with +declarative configuration. + +### Example + +As an example, let's look at the inferred spans configuration. +First, there is a configuration method that reads the properties and is unaware of the source of the +configuration: + +```java +class InferredSpansConfig { + static SpanProcessor create(ConfigProperties properties) { + // read properties here + boolean backupDiagnosticFiles = + properties.getBoolean("otel.inferred.spans.backup.diagnostic.files", false); + } +} +``` + +The auto configuration **without declarative config** passes the provided properties directly: + +```java + +@AutoService(AutoConfigurationCustomizerProvider.class) +public class InferredSpansAutoConfig implements AutoConfigurationCustomizerProvider { + + @Override + public void customize(AutoConfigurationCustomizer config) { + config.addTracerProviderCustomizer( + (providerBuilder, properties) -> { + providerBuilder.addSpanProcessor(InferredSpansConfig.create(properties)); + return providerBuilder; + }); + } +} +``` + +The auto configuration **with declarative config** uses the Declarative Config Bridge to be able to +use common configuration method: + +Let's first look at the yaml file that is used to configure the inferred spans processor: + +```yaml +file_format: 1.0-rc.1 +tracer_provider: + processors: + - inferred_spans: + backup: + diagnostic: + files: true +``` + +And now the component provider that uses the Declarative Config Bridge: + +```java + +@AutoService(ComponentProvider.class) +public class InferredSpansComponentProvider implements ComponentProvider { + + @Override + public String getName() { + return "inferred_spans"; + } + + @Override + public SpanProcessor create(DeclarativeConfigProperties config) { + return InferredSpansConfig.create( + new DeclarativeConfigPropertiesBridgeBuilder() + // crop the prefix, because the properties are under the "inferred_spans" processor + .addMapping("otel.inferred.spans.", "") + .build(config)); + } + + @Override + public Class getType() { + return SpanProcessor.class; + } +} +``` diff --git a/sdk-bridge/build.gradle.kts b/sdk-bridge/build.gradle.kts new file mode 100644 index 000000000000..9905c4a8ce8b --- /dev/null +++ b/sdk-bridge/build.gradle.kts @@ -0,0 +1,18 @@ +plugins { + id("otel.java-conventions") + id("otel.publish-conventions") +} + +group = "io.opentelemetry.instrumentation" + +dependencies { + compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") + implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi") + implementation("io.opentelemetry:opentelemetry-api-incubator") + + testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator") + testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") + + compileOnly("com.google.code.findbugs:annotations") + testCompileOnly("com.google.code.findbugs:annotations") +} diff --git a/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java b/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java new file mode 100644 index 000000000000..5c5072f19040 --- /dev/null +++ b/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java @@ -0,0 +1,23 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.instrumentation.sdk; + +public final class ConfigPropertiesUtil { + private ConfigPropertiesUtil() {} + + public static String propertyYamlPath(String propertyName) { + return yamlPath(propertyName); + } + + static String yamlPath(String property) { + String[] segments = DeclarativeConfigPropertiesBridge.getSegments(property); + if (segments.length == 0) { + throw new IllegalArgumentException("Invalid property: " + property); + } + + return "'instrumentation/development' / 'java' / '" + String.join("' / '", segments) + "'"; + } +} diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridge.java b/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java similarity index 94% rename from instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridge.java rename to sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java index 000d928159d4..461c9f76bf6d 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridge.java +++ b/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java @@ -3,7 +3,11 @@ * SPDX-License-Identifier: Apache-2.0 */ +<<<<<<<< HEAD:instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridge.java package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge; +======== +package io.opentelemetry.instrumentation.sdk; +>>>>>>>> 46c50a0541 (move to sdk-bridge):sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty; diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeBuilder.java b/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java similarity index 92% rename from instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeBuilder.java rename to sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java index e3a30c196fd5..5e0ca103fcd7 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeBuilder.java +++ b/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java @@ -3,7 +3,11 @@ * SPDX-License-Identifier: Apache-2.0 */ +<<<<<<<< HEAD:instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeBuilder.java package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge; +======== +package io.opentelemetry.instrumentation.sdk; +>>>>>>>> 46c50a0541 (move to sdk-bridge):sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty; diff --git a/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtilTest.java b/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtilTest.java new file mode 100644 index 000000000000..7d842a2c4553 --- /dev/null +++ b/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtilTest.java @@ -0,0 +1,19 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.instrumentation.sdk; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class ConfigPropertiesUtilTest { + @Test + void propertyYamlPath() { + assertThat(ConfigPropertiesUtil.propertyYamlPath("google.otel.auth.target.signals")) + .isEqualTo( + "'instrumentation/development' / 'java' / 'google' / 'otel' / 'auth' / 'target' / 'signals'"); + } +} diff --git a/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeBuilderTest.java b/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java similarity index 90% rename from instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeBuilderTest.java rename to sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java index 96b4ff0f3b9f..5662491fb073 100644 --- a/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeBuilderTest.java +++ b/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java @@ -3,7 +3,11 @@ * SPDX-License-Identifier: Apache-2.0 */ +<<<<<<<< HEAD:instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeBuilderTest.java package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge; +======== +package io.opentelemetry.instrumentation.sdk; +>>>>>>>> 46c50a0541 (move to sdk-bridge):sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.eq; diff --git a/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeTest.java b/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java similarity index 94% rename from instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeTest.java rename to sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java index 879c2223646a..d9f9b495144b 100644 --- a/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeTest.java +++ b/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java @@ -3,7 +3,11 @@ * SPDX-License-Identifier: Apache-2.0 */ +<<<<<<<< HEAD:instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeTest.java package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge; +======== +package io.opentelemetry.instrumentation.sdk; +>>>>>>>> 46c50a0541 (move to sdk-bridge):sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java import static org.assertj.core.api.Assertions.assertThat; diff --git a/instrumentation-api-incubator/src/test/resources/config.yaml b/sdk-bridge/src/test/resources/config.yaml similarity index 100% rename from instrumentation-api-incubator/src/test/resources/config.yaml rename to sdk-bridge/src/test/resources/config.yaml diff --git a/settings.gradle.kts b/settings.gradle.kts index 7e171f79605a..78c83fd94d32 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -86,6 +86,7 @@ include(":javaagent-internal-logging-application") include(":javaagent-internal-logging-simple") include(":javaagent") include(":sdk-autoconfigure-support") +include(":sdk-bridge") include(":bom") include(":bom-alpha") From fe60b31d17960494c34d685a339cee4d9f48f068 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Fri, 29 Aug 2025 14:00:35 +0200 Subject: [PATCH 02/11] move to sdk-bridge --- instrumentation-api-incubator/README.md | 91 ------------------- .../build.gradle.kts | 4 - .../config/bridge/ConfigPropertiesUtil.java | 23 ----- javaagent-tooling/build.gradle.kts | 1 - javaagent/build.gradle.kts | 30 ++---- .../DeclarativeConfigPropertiesBridge.java | 4 - ...larativeConfigPropertiesBridgeBuilder.java | 4 - ...tiveConfigPropertiesBridgeBuilderTest.java | 4 - ...DeclarativeConfigPropertiesBridgeTest.java | 4 - 9 files changed, 7 insertions(+), 158 deletions(-) delete mode 100644 instrumentation-api-incubator/README.md delete mode 100644 instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/ConfigPropertiesUtil.java diff --git a/instrumentation-api-incubator/README.md b/instrumentation-api-incubator/README.md deleted file mode 100644 index 348cd6bb1720..000000000000 --- a/instrumentation-api-incubator/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# OpenTelemetry Instrumentation API Incubator - -Instrumentation API Incubator is a collection of libraries that provide additional functionality -for OpenTelemetry instrumentation and auto-configuration. It is intended to be used by -instrumentation authors and auto-configuration providers to enhance their capabilities and provide a -more consistent experience when working with OpenTelemetry. - -## Declarative Config Bridge - -Declarative Config Bridge allows instrumentation authors to access configuration in a uniform way, -regardless of the configuration source. - -The bridge allows you to read configuration using the system property style when dealing with -declarative configuration. - -### Example - -As an example, let's look at the inferred spans configuration. -First, there is a configuration method that reads the properties and is unaware of the source of the -configuration: - -```java -class InferredSpansConfig { - static SpanProcessor create(ConfigProperties properties) { - // read properties here - boolean backupDiagnosticFiles = - properties.getBoolean("otel.inferred.spans.backup.diagnostic.files", false); - } -} -``` - -The auto configuration **without declarative config** passes the provided properties directly: - -```java - -@AutoService(AutoConfigurationCustomizerProvider.class) -public class InferredSpansAutoConfig implements AutoConfigurationCustomizerProvider { - - @Override - public void customize(AutoConfigurationCustomizer config) { - config.addTracerProviderCustomizer( - (providerBuilder, properties) -> { - providerBuilder.addSpanProcessor(InferredSpansConfig.create(properties)); - return providerBuilder; - }); - } -} -``` - -The auto configuration **with declarative config** uses the Declarative Config Bridge to be able to -use common configuration method: - -Let's first look at the yaml file that is used to configure the inferred spans processor: - -```yaml -file_format: 1.0-rc.1 -tracer_provider: - processors: - - inferred_spans: - backup: - diagnostic: - files: true -``` - -And now the component provider that uses the Declarative Config Bridge: - -```java - -@AutoService(ComponentProvider.class) -public class InferredSpansComponentProvider implements ComponentProvider { - - @Override - public String getName() { - return "inferred_spans"; - } - - @Override - public SpanProcessor create(DeclarativeConfigProperties config) { - return InferredSpansConfig.create( - new DeclarativeConfigPropertiesBridgeBuilder() - // crop the prefix, because the properties are under the "inferred_spans" processor - .addMapping("otel.inferred.spans.", "") - .build(config)); - } - - @Override - public Class getType() { - return SpanProcessor.class; - } -} -``` diff --git a/instrumentation-api-incubator/build.gradle.kts b/instrumentation-api-incubator/build.gradle.kts index ac891987027a..229230ef880d 100644 --- a/instrumentation-api-incubator/build.gradle.kts +++ b/instrumentation-api-incubator/build.gradle.kts @@ -14,8 +14,6 @@ dependencies { api("io.opentelemetry.semconv:opentelemetry-semconv") api(project(":instrumentation-api")) api("io.opentelemetry:opentelemetry-api-incubator") - compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") - compileOnly("io.opentelemetry:opentelemetry-sdk-extension-incubator") compileOnly("com.google.auto.value:auto-value-annotations") annotationProcessor("com.google.auto.value:auto-value") @@ -24,8 +22,6 @@ dependencies { testImplementation("io.opentelemetry:opentelemetry-sdk") testImplementation("io.opentelemetry:opentelemetry-sdk-testing") testImplementation("io.opentelemetry.semconv:opentelemetry-semconv-incubating") - testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") - testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator") } testing { diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/ConfigPropertiesUtil.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/ConfigPropertiesUtil.java deleted file mode 100644 index 6a026e38d468..000000000000 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/ConfigPropertiesUtil.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge; - -public final class ConfigPropertiesUtil { - private ConfigPropertiesUtil() {} - - public static String propertyYamlPath(String propertyName) { - return yamlPath(propertyName); - } - - static String yamlPath(String property) { - String[] segments = DeclarativeConfigPropertiesBridge.getSegments(property); - if (segments.length == 0) { - throw new IllegalArgumentException("Invalid property: " + property); - } - - return "'instrumentation/development' / 'java' / '" + String.join("' / '", segments) + "'"; - } -} diff --git a/javaagent-tooling/build.gradle.kts b/javaagent-tooling/build.gradle.kts index f131a3e4ac04..ef119fe29324 100644 --- a/javaagent-tooling/build.gradle.kts +++ b/javaagent-tooling/build.gradle.kts @@ -25,7 +25,6 @@ dependencies { implementation("io.opentelemetry:opentelemetry-api") implementation("io.opentelemetry:opentelemetry-sdk") - implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi") implementation("io.opentelemetry:opentelemetry-extension-kotlin") implementation("io.opentelemetry:opentelemetry-extension-trace-propagators") // the incubator's ViewConfigCustomizer is used to support loading yaml-based metric views diff --git a/javaagent/build.gradle.kts b/javaagent/build.gradle.kts index 9c8e71d1517c..04768877ecee 100644 --- a/javaagent/build.gradle.kts +++ b/javaagent/build.gradle.kts @@ -57,6 +57,7 @@ dependencies { bootstrapLibs(project(":instrumentation-api")) // opentelemetry-api is an api dependency of :instrumentation-api, but opentelemetry-api-incubator is not bootstrapLibs("io.opentelemetry:opentelemetry-api-incubator") + bootstrapLibs(project(":instrumentation-api-incubator")) bootstrapLibs(project(":instrumentation-annotations-support")) bootstrapLibs(project(":javaagent-bootstrap")) @@ -71,11 +72,8 @@ dependencies { exclude("io.opentelemetry.instrumentation", "sdk-bridge") } baseJavaagentLibs(project(":javaagent-extension-api")) - baseJavaagentLibs(project(":instrumentation-api-incubator")) - baseJavaagentLibs(project(":javaagent-tooling")) { - exclude("io.opentelemetry", "opentelemetry-sdk-extension-autoconfigure-spi") - } + baseJavaagentLibs(project(":javaagent-tooling")) baseJavaagentLibs(project(":javaagent-internal-logging-application")) baseJavaagentLibs(project(":javaagent-internal-logging-simple", configuration = "shadow")) baseJavaagentLibs(project(":muzzle")) @@ -150,7 +148,8 @@ tasks { val buildBootstrapLibs by registering(ShadowJar::class) { configurations = listOf(bootstrapLibs) - excludeNonBootstrapClasses() + // exclude the agent part of the javaagent-extension-api; these classes will be added in relocate tasks + exclude("io/opentelemetry/javaagent/extension/**") duplicatesStrategy = DuplicatesStrategy.EXCLUDE @@ -288,8 +287,7 @@ tasks { doLast { val filePath = rootDir.toPath().resolve("licenses").resolve("licenses.md") if (Files.exists(filePath)) { - val datePattern = - Pattern.compile("^_[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} .*_$") + val datePattern = Pattern.compile("^_[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} .*_$") val lines = Files.readAllLines(filePath) // 4th line contains the timestamp of when the license report was generated, replace it with // an empty line @@ -415,8 +413,7 @@ fun CopySpec.copyByteBuddy(jar: Provider) { eachFile { if (path.startsWith("net/bytebuddy/") && // this is our class that we have placed in the byte buddy package, need to preserve it - !path.startsWith("net/bytebuddy/agent/builder/AgentBuilderUtil") - ) { + !path.startsWith("net/bytebuddy/agent/builder/AgentBuilderUtil")) { exclude() } else if (path.startsWith("META-INF/versions/9/net/bytebuddy/")) { path = path.removePrefix("META-INF/versions/9/") @@ -426,30 +423,17 @@ fun CopySpec.copyByteBuddy(jar: Provider) { } } -// exclude bootstrap projects from javaagent libs - they won't be added to inst/ -fun ShadowJar.excludeNonBootstrapClasses() { - // exclude the agent part of the javaagent-extension-api; these classes will be added in relocate tasks - exclude("io/opentelemetry/javaagent/extension/**") - exclude("**/instrumentation/api/incubator/sdk/**") -} - // exclude bootstrap projects from javaagent libs - they won't be added to inst/ fun ShadowJar.excludeBootstrapClasses() { dependencies { exclude(project(":instrumentation-api")) + exclude(project(":instrumentation-api-incubator")) exclude(project(":instrumentation-annotations-support")) exclude(project(":javaagent-bootstrap")) } // exclude the bootstrap part of the javaagent-extension-api exclude("io/opentelemetry/javaagent/bootstrap/**") - - // all in instrumentation-api-incubator except the bridge package - exclude("io/opentelemetry/instrumentation/api/incubator/builder/**") - exclude("io/opentelemetry/instrumentation/api/incubator/config/**") - exclude("io/opentelemetry/instrumentation/api/incubator/instrumenter/**") - exclude("io/opentelemetry/instrumentation/api/incubator/log/**") - exclude("io/opentelemetry/instrumentation/api/incubator/semconv/**") } class JavaagentProvider( diff --git a/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java b/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java index 461c9f76bf6d..953f299a6a5c 100644 --- a/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java +++ b/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java @@ -3,11 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -<<<<<<<< HEAD:instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridge.java -package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge; -======== package io.opentelemetry.instrumentation.sdk; ->>>>>>>> 46c50a0541 (move to sdk-bridge):sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty; diff --git a/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java b/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java index 5e0ca103fcd7..ae9ccf672086 100644 --- a/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java +++ b/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java @@ -3,11 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -<<<<<<<< HEAD:instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeBuilder.java -package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge; -======== package io.opentelemetry.instrumentation.sdk; ->>>>>>>> 46c50a0541 (move to sdk-bridge):sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty; diff --git a/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java b/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java index 5662491fb073..c72b7d63d1ed 100644 --- a/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java +++ b/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java @@ -3,11 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -<<<<<<<< HEAD:instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeBuilderTest.java -package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge; -======== package io.opentelemetry.instrumentation.sdk; ->>>>>>>> 46c50a0541 (move to sdk-bridge):sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.eq; diff --git a/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java b/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java index d9f9b495144b..85849ddb9210 100644 --- a/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java +++ b/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java @@ -3,11 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -<<<<<<<< HEAD:instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/DeclarativeConfigPropertiesBridgeTest.java -package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge; -======== package io.opentelemetry.instrumentation.sdk; ->>>>>>>> 46c50a0541 (move to sdk-bridge):sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java import static org.assertj.core.api.Assertions.assertThat; From df46a5ebef2007efbdc62e66fcb2b21af3553f6d Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Fri, 29 Aug 2025 14:02:56 +0200 Subject: [PATCH 03/11] move to sdk-bridge --- javaagent/build.gradle.kts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/javaagent/build.gradle.kts b/javaagent/build.gradle.kts index 04768877ecee..a7054630d497 100644 --- a/javaagent/build.gradle.kts +++ b/javaagent/build.gradle.kts @@ -287,7 +287,8 @@ tasks { doLast { val filePath = rootDir.toPath().resolve("licenses").resolve("licenses.md") if (Files.exists(filePath)) { - val datePattern = Pattern.compile("^_[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} .*_$") + val datePattern = + Pattern.compile("^_[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} .*_$") val lines = Files.readAllLines(filePath) // 4th line contains the timestamp of when the license report was generated, replace it with // an empty line @@ -413,7 +414,8 @@ fun CopySpec.copyByteBuddy(jar: Provider) { eachFile { if (path.startsWith("net/bytebuddy/") && // this is our class that we have placed in the byte buddy package, need to preserve it - !path.startsWith("net/bytebuddy/agent/builder/AgentBuilderUtil")) { + !path.startsWith("net/bytebuddy/agent/builder/AgentBuilderUtil") + ) { exclude() } else if (path.startsWith("META-INF/versions/9/net/bytebuddy/")) { path = path.removePrefix("META-INF/versions/9/") From f3d89a8679f241b9e70536a2f6b4b8240231dc18 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Fri, 29 Aug 2025 14:59:10 +0200 Subject: [PATCH 04/11] move to sdk-bridge --- .../bridge/ConfigPropertiesUtilTest.java | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/ConfigPropertiesUtilTest.java diff --git a/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/ConfigPropertiesUtilTest.java b/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/ConfigPropertiesUtilTest.java deleted file mode 100644 index 535fda407160..000000000000 --- a/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/sdk/config/bridge/ConfigPropertiesUtilTest.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.jupiter.api.Test; - -class ConfigPropertiesUtilTest { - @Test - void propertyYamlPath() { - assertThat(ConfigPropertiesUtil.propertyYamlPath("google.otel.auth.target.signals")) - .isEqualTo( - "'instrumentation/development' / 'java' / 'google' / 'otel' / 'auth' / 'target' / 'signals'"); - } -} From 4bbddd8072d8f526e1fcb90b37f1a5cd6eaeb755 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Fri, 29 Aug 2025 15:50:15 +0200 Subject: [PATCH 05/11] Update sdk-bridge/build.gradle.kts Co-authored-by: Jay DeLuca --- sdk-bridge/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk-bridge/build.gradle.kts b/sdk-bridge/build.gradle.kts index 9905c4a8ce8b..b5ac9ec9c1c3 100644 --- a/sdk-bridge/build.gradle.kts +++ b/sdk-bridge/build.gradle.kts @@ -1,6 +1,7 @@ plugins { id("otel.java-conventions") id("otel.publish-conventions") + id("otel.nullaway-conventions") } group = "io.opentelemetry.instrumentation" From fadfff6106f2bc094fd5db18c08e52ebd39c1ae3 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Fri, 29 Aug 2025 17:12:47 +0200 Subject: [PATCH 06/11] rename to declarative-config-bridge --- .fossa.yml | 2 +- {sdk-bridge => declarative-config-bridge}/README.md | 0 {sdk-bridge => declarative-config-bridge}/build.gradle.kts | 0 .../opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java | 0 .../instrumentation/sdk/DeclarativeConfigPropertiesBridge.java | 0 .../sdk/DeclarativeConfigPropertiesBridgeBuilder.java | 0 .../instrumentation/sdk/ConfigPropertiesUtilTest.java | 0 .../sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java | 0 .../sdk/DeclarativeConfigPropertiesBridgeTest.java | 0 .../src/test/resources/config.yaml | 0 javaagent-tooling/build.gradle.kts | 2 +- javaagent/build.gradle.kts | 2 +- settings.gradle.kts | 2 +- 13 files changed, 4 insertions(+), 4 deletions(-) rename {sdk-bridge => declarative-config-bridge}/README.md (100%) rename {sdk-bridge => declarative-config-bridge}/build.gradle.kts (100%) rename {sdk-bridge => declarative-config-bridge}/src/main/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java (100%) rename {sdk-bridge => declarative-config-bridge}/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java (100%) rename {sdk-bridge => declarative-config-bridge}/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java (100%) rename {sdk-bridge => declarative-config-bridge}/src/test/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtilTest.java (100%) rename {sdk-bridge => declarative-config-bridge}/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java (100%) rename {sdk-bridge => declarative-config-bridge}/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java (100%) rename {sdk-bridge => declarative-config-bridge}/src/test/resources/config.yaml (100%) diff --git a/.fossa.yml b/.fossa.yml index f8bc5a689507..a76fed6dfabc 100644 --- a/.fossa.yml +++ b/.fossa.yml @@ -42,7 +42,7 @@ targets: target: ':sdk-autoconfigure-support' - type: gradle path: ./ - target: ':sdk-bridge' + target: ':declarative-config-bridge' - type: gradle path: ./ target: ':testing-common' diff --git a/sdk-bridge/README.md b/declarative-config-bridge/README.md similarity index 100% rename from sdk-bridge/README.md rename to declarative-config-bridge/README.md diff --git a/sdk-bridge/build.gradle.kts b/declarative-config-bridge/build.gradle.kts similarity index 100% rename from sdk-bridge/build.gradle.kts rename to declarative-config-bridge/build.gradle.kts diff --git a/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java b/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java similarity index 100% rename from sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java rename to declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java diff --git a/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java b/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java similarity index 100% rename from sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java rename to declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java diff --git a/sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java b/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java similarity index 100% rename from sdk-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java rename to declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java diff --git a/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtilTest.java b/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtilTest.java similarity index 100% rename from sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtilTest.java rename to declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtilTest.java diff --git a/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java b/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java similarity index 100% rename from sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java rename to declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java diff --git a/sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java b/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java similarity index 100% rename from sdk-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java rename to declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java diff --git a/sdk-bridge/src/test/resources/config.yaml b/declarative-config-bridge/src/test/resources/config.yaml similarity index 100% rename from sdk-bridge/src/test/resources/config.yaml rename to declarative-config-bridge/src/test/resources/config.yaml diff --git a/javaagent-tooling/build.gradle.kts b/javaagent-tooling/build.gradle.kts index ef119fe29324..c790f79eedc7 100644 --- a/javaagent-tooling/build.gradle.kts +++ b/javaagent-tooling/build.gradle.kts @@ -17,7 +17,7 @@ dependencies { implementation(project(":instrumentation-annotations-support")) implementation(project(":muzzle")) implementation(project(":sdk-autoconfigure-support")) - implementation(project(":sdk-bridge")) { + implementation(project(":declarative-config-bridge")) { // is part of bootstrap classpath exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") exclude(group = "io.opentelemetry", module = "opentelemetry-sdk-extension-autoconfigure-spi") diff --git a/javaagent/build.gradle.kts b/javaagent/build.gradle.kts index a7054630d497..ff1bb1cb0756 100644 --- a/javaagent/build.gradle.kts +++ b/javaagent/build.gradle.kts @@ -69,7 +69,7 @@ dependencies { exclude("io.opentelemetry", "opentelemetry-sdk") exclude("io.opentelemetry", "opentelemetry-sdk-extension-autoconfigure") exclude("io.opentelemetry", "opentelemetry-sdk-extension-autoconfigure-spi") - exclude("io.opentelemetry.instrumentation", "sdk-bridge") + exclude("io.opentelemetry.instrumentation", "declarative-config-bridge") } baseJavaagentLibs(project(":javaagent-extension-api")) diff --git a/settings.gradle.kts b/settings.gradle.kts index 78c83fd94d32..2a6f241d7470 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -86,7 +86,7 @@ include(":javaagent-internal-logging-application") include(":javaagent-internal-logging-simple") include(":javaagent") include(":sdk-autoconfigure-support") -include(":sdk-bridge") +include(":declarative-config-bridge") include(":bom") include(":bom-alpha") From ea1aed6e460bf0b715a6894af452216fed99b052 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Fri, 29 Aug 2025 17:20:56 +0200 Subject: [PATCH 07/11] rename to declarative-config-bridge --- .fossa.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.fossa.yml b/.fossa.yml index a76fed6dfabc..b2374a9de0c9 100644 --- a/.fossa.yml +++ b/.fossa.yml @@ -4,6 +4,9 @@ targets: only: # only scanning the modules which are published # (as opposed to internal testing modules + - type: gradle + path: ./ + target: ':declarative-config-bridge' - type: gradle path: ./ target: ':instrumentation-annotations' @@ -40,9 +43,6 @@ targets: - type: gradle path: ./ target: ':sdk-autoconfigure-support' - - type: gradle - path: ./ - target: ':declarative-config-bridge' - type: gradle path: ./ target: ':testing-common' From b5a63f3b91a3ece1b189a7abef6fde88a0481a0c Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Fri, 29 Aug 2025 19:23:58 +0200 Subject: [PATCH 08/11] move package --- .../{sdk => config/bridge}/ConfigPropertiesUtil.java | 2 +- .../bridge}/DeclarativeConfigPropertiesBridge.java | 2 +- .../bridge}/DeclarativeConfigPropertiesBridgeBuilder.java | 2 +- .../{sdk => config/bridge}/ConfigPropertiesUtilTest.java | 2 +- .../bridge}/DeclarativeConfigPropertiesBridgeBuilderTest.java | 2 +- .../bridge}/DeclarativeConfigPropertiesBridgeTest.java | 2 +- .../opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) rename declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/{sdk => config/bridge}/ConfigPropertiesUtil.java (91%) rename declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/{sdk => config/bridge}/DeclarativeConfigPropertiesBridge.java (99%) rename declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/{sdk => config/bridge}/DeclarativeConfigPropertiesBridgeBuilder.java (98%) rename declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/{sdk => config/bridge}/ConfigPropertiesUtilTest.java (89%) rename declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/{sdk => config/bridge}/DeclarativeConfigPropertiesBridgeBuilderTest.java (98%) rename declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/{sdk => config/bridge}/DeclarativeConfigPropertiesBridgeTest.java (99%) diff --git a/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java b/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/ConfigPropertiesUtil.java similarity index 91% rename from declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java rename to declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/ConfigPropertiesUtil.java index 5c5072f19040..cc7fb351ea3c 100644 --- a/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtil.java +++ b/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/ConfigPropertiesUtil.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.sdk; +package io.opentelemetry.instrumentation.config.bridge; public final class ConfigPropertiesUtil { private ConfigPropertiesUtil() {} diff --git a/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java b/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/DeclarativeConfigPropertiesBridge.java similarity index 99% rename from declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java rename to declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/DeclarativeConfigPropertiesBridge.java index 953f299a6a5c..928a17f5bd0e 100644 --- a/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridge.java +++ b/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/DeclarativeConfigPropertiesBridge.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.sdk; +package io.opentelemetry.instrumentation.config.bridge; import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty; diff --git a/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java b/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/DeclarativeConfigPropertiesBridgeBuilder.java similarity index 98% rename from declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java rename to declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/DeclarativeConfigPropertiesBridgeBuilder.java index ae9ccf672086..3c70dc8b6100 100644 --- a/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilder.java +++ b/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/DeclarativeConfigPropertiesBridgeBuilder.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.sdk; +package io.opentelemetry.instrumentation.config.bridge; import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty; diff --git a/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtilTest.java b/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/config/bridge/ConfigPropertiesUtilTest.java similarity index 89% rename from declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtilTest.java rename to declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/config/bridge/ConfigPropertiesUtilTest.java index 7d842a2c4553..db62912fd572 100644 --- a/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/ConfigPropertiesUtilTest.java +++ b/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/config/bridge/ConfigPropertiesUtilTest.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.sdk; +package io.opentelemetry.instrumentation.config.bridge; import static org.assertj.core.api.Assertions.assertThat; diff --git a/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java b/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/config/bridge/DeclarativeConfigPropertiesBridgeBuilderTest.java similarity index 98% rename from declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java rename to declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/config/bridge/DeclarativeConfigPropertiesBridgeBuilderTest.java index c72b7d63d1ed..d3058e0b888f 100644 --- a/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeBuilderTest.java +++ b/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/config/bridge/DeclarativeConfigPropertiesBridgeBuilderTest.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.sdk; +package io.opentelemetry.instrumentation.config.bridge; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.eq; diff --git a/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java b/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/config/bridge/DeclarativeConfigPropertiesBridgeTest.java similarity index 99% rename from declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java rename to declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/config/bridge/DeclarativeConfigPropertiesBridgeTest.java index 85849ddb9210..29f9d424cd9d 100644 --- a/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/sdk/DeclarativeConfigPropertiesBridgeTest.java +++ b/declarative-config-bridge/src/test/java/io/opentelemetry/instrumentation/config/bridge/DeclarativeConfigPropertiesBridgeTest.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.sdk; +package io.opentelemetry.instrumentation.config.bridge; import static org.assertj.core.api.Assertions.assertThat; diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java index 79c5126e5b79..b51fa03a3a95 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java @@ -6,7 +6,7 @@ package io.opentelemetry.javaagent.tooling; import io.opentelemetry.api.incubator.config.ConfigProvider; -import io.opentelemetry.instrumentation.sdk.DeclarativeConfigPropertiesBridgeBuilder; +import io.opentelemetry.instrumentation.config.bridge.DeclarativeConfigPropertiesBridgeBuilder; import io.opentelemetry.javaagent.bootstrap.OpenTelemetrySdkAccess; import io.opentelemetry.javaagent.tooling.config.EarlyInitAgentConfig; import io.opentelemetry.sdk.OpenTelemetrySdk; From 607995c7a98cb037d8d99c0f645b641993251ef1 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Thu, 4 Sep 2025 19:35:46 +0200 Subject: [PATCH 09/11] pr feedback --- javaagent-tooling/build.gradle.kts | 6 +----- javaagent/build.gradle.kts | 6 +++++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/javaagent-tooling/build.gradle.kts b/javaagent-tooling/build.gradle.kts index c790f79eedc7..653ff1bdf1ce 100644 --- a/javaagent-tooling/build.gradle.kts +++ b/javaagent-tooling/build.gradle.kts @@ -17,11 +17,7 @@ dependencies { implementation(project(":instrumentation-annotations-support")) implementation(project(":muzzle")) implementation(project(":sdk-autoconfigure-support")) - implementation(project(":declarative-config-bridge")) { - // is part of bootstrap classpath - exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") - exclude(group = "io.opentelemetry", module = "opentelemetry-sdk-extension-autoconfigure-spi") - } + implementation(project(":declarative-config-bridge")) implementation("io.opentelemetry:opentelemetry-api") implementation("io.opentelemetry:opentelemetry-sdk") diff --git a/javaagent/build.gradle.kts b/javaagent/build.gradle.kts index ff1bb1cb0756..ae591ddabd43 100644 --- a/javaagent/build.gradle.kts +++ b/javaagent/build.gradle.kts @@ -73,7 +73,11 @@ dependencies { } baseJavaagentLibs(project(":javaagent-extension-api")) - baseJavaagentLibs(project(":javaagent-tooling")) + baseJavaagentLibs(project(":javaagent-tooling")) { + // exclude javaagent dependencies from the bootstrap classpath + exclude("io.opentelemetry", "opentelemetry-api-incubator") + exclude("io.opentelemetry", "opentelemetry-sdk-extension-autoconfigure-spi") + } baseJavaagentLibs(project(":javaagent-internal-logging-application")) baseJavaagentLibs(project(":javaagent-internal-logging-simple", configuration = "shadow")) baseJavaagentLibs(project(":muzzle")) From 77c395bd8e9f879fb6d198465b1a1e3c5d3bc31b Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Thu, 4 Sep 2025 18:28:19 -0700 Subject: [PATCH 10/11] simplify --- javaagent/build.gradle.kts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/javaagent/build.gradle.kts b/javaagent/build.gradle.kts index ae591ddabd43..6c67d685a80b 100644 --- a/javaagent/build.gradle.kts +++ b/javaagent/build.gradle.kts @@ -69,15 +69,10 @@ dependencies { exclude("io.opentelemetry", "opentelemetry-sdk") exclude("io.opentelemetry", "opentelemetry-sdk-extension-autoconfigure") exclude("io.opentelemetry", "opentelemetry-sdk-extension-autoconfigure-spi") - exclude("io.opentelemetry.instrumentation", "declarative-config-bridge") } baseJavaagentLibs(project(":javaagent-extension-api")) - baseJavaagentLibs(project(":javaagent-tooling")) { - // exclude javaagent dependencies from the bootstrap classpath - exclude("io.opentelemetry", "opentelemetry-api-incubator") - exclude("io.opentelemetry", "opentelemetry-sdk-extension-autoconfigure-spi") - } + baseJavaagentLibs(project(":javaagent-tooling")) baseJavaagentLibs(project(":javaagent-internal-logging-application")) baseJavaagentLibs(project(":javaagent-internal-logging-simple", configuration = "shadow")) baseJavaagentLibs(project(":muzzle")) From e9b11abdb4e629a66c87a71e4ae52acbb3bfa577 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Thu, 4 Sep 2025 18:50:00 -0700 Subject: [PATCH 11/11] Fix README --- declarative-config-bridge/README.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/declarative-config-bridge/README.md b/declarative-config-bridge/README.md index 348cd6bb1720..4938649ae891 100644 --- a/declarative-config-bridge/README.md +++ b/declarative-config-bridge/README.md @@ -1,11 +1,4 @@ -# OpenTelemetry Instrumentation API Incubator - -Instrumentation API Incubator is a collection of libraries that provide additional functionality -for OpenTelemetry instrumentation and auto-configuration. It is intended to be used by -instrumentation authors and auto-configuration providers to enhance their capabilities and provide a -more consistent experience when working with OpenTelemetry. - -## Declarative Config Bridge +# Declarative Config Bridge Declarative Config Bridge allows instrumentation authors to access configuration in a uniform way, regardless of the configuration source. @@ -13,7 +6,7 @@ regardless of the configuration source. The bridge allows you to read configuration using the system property style when dealing with declarative configuration. -### Example +## Example As an example, let's look at the inferred spans configuration. First, there is a configuration method that reads the properties and is unaware of the source of the