From 0f1785eff8c8af5cb24dac490b680a862d40bb66 Mon Sep 17 00:00:00 2001 From: navneet singh Date: Wed, 28 Oct 2026 09:30:45 +0530 Subject: [PATCH] Avoid shared internal ComponentProvider (#6970) - 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. --- .../all/NoSharedInternalCodeTest.java | 1 - ...emetry-sdk-extension-autoconfigure-spi.txt | 7 +- exporters/logging-otlp/build.gradle.kts | 2 +- ...outLogRecordExporterComponentProvider.java | 2 +- ...StdoutMetricExporterComponentProvider.java | 2 +- ...lpStdoutSpanExporterComponentProvider.java | 2 +- ....autoconfigure.spi.impl.ComponentProvider} | 1 + .../otlp/AbstractOtlpStdoutExporterTest.java | 2 +- exporters/logging/build.gradle.kts | 2 +- ...oleLogRecordExporterComponentProvider.java | 2 +- ...onsoleMetricExporterComponentProvider.java | 2 +- .../ConsoleSpanExporterComponentProvider.java | 2 +- ....autoconfigure.spi.impl.ComponentProvider} | 1 + exporters/otlp/all/build.gradle.kts | 2 +- ...rpcLogRecordExporterComponentProvider.java | 2 +- ...lpGrpcMetricExporterComponentProvider.java | 2 +- ...OtlpGrpcSpanExporterComponentProvider.java | 2 +- ...ttpLogRecordExporterComponentProvider.java | 2 +- ...lpHttpMetricExporterComponentProvider.java | 2 +- ...OtlpHttpSpanExporterComponentProvider.java | 2 +- ....autoconfigure.spi.impl.ComponentProvider} | 9 +- exporters/prometheus/build.gradle.kts | 2 +- .../internal/PrometheusComponentProvider.java | 2 +- ....autoconfigure.spi.impl.ComponentProvider} | 1 + extensions/trace-propagators/build.gradle.kts | 2 +- .../internal/B3ComponentProvider.java | 2 +- .../internal/B3MultiComponentProvider.java | 2 +- ....autoconfigure.spi.impl.ComponentProvider} | 1 + .../spi/impl/ComponentProvider.java | 62 +++++++++++ .../spi/internal/ComponentProvider.java | 54 +--------- .../autoconfigure/TestResourceDetector.java | 2 +- ....autoconfigure.spi.impl.ComponentProvider} | 1 + sdk-extensions/declarative-config/README.md | 2 +- .../declarative-config/build.gradle.kts | 2 +- .../DeclarativeConfigContext.java | 19 +++- .../DeclarativeConfiguration.java | 2 +- .../EntitiesEnvResourceDetector.java | 2 +- .../ServiceResourceDetector.java | 2 +- ....autoconfigure.spi.impl.ComponentProvider} | 1 + .../DeclarativeConfigContextTest.java | 100 +++++++++++++++++- .../ResourceFactoryTest.java | 2 +- .../IdGeneratorComponentProvider.java | 2 +- .../LogRecordExporterComponentProvider.java | 2 +- .../LogRecordProcessorComponentProvider.java | 2 +- .../MetricExporterComponentProvider.java | 2 +- .../component/ResourceComponentProvider.java | 2 +- .../ResourceFirstComponentProvider.java | 2 +- .../ResourceSecondComponentProvider.java | 2 +- .../component/SamplerComponentProvider.java | 2 +- .../SpanExporterComponentProvider.java | 2 +- .../SpanProcessorComponentProvider.java | 2 +- .../TextMapPropagatorComponentProvider.java | 2 +- ....autoconfigure.spi.impl.ComponentProvider} | 1 + .../jaeger-remote-sampler/build.gradle.kts | 2 +- .../JaegerRemoteSamplerComponentProvider.java | 2 +- ....autoconfigure.spi.impl.ComponentProvider} | 1 + 56 files changed, 242 insertions(+), 100 deletions(-) rename exporters/logging-otlp/src/main/resources/META-INF/services/{io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider => io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider} (99%) rename exporters/logging/src/main/resources/META-INF/services/{io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider => io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider} (99%) rename exporters/otlp/all/src/main/resources/META-INF/services/{io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider => io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider} (99%) rename exporters/prometheus/src/main/resources/META-INF/services/{io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider => io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider} (98%) rename extensions/trace-propagators/src/main/resources/META-INF/services/{io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider => io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider} (99%) create mode 100644 sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/impl/ComponentProvider.java rename sdk-extensions/autoconfigure/src/testDeclarativeConfigSpi/resources/META-INF/services/{io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider => io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider} (98%) rename sdk-extensions/declarative-config/src/main/resources/META-INF/services/{io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider => io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider} (99%) rename sdk-extensions/declarative-config/src/test/resources/META-INF/services/{io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider => io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider} (99%) rename sdk-extensions/jaeger-remote-sampler/src/main/resources/META-INF/services/{io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider => io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider} (98%) diff --git a/all/src/test/java/io/opentelemetry/all/NoSharedInternalCodeTest.java b/all/src/test/java/io/opentelemetry/all/NoSharedInternalCodeTest.java index 58f276b290e..2e2137e3a9b 100644 --- a/all/src/test/java/io/opentelemetry/all/NoSharedInternalCodeTest.java +++ b/all/src/test/java/io/opentelemetry/all/NoSharedInternalCodeTest.java @@ -34,7 +34,6 @@ class NoSharedInternalCodeTest { private static final Set exemptions = Set.of( "opentelemetry-exporter-common", - "opentelemetry-exporter-logging", "opentelemetry-exporter-logging-otlp", "opentelemetry-exporter-prometheus", "opentelemetry-extension-trace-propagators", diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure-spi.txt b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure-spi.txt index fa166d14326..7633ac8f0d8 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure-spi.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure-spi.txt @@ -1,2 +1,7 @@ Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-spi-1.68.0-SNAPSHOT.jar against opentelemetry-sdk-extension-autoconfigure-spi-1.67.0.jar -No changes. \ No newline at end of file ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Object create(io.opentelemetry.api.incubator.config.DeclarativeConfigProperties) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getName() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Class getType() diff --git a/exporters/logging-otlp/build.gradle.kts b/exporters/logging-otlp/build.gradle.kts index 55219c9daee..c652f189586 100644 --- a/exporters/logging-otlp/build.gradle.kts +++ b/exporters/logging-otlp/build.gradle.kts @@ -12,7 +12,7 @@ otelJava.osgiServiceLoaderProvides.set(listOf( "io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSpanExporterProvider", "io.opentelemetry.sdk.autoconfigure.spi.metrics.ConfigurableMetricExporterProvider", "io.opentelemetry.sdk.autoconfigure.spi.logs.ConfigurableLogRecordExporterProvider", - "io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider", + "io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider", )) dependencies { diff --git a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/logs/OtlpStdoutLogRecordExporterComponentProvider.java b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/logs/OtlpStdoutLogRecordExporterComponentProvider.java index c2a943f2f17..4d55ee8f7a0 100644 --- a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/logs/OtlpStdoutLogRecordExporterComponentProvider.java +++ b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/logs/OtlpStdoutLogRecordExporterComponentProvider.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.exporter.internal.IncubatingExporterBuilderUtil; import io.opentelemetry.exporter.logging.otlp.internal.OutputStreamConfigUtil; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.logs.export.LogRecordExporter; /** diff --git a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/metrics/OtlpStdoutMetricExporterComponentProvider.java b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/metrics/OtlpStdoutMetricExporterComponentProvider.java index 2d62bf105f1..d608282984a 100644 --- a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/metrics/OtlpStdoutMetricExporterComponentProvider.java +++ b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/metrics/OtlpStdoutMetricExporterComponentProvider.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.exporter.internal.IncubatingExporterBuilderUtil; import io.opentelemetry.exporter.logging.otlp.internal.OutputStreamConfigUtil; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.metrics.export.MetricExporter; /** diff --git a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/traces/OtlpStdoutSpanExporterComponentProvider.java b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/traces/OtlpStdoutSpanExporterComponentProvider.java index 9d51f2b9fac..221270d0a7e 100644 --- a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/traces/OtlpStdoutSpanExporterComponentProvider.java +++ b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/traces/OtlpStdoutSpanExporterComponentProvider.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.exporter.internal.IncubatingExporterBuilderUtil; import io.opentelemetry.exporter.logging.otlp.internal.OutputStreamConfigUtil; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.trace.export.SpanExporter; /** diff --git a/exporters/logging-otlp/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider b/exporters/logging-otlp/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider similarity index 99% rename from exporters/logging-otlp/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider rename to exporters/logging-otlp/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider index b90ec18cc20..6fe011882dd 100644 --- a/exporters/logging-otlp/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider +++ b/exporters/logging-otlp/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider @@ -1,3 +1,4 @@ io.opentelemetry.exporter.logging.otlp.internal.logs.OtlpStdoutLogRecordExporterComponentProvider io.opentelemetry.exporter.logging.otlp.internal.metrics.OtlpStdoutMetricExporterComponentProvider io.opentelemetry.exporter.logging.otlp.internal.traces.OtlpStdoutSpanExporterComponentProvider + diff --git a/exporters/logging-otlp/src/test/java/io/opentelemetry/exporter/logging/otlp/AbstractOtlpStdoutExporterTest.java b/exporters/logging-otlp/src/test/java/io/opentelemetry/exporter/logging/otlp/AbstractOtlpStdoutExporterTest.java index b97558948d2..d17d62e9ad1 100644 --- a/exporters/logging-otlp/src/test/java/io/opentelemetry/exporter/logging/otlp/AbstractOtlpStdoutExporterTest.java +++ b/exporters/logging-otlp/src/test/java/io/opentelemetry/exporter/logging/otlp/AbstractOtlpStdoutExporterTest.java @@ -17,7 +17,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; import io.opentelemetry.sdk.common.export.MemoryMode; import java.io.BufferedOutputStream; diff --git a/exporters/logging/build.gradle.kts b/exporters/logging/build.gradle.kts index 206c4e25978..3f8c6f47fa6 100644 --- a/exporters/logging/build.gradle.kts +++ b/exporters/logging/build.gradle.kts @@ -13,7 +13,7 @@ otelJava.osgiServiceLoaderProvides.set(listOf( "io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSpanExporterProvider", "io.opentelemetry.sdk.autoconfigure.spi.metrics.ConfigurableMetricExporterProvider", "io.opentelemetry.sdk.autoconfigure.spi.logs.ConfigurableLogRecordExporterProvider", - "io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider", + "io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider", )) dependencies { diff --git a/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleLogRecordExporterComponentProvider.java b/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleLogRecordExporterComponentProvider.java index 1ff39c6de30..5cc2d76d363 100644 --- a/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleLogRecordExporterComponentProvider.java +++ b/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleLogRecordExporterComponentProvider.java @@ -7,7 +7,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.exporter.logging.SystemOutLogRecordExporter; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.logs.export.LogRecordExporter; /** diff --git a/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleMetricExporterComponentProvider.java b/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleMetricExporterComponentProvider.java index 35599f84c14..e14801b4766 100644 --- a/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleMetricExporterComponentProvider.java +++ b/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleMetricExporterComponentProvider.java @@ -7,7 +7,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.exporter.logging.LoggingMetricExporter; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.metrics.export.MetricExporter; /** diff --git a/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleSpanExporterComponentProvider.java b/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleSpanExporterComponentProvider.java index fa5de9ee948..ef1a7763533 100644 --- a/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleSpanExporterComponentProvider.java +++ b/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleSpanExporterComponentProvider.java @@ -7,7 +7,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.exporter.logging.LoggingSpanExporter; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.trace.export.SpanExporter; /** diff --git a/exporters/logging/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider b/exporters/logging/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider similarity index 99% rename from exporters/logging/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider rename to exporters/logging/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider index ed0c3a77f5e..a8c21edc040 100644 --- a/exporters/logging/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider +++ b/exporters/logging/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider @@ -1,3 +1,4 @@ io.opentelemetry.exporter.logging.internal.ConsoleMetricExporterComponentProvider io.opentelemetry.exporter.logging.internal.ConsoleSpanExporterComponentProvider io.opentelemetry.exporter.logging.internal.ConsoleLogRecordExporterComponentProvider + diff --git a/exporters/otlp/all/build.gradle.kts b/exporters/otlp/all/build.gradle.kts index 51ec4b90e66..778a47fadf1 100644 --- a/exporters/otlp/all/build.gradle.kts +++ b/exporters/otlp/all/build.gradle.kts @@ -17,7 +17,7 @@ otelJava.osgiServiceLoaderProvides.set(listOf( "io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSpanExporterProvider", "io.opentelemetry.sdk.autoconfigure.spi.metrics.ConfigurableMetricExporterProvider", "io.opentelemetry.sdk.autoconfigure.spi.logs.ConfigurableLogRecordExporterProvider", - "io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider", + "io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider", )) base.archivesName.set("opentelemetry-exporter-otlp") diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpGrpcLogRecordExporterComponentProvider.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpGrpcLogRecordExporterComponentProvider.java index 3ef5a66403e..d014a050598 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpGrpcLogRecordExporterComponentProvider.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpGrpcLogRecordExporterComponentProvider.java @@ -11,7 +11,7 @@ import io.opentelemetry.api.metrics.MeterProvider; import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter; import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.logs.export.LogRecordExporter; /** diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpGrpcMetricExporterComponentProvider.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpGrpcMetricExporterComponentProvider.java index 99a5cda2856..70ab4d5ab4a 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpGrpcMetricExporterComponentProvider.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpGrpcMetricExporterComponentProvider.java @@ -12,7 +12,7 @@ import io.opentelemetry.exporter.internal.IncubatingExporterBuilderUtil; import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter; import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.metrics.export.MetricExporter; /** diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpGrpcSpanExporterComponentProvider.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpGrpcSpanExporterComponentProvider.java index cec08da0eae..b0a2ac43a56 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpGrpcSpanExporterComponentProvider.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpGrpcSpanExporterComponentProvider.java @@ -11,7 +11,7 @@ import io.opentelemetry.api.metrics.MeterProvider; import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter; import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.trace.export.SpanExporter; /** diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpHttpLogRecordExporterComponentProvider.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpHttpLogRecordExporterComponentProvider.java index d65d9164cb2..abf888cd4c0 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpHttpLogRecordExporterComponentProvider.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpHttpLogRecordExporterComponentProvider.java @@ -11,7 +11,7 @@ import io.opentelemetry.api.metrics.MeterProvider; import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporter; import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.logs.export.LogRecordExporter; /** diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpHttpMetricExporterComponentProvider.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpHttpMetricExporterComponentProvider.java index 77fd486724c..bd5ab605be7 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpHttpMetricExporterComponentProvider.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpHttpMetricExporterComponentProvider.java @@ -12,7 +12,7 @@ import io.opentelemetry.exporter.internal.IncubatingExporterBuilderUtil; import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter; import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.metrics.export.MetricExporter; /** diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpHttpSpanExporterComponentProvider.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpHttpSpanExporterComponentProvider.java index b4b3a85c4f7..7e02dbdc268 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpHttpSpanExporterComponentProvider.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpHttpSpanExporterComponentProvider.java @@ -11,7 +11,7 @@ import io.opentelemetry.api.metrics.MeterProvider; import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter; import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.trace.export.SpanExporter; /** diff --git a/exporters/otlp/all/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider b/exporters/otlp/all/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider similarity index 99% rename from exporters/otlp/all/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider rename to exporters/otlp/all/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider index 98dcbcd9604..1eb742e89c5 100644 --- a/exporters/otlp/all/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider +++ b/exporters/otlp/all/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider @@ -1,6 +1,7 @@ -io.opentelemetry.exporter.otlp.internal.OtlpHttpMetricExporterComponentProvider -io.opentelemetry.exporter.otlp.internal.OtlpHttpSpanExporterComponentProvider -io.opentelemetry.exporter.otlp.internal.OtlpHttpLogRecordExporterComponentProvider -io.opentelemetry.exporter.otlp.internal.OtlpGrpcMetricExporterComponentProvider io.opentelemetry.exporter.otlp.internal.OtlpGrpcSpanExporterComponentProvider +io.opentelemetry.exporter.otlp.internal.OtlpGrpcMetricExporterComponentProvider io.opentelemetry.exporter.otlp.internal.OtlpGrpcLogRecordExporterComponentProvider +io.opentelemetry.exporter.otlp.internal.OtlpHttpSpanExporterComponentProvider +io.opentelemetry.exporter.otlp.internal.OtlpHttpMetricExporterComponentProvider +io.opentelemetry.exporter.otlp.internal.OtlpHttpLogRecordExporterComponentProvider + diff --git a/exporters/prometheus/build.gradle.kts b/exporters/prometheus/build.gradle.kts index 89c51fd0378..aa2e15df10a 100644 --- a/exporters/prometheus/build.gradle.kts +++ b/exporters/prometheus/build.gradle.kts @@ -9,7 +9,7 @@ otelJava.requireSuppressWarningsExplanation.set(false) otelJava.osgiOptionalPackages.set(listOf("io.opentelemetry.api.incubator", "io.opentelemetry.sdk.autoconfigure.spi")) otelJava.osgiServiceLoaderProvides.set(listOf( "io.opentelemetry.sdk.autoconfigure.spi.internal.ConfigurableMetricReaderProvider", - "io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider", + "io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider", )) dependencies { diff --git a/exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/internal/PrometheusComponentProvider.java b/exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/internal/PrometheusComponentProvider.java index 475f90e246d..81a8ceec0d7 100644 --- a/exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/internal/PrometheusComponentProvider.java +++ b/exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/internal/PrometheusComponentProvider.java @@ -10,7 +10,7 @@ import io.opentelemetry.exporter.prometheus.PrometheusHttpServer; import io.opentelemetry.exporter.prometheus.PrometheusHttpServerBuilder; import io.opentelemetry.exporter.prometheus.TranslationStrategy; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.common.internal.IncludeExcludePredicate; import io.opentelemetry.sdk.metrics.export.MetricReader; import java.util.List; diff --git a/exporters/prometheus/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider b/exporters/prometheus/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider similarity index 98% rename from exporters/prometheus/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider rename to exporters/prometheus/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider index f3c72966e4b..aa27fda9217 100644 --- a/exporters/prometheus/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider +++ b/exporters/prometheus/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider @@ -1 +1,2 @@ io.opentelemetry.exporter.prometheus.internal.PrometheusComponentProvider + diff --git a/extensions/trace-propagators/build.gradle.kts b/extensions/trace-propagators/build.gradle.kts index fb60b3deaf1..be7148946eb 100644 --- a/extensions/trace-propagators/build.gradle.kts +++ b/extensions/trace-propagators/build.gradle.kts @@ -12,7 +12,7 @@ otelJava.requireSuppressWarningsExplanation.set(false) otelJava.osgiOptionalPackages.set(listOf("io.opentelemetry.api.incubator", "io.opentelemetry.sdk.autoconfigure.spi")) otelJava.osgiServiceLoaderProvides.set(listOf( "io.opentelemetry.sdk.autoconfigure.spi.ConfigurablePropagatorProvider", - "io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider", + "io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider", )) dependencies { diff --git a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3ComponentProvider.java b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3ComponentProvider.java index edb6140e0f9..7ee5fc4330b 100644 --- a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3ComponentProvider.java +++ b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3ComponentProvider.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.extension.trace.propagation.B3Propagator; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; /** * Declarative configuration SPI implementation for {@link B3Propagator} which allows enabling diff --git a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3MultiComponentProvider.java b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3MultiComponentProvider.java index 5db48aea428..cd8f5e6db3d 100644 --- a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3MultiComponentProvider.java +++ b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3MultiComponentProvider.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.extension.trace.propagation.B3Propagator; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; /** * Declarative configuration SPI implementation for {@link B3Propagator} which allows enabling diff --git a/extensions/trace-propagators/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider b/extensions/trace-propagators/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider similarity index 99% rename from extensions/trace-propagators/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider rename to extensions/trace-propagators/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider index c63dcd61f48..ecc77430ed3 100644 --- a/extensions/trace-propagators/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider +++ b/extensions/trace-propagators/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider @@ -1,2 +1,3 @@ io.opentelemetry.extension.trace.propagation.internal.B3ComponentProvider io.opentelemetry.extension.trace.propagation.internal.B3MultiComponentProvider + diff --git a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/impl/ComponentProvider.java b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/impl/ComponentProvider.java new file mode 100644 index 00000000000..80573bfa85f --- /dev/null +++ b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/impl/ComponentProvider.java @@ -0,0 +1,62 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.sdk.autoconfigure.spi.impl; + +import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; +import io.opentelemetry.context.propagation.TextMapPropagator; +import io.opentelemetry.sdk.logs.LogRecordProcessor; +import io.opentelemetry.sdk.logs.export.LogRecordExporter; +import io.opentelemetry.sdk.metrics.export.MetricExporter; +import io.opentelemetry.sdk.resources.Resource; +import io.opentelemetry.sdk.trace.SpanProcessor; +import io.opentelemetry.sdk.trace.export.SpanExporter; +import io.opentelemetry.sdk.trace.samplers.Sampler; + +/** + * Provides configured instances of SDK extension components. {@link ComponentProvider} allows SDK + * extension components which are not part of the core SDK to be referenced in declarative based + * configuration. + * + *

NOTE: when {@link #getType()} is {@link Resource}, the {@link #getName()} is not (currently) + * used, and {@link #create(DeclarativeConfigProperties)} is (currently) called with an empty {@link + * DeclarativeConfigProperties}. + * + *

This class is not intended for use by application developers. Its API is stable and will not + * be changed or removed in a backwards-incompatible manner. + * + *

Supported component types include: {@link SpanExporter}, {@link MetricExporter}, {@link + * LogRecordExporter}, {@link SpanProcessor}, {@link LogRecordProcessor}, {@link TextMapPropagator}, + * {@link Sampler}, {@link Resource}. + */ +public interface ComponentProvider { + + /** + * The type of SDK extension component. For example, if providing instances of a custom span + * exporter, the type would be {@link SpanExporter}. + */ + Class getType(); + + /** + * The name of the exporter, to be referenced in configuration files. For example, if providing + * instances of a custom span exporter for the "acme" protocol, the name might be "acme". + * + *

This name MUST not be the same as any other component provider name which returns components + * of the same {@link #getType() type}. In other words, {@link #getType()} and name form a + * composite key uniquely identifying the provider. + */ + String getName(); + + /** + * Configure an instance of the SDK extension component according to the {@code config}. + * + * @param config the configuration provided where the component is referenced in a configuration + * file. + * @return an instance the SDK extension component + */ + // TODO (jack-berg): consider dynamic configuration use case before stabilizing in case that + // affects any API decisions + Object create(DeclarativeConfigProperties config); +} diff --git a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ComponentProvider.java b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ComponentProvider.java index 30a544887c6..02d843712a2 100644 --- a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ComponentProvider.java +++ b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ComponentProvider.java @@ -5,58 +5,14 @@ package io.opentelemetry.sdk.autoconfigure.spi.internal; -import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.context.propagation.TextMapPropagator; -import io.opentelemetry.sdk.logs.LogRecordProcessor; -import io.opentelemetry.sdk.logs.export.LogRecordExporter; -import io.opentelemetry.sdk.metrics.export.MetricExporter; -import io.opentelemetry.sdk.resources.Resource; -import io.opentelemetry.sdk.trace.SpanProcessor; -import io.opentelemetry.sdk.trace.export.SpanExporter; -import io.opentelemetry.sdk.trace.samplers.Sampler; - /** - * Provides configured instances of SDK extension components. {@link ComponentProvider} allows SDK - * extension components which are not part of the core SDK to be referenced in declarative based - * configuration. - * - *

NOTE: when {@link #getType()} is {@link Resource}, the {@link #getName()} is not (currently) - * used, and {@link #create(DeclarativeConfigProperties)} is (currently) called with an empty {@link - * DeclarativeConfigProperties}. + * Provides configured instances of SDK extension components. * *

This class is internal and is hence not for public use. Its APIs are unstable and can change * at any time. * - *

Supported component types include: {@link SpanExporter}, {@link MetricExporter}, {@link - * LogRecordExporter}, {@link SpanProcessor}, {@link LogRecordProcessor}, {@link TextMapPropagator}, - * {@link Sampler}, {@link Resource}. + * @deprecated Use {@link io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider} instead. */ -public interface ComponentProvider { - - /** - * The type of SDK extension component. For example, if providing instances of a custom span - * exporter, the type would be {@link SpanExporter}. - */ - Class getType(); - - /** - * The name of the exporter, to be referenced in configuration files. For example, if providing - * instances of a custom span exporter for the "acme" protocol, the name might be "acme". - * - *

This name MUST not be the same as any other component provider name which returns components - * of the same {@link #getType() type}. In other words, {@link #getType()} and name form a - * composite key uniquely identifying the provider. - */ - String getName(); - - /** - * Configure an instance of the SDK extension component according to the {@code config}. - * - * @param config the configuration provided where the component is referenced in a configuration - * file. - * @return an instance the SDK extension component - */ - // TODO (jack-berg): consider dynamic configuration use case before stabilizing in case that - // affects any API decisions - Object create(DeclarativeConfigProperties config); -} +@Deprecated +public interface ComponentProvider + extends io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider {} diff --git a/sdk-extensions/autoconfigure/src/testDeclarativeConfigSpi/java/io/opentelemetry/sdk/autoconfigure/TestResourceDetector.java b/sdk-extensions/autoconfigure/src/testDeclarativeConfigSpi/java/io/opentelemetry/sdk/autoconfigure/TestResourceDetector.java index a9c0bd22662..2f596ffefb8 100644 --- a/sdk-extensions/autoconfigure/src/testDeclarativeConfigSpi/java/io/opentelemetry/sdk/autoconfigure/TestResourceDetector.java +++ b/sdk-extensions/autoconfigure/src/testDeclarativeConfigSpi/java/io/opentelemetry/sdk/autoconfigure/TestResourceDetector.java @@ -7,8 +7,8 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.sdk.OpenTelemetrySdk; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.autoconfigure.spi.internal.AutoConfigureListener; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; import io.opentelemetry.sdk.resources.Resource; public class TestResourceDetector implements ComponentProvider, AutoConfigureListener { diff --git a/sdk-extensions/autoconfigure/src/testDeclarativeConfigSpi/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider b/sdk-extensions/autoconfigure/src/testDeclarativeConfigSpi/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider similarity index 98% rename from sdk-extensions/autoconfigure/src/testDeclarativeConfigSpi/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider rename to sdk-extensions/autoconfigure/src/testDeclarativeConfigSpi/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider index aad133d8acf..3d7137e5568 100644 --- a/sdk-extensions/autoconfigure/src/testDeclarativeConfigSpi/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider +++ b/sdk-extensions/autoconfigure/src/testDeclarativeConfigSpi/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider @@ -1 +1,2 @@ io.opentelemetry.sdk.autoconfigure.TestResourceDetector + diff --git a/sdk-extensions/declarative-config/README.md b/sdk-extensions/declarative-config/README.md index 99ed7553c00..93f2d318a46 100644 --- a/sdk-extensions/declarative-config/README.md +++ b/sdk-extensions/declarative-config/README.md @@ -16,7 +16,7 @@ try (FileInputStream yamlConfigFileInputStream = new FileInputStream("/path/to/c Notes: * Environment variable substitution is supported as [defined in the spec](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/data-model.md#environment-variable-substitution) * Customization is limited to customizing the in-memory config model, or exporters. See `DeclarativeConfigurationCustomizer` SPI for details. -* Custom SDK extension components which reference the [ComponentProvider](https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ComponentProvider.java) SPI can be referenced in declarative configuration. Supported types include: +* Custom SDK extension components which reference the [ComponentProvider](https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/impl/ComponentProvider.java) SPI can be referenced in declarative configuration. Supported types include: * `Resource` * `SpanExporter` * `MetricExporter` diff --git a/sdk-extensions/declarative-config/build.gradle.kts b/sdk-extensions/declarative-config/build.gradle.kts index 2390d633d1b..c9da029cb00 100644 --- a/sdk-extensions/declarative-config/build.gradle.kts +++ b/sdk-extensions/declarative-config/build.gradle.kts @@ -15,7 +15,7 @@ otelJava.moduleName.set("io.opentelemetry.sdk.autoconfigure.declarativeconfig") otelJava.requireSuppressWarningsExplanation.set(false) otelJava.osgiOptionalPackages.set(listOf("io.opentelemetry.sdk.autoconfigure.spi")) otelJava.osgiServiceLoaderProvides.set(listOf( - "io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider", + "io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider", )) // declarative-config discovers customizer providers at runtime via ServiceLoader otelJava.osgiServiceLoaderRequires.set(listOf( diff --git a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfigContext.java b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfigContext.java index 5508d87f577..15af406be8d 100644 --- a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfigContext.java +++ b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfigContext.java @@ -10,8 +10,8 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.api.metrics.MeterProvider; import io.opentelemetry.common.ComponentLoader; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.autoconfigure.spi.internal.AutoConfigureListener; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; import io.opentelemetry.sdk.autoconfigure.spi.internal.ExtendedDeclarativeConfigProperties; import io.opentelemetry.sdk.common.InternalTelemetryVersion; import java.io.Closeable; @@ -139,7 +139,7 @@ private InternalTelemetryVersion getInternalTelemetryVersion() { * @throws DeclarativeConfigException if no matching providers are found, or if multiple are found * (i.e. conflict), or if {@link ComponentProvider#create(DeclarativeConfigProperties)} throws */ - @SuppressWarnings({"unchecked"}) + @SuppressWarnings({"unchecked", "deprecation"}) T loadComponent(Class type, ConfigKeyValue configKeyValue) { String name = configKeyValue.getKey(); ExtendedDeclarativeConfigProperties config = @@ -148,7 +148,20 @@ T loadComponent(Class type, ConfigKeyValue configKeyValue) { configProvider == null ? ConfigProvider.noop() : configProvider); if (componentProviders == null) { - componentProviders = ComponentLoader.loadList(this, ComponentProvider.class); + List providers = + new ArrayList<>(ComponentLoader.loadList(this, ComponentProvider.class)); + for (io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider legacyProvider : + ComponentLoader.loadList( + this, io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider.class)) { + if (providers.stream() + .noneMatch( + p -> + p.getType() == legacyProvider.getType() + && p.getName().equals(legacyProvider.getName()))) { + providers.add(legacyProvider); + } + } + componentProviders = providers; } List matchedProviders = componentProviders.stream() diff --git a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfiguration.java b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfiguration.java index 245936f5efe..418dbdd9481 100644 --- a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfiguration.java +++ b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfiguration.java @@ -15,8 +15,8 @@ import io.opentelemetry.sdk.autoconfigure.declarativeconfig.model.SamplerModel; import io.opentelemetry.sdk.autoconfigure.declarativeconfig.model.internal.ModelMapper; import io.opentelemetry.sdk.autoconfigure.spi.Ordered; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.autoconfigure.spi.internal.AutoConfigureListener; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; import io.opentelemetry.sdk.trace.samplers.Sampler; import java.io.Closeable; import java.io.IOException; diff --git a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/EntitiesEnvResourceDetector.java b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/EntitiesEnvResourceDetector.java index 172dbce98eb..ea1e5453f7b 100644 --- a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/EntitiesEnvResourceDetector.java +++ b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/EntitiesEnvResourceDetector.java @@ -9,7 +9,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; import io.opentelemetry.sdk.resources.Resource; import java.util.Collections; diff --git a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/ServiceResourceDetector.java b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/ServiceResourceDetector.java index 204bda1ad01..6d080dab40a 100644 --- a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/ServiceResourceDetector.java +++ b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/ServiceResourceDetector.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; import io.opentelemetry.sdk.common.internal.SemConvConstants; import io.opentelemetry.sdk.resources.Resource; diff --git a/sdk-extensions/declarative-config/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider b/sdk-extensions/declarative-config/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider similarity index 99% rename from sdk-extensions/declarative-config/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider rename to sdk-extensions/declarative-config/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider index 596144da6a4..ab573c38938 100644 --- a/sdk-extensions/declarative-config/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider +++ b/sdk-extensions/declarative-config/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider @@ -1,2 +1,3 @@ io.opentelemetry.sdk.autoconfigure.declarativeconfig.EntitiesEnvResourceDetector io.opentelemetry.sdk.autoconfigure.declarativeconfig.ServiceResourceDetector + diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfigContextTest.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfigContextTest.java index 7b650174e98..b109dd8e0a2 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfigContextTest.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfigContextTest.java @@ -15,7 +15,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigException; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.common.ComponentLoader; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.resources.Resource; import java.util.Collections; import java.util.HashMap; @@ -30,6 +30,7 @@ class DeclarativeConfigContextTest { private final DeclarativeConfigContext context = new DeclarativeConfigContext(componentLoader); @Test + @SuppressWarnings("deprecation") void componentProvidersCached() { // First loadComponent call should load providers assertThatThrownBy( @@ -57,6 +58,8 @@ void componentProvidersCached() { // Verify spiHelper.load() was only called once verify(componentLoader, times(1)).load(ComponentProvider.class); + verify(componentLoader, times(1)) + .load(io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider.class); } @Test @@ -103,4 +106,99 @@ public Object create(DeclarativeConfigProperties config) { assertThat(config.isDouble("double_key")).isTrue(); assertThat(config.isString("int_key")).isFalse(); } + + @Test + @SuppressWarnings("deprecation") + void legacyComponentProviderLoaded() { + Resource expectedResource = Resource.builder().put("source", "legacy").build(); + io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider legacyProvider = + new io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider() { + @Override + public Class getType() { + return Resource.class; + } + + @Override + public String getName() { + return "legacy-test"; + } + + @Override + public Object create(DeclarativeConfigProperties config) { + return expectedResource; + } + }; + + doReturn(Collections.singletonList(legacyProvider)) + .when(componentLoader) + .load(io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider.class); + + Resource resource = + context.loadComponent( + Resource.class, + ConfigKeyValue.of( + "legacy-test", + YamlDeclarativeConfigProperties.create(Collections.emptyMap(), componentLoader))); + + assertThat(resource).isSameAs(expectedResource); + } + + @Test + @SuppressWarnings("deprecation") + void legacyComponentProviderDeduplicatedWhenModernProviderExists() { + Resource modernResource = Resource.builder().put("source", "modern").build(); + Resource legacyResource = Resource.builder().put("source", "legacy").build(); + + ComponentProvider modernProvider = + new ComponentProvider() { + @Override + public Class getType() { + return Resource.class; + } + + @Override + public String getName() { + return "duplicate-test"; + } + + @Override + public Object create(DeclarativeConfigProperties config) { + return modernResource; + } + }; + + io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider legacyProvider = + new io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider() { + @Override + public Class getType() { + return Resource.class; + } + + @Override + public String getName() { + return "duplicate-test"; + } + + @Override + public Object create(DeclarativeConfigProperties config) { + return legacyResource; + } + }; + + doReturn(Collections.singletonList(modernProvider)) + .when(componentLoader) + .load(ComponentProvider.class); + doReturn(Collections.singletonList(legacyProvider)) + .when(componentLoader) + .load(io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider.class); + + Resource resource = + context.loadComponent( + Resource.class, + ConfigKeyValue.of( + "duplicate-test", + YamlDeclarativeConfigProperties.create(Collections.emptyMap(), componentLoader))); + + assertThat(resource).isSameAs(modernResource); + } } diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/ResourceFactoryTest.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/ResourceFactoryTest.java index a991a0822f9..7b4b44f6c43 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/ResourceFactoryTest.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/ResourceFactoryTest.java @@ -22,7 +22,7 @@ import io.opentelemetry.sdk.autoconfigure.declarativeconfig.model.internal.ExperimentalResourceDetectionModel; import io.opentelemetry.sdk.autoconfigure.declarativeconfig.model.internal.ExperimentalResourceDetectorModel; import io.opentelemetry.sdk.autoconfigure.declarativeconfig.model.internal.ResourceModelAccessor; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.resources.Resource; import io.opentelemetry.sdk.resources.ResourceBuilder; import io.opentelemetry.sdk.resources.internal.Entity; diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/IdGeneratorComponentProvider.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/IdGeneratorComponentProvider.java index cc90e512cea..b4c0eba7cd5 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/IdGeneratorComponentProvider.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/IdGeneratorComponentProvider.java @@ -6,7 +6,7 @@ package io.opentelemetry.sdk.autoconfigure.declarativeconfig.component; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.trace.IdGenerator; public class IdGeneratorComponentProvider implements ComponentProvider { diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/LogRecordExporterComponentProvider.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/LogRecordExporterComponentProvider.java index dcdfffe0051..d36ea161ec2 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/LogRecordExporterComponentProvider.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/LogRecordExporterComponentProvider.java @@ -6,7 +6,7 @@ package io.opentelemetry.sdk.autoconfigure.declarativeconfig.component; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.common.CompletableResultCode; import io.opentelemetry.sdk.logs.data.LogRecordData; import io.opentelemetry.sdk.logs.export.LogRecordExporter; diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/LogRecordProcessorComponentProvider.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/LogRecordProcessorComponentProvider.java index ac9037613cd..959e50cef66 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/LogRecordProcessorComponentProvider.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/LogRecordProcessorComponentProvider.java @@ -7,7 +7,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.context.Context; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.common.CompletableResultCode; import io.opentelemetry.sdk.logs.LogRecordProcessor; import io.opentelemetry.sdk.logs.ReadWriteLogRecord; diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/MetricExporterComponentProvider.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/MetricExporterComponentProvider.java index 185f4e9e4f6..a5226d8c518 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/MetricExporterComponentProvider.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/MetricExporterComponentProvider.java @@ -6,7 +6,7 @@ package io.opentelemetry.sdk.autoconfigure.declarativeconfig.component; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.common.CompletableResultCode; import io.opentelemetry.sdk.metrics.InstrumentType; import io.opentelemetry.sdk.metrics.data.AggregationTemporality; diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/ResourceComponentProvider.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/ResourceComponentProvider.java index cd7003a5cf4..d2a1bd328eb 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/ResourceComponentProvider.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/ResourceComponentProvider.java @@ -6,7 +6,7 @@ package io.opentelemetry.sdk.autoconfigure.declarativeconfig.component; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.resources.Resource; public class ResourceComponentProvider implements ComponentProvider { diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/ResourceFirstComponentProvider.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/ResourceFirstComponentProvider.java index 3c5232e5ac1..6f41be5116c 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/ResourceFirstComponentProvider.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/ResourceFirstComponentProvider.java @@ -6,7 +6,7 @@ package io.opentelemetry.sdk.autoconfigure.declarativeconfig.component; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.resources.Resource; public class ResourceFirstComponentProvider implements ComponentProvider { diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/ResourceSecondComponentProvider.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/ResourceSecondComponentProvider.java index c64ea1bb5d7..3283e820c22 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/ResourceSecondComponentProvider.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/ResourceSecondComponentProvider.java @@ -6,7 +6,7 @@ package io.opentelemetry.sdk.autoconfigure.declarativeconfig.component; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.resources.Resource; public class ResourceSecondComponentProvider implements ComponentProvider { diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/SamplerComponentProvider.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/SamplerComponentProvider.java index 7618e10f6c4..84f74fa61db 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/SamplerComponentProvider.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/SamplerComponentProvider.java @@ -9,7 +9,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.api.trace.SpanKind; import io.opentelemetry.context.Context; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.trace.data.LinkData; import io.opentelemetry.sdk.trace.samplers.Sampler; import io.opentelemetry.sdk.trace.samplers.SamplingResult; diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/SpanExporterComponentProvider.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/SpanExporterComponentProvider.java index dc4bedf2fb3..3178be77dbd 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/SpanExporterComponentProvider.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/SpanExporterComponentProvider.java @@ -6,7 +6,7 @@ package io.opentelemetry.sdk.autoconfigure.declarativeconfig.component; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.common.CompletableResultCode; import io.opentelemetry.sdk.trace.data.SpanData; import io.opentelemetry.sdk.trace.export.SpanExporter; diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/SpanProcessorComponentProvider.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/SpanProcessorComponentProvider.java index b481557bf0e..bb40c5ea762 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/SpanProcessorComponentProvider.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/SpanProcessorComponentProvider.java @@ -7,7 +7,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.context.Context; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.common.CompletableResultCode; import io.opentelemetry.sdk.trace.ReadWriteSpan; import io.opentelemetry.sdk.trace.ReadableSpan; diff --git a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/TextMapPropagatorComponentProvider.java b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/TextMapPropagatorComponentProvider.java index f001dd9a881..f6ad2ba02c9 100644 --- a/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/TextMapPropagatorComponentProvider.java +++ b/sdk-extensions/declarative-config/src/test/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/component/TextMapPropagatorComponentProvider.java @@ -10,7 +10,7 @@ import io.opentelemetry.context.propagation.TextMapGetter; import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.context.propagation.TextMapSetter; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import java.util.Collection; import java.util.Collections; import javax.annotation.Nullable; diff --git a/sdk-extensions/declarative-config/src/test/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider b/sdk-extensions/declarative-config/src/test/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider similarity index 99% rename from sdk-extensions/declarative-config/src/test/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider rename to sdk-extensions/declarative-config/src/test/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider index deed49c7019..98cdcb2e199 100644 --- a/sdk-extensions/declarative-config/src/test/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider +++ b/sdk-extensions/declarative-config/src/test/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider @@ -9,3 +9,4 @@ io.opentelemetry.sdk.autoconfigure.declarativeconfig.component.ResourceComponent io.opentelemetry.sdk.autoconfigure.declarativeconfig.component.ResourceFirstComponentProvider io.opentelemetry.sdk.autoconfigure.declarativeconfig.component.ResourceSecondComponentProvider io.opentelemetry.sdk.autoconfigure.declarativeconfig.component.IdGeneratorComponentProvider + diff --git a/sdk-extensions/jaeger-remote-sampler/build.gradle.kts b/sdk-extensions/jaeger-remote-sampler/build.gradle.kts index 4b791bce400..10388dc09f4 100644 --- a/sdk-extensions/jaeger-remote-sampler/build.gradle.kts +++ b/sdk-extensions/jaeger-remote-sampler/build.gradle.kts @@ -13,7 +13,7 @@ otelJava.requireSuppressWarningsExplanation.set(false) otelJava.osgiOptionalPackages.set(listOf("io.opentelemetry.sdk.autoconfigure.declarativeconfig", "io.opentelemetry.sdk.autoconfigure.spi")) otelJava.osgiServiceLoaderProvides.set(listOf( "io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSamplerProvider", - "io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider", + "io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider", )) dependencies { diff --git a/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/internal/JaegerRemoteSamplerComponentProvider.java b/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/internal/JaegerRemoteSamplerComponentProvider.java index b983f6751ef..80f7b486291 100644 --- a/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/internal/JaegerRemoteSamplerComponentProvider.java +++ b/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/internal/JaegerRemoteSamplerComponentProvider.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigException; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.sdk.autoconfigure.declarativeconfig.DeclarativeConfiguration; -import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider; import io.opentelemetry.sdk.extension.trace.jaeger.sampler.JaegerRemoteSampler; import io.opentelemetry.sdk.extension.trace.jaeger.sampler.JaegerRemoteSamplerBuilder; import io.opentelemetry.sdk.trace.samplers.Sampler; diff --git a/sdk-extensions/jaeger-remote-sampler/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider b/sdk-extensions/jaeger-remote-sampler/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider similarity index 98% rename from sdk-extensions/jaeger-remote-sampler/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider rename to sdk-extensions/jaeger-remote-sampler/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider index a06efe29e4f..d4a81bc8438 100644 --- a/sdk-extensions/jaeger-remote-sampler/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider +++ b/sdk-extensions/jaeger-remote-sampler/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.impl.ComponentProvider @@ -1 +1,2 @@ io.opentelemetry.sdk.extension.trace.jaeger.sampler.internal.JaegerRemoteSamplerComponentProvider +