Repository navigation
Promote DeclarativeConfigProperties, DeclarativeConfigException, ComponentProvider to stable - #8981
Conversation
|
Pull request dashboard statusMerged · refreshed 2026-11-12 23:06 UTC Status above doesn't look right?
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #8981 +/- ##
============================================
+ Coverage 90.41% 90.46% +0.05%
- Complexity 11069 11152 +83
============================================
Files 1023 1028 +5
Lines 30254 30382 +128
Branches 3952 3966 +14
============================================
+ Hits 27353 27486 +133
+ Misses 1933 1922 -11
- Partials 968 974 +6 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
8478c4d to
0f1785e
Compare
0f1785e to
83f655e
Compare
- Atomically promote DeclarativeConfigProperties and DeclarativeConfigException to io.opentelemetry.api.config in opentelemetry-api. - Retain deprecated backward-compatibility shims for DeclarativeConfigProperties and DeclarativeConfigException in opentelemetry-api-incubator. - Promote ComponentProvider interface to io.opentelemetry.sdk.autoconfigure.spi.declarativeconfig in opentelemetry-sdk-extension-autoconfigure-spi. - Retain deprecated io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider extending the new interface with bidirectional default bridge methods for backward compatibility with external plugins. - Update DeclarativeConfigContext to discover both modern and legacy providers with (type, name) deduplication. - Migrate all repository providers, META-INF/services/ descriptors, and OSGi service loader manifests across exporters, extensions, and declarative config. - Unexempt opentelemetry-exporter-logging from NoSharedInternalCodeTest. - Update opentelemetry-api and autoconfigure-spi jApiCmp baseline diffs.
83f655e to
6a9d67c
Compare
- Restore standalone io.opentelemetry.api.incubator.config.DeclarativeConfigProperties marked @deprecated (scheduled for removal after 1.68.0) to preserve bytecode compatibility without interface inheritance. - Restore standalone io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider marked @deprecated without extending the new stable SPI. - Introduce LegacyYamlDeclarativeConfigProperties in sdk-extensions:declarative-config adapting modern config for legacy component providers. - Delete IncubatorDeclarativeConfigPropertiesAdapter and obsolete dynamic configuration TODO comment on declarativeconfig.ComponentProvider. - Enforce fail-fast duplicate provider checking in DeclarativeConfigContext when multiple providers match (type, name).
jack-berg
left a comment
There was a problem hiding this comment.
Looking good, just two minor nits
Thanks!
FYI @open-telemetry/java-instrumentation-approvers - the package is changing for DeclarativeConfigProperties and DeclarativeConfigException, which will require migration on the instrumentation side. ComponentProvider is also being stabilized.
Since there are some opentelemetry-java-contrib components that implement ComponentProvider, we can't migrate all implementations at once, so this PR retains the old version of ComponentProvider, DeclarativeConfigProperties, DeclarativeConfigException as deprecated for a release cycle to allow migration.
…fig package - Move DeclarativeConfigPropertyUtilTest and InstrumentationConfigUtilTest from io.opentelemetry.api.incubator.config to io.opentelemetry.api.config in api:incubator test source set.
417e5e8 to
5f2c796
Compare
|
Also cc @jkwatson. This adds new public API surface area |
This comment has been minimized.
This comment has been minimized.
…y-java into fix/avoid-shared-internal-component-provider
Resolves part of #6970
Description
opentelemetry-api: PromotesDeclarativeConfigPropertiesandDeclarativeConfigExceptiontoio.opentelemetry.api.config.opentelemetry-sdk-extension-autoconfigure-spi: PromotesComponentProvidertoio.opentelemetry.sdk.autoconfigure.spi.declarativeconfig.ComponentProvider.io.opentelemetry.api.incubator.config.DeclarativeConfigPropertiesandDeclarativeConfigExceptionmarked@Deprecated(scheduled for removal after 1.68.0) as standalone classes with zero inheritance to prevent JVM bytecode descriptor mismatches for pre-compiled binaries.io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvidermarked@Deprecated(scheduled for removal after 1.68.0) as a standalone interface without inheritance.DeclarativeConfigContext.loadComponentto discover both modern and legacyComponentProviderimplementations.(type, name).LegacyYamlDeclarativeConfigPropertiesinsdk-extensions:declarative-config.package-info.javaenforcing@ParametersAreNonnullByDefaulttoio.opentelemetry.api.configandio.opentelemetry.sdk.autoconfigure.spi.declarativeconfig.META-INF/services/registrations, and OSGi manifests across exporters, extensions, and declarative config.opentelemetry-exporter-loggingfromNoSharedInternalCodeTest.Notes
ConfigProviderandExtendedOpenTelemetryinapi:incubatorare updated to return the graduatedio.opentelemetry.api.config.DeclarativeConfigProperties.