Repository navigation
Conversation
|
Pull request dashboard statusWaiting on the author · refreshed 2026-10-29 22:20 UTC Two things need attention:
Status above doesn't look right?
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8981 +/- ##
============================================
- Coverage 90.35% 90.33% -0.03%
- Complexity 10984 10987 +3
============================================
Files 1019 1019
Lines 30072 30081 +9
Branches 3927 3930 +3
============================================
+ Hits 27173 27175 +2
- Misses 1939 1943 +4
- Partials 960 963 +3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
b266e93 to
8478c4d
Compare
- Promote ComponentProvider interface to io.opentelemetry.sdk.autoconfigure.spi.impl. - Retain deprecated io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider extending the new interface for backward compatibility with external plugins. - Update DeclarativeConfigContext to discover both modern and legacy providers with deduplication. - Migrate all repository providers, META-INF/services/ files, and OSGi service loader manifests across exporters, extensions, and declarative config. - Unexempt opentelemetry-exporter-logging from NoSharedInternalCodeTest. - Update autoconfigure-spi jApiCmp baseline diff.
8478c4d to
0f1785e
Compare
| * LogRecordExporter}, {@link SpanProcessor}, {@link LogRecordProcessor}, {@link TextMapPropagator}, | ||
| * {@link Sampler}, {@link Resource}. | ||
| */ | ||
| public interface ComponentProvider { |
There was a problem hiding this comment.
ComponentProvider is intended for use by application developers. It a key interface in declarative config, which we're currently trying to stabilize.
Happy to have help working towards that, and can do it in pieces. One key piece is promoting ComponentProvider to the stable API (i.e. not .impl.). I think it belongs in io.opentelemetry.sdk.autoconfigure.spi.declarativeconfig.
Since ComponentProvider depends on DeclarativeConfigProperties, which dependso n DeclarativeConfigException, a few other classes get dragged into public with it. Which is fine, they need to be public. But our hand is forced and we have to promote them as an atomic unit. These classes belong in io.opentelemetry.api.config.
Oh and since there are implementations of ComponentProvider in opentelemetry-java-instrumentation and opentelemetry-java-contrib, we need to have backwards compatibility for a release cycle, which means retaining deprecated versions of the current locations of ComponentProvider, DeclarativeConfigProperties, DeclarativeConfigException.
Resolves part of #6970
Description
ComponentProvidertoio.opentelemetry.sdk.autoconfigure.spi.impl.io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProviderextending the new interface to ensure backward compatibility for external components.DeclarativeConfigContextto discover both modern and legacy providers with deduplication.META-INF/services/entries, and OSGi manifests across exporters, extensions, and declarative config.opentelemetry-exporter-loggingfromNoSharedInternalCodeTest.