From 21d7756a80d59c1ced7bb0f6bc1a90c33dd0fa40 Mon Sep 17 00:00:00 2001 From: Jack Berg Date: Tue, 24 Jun 2025 17:30:16 -0500 Subject: [PATCH 1/5] Promote ComponentLoader to opentelemetry-context, standardize SPI loading --- .../config/DeclarativeConfigProperties.java | 6 +++ .../EmptyDeclarativeConfigProperties.java | 8 ++++ .../context/ComponentLoader.java | 28 ++++++++++++++ .../io/opentelemetry/context/LazyStorage.java | 6 +-- .../context/ServiceLoaderComponentLoader.java | 27 +++++++++++++ .../opentelemetry-context.txt | 7 +++- .../opentelemetry-exporter-otlp.txt | 19 +++++++++- ...emetry-sdk-extension-autoconfigure-spi.txt | 4 +- ...ntelemetry-sdk-extension-autoconfigure.txt | 4 +- .../internal/compression/CompressorUtil.java | 5 ++- .../internal/grpc/GrpcExporterBuilder.java | 14 +++---- .../internal/http/HttpExporterBuilder.java | 14 +++---- .../otlp/AbstractOtlpStdoutExporterTest.java | 38 +++++++++---------- .../otlp/OtlpStdoutMetricExporterTest.java | 4 +- .../OtlpHttpLogRecordExporterBuilder.java | 12 +++++- .../OtlpHttpMetricExporterBuilder.java | 12 +++++- .../trace/OtlpHttpSpanExporterBuilder.java | 12 +++++- .../otlp/internal/OtlpConfigUtil.java | 4 ++ .../internal/OtlpDeclarativeConfigUtil.java | 4 ++ ...rpcLogRecordExporterComponentProvider.java | 1 + ...lpGrpcMetricExporterComponentProvider.java | 1 + ...OtlpGrpcSpanExporterComponentProvider.java | 1 + ...ttpLogRecordExporterComponentProvider.java | 1 + ...lpHttpMetricExporterComponentProvider.java | 1 + ...OtlpHttpSpanExporterComponentProvider.java | 1 + .../OtlpLogRecordExporterProvider.java | 2 + .../internal/OtlpMetricExporterProvider.java | 2 + .../internal/OtlpSpanExporterProvider.java | 2 + .../OtlpGrpcLogRecordExporterBuilder.java | 12 +++++- .../OtlpGrpcMetricExporterBuilder.java | 12 +++++- .../trace/OtlpGrpcSpanExporterBuilder.java | 12 +++++- .../otlp/internal/OtlpConfigUtilTest.java | 1 + .../OtlpLogRecordExporterProviderTest.java | 3 ++ .../OtlpMetricExporterProviderTest.java | 6 +++ .../OtlpSpanExporterProviderTest.java | 6 +++ .../OtlpGrpcProfilesExporterBuilder.java | 14 ++++++- .../autoconfigure/spi/ConfigProperties.java | 6 +++ ...AutoConfiguredOpenTelemetrySdkBuilder.java | 8 ++-- .../sdk/autoconfigure/IncubatingUtil.java | 2 +- .../internal/AutoConfigureUtil.java | 16 -------- .../internal/ComponentLoader.java | 15 +++----- .../sdk/autoconfigure/internal/SpiHelper.java | 31 +++------------ .../AutoConfiguredOpenTelemetrySdkTest.java | 6 +-- .../autoconfigure/internal/SpiHelperTest.java | 15 +++++--- .../fileconfig/DeclarativeConfiguration.java | 4 +- .../YamlDeclarativeConfigProperties.java | 3 +- .../DeclarativeConfigurationCreateTest.java | 4 +- 47 files changed, 287 insertions(+), 129 deletions(-) create mode 100644 context/src/main/java/io/opentelemetry/context/ComponentLoader.java create mode 100644 context/src/main/java/io/opentelemetry/context/ServiceLoaderComponentLoader.java diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java index ef8e2343f22..207c0f439ea 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java @@ -7,6 +7,7 @@ import static io.opentelemetry.api.internal.ConfigUtil.defaultIfNull; +import io.opentelemetry.context.ComponentLoader; import java.util.List; import java.util.Set; import javax.annotation.Nullable; @@ -222,4 +223,9 @@ default List getStructuredList( * @return the configuration property keys */ Set getPropertyKeys(); + + /** Return a {@link ComponentLoader} that should be used to load SPIs. */ + default ComponentLoader getComponentLoader() { + return ComponentLoader.forClassLoader(DeclarativeConfigProperties.class.getClassLoader()); + } } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/EmptyDeclarativeConfigProperties.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/EmptyDeclarativeConfigProperties.java index 77b8a265492..25d57d2b5b7 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/EmptyDeclarativeConfigProperties.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/EmptyDeclarativeConfigProperties.java @@ -5,6 +5,7 @@ package io.opentelemetry.api.incubator.config; +import io.opentelemetry.context.ComponentLoader; import java.util.Collections; import java.util.List; import java.util.Set; @@ -15,6 +16,8 @@ final class EmptyDeclarativeConfigProperties implements DeclarativeConfigPropert private static final EmptyDeclarativeConfigProperties INSTANCE = new EmptyDeclarativeConfigProperties(); + private static final ComponentLoader COMPONENT_LOADER = + ComponentLoader.forClassLoader(EmptyDeclarativeConfigProperties.class.getClassLoader()); private EmptyDeclarativeConfigProperties() {} @@ -74,4 +77,9 @@ public List getStructuredList(String name) { public Set getPropertyKeys() { return Collections.emptySet(); } + + @Override + public ComponentLoader getComponentLoader() { + return COMPONENT_LOADER; + } } diff --git a/context/src/main/java/io/opentelemetry/context/ComponentLoader.java b/context/src/main/java/io/opentelemetry/context/ComponentLoader.java new file mode 100644 index 00000000000..c5a019a0ecc --- /dev/null +++ b/context/src/main/java/io/opentelemetry/context/ComponentLoader.java @@ -0,0 +1,28 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.context; + +import java.util.ServiceLoader; + +/** A loader for components that are discovered via SPI. */ +public interface ComponentLoader { + /** + * Load implementations of an SPI. + * + * @param spiClass the SPI class + * @param the SPI type + * @return iterable of SPI implementations + */ + Iterable load(Class spiClass); + + /** + * Create an instance for the {@code classLoader} using {@link ServiceLoader#load(Class, + * ClassLoader)}. + */ + static ComponentLoader forClassLoader(ClassLoader classLoader) { + return new ServiceLoaderComponentLoader(classLoader); + } +} diff --git a/context/src/main/java/io/opentelemetry/context/LazyStorage.java b/context/src/main/java/io/opentelemetry/context/LazyStorage.java index 5cce59d253b..e1dc0128338 100644 --- a/context/src/main/java/io/opentelemetry/context/LazyStorage.java +++ b/context/src/main/java/io/opentelemetry/context/LazyStorage.java @@ -39,7 +39,6 @@ import java.util.ArrayList; import java.util.List; -import java.util.ServiceLoader; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; import java.util.logging.Level; @@ -103,9 +102,10 @@ static ContextStorage createStorage(AtomicReference deferredStorageFa return ContextStorage.defaultStorage(); } + ComponentLoader componentLoader = + ComponentLoader.forClassLoader(LazyStorage.class.getClassLoader()); List providers = new ArrayList<>(); - for (ContextStorageProvider provider : - ServiceLoader.load(ContextStorageProvider.class, LazyStorage.class.getClassLoader())) { + for (ContextStorageProvider provider : componentLoader.load(ContextStorageProvider.class)) { if (provider .getClass() .getName() diff --git a/context/src/main/java/io/opentelemetry/context/ServiceLoaderComponentLoader.java b/context/src/main/java/io/opentelemetry/context/ServiceLoaderComponentLoader.java new file mode 100644 index 00000000000..64d9dd4cc1d --- /dev/null +++ b/context/src/main/java/io/opentelemetry/context/ServiceLoaderComponentLoader.java @@ -0,0 +1,27 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.context; + +import java.util.ServiceLoader; + +class ServiceLoaderComponentLoader implements ComponentLoader { + + private final ClassLoader classLoader; + + ServiceLoaderComponentLoader(ClassLoader classLoader) { + this.classLoader = classLoader; + } + + @Override + public Iterable load(Class spiClass) { + return ServiceLoader.load(spiClass, classLoader); + } + + @Override + public String toString() { + return "ServiceLoaderComponentLoader{classLoader=" + classLoader + "}"; + } +} diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-context.txt b/docs/apidiffs/current_vs_latest/opentelemetry-context.txt index cb58011e0e0..794d07c45d2 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-context.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-context.txt @@ -1,2 +1,7 @@ Comparing source compatibility of opentelemetry-context-1.52.0-SNAPSHOT.jar against opentelemetry-context-1.51.0.jar -No changes. \ No newline at end of file ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.context.ComponentLoader (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.context.ComponentLoader forClassLoader(java.lang.ClassLoader) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Iterable load(java.lang.Class) + GENERIC TEMPLATES: +++ T:java.lang.Object diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-exporter-otlp.txt b/docs/apidiffs/current_vs_latest/opentelemetry-exporter-otlp.txt index 50c76ab468f..764057e24f6 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-exporter-otlp.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-exporter-otlp.txt @@ -1,2 +1,19 @@ Comparing source compatibility of opentelemetry-exporter-otlp-1.52.0-SNAPSHOT.jar against opentelemetry-exporter-otlp-1.51.0.jar -No changes. \ No newline at end of file +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) 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 e39912ab8a6..c0465086263 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,4 @@ Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-spi-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-extension-autoconfigure-spi-1.51.0.jar -No changes. \ No newline at end of file +*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.context.ComponentLoader getComponentLoader() diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure.txt b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure.txt index 6dcf9a630a5..bbcd71ed646 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure.txt @@ -1,2 +1,4 @@ Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-extension-autoconfigure-1.51.0.jar -No changes. \ No newline at end of file +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/compression/CompressorUtil.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/compression/CompressorUtil.java index 9748ea508ad..58978427676 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/compression/CompressorUtil.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/compression/CompressorUtil.java @@ -8,9 +8,9 @@ import static io.opentelemetry.api.internal.Utils.checkArgument; import static java.util.stream.Collectors.joining; +import io.opentelemetry.context.ComponentLoader; import java.util.HashMap; import java.util.Map; -import java.util.ServiceLoader; import java.util.Set; import javax.annotation.Nullable; @@ -48,7 +48,8 @@ public static Compressor validateAndResolveCompressor(String compressionMethod) private static Map buildCompressorRegistry() { Map compressors = new HashMap<>(); for (CompressorProvider spi : - ServiceLoader.load(CompressorProvider.class, CompressorUtil.class.getClassLoader())) { + ComponentLoader.forClassLoader(CompressorUtil.class.getClassLoader()) + .load(CompressorProvider.class)) { Compressor compressor = spi.getInstance(); compressors.put(compressor.getEncoding(), compressor); } diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java index 6f2ae64b862..897ec2fb875 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java @@ -10,6 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.internal.ConfigUtil; import io.opentelemetry.api.metrics.MeterProvider; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.exporter.internal.ExporterBuilderUtil; import io.opentelemetry.exporter.internal.TlsConfigHelper; import io.opentelemetry.exporter.internal.compression.Compressor; @@ -26,7 +27,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.ServiceLoader; import java.util.StringJoiner; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; @@ -67,7 +67,8 @@ public class GrpcExporterBuilder { private Supplier meterProviderSupplier = GlobalOpenTelemetry::getMeterProvider; private InternalTelemetryVersion internalTelemetryVersion = InternalTelemetryVersion.LEGACY; - private ClassLoader serviceClassLoader = GrpcExporterBuilder.class.getClassLoader(); + private ComponentLoader componentLoader = + ComponentLoader.forClassLoader(GrpcExporterBuilder.class.getClassLoader()); @Nullable private ExecutorService executorService; // Use Object type since gRPC may not be on the classpath. @@ -158,8 +159,8 @@ public GrpcExporterBuilder setInternalTelemetryVersion( return this; } - public GrpcExporterBuilder setServiceClassLoader(ClassLoader servieClassLoader) { - this.serviceClassLoader = servieClassLoader; + public GrpcExporterBuilder setComponentLoader(ComponentLoader componentLoader) { + this.componentLoader = componentLoader; return this; } @@ -268,7 +269,7 @@ public String toString(boolean includePrefixAndSuffix) { if (grpcChannel != null) { joiner.add("grpcChannel=" + grpcChannel); } - joiner.add("serviceClassLoader=" + serviceClassLoader); + joiner.add("componentLoader=" + componentLoader); if (executorService != null) { joiner.add("executorService=" + executorService); } @@ -302,8 +303,7 @@ public String toString() { */ private GrpcSenderProvider resolveGrpcSenderProvider() { Map grpcSenderProviders = new HashMap<>(); - for (GrpcSenderProvider spi : - ServiceLoader.load(GrpcSenderProvider.class, serviceClassLoader)) { + for (GrpcSenderProvider spi : componentLoader.load(GrpcSenderProvider.class)) { grpcSenderProviders.put(spi.getClass().getName(), spi); } diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java index 4cd671c32ca..6fc0f7a126b 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java @@ -8,6 +8,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.internal.ConfigUtil; import io.opentelemetry.api.metrics.MeterProvider; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.exporter.internal.ExporterBuilderUtil; import io.opentelemetry.exporter.internal.TlsConfigHelper; import io.opentelemetry.exporter.internal.compression.Compressor; @@ -24,7 +25,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.ServiceLoader; import java.util.StringJoiner; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; @@ -64,7 +64,8 @@ public final class HttpExporterBuilder { @Nullable private RetryPolicy retryPolicy = RetryPolicy.getDefault(); private Supplier meterProviderSupplier = GlobalOpenTelemetry::getMeterProvider; private InternalTelemetryVersion internalTelemetryVersion = InternalTelemetryVersion.LEGACY; - private ClassLoader serviceClassLoader = HttpExporterBuilder.class.getClassLoader(); + private ComponentLoader componentLoader = + ComponentLoader.forClassLoader(HttpExporterBuilder.class.getClassLoader()); @Nullable private ExecutorService executorService; public HttpExporterBuilder( @@ -143,8 +144,8 @@ public HttpExporterBuilder setProxyOptions(ProxyOptions proxyOptions) { return this; } - public HttpExporterBuilder setServiceClassLoader(ClassLoader servieClassLoader) { - this.serviceClassLoader = servieClassLoader; + public HttpExporterBuilder setComponentLoader(ComponentLoader componentLoader) { + this.componentLoader = componentLoader; return this; } @@ -265,7 +266,7 @@ public String toString(boolean includePrefixAndSuffix) { if (retryPolicy != null) { joiner.add("retryPolicy=" + retryPolicy); } - joiner.add("serviceClassLoader=" + serviceClassLoader); + joiner.add("componentLoader=" + componentLoader); if (executorService != null) { joiner.add("executorService=" + executorService); } @@ -299,8 +300,7 @@ public String toString() { */ private HttpSenderProvider resolveHttpSenderProvider() { Map httpSenderProviders = new HashMap<>(); - for (HttpSenderProvider spi : - ServiceLoader.load(HttpSenderProvider.class, serviceClassLoader)) { + for (HttpSenderProvider spi : componentLoader.load(HttpSenderProvider.class)) { httpSenderProviders.put(spi.getClass().getName(), spi); } 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 ed7b79f65e9..44b046aca42 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 @@ -9,11 +9,10 @@ import static java.util.Collections.singletonMap; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; -import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Streams; import io.github.netmikey.logunit.api.LogCapturer; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; @@ -29,10 +28,10 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; -import java.util.ServiceLoader; import java.util.concurrent.TimeUnit; import java.util.function.Supplier; import java.util.stream.Stream; +import java.util.stream.StreamSupport; import javax.annotation.Nullable; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; @@ -306,7 +305,7 @@ void providerConfig() { @Test void componentProviderConfig() { - DeclarativeConfigProperties properties = mock(DeclarativeConfigProperties.class); + DeclarativeConfigProperties properties = spy(DeclarativeConfigProperties.empty()); T exporter = exporterFromComponentProvider(properties); assertThat(exporter).extracting("wrapperJsonObject").isEqualTo(true); @@ -330,22 +329,22 @@ void componentProviderConfig() { @SuppressWarnings("unchecked") protected T exporterFromComponentProvider(DeclarativeConfigProperties properties) { return (T) - ((ComponentProvider) - loadSpi(ComponentProvider.class) - .filter( - p -> { - ComponentProvider c = (ComponentProvider) p; - return "otlp_file/development".equals(c.getName()) - && c.getType().equals(componentProviderType); - }) - .findFirst() - .orElseThrow(() -> new IllegalStateException("No provider found"))) + StreamSupport.stream( + properties.getComponentLoader().load(ComponentProvider.class).spliterator(), false) + .filter( + p -> { + ComponentProvider c = p; + return "otlp_file/development".equals(c.getName()) + && c.getType().equals(componentProviderType); + }) + .findFirst() + .orElseThrow(() -> new IllegalStateException("No provider found")) .create(properties); } @SuppressWarnings("unchecked") protected T exporterFromProvider(ConfigProperties config) { - Object provider = loadProvider(); + Object provider = loadProvider(config); try { return (T) @@ -358,8 +357,9 @@ protected T exporterFromProvider(ConfigProperties config) { } } - private Object loadProvider() { - return loadSpi(providerClass) + private Object loadProvider(ConfigProperties config) { + return StreamSupport.stream( + config.getComponentLoader().load(providerClass).spliterator(), false) .filter( p -> { try { @@ -372,8 +372,4 @@ private Object loadProvider() { .findFirst() .orElseThrow(() -> new IllegalStateException("No provider found")); } - - protected static Stream loadSpi(Class type) { - return Streams.stream(ServiceLoader.load(type, type.getClassLoader()).iterator()); - } } diff --git a/exporters/logging-otlp/src/test/java/io/opentelemetry/exporter/logging/otlp/OtlpStdoutMetricExporterTest.java b/exporters/logging-otlp/src/test/java/io/opentelemetry/exporter/logging/otlp/OtlpStdoutMetricExporterTest.java index df91f1e2cba..28b0b2e3587 100644 --- a/exporters/logging-otlp/src/test/java/io/opentelemetry/exporter/logging/otlp/OtlpStdoutMetricExporterTest.java +++ b/exporters/logging-otlp/src/test/java/io/opentelemetry/exporter/logging/otlp/OtlpStdoutMetricExporterTest.java @@ -7,7 +7,7 @@ import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; -import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import com.google.common.collect.ImmutableMap; @@ -81,7 +81,7 @@ void providerMetricConfig() { @Test void componentProviderMetricConfig() { - DeclarativeConfigProperties properties = mock(DeclarativeConfigProperties.class); + DeclarativeConfigProperties properties = spy(DeclarativeConfigProperties.empty()); when(properties.getString("temporality_preference")).thenReturn("DELTA"); when(properties.getString("default_histogram_aggregation")) .thenReturn("BASE2_EXPONENTIAL_BUCKET_HISTOGRAM"); diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java index 7dfe6f74262..f958f0a1529 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java @@ -10,6 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.compression.CompressorProvider; import io.opentelemetry.exporter.internal.compression.CompressorUtil; @@ -245,13 +246,20 @@ public OtlpHttpLogRecordExporterBuilder setMemoryMode(MemoryMode memoryMode) { } /** - * Set the {@link ClassLoader} used to load the sender API. + * Set the {@link ClassLoader} used to load the sender API. Variant of {@link + * #setComponentLoader(ComponentLoader)}. * * @since 1.48.0 */ public OtlpHttpLogRecordExporterBuilder setServiceClassLoader(ClassLoader serviceClassLoader) { requireNonNull(serviceClassLoader, "serviceClassLoader"); - delegate.setServiceClassLoader(serviceClassLoader); + return setComponentLoader(ComponentLoader.forClassLoader(serviceClassLoader)); + } + + /** Set the {@link ComponentLoader} used to load the sender API. */ + public OtlpHttpLogRecordExporterBuilder setComponentLoader(ComponentLoader componentLoader) { + requireNonNull(componentLoader, "componentLoader"); + delegate.setComponentLoader(componentLoader); return this; } diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java index 3d6e6b97e5b..eab04b840e6 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java @@ -10,6 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.compression.CompressorProvider; import io.opentelemetry.exporter.internal.compression.CompressorUtil; @@ -304,13 +305,20 @@ public OtlpHttpMetricExporterBuilder setMemoryMode(MemoryMode memoryMode) { } /** - * Set the {@link ClassLoader} used to load the sender API. + * Set the {@link ClassLoader} used to load the sender API. Variant of {@link + * #setComponentLoader(ComponentLoader)}. * * @since 1.48.0 */ public OtlpHttpMetricExporterBuilder setServiceClassLoader(ClassLoader serviceClassLoader) { requireNonNull(serviceClassLoader, "serviceClassLoader"); - delegate.setServiceClassLoader(serviceClassLoader); + return setComponentLoader(ComponentLoader.forClassLoader(serviceClassLoader)); + } + + /** Set the {@link ComponentLoader} used to load the sender API. */ + public OtlpHttpMetricExporterBuilder setComponentLoader(ComponentLoader componentLoader) { + requireNonNull(componentLoader, "componentLoader"); + delegate.setComponentLoader(componentLoader); return this; } diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java index 4c2737845d1..201fb0ef1c6 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java @@ -10,6 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.compression.CompressorProvider; import io.opentelemetry.exporter.internal.compression.CompressorUtil; @@ -246,13 +247,20 @@ public OtlpHttpSpanExporterBuilder setMemoryMode(MemoryMode memoryMode) { } /** - * Set the {@link ClassLoader} used to load the sender API. + * Set the {@link ClassLoader} used to load the sender API. Variant of {@link + * #setComponentLoader(ComponentLoader)}. * * @since 1.48.0 */ public OtlpHttpSpanExporterBuilder setServiceClassLoader(ClassLoader serviceClassLoader) { requireNonNull(serviceClassLoader, "serviceClassLoader"); - delegate.setServiceClassLoader(serviceClassLoader); + return setComponentLoader(ComponentLoader.forClassLoader(serviceClassLoader)); + } + + /** Set the {@link ComponentLoader} used to load the sender API. */ + public OtlpHttpSpanExporterBuilder setComponentLoader(ComponentLoader componentLoader) { + requireNonNull(componentLoader, "componentLoader"); + delegate.setComponentLoader(componentLoader); return this; } diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtil.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtil.java index 8bfcb4b3960..0a11cd0ad5c 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtil.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtil.java @@ -5,6 +5,7 @@ package io.opentelemetry.exporter.otlp.internal; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.exporter.internal.ExporterBuilderUtil; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; @@ -53,6 +54,7 @@ public static String getOtlpProtocol(String dataType, ConfigProperties config) { public static void configureOtlpExporterBuilder( String dataType, ConfigProperties config, + Consumer setComponentLoader, Consumer setEndpoint, BiConsumer addHeader, Consumer setCompression, @@ -61,6 +63,8 @@ public static void configureOtlpExporterBuilder( BiConsumer setClientTls, Consumer setRetryPolicy, Consumer setMemoryMode) { + setComponentLoader.accept(config.getComponentLoader()); + String protocol = getOtlpProtocol(dataType, config); boolean isHttpProtobuf = protocol.equals(PROTOCOL_HTTP_PROTOBUF); URL endpoint = diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java index dfcd6740bfa..4f9bb788a4c 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java @@ -11,6 +11,7 @@ import static io.opentelemetry.exporter.otlp.internal.OtlpConfigUtil.validateEndpoint; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.exporter.internal.IncubatingExporterBuilderUtil; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; @@ -47,6 +48,7 @@ public static String getStructuredConfigOtlpProtocol(DeclarativeConfigProperties public static void configureOtlpExporterBuilder( String dataType, DeclarativeConfigProperties config, + Consumer setComponentLoader, Consumer setEndpoint, BiConsumer addHeader, Consumer setCompression, @@ -56,6 +58,8 @@ public static void configureOtlpExporterBuilder( Consumer setRetryPolicy, Consumer setMemoryMode, boolean isHttpProtobuf) { + setComponentLoader.accept(config.getComponentLoader()); + URL endpoint = validateEndpoint(config.getString("endpoint"), isHttpProtobuf); if (endpoint != null) { setEndpoint.accept(endpoint.toString()); 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 08b6b65d307..f8faab7a00a 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 @@ -39,6 +39,7 @@ public LogRecordExporter create(DeclarativeConfigProperties config) { OtlpDeclarativeConfigUtil.configureOtlpExporterBuilder( DATA_TYPE_LOGS, config, + builder::setComponentLoader, builder::setEndpoint, builder::addHeader, builder::setCompression, 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 f55ab3795cd..25f8341fb07 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 @@ -39,6 +39,7 @@ public MetricExporter create(DeclarativeConfigProperties config) { OtlpDeclarativeConfigUtil.configureOtlpExporterBuilder( DATA_TYPE_METRICS, config, + builder::setComponentLoader, builder::setEndpoint, builder::addHeader, builder::setCompression, 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 c84afce9e66..84e230ca515 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 @@ -38,6 +38,7 @@ public SpanExporter create(DeclarativeConfigProperties config) { OtlpDeclarativeConfigUtil.configureOtlpExporterBuilder( DATA_TYPE_TRACES, config, + builder::setComponentLoader, builder::setEndpoint, builder::addHeader, builder::setCompression, 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 eb9143b181f..e6a513e8982 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 @@ -39,6 +39,7 @@ public LogRecordExporter create(DeclarativeConfigProperties config) { OtlpDeclarativeConfigUtil.configureOtlpExporterBuilder( DATA_TYPE_LOGS, config, + builder::setComponentLoader, builder::setEndpoint, builder::addHeader, builder::setCompression, 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 f22059d9a7f..d6cc1bf62d1 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 @@ -39,6 +39,7 @@ public MetricExporter create(DeclarativeConfigProperties config) { OtlpDeclarativeConfigUtil.configureOtlpExporterBuilder( DATA_TYPE_METRICS, config, + builder::setComponentLoader, builder::setEndpoint, builder::addHeader, builder::setCompression, 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 2c9b876979a..752e9698dcf 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 @@ -38,6 +38,7 @@ public SpanExporter create(DeclarativeConfigProperties config) { OtlpDeclarativeConfigUtil.configureOtlpExporterBuilder( DATA_TYPE_TRACES, config, + builder::setComponentLoader, builder::setEndpoint, builder::addHeader, builder::setCompression, diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpLogRecordExporterProvider.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpLogRecordExporterProvider.java index 67ed44c754a..1262bc7250f 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpLogRecordExporterProvider.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpLogRecordExporterProvider.java @@ -45,6 +45,7 @@ public LogRecordExporter createExporter(ConfigProperties config) { OtlpConfigUtil.configureOtlpExporterBuilder( DATA_TYPE_LOGS, config, + builder::setComponentLoader, builder::setEndpoint, builder::addHeader, builder::setCompression, @@ -62,6 +63,7 @@ public LogRecordExporter createExporter(ConfigProperties config) { OtlpConfigUtil.configureOtlpExporterBuilder( DATA_TYPE_LOGS, config, + builder::setComponentLoader, builder::setEndpoint, builder::addHeader, builder::setCompression, diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpMetricExporterProvider.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpMetricExporterProvider.java index a60f57a250c..ebfaaacf296 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpMetricExporterProvider.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpMetricExporterProvider.java @@ -38,6 +38,7 @@ public MetricExporter createExporter(ConfigProperties config) { OtlpConfigUtil.configureOtlpExporterBuilder( DATA_TYPE_METRICS, config, + builder::setComponentLoader, builder::setEndpoint, builder::addHeader, builder::setCompression, @@ -58,6 +59,7 @@ public MetricExporter createExporter(ConfigProperties config) { OtlpConfigUtil.configureOtlpExporterBuilder( DATA_TYPE_METRICS, config, + builder::setComponentLoader, builder::setEndpoint, builder::addHeader, builder::setCompression, diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpSpanExporterProvider.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpSpanExporterProvider.java index e6fad237d85..1561c057b29 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpSpanExporterProvider.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpSpanExporterProvider.java @@ -44,6 +44,7 @@ public SpanExporter createExporter(ConfigProperties config) { OtlpConfigUtil.configureOtlpExporterBuilder( DATA_TYPE_TRACES, config, + builder::setComponentLoader, builder::setEndpoint, builder::addHeader, builder::setCompression, @@ -61,6 +62,7 @@ public SpanExporter createExporter(ConfigProperties config) { OtlpConfigUtil.configureOtlpExporterBuilder( DATA_TYPE_TRACES, config, + builder::setComponentLoader, builder::setEndpoint, builder::addHeader, builder::setCompression, diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java index dbec072655e..c178c63b75f 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java @@ -11,6 +11,7 @@ import io.grpc.ManagedChannel; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.compression.CompressorProvider; import io.opentelemetry.exporter.internal.compression.CompressorUtil; @@ -274,13 +275,20 @@ public OtlpGrpcLogRecordExporterBuilder setMemoryMode(MemoryMode memoryMode) { } /** - * Set the {@link ClassLoader} used to load the sender API. + * Set the {@link ClassLoader} used to load the sender API. Variant of {@link + * #setComponentLoader(ComponentLoader)}. * * @since 1.48.0 */ public OtlpGrpcLogRecordExporterBuilder setServiceClassLoader(ClassLoader serviceClassLoader) { requireNonNull(serviceClassLoader, "serviceClassLoader"); - delegate.setServiceClassLoader(serviceClassLoader); + return setComponentLoader(ComponentLoader.forClassLoader(serviceClassLoader)); + } + + /** Set the {@link ComponentLoader} used to load the sender API. */ + public OtlpGrpcLogRecordExporterBuilder setComponentLoader(ComponentLoader componentLoader) { + requireNonNull(componentLoader, "componentLoader"); + delegate.setComponentLoader(componentLoader); return this; } diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java index 8a56a8188a2..1db8f6ff072 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java @@ -11,6 +11,7 @@ import io.grpc.ManagedChannel; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.compression.CompressorProvider; import io.opentelemetry.exporter.internal.compression.CompressorUtil; @@ -332,13 +333,20 @@ public OtlpGrpcMetricExporterBuilder setMemoryMode(MemoryMode memoryMode) { } /** - * Set the {@link ClassLoader} used to load the sender API. + * Set the {@link ClassLoader} used to load the sender API. Variant of {@link + * #setComponentLoader(ComponentLoader)}. * * @since 1.48.0 */ public OtlpGrpcMetricExporterBuilder setServiceClassLoader(ClassLoader serviceClassLoader) { requireNonNull(serviceClassLoader, "serviceClassLoader"); - delegate.setServiceClassLoader(serviceClassLoader); + return setComponentLoader(ComponentLoader.forClassLoader(serviceClassLoader)); + } + + /** Set the {@link ComponentLoader} used to load the sender API. */ + public OtlpGrpcMetricExporterBuilder setComponentLoader(ComponentLoader componentLoader) { + requireNonNull(componentLoader, "componentLoader"); + delegate.setComponentLoader(componentLoader); return this; } diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java index 8b0c8c1f9f7..ea2ae58e35a 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java @@ -11,6 +11,7 @@ import io.grpc.ManagedChannel; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.compression.CompressorProvider; import io.opentelemetry.exporter.internal.compression.CompressorUtil; @@ -271,13 +272,20 @@ public OtlpGrpcSpanExporterBuilder setMemoryMode(MemoryMode memoryMode) { } /** - * Set the {@link ClassLoader} used to load the sender API. + * Set the {@link ClassLoader} used to load the sender API. Variant of {@link + * #setComponentLoader(ComponentLoader)}. * * @since 1.48.0 */ public OtlpGrpcSpanExporterBuilder setServiceClassLoader(ClassLoader serviceClassLoader) { requireNonNull(serviceClassLoader, "serviceClassLoader"); - delegate.setServiceClassLoader(serviceClassLoader); + return setComponentLoader(ComponentLoader.forClassLoader(serviceClassLoader)); + } + + /** Set the {@link ComponentLoader} used to load the sender API. */ + public OtlpGrpcSpanExporterBuilder setComponentLoader(ComponentLoader componentLoader) { + requireNonNull(componentLoader, "componentLoader"); + delegate.setComponentLoader(componentLoader); return this; } diff --git a/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtilTest.java b/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtilTest.java index 5716d604ec0..fb1061ae3fa 100644 --- a/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtilTest.java +++ b/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtilTest.java @@ -371,6 +371,7 @@ private static String configureEndpoint(String dataType, Map pro OtlpConfigUtil.configureOtlpExporterBuilder( dataType, DefaultConfigProperties.createFromMap(properties), + value -> {}, endpoint::set, (value1, value2) -> {}, value -> {}, diff --git a/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpLogRecordExporterProviderTest.java b/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpLogRecordExporterProviderTest.java index 47ed7859cd7..9fe5bad7681 100644 --- a/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpLogRecordExporterProviderTest.java +++ b/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpLogRecordExporterProviderTest.java @@ -122,6 +122,7 @@ void createExporter_GrpcDefaults() { provider.createExporter(DefaultConfigProperties.createFromMap(Collections.emptyMap()))) { assertThat(exporter).isInstanceOf(OtlpGrpcLogRecordExporter.class); verify(grpcBuilder, times(1)).build(); + verify(grpcBuilder).setComponentLoader(any()); verify(grpcBuilder, never()).setEndpoint(any()); verify(grpcBuilder, never()).addHeader(any(), any()); verify(grpcBuilder, never()).setCompression(any()); @@ -154,6 +155,7 @@ void createExporter_GrpcWithGeneralConfiguration() throws CertificateEncodingExc provider.createExporter(DefaultConfigProperties.createFromMap(config))) { assertThat(exporter).isInstanceOf(OtlpGrpcLogRecordExporter.class); verify(grpcBuilder, times(1)).build(); + verify(grpcBuilder).setComponentLoader(any()); verify(grpcBuilder).setEndpoint("https://localhost:443/"); verify(grpcBuilder).addHeader("header-key", "header-value"); verify(grpcBuilder).setCompression("gzip"); @@ -189,6 +191,7 @@ void createExporter_GrpcWithSignalConfiguration() throws CertificateEncodingExce provider.createExporter(DefaultConfigProperties.createFromMap(config))) { assertThat(exporter).isInstanceOf(OtlpGrpcLogRecordExporter.class); verify(grpcBuilder, times(1)).build(); + verify(grpcBuilder).setComponentLoader(any()); verify(grpcBuilder).setEndpoint("https://localhost:443/"); verify(grpcBuilder).addHeader("header-key", "header-value"); verify(grpcBuilder).setCompression("gzip"); diff --git a/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpMetricExporterProviderTest.java b/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpMetricExporterProviderTest.java index 3d0a4098328..e028c6a9571 100644 --- a/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpMetricExporterProviderTest.java +++ b/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpMetricExporterProviderTest.java @@ -121,6 +121,7 @@ void createExporter_GrpcDefaults() { provider.createExporter(DefaultConfigProperties.createFromMap(Collections.emptyMap()))) { assertThat(exporter).isInstanceOf(OtlpGrpcMetricExporter.class); verify(grpcBuilder, times(1)).build(); + verify(grpcBuilder).setComponentLoader(any()); verify(grpcBuilder, never()).setEndpoint(any()); verify(grpcBuilder, never()).addHeader(any(), any()); verify(grpcBuilder, never()).setCompression(any()); @@ -149,6 +150,7 @@ void createExporter_GrpcWithGeneralConfiguration() throws CertificateEncodingExc provider.createExporter(DefaultConfigProperties.createFromMap(config))) { assertThat(exporter).isInstanceOf(OtlpGrpcMetricExporter.class); verify(grpcBuilder, times(1)).build(); + verify(grpcBuilder).setComponentLoader(any()); verify(grpcBuilder).setEndpoint("https://localhost:443/"); verify(grpcBuilder).addHeader("header-key", "header-value"); verify(grpcBuilder).setCompression("gzip"); @@ -184,6 +186,7 @@ void createExporter_GrpcWithSignalConfiguration() throws CertificateEncodingExce provider.createExporter(DefaultConfigProperties.createFromMap(config))) { assertThat(exporter).isInstanceOf(OtlpGrpcMetricExporter.class); verify(grpcBuilder, times(1)).build(); + verify(grpcBuilder).setComponentLoader(any()); verify(grpcBuilder).setEndpoint("https://localhost:443/"); verify(grpcBuilder).addHeader("header-key", "header-value"); verify(grpcBuilder).setCompression("gzip"); @@ -205,6 +208,7 @@ void createExporter_HttpDefaults() { "otel.exporter.otlp.metrics.protocol", "http/protobuf")))) { assertThat(exporter).isInstanceOf(OtlpHttpMetricExporter.class); verify(httpBuilder, times(1)).build(); + verify(httpBuilder).setComponentLoader(any()); verify(httpBuilder, never()).setEndpoint(any()); verify(httpBuilder, never()).addHeader(any(), any()); verify(httpBuilder, never()).setCompression(any()); @@ -234,6 +238,7 @@ void createExporter_HttpWithGeneralConfiguration() throws CertificateEncodingExc provider.createExporter(DefaultConfigProperties.createFromMap(config))) { assertThat(exporter).isInstanceOf(OtlpHttpMetricExporter.class); verify(httpBuilder, times(1)).build(); + verify(httpBuilder).setComponentLoader(any()); verify(httpBuilder).setEndpoint("https://localhost:443/v1/metrics"); verify(httpBuilder).addHeader("header-key", "header-value"); verify(httpBuilder).setCompression("gzip"); @@ -271,6 +276,7 @@ void createExporter_HttpWithSignalConfiguration() throws CertificateEncodingExce provider.createExporter(DefaultConfigProperties.createFromMap(config))) { assertThat(exporter).isInstanceOf(OtlpHttpMetricExporter.class); verify(httpBuilder, times(1)).build(); + verify(httpBuilder).setComponentLoader(any()); verify(httpBuilder).setEndpoint("https://localhost:443/v1/metrics"); verify(httpBuilder).addHeader("header-key", "header-value"); verify(httpBuilder).setCompression("gzip"); diff --git a/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpSpanExporterProviderTest.java b/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpSpanExporterProviderTest.java index 46d2e8ea218..1454d209da4 100644 --- a/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpSpanExporterProviderTest.java +++ b/exporters/otlp/all/src/test/java/io/opentelemetry/exporter/otlp/internal/OtlpSpanExporterProviderTest.java @@ -123,6 +123,7 @@ void createExporter_GrpcDefaults() { provider.createExporter(DefaultConfigProperties.createFromMap(Collections.emptyMap()))) { assertThat(exporter).isInstanceOf(OtlpGrpcSpanExporter.class); verify(grpcBuilder, times(1)).build(); + verify(grpcBuilder).setComponentLoader(any()); verify(grpcBuilder, never()).setEndpoint(any()); verify(grpcBuilder, never()).addHeader(any(), any()); verify(grpcBuilder, never()).setCompression(any()); @@ -155,6 +156,7 @@ void createExporter_GrpcWithGeneralConfiguration() throws CertificateEncodingExc provider.createExporter(DefaultConfigProperties.createFromMap(config))) { assertThat(exporter).isInstanceOf(OtlpGrpcSpanExporter.class); verify(grpcBuilder, times(1)).build(); + verify(grpcBuilder).setComponentLoader(any()); verify(grpcBuilder).setEndpoint("https://localhost:443/"); verify(grpcBuilder).addHeader("header-key", "header-value"); verify(grpcBuilder).setCompression("gzip"); @@ -190,6 +192,7 @@ void createExporter_GrpcWithSignalConfiguration() throws CertificateEncodingExce provider.createExporter(DefaultConfigProperties.createFromMap(config))) { assertThat(exporter).isInstanceOf(OtlpGrpcSpanExporter.class); verify(grpcBuilder, times(1)).build(); + verify(grpcBuilder).setComponentLoader(any()); verify(grpcBuilder).setEndpoint("https://localhost:443/"); verify(grpcBuilder).addHeader("header-key", "header-value"); verify(grpcBuilder).setCompression("gzip"); @@ -210,6 +213,7 @@ void createExporter_HttpDefaults() { Collections.singletonMap("otel.exporter.otlp.traces.protocol", "http/protobuf")))) { assertThat(exporter).isInstanceOf(OtlpHttpSpanExporter.class); verify(httpBuilder, times(1)).build(); + verify(httpBuilder).setComponentLoader(any()); verify(httpBuilder, never()).setEndpoint(any()); verify(httpBuilder, never()).addHeader(any(), any()); verify(httpBuilder, never()).setCompression(any()); @@ -240,6 +244,7 @@ void createExporter_HttpWithGeneralConfiguration() throws CertificateEncodingExc provider.createExporter(DefaultConfigProperties.createFromMap(config))) { assertThat(exporter).isInstanceOf(OtlpHttpSpanExporter.class); verify(httpBuilder, times(1)).build(); + verify(httpBuilder).setComponentLoader(any()); verify(httpBuilder).setEndpoint("https://localhost:443/v1/traces"); verify(httpBuilder).addHeader("header-key1", "header value1"); verify(httpBuilder).addHeader("header-key2", "header value2"); @@ -279,6 +284,7 @@ void createExporter_HttpWithSignalConfiguration() throws CertificateEncodingExce provider.createExporter(DefaultConfigProperties.createFromMap(config))) { assertThat(exporter).isInstanceOf(OtlpHttpSpanExporter.class); verify(httpBuilder, times(1)).build(); + verify(httpBuilder).setComponentLoader(any()); verify(httpBuilder).setEndpoint("https://localhost:443/v1/traces"); verify(httpBuilder).addHeader("header-key", "header-value"); verify(httpBuilder).setCompression("gzip"); diff --git a/exporters/otlp/profiles/src/main/java/io/opentelemetry/exporter/otlp/profiles/OtlpGrpcProfilesExporterBuilder.java b/exporters/otlp/profiles/src/main/java/io/opentelemetry/exporter/otlp/profiles/OtlpGrpcProfilesExporterBuilder.java index 91d34b00e6e..b90e81fa0b1 100644 --- a/exporters/otlp/profiles/src/main/java/io/opentelemetry/exporter/otlp/profiles/OtlpGrpcProfilesExporterBuilder.java +++ b/exporters/otlp/profiles/src/main/java/io/opentelemetry/exporter/otlp/profiles/OtlpGrpcProfilesExporterBuilder.java @@ -10,6 +10,7 @@ import io.grpc.ManagedChannel; import io.opentelemetry.api.metrics.MeterProvider; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.compression.CompressorProvider; import io.opentelemetry.exporter.internal.compression.CompressorUtil; @@ -204,10 +205,19 @@ public OtlpGrpcProfilesExporterBuilder setRetryPolicy(@Nullable RetryPolicy retr return this; } - /** Set the {@link ClassLoader} used to load the sender API. */ + /** + * Set the {@link ClassLoader} used to load the sender API. Variant of {@link + * #setComponentLoader(ComponentLoader)}. + */ public OtlpGrpcProfilesExporterBuilder setServiceClassLoader(ClassLoader serviceClassLoader) { requireNonNull(serviceClassLoader, "serviceClassLoader"); - delegate.setServiceClassLoader(serviceClassLoader); + return setComponentLoader(ComponentLoader.forClassLoader(serviceClassLoader)); + } + + /** Set the {@link ComponentLoader} used to load the sender API. */ + public OtlpGrpcProfilesExporterBuilder setComponentLoader(ComponentLoader componentLoader) { + requireNonNull(componentLoader, "componentLoader"); + delegate.setComponentLoader(componentLoader); return this; } diff --git a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigProperties.java b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigProperties.java index 9480b66ac84..e813a760856 100644 --- a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigProperties.java +++ b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigProperties.java @@ -7,6 +7,7 @@ import static io.opentelemetry.api.internal.ConfigUtil.defaultIfNull; +import io.opentelemetry.context.ComponentLoader; import java.time.Duration; import java.util.List; import java.util.Map; @@ -204,4 +205,9 @@ default Map getMap(String name, Map defaultValue Map value = getMap(name); return value.isEmpty() ? defaultValue : value; } + + /** Return a {@link ComponentLoader} that should be used to load SPIs. */ + default ComponentLoader getComponentLoader() { + return ComponentLoader.forClassLoader(ConfigProperties.class.getClassLoader()); + } } diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java index 124231fa325..9591e44e725 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java @@ -8,11 +8,11 @@ import static java.util.Objects.requireNonNull; import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.OpenTelemetrySdkBuilder; -import io.opentelemetry.sdk.autoconfigure.internal.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer; import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider; @@ -117,7 +117,7 @@ public final class AutoConfiguredOpenTelemetrySdkBuilder implements AutoConfigur Function.identity(); private ComponentLoader componentLoader = - SpiHelper.serviceComponentLoader(AutoConfiguredOpenTelemetrySdk.class.getClassLoader()); + ComponentLoader.forClassLoader(AutoConfiguredOpenTelemetrySdk.class.getClassLoader()); private boolean registerShutdownHook = true; @@ -410,12 +410,12 @@ public AutoConfiguredOpenTelemetrySdkBuilder setResultAsGlobal() { public AutoConfiguredOpenTelemetrySdkBuilder setServiceClassLoader( ClassLoader serviceClassLoader) { requireNonNull(serviceClassLoader, "serviceClassLoader"); - this.componentLoader = SpiHelper.serviceComponentLoader(serviceClassLoader); + this.componentLoader = ComponentLoader.forClassLoader(serviceClassLoader); return this; } /** Sets the {@link ComponentLoader} to be used to load SPI implementations. */ - AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader(ComponentLoader componentLoader) { + public AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader(ComponentLoader componentLoader) { requireNonNull(componentLoader, "componentLoader"); this.componentLoader = componentLoader; return this; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java index a1280e241d4..017c148535e 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java @@ -8,8 +8,8 @@ import io.opentelemetry.api.incubator.config.ConfigProvider; import io.opentelemetry.api.incubator.config.DeclarativeConfigException; import io.opentelemetry.api.incubator.config.GlobalConfigProvider; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.sdk.OpenTelemetrySdk; -import io.opentelemetry.sdk.autoconfigure.internal.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.resources.Resource; import java.io.FileInputStream; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/AutoConfigureUtil.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/AutoConfigureUtil.java index 52f0236e8d2..8bf42005ba8 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/AutoConfigureUtil.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/AutoConfigureUtil.java @@ -59,22 +59,6 @@ public static ConfigProvider getConfigProvider( } } - /** Sets the {@link ComponentLoader} to be used in the auto-configuration process. */ - public static AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader( - AutoConfiguredOpenTelemetrySdkBuilder builder, ComponentLoader componentLoader) { - try { - Method method = - AutoConfiguredOpenTelemetrySdkBuilder.class.getDeclaredMethod( - "setComponentLoader", ComponentLoader.class); - method.setAccessible(true); - method.invoke(builder, componentLoader); - return builder; - } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { - throw new IllegalStateException( - "Error calling setComponentLoader on AutoConfiguredOpenTelemetrySdkBuilder", e); - } - } - /** Sets the {@link ConfigProperties} customizer to be used in the auto-configuration process. */ public static AutoConfiguredOpenTelemetrySdkBuilder setConfigPropertiesCustomizer( AutoConfiguredOpenTelemetrySdkBuilder builder, diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/ComponentLoader.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/ComponentLoader.java index 49bfc4e52f2..8ac2ce2f4f3 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/ComponentLoader.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/ComponentLoader.java @@ -10,14 +10,9 @@ * *

This class is internal and is hence not for public use. Its APIs are unstable and can change * at any time. + * + * @deprecated Use {@link io.opentelemetry.context.ComponentLoader} instead */ -public interface ComponentLoader { - /** - * Load implementations of an SPI. - * - * @param spiClass the SPI class - * @param the SPI type - * @return iterable of SPI implementations - */ - Iterable load(Class spiClass); -} +@Deprecated +// TODO(jack-berg): delete after 1.54.0 release +public interface ComponentLoader extends io.opentelemetry.context.ComponentLoader {} diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelper.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelper.java index db4ca4ff64d..ab0282528f4 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelper.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelper.java @@ -15,7 +15,6 @@ import java.util.IdentityHashMap; import java.util.List; import java.util.Map; -import java.util.ServiceLoader; import java.util.Set; import java.util.function.BiFunction; import java.util.function.Function; @@ -27,31 +26,26 @@ */ public final class SpiHelper { - private final ComponentLoader componentLoader; + private final io.opentelemetry.context.ComponentLoader componentLoader; private final Set listeners = Collections.newSetFromMap(new IdentityHashMap<>()); - private SpiHelper(ComponentLoader componentLoader) { + private SpiHelper(io.opentelemetry.context.ComponentLoader componentLoader) { this.componentLoader = componentLoader; } /** Create a {@link SpiHelper} which loads SPIs using the {@code classLoader}. */ public static SpiHelper create(ClassLoader classLoader) { - return new SpiHelper(serviceComponentLoader(classLoader)); + return new SpiHelper(io.opentelemetry.context.ComponentLoader.forClassLoader(classLoader)); } /** Create a {@link SpiHelper} which loads SPIs using the {@code componentLoader}. */ - public static SpiHelper create(ComponentLoader componentLoader) { + public static SpiHelper create(io.opentelemetry.context.ComponentLoader componentLoader) { return new SpiHelper(componentLoader); } - /** Create a {@link ComponentLoader} which loads using the {@code classLoader}. */ - public static ComponentLoader serviceComponentLoader(ClassLoader classLoader) { - return new ServiceLoaderComponentLoader(classLoader); - } - - /** Return the backing underlying {@link ComponentLoader}. */ - public ComponentLoader getComponentLoader() { + /** Return the backing underlying {@link io.opentelemetry.context.ComponentLoader}. */ + public io.opentelemetry.context.ComponentLoader getComponentLoader() { return componentLoader; } @@ -125,17 +119,4 @@ private void maybeAddListener(Object object) { public Set getListeners() { return Collections.unmodifiableSet(listeners); } - - private static class ServiceLoaderComponentLoader implements ComponentLoader { - private final ClassLoader classLoader; - - private ServiceLoaderComponentLoader(ClassLoader classLoader) { - this.classLoader = classLoader; - } - - @Override - public Iterable load(Class spiClass) { - return ServiceLoader.load(spiClass, classLoader); - } - } } diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java index 45d26308320..1d6b784db93 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java @@ -28,6 +28,7 @@ import io.opentelemetry.api.trace.SpanId; import io.opentelemetry.api.trace.TraceId; import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.context.Context; import io.opentelemetry.context.ContextKey; import io.opentelemetry.context.propagation.TextMapGetter; @@ -35,7 +36,6 @@ import io.opentelemetry.internal.testing.slf4j.SuppressLogger; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.internal.AutoConfigureUtil; -import io.opentelemetry.sdk.autoconfigure.internal.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; @@ -255,8 +255,8 @@ void builder_addAutoConfigurationCustomizerProviderUsingComponentLoader() { SpiHelper spiHelper = SpiHelper.create(AutoConfiguredOpenTelemetrySdkBuilder.class.getClassLoader()); - AutoConfigureUtil.setComponentLoader( - builder, + builder + .setComponentLoader( new ComponentLoader() { @SuppressWarnings("unchecked") @Override diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelperTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelperTest.java index ad7a96704e6..bb825091dba 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelperTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelperTest.java @@ -29,7 +29,8 @@ public class SpiHelperTest { @Test public void canRetrieveByName() { - ComponentLoader mockLoader = spy(ComponentLoader.class); + io.opentelemetry.context.ComponentLoader mockLoader = + spy(io.opentelemetry.context.ComponentLoader.class); when(mockLoader.load(any())) .thenReturn(Collections.singletonList(new SpiExampleProviderImplementation())); @@ -50,7 +51,8 @@ public void canRetrieveByName() { public void instantiatesImplementationsLazily() { SpiExampleProvider mockProvider = mock(SpiExampleProvider.class); when(mockProvider.getName()).thenReturn("lazy-init-example"); - ComponentLoader mockLoader = spy(ComponentLoader.class); + io.opentelemetry.context.ComponentLoader mockLoader = + spy(io.opentelemetry.context.ComponentLoader.class); when(mockLoader.load(any())).thenReturn(Collections.singletonList(mockProvider)); SpiHelper spiHelper = SpiHelper.create(mockLoader); @@ -69,7 +71,8 @@ public void instantiatesImplementationsLazily() { @Test public void onlyInstantiatesOnce() { - ComponentLoader mockLoader = mock(ComponentLoader.class); + io.opentelemetry.context.ComponentLoader mockLoader = + mock(io.opentelemetry.context.ComponentLoader.class); when(mockLoader.load(any())) .thenReturn(Collections.singletonList(new SpiExampleProviderImplementation())); @@ -94,7 +97,8 @@ public void failureToInitializeThrows() { when(mockProvider.getName()).thenReturn("init-failure-example"); when(mockProvider.createSpiExample(any())).thenThrow(new RuntimeException()); - ComponentLoader mockLoader = spy(ComponentLoader.class); + io.opentelemetry.context.ComponentLoader mockLoader = + spy(io.opentelemetry.context.ComponentLoader.class); when(mockLoader.load(any())).thenReturn(Collections.singletonList(mockProvider)); SpiHelper spiHelper = SpiHelper.create(mockLoader); @@ -121,7 +125,8 @@ void loadsOrderedSpi() { when(spi2.order()).thenReturn(0); when(spi3.order()).thenReturn(1); - ComponentLoader mockLoader = spy(ComponentLoader.class); + io.opentelemetry.context.ComponentLoader mockLoader = + spy(io.opentelemetry.context.ComponentLoader.class); when(mockLoader.load(ResourceProvider.class)).thenReturn(asList(spi1, spi2, spi3)); SpiHelper spiHelper = SpiHelper.create(mockLoader); diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfiguration.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfiguration.java index b672f8e6790..868bbbe61f5 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfiguration.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfiguration.java @@ -11,8 +11,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.opentelemetry.api.incubator.config.DeclarativeConfigException; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.sdk.OpenTelemetrySdk; -import io.opentelemetry.sdk.autoconfigure.internal.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel; @@ -55,7 +55,7 @@ public final class DeclarativeConfiguration { private static final Pattern ENV_VARIABLE_REFERENCE = Pattern.compile("\\$\\{([a-zA-Z_][a-zA-Z0-9_]*)(:-([^\n}]*))?}"); private static final ComponentLoader DEFAULT_COMPONENT_LOADER = - SpiHelper.serviceComponentLoader(DeclarativeConfiguration.class.getClassLoader()); + ComponentLoader.forClassLoader(DeclarativeConfigProperties.class.getClassLoader()); private static final ObjectMapper MAPPER; diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/YamlDeclarativeConfigProperties.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/YamlDeclarativeConfigProperties.java index 8a4a70704fb..b1249922c72 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/YamlDeclarativeConfigProperties.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/YamlDeclarativeConfigProperties.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigException; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.sdk.autoconfigure.internal.ComponentLoader; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel; import java.util.Arrays; import java.util.Collections; @@ -308,6 +308,7 @@ public Map toMap() { } /** Return the {@link ComponentLoader}. */ + @Override public ComponentLoader getComponentLoader() { return componentLoader; } diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigurationCreateTest.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigurationCreateTest.java index 62ee0782860..41ebe9be555 100644 --- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigurationCreateTest.java +++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigurationCreateTest.java @@ -13,9 +13,9 @@ import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension; import io.github.netmikey.logunit.api.LogCapturer; import io.opentelemetry.api.incubator.config.DeclarativeConfigException; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.sdk.OpenTelemetrySdk; -import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanProcessorModel; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.TracerProviderModel; @@ -161,7 +161,7 @@ void create_ModelCustomizer() { DeclarativeConfiguration.create( model, // customizer is TestDeclarativeConfigurationCustomizerProvider - SpiHelper.serviceComponentLoader( + ComponentLoader.forClassLoader( DeclarativeConfigurationCreateTest.class.getClassLoader())); assertThat(sdk.toString()) .contains( From d6f7a42edbe60fd10e75fd9b85d818e06cf5efe3 Mon Sep 17 00:00:00 2001 From: Jack Berg Date: Tue, 24 Jun 2025 17:38:33 -0500 Subject: [PATCH 2/5] Remove default implementation --- .../api/incubator/config/DeclarativeConfigProperties.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java index 207c0f439ea..15a1038aa14 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java @@ -225,7 +225,5 @@ default List getStructuredList( Set getPropertyKeys(); /** Return a {@link ComponentLoader} that should be used to load SPIs. */ - default ComponentLoader getComponentLoader() { - return ComponentLoader.forClassLoader(DeclarativeConfigProperties.class.getClassLoader()); - } + ComponentLoader getComponentLoader(); } From a7ce48f4ba81e71404cf4d70ef637c9769c225af Mon Sep 17 00:00:00 2001 From: Jack Berg Date: Wed, 25 Jun 2025 10:07:46 -0500 Subject: [PATCH 3/5] Push autoconfigured component loader to ConfigProperties, DeclarativeConfigProperties --- .../spi/internal/DefaultConfigProperties.java | 23 ++++++++-- .../spi/internal/ConfigPropertiesTest.java | 10 +++-- ...AutoConfiguredOpenTelemetrySdkBuilder.java | 3 +- .../sdk/autoconfigure/IncubatingUtil.java | 5 ++- .../autoconfigure/ResourceConfiguration.java | 6 ++- .../AutoConfiguredOpenTelemetrySdkTest.java | 33 +++++++++------ .../ResourceConfigurationTest.java | 6 ++- .../ResourceConfigurationTest.java | 10 +++-- .../DeclarativeConfigurationTest.java | 42 ++++++++++++++----- .../fileconfig/SdkConfigProvider.java | 20 +++++++-- .../fileconfig/ServiceResourceDetector.java | 3 +- 11 files changed, 117 insertions(+), 44 deletions(-) diff --git a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/DefaultConfigProperties.java b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/DefaultConfigProperties.java index b5496df7c48..fd60c315df2 100644 --- a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/DefaultConfigProperties.java +++ b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/DefaultConfigProperties.java @@ -10,6 +10,7 @@ import io.opentelemetry.api.internal.ConfigUtil; import io.opentelemetry.api.internal.StringUtils; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import java.time.Duration; @@ -38,6 +39,7 @@ public final class DefaultConfigProperties implements ConfigProperties { private final Map config; + private final ComponentLoader componentLoader; /** * Creates a {@link DefaultConfigProperties} by merging system properties, environment variables, @@ -46,9 +48,10 @@ public final class DefaultConfigProperties implements ConfigProperties { *

Environment variables take priority over {@code defaultProperties}. System properties take * priority over environment variables. */ - public static DefaultConfigProperties create(Map defaultProperties) { + public static DefaultConfigProperties create( + Map defaultProperties, ComponentLoader componentLoader) { return new DefaultConfigProperties( - ConfigUtil.safeSystemProperties(), System.getenv(), defaultProperties); + ConfigUtil.safeSystemProperties(), System.getenv(), defaultProperties, componentLoader); } /** @@ -56,13 +59,18 @@ public static DefaultConfigProperties create(Map defaultProperti * properties and environment variables. */ public static DefaultConfigProperties createFromMap(Map properties) { - return new DefaultConfigProperties(properties, Collections.emptyMap(), Collections.emptyMap()); + return new DefaultConfigProperties( + properties, + Collections.emptyMap(), + Collections.emptyMap(), + ComponentLoader.forClassLoader(DefaultConfigProperties.class.getClassLoader())); } private DefaultConfigProperties( Map systemProperties, Map environmentVariables, - Map defaultProperties) { + Map defaultProperties, + ComponentLoader componentLoader) { Map config = new HashMap<>(); defaultProperties.forEach( (name, value) -> config.put(ConfigUtil.normalizePropertyKey(name), value)); @@ -73,6 +81,7 @@ private DefaultConfigProperties( config.put(ConfigUtil.normalizePropertyKey(key.toString()), value.toString())); this.config = config; + this.componentLoader = componentLoader; } private DefaultConfigProperties( @@ -82,6 +91,7 @@ private DefaultConfigProperties( overrides.forEach((name, value) -> config.put(ConfigUtil.normalizePropertyKey(name), value)); this.config = config; + this.componentLoader = previousProperties.componentLoader; } @Override @@ -233,6 +243,11 @@ public Map getMap(String name) { Map.Entry::getKey, Map.Entry::getValue, (first, next) -> next, LinkedHashMap::new)); } + @Override + public ComponentLoader getComponentLoader() { + return componentLoader; + } + /** * Return a new {@link DefaultConfigProperties} by overriding the {@code previousProperties} with * the {@code overrides}. diff --git a/sdk-extensions/autoconfigure-spi/src/test/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ConfigPropertiesTest.java b/sdk-extensions/autoconfigure-spi/src/test/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ConfigPropertiesTest.java index 78cc6806c08..e6683c519b5 100644 --- a/sdk-extensions/autoconfigure-spi/src/test/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ConfigPropertiesTest.java +++ b/sdk-extensions/autoconfigure-spi/src/test/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ConfigPropertiesTest.java @@ -11,6 +11,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.entry; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import java.time.Duration; @@ -22,6 +23,9 @@ class ConfigPropertiesTest { + private static final ComponentLoader COMPONENT_LOADER = + ComponentLoader.forClassLoader(ConfigPropertiesTest.class.getClassLoader()); + @Test void allValid() { Map properties = makeTestProps(); @@ -246,7 +250,7 @@ void defaultMethodsDelegate() { expectedMap.put("bear", "growl"); Map map = makeTestProps(); - ConfigProperties properties = DefaultConfigProperties.create(map); + ConfigProperties properties = DefaultConfigProperties.create(map, COMPONENT_LOADER); assertThat(properties.getBoolean("test.boolean", false)).isTrue(); assertThat(properties.getString("test.string", "nah")).isEqualTo("str"); assertThat(properties.getDouble("test.double", 65.535)).isEqualTo(5.4); @@ -260,7 +264,7 @@ void defaultMethodsDelegate() { @Test void defaultMethodsFallBack() { - ConfigProperties properties = DefaultConfigProperties.create(emptyMap()); + ConfigProperties properties = DefaultConfigProperties.create(emptyMap(), COMPONENT_LOADER); assertThat(properties.getBoolean("foo", true)).isTrue(); assertThat(properties.getString("foo", "bar")).isEqualTo("bar"); assertThat(properties.getDouble("foo", 65.535)).isEqualTo(65.535); @@ -271,7 +275,7 @@ void defaultMethodsFallBack() { @Test void defaultCollectionTypes() { - ConfigProperties properties = DefaultConfigProperties.create(emptyMap()); + ConfigProperties properties = DefaultConfigProperties.create(emptyMap(), COMPONENT_LOADER); assertThat(properties.getList("foo", Arrays.asList("1", "2", "3"))) .containsExactly("1", "2", "3"); assertThat(properties.getList("foo")).isEmpty(); diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java index 9591e44e725..84332c9e4a0 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java @@ -628,7 +628,8 @@ private ConfigProperties getConfig() { } private ConfigProperties computeConfigProperties() { - DefaultConfigProperties properties = DefaultConfigProperties.create(propertiesSupplier.get()); + DefaultConfigProperties properties = + DefaultConfigProperties.create(propertiesSupplier.get(), componentLoader); for (Function> customizer : propertiesCustomizers) { Map overrides = customizer.apply(properties); properties = properties.withOverrides(overrides); diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java index 017c148535e..c38814147eb 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java @@ -51,8 +51,9 @@ static AutoConfiguredOpenTelemetrySdk configureFromFile( Class sdkConfigProvider = Class.forName("io.opentelemetry.sdk.extension.incubator.fileconfig.SdkConfigProvider"); Method createFileConfigProvider = - sdkConfigProvider.getMethod("create", openTelemetryConfiguration); - ConfigProvider configProvider = (ConfigProvider) createFileConfigProvider.invoke(null, model); + sdkConfigProvider.getMethod("create", openTelemetryConfiguration, ComponentLoader.class); + ConfigProvider configProvider = + (ConfigProvider) createFileConfigProvider.invoke(null, model, componentLoader); // Note: can't access file configuration resource without reflection so setting a dummy // resource return AutoConfiguredOpenTelemetrySdk.create( diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java index 8e00ee19ab2..ca02caeb6ed 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java @@ -8,6 +8,7 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.common.AttributesBuilder; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; @@ -59,7 +60,10 @@ public final class ResourceConfiguration { * @return the resource. */ public static Resource createEnvironmentResource() { - return createEnvironmentResource(DefaultConfigProperties.create(Collections.emptyMap())); + return createEnvironmentResource( + DefaultConfigProperties.create( + Collections.emptyMap(), + ComponentLoader.forClassLoader(ResourceConfiguration.class.getClassLoader()))); } /** diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java index 1d6b784db93..dc46a55363a 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java @@ -65,6 +65,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Properties; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CountDownLatch; @@ -255,22 +256,28 @@ void builder_addAutoConfigurationCustomizerProviderUsingComponentLoader() { SpiHelper spiHelper = SpiHelper.create(AutoConfiguredOpenTelemetrySdkBuilder.class.getClassLoader()); - builder - .setComponentLoader( - new ComponentLoader() { - @SuppressWarnings("unchecked") - @Override - public Iterable load(Class spiClass) { - if (spiClass.equals(AutoConfigurationCustomizerProvider.class)) { - return Collections.singletonList((T) customizerProvider); - } - return spiHelper.load(spiClass); - } - }) - .build(); + ComponentLoader componentLoader = + new ComponentLoader() { + @SuppressWarnings("unchecked") + @Override + public Iterable load(Class spiClass) { + if (spiClass.equals(AutoConfigurationCustomizerProvider.class)) { + return Collections.singletonList((T) customizerProvider); + } + return spiHelper.load(spiClass); + } + }; + AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk = + builder.setComponentLoader(componentLoader).build(); + + assertThat( + Objects.requireNonNull(autoConfiguredOpenTelemetrySdk.getConfig()).getComponentLoader()) + .isSameAs(componentLoader); verify(customizerProvider).customize(any()); verifyNoMoreInteractions(customizerProvider); + + autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk().shutdown().join(10, TimeUnit.SECONDS); } @Test diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java index e2c94a68aa8..519a5014afa 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java @@ -12,6 +12,7 @@ import com.google.common.collect.ImmutableMap; import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; @@ -25,6 +26,9 @@ @ExtendWith(MockitoExtension.class) class ResourceConfigurationTest { + private static final ComponentLoader componentLoader = + ComponentLoader.forClassLoader(ResourceConfigurationTest.class.getClassLoader()); + @Test void customConfigResourceWithDisabledKeys() { Map props = new HashMap<>(); @@ -35,7 +39,7 @@ void customConfigResourceWithDisabledKeys() { assertThat( ResourceConfiguration.configureResource( - DefaultConfigProperties.create(props), + DefaultConfigProperties.create(props, componentLoader), SpiHelper.create(ResourceConfigurationTest.class.getClassLoader()), (r, c) -> r)) .isEqualTo( diff --git a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java index ae2342aeff9..65ed55e4291 100644 --- a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java @@ -9,6 +9,7 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.internal.testing.slf4j.SuppressLogger; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; @@ -29,14 +30,15 @@ @SuppressLogger(ResourceConfiguration.class) class ResourceConfigurationTest { - private final SpiHelper spiHelper = - SpiHelper.create(ResourceConfigurationTest.class.getClassLoader()); + private final ComponentLoader componentLoader = + ComponentLoader.forClassLoader(ResourceConfigurationTest.class.getClassLoader()); + private final SpiHelper spiHelper = SpiHelper.create(componentLoader); @Test void configureResource_EmptyClassLoader() { Attributes attributes = ResourceConfiguration.configureResource( - DefaultConfigProperties.create(Collections.emptyMap()), + DefaultConfigProperties.create(Collections.emptyMap(), componentLoader), SpiHelper.create(new URLClassLoader(new URL[0], null)), (r, c) -> r) .getAttributes(); @@ -66,7 +68,7 @@ void configureResource( } Attributes attributes = ResourceConfiguration.configureResource( - DefaultConfigProperties.create(config), spiHelper, (r, c) -> r) + DefaultConfigProperties.create(config, componentLoader), spiHelper, (r, c) -> r) .getAttributes(); attributeAssertion.accept(assertThat(attributes)); diff --git a/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java b/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java index f92c1027ccd..19344322df7 100644 --- a/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java @@ -7,6 +7,7 @@ import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat; import static java.util.Collections.singletonMap; +import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.ArgumentMatchers.any; @@ -23,6 +24,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.api.incubator.config.GlobalConfigProvider; import io.opentelemetry.api.incubator.config.InstrumentationConfigUtil; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.exporter.logging.LoggingSpanExporter; import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.internal.testing.slf4j.SuppressLogger; @@ -40,7 +42,7 @@ import java.nio.file.Path; import java.util.Arrays; import java.util.Collections; -import org.assertj.core.api.Assertions; +import java.util.Optional; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -134,17 +136,39 @@ void configFile_Valid() { builder.setConfig(config).build(); cleanup.addCloseable(autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk()); - Assertions.assertThat(autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk().toString()) + assertThat(autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk().toString()) .isEqualTo(expectedSdk.toString()); // AutoConfiguredOpenTelemetrySdk#getResource() is set to a dummy value when configuring from // file - Assertions.assertThat(autoConfiguredOpenTelemetrySdk.getResource()) - .isEqualTo(Resource.getDefault()); + assertThat(autoConfiguredOpenTelemetrySdk.getResource()).isEqualTo(Resource.getDefault()); verify(builder, times(1)).shutdownHook(autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk()); - Assertions.assertThat(Runtime.getRuntime().removeShutdownHook(thread)).isTrue(); + assertThat(Runtime.getRuntime().removeShutdownHook(thread)).isTrue(); logCapturer.assertContains("Autoconfiguring from configuration file: " + configFilePath); } + @Test + void configFile_setComponentLoader() { + ComponentLoader componentLoader = + ComponentLoader.forClassLoader(DeclarativeConfigurationTest.class.getClassLoader()); + ConfigProperties config = + DefaultConfigProperties.createFromMap( + Collections.singletonMap("otel.experimental.config.file", configFilePath.toString())); + + AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk = + AutoConfiguredOpenTelemetrySdk.builder() + .setConfig(config) + .setComponentLoader(componentLoader) + .build(); + cleanup.addCloseable(autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk()); + + assertThat( + Optional.ofNullable(AutoConfigureUtil.getConfigProvider(autoConfiguredOpenTelemetrySdk)) + .map(ConfigProvider::getInstrumentationConfig) + .map(DeclarativeConfigProperties::getComponentLoader) + .orElse(null)) + .isSameAs(componentLoader); + } + @Test void configFile_NoShutdownHook() { ConfigProperties config = @@ -171,9 +195,7 @@ void configFile_setResultAsGlobalFalse() { OpenTelemetrySdk openTelemetrySdk = autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk(); cleanup.addCloseable(openTelemetrySdk); - Assertions.assertThat(GlobalOpenTelemetry.get()) - .extracting("delegate") - .isNotSameAs(openTelemetrySdk); + assertThat(GlobalOpenTelemetry.get()).extracting("delegate").isNotSameAs(openTelemetrySdk); assertThat(GlobalConfigProvider.get()) .isNotSameAs(autoConfiguredOpenTelemetrySdk.getConfigProvider()); } @@ -189,9 +211,7 @@ void configFile_setResultAsGlobalTrue() { OpenTelemetrySdk openTelemetrySdk = autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk(); cleanup.addCloseable(openTelemetrySdk); - Assertions.assertThat(GlobalOpenTelemetry.get()) - .extracting("delegate") - .isSameAs(openTelemetrySdk); + assertThat(GlobalOpenTelemetry.get()).extracting("delegate").isSameAs(openTelemetrySdk); assertThat(GlobalConfigProvider.get()) .isSameAs(autoConfiguredOpenTelemetrySdk.getConfigProvider()); } diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java index d23c3799612..a781f220894 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java @@ -7,6 +7,7 @@ import io.opentelemetry.api.incubator.config.ConfigProvider; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; +import io.opentelemetry.context.ComponentLoader; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel; import javax.annotation.Nullable; @@ -15,9 +16,10 @@ public final class SdkConfigProvider implements ConfigProvider { @Nullable private final DeclarativeConfigProperties instrumentationConfig; - private SdkConfigProvider(OpenTelemetryConfigurationModel model) { + private SdkConfigProvider( + OpenTelemetryConfigurationModel model, ComponentLoader componentLoader) { DeclarativeConfigProperties configProperties = - DeclarativeConfiguration.toConfigProperties(model); + DeclarativeConfiguration.toConfigProperties(model, componentLoader); this.instrumentationConfig = configProperties.getStructured("instrumentation/development"); } @@ -28,7 +30,19 @@ private SdkConfigProvider(OpenTelemetryConfigurationModel model) { * @return the {@link SdkConfigProvider} */ public static SdkConfigProvider create(OpenTelemetryConfigurationModel model) { - return new SdkConfigProvider(model); + return create(model, ComponentLoader.forClassLoader(SdkConfigProvider.class.getClassLoader())); + } + + /** + * Create a {@link SdkConfigProvider} from the {@code model}. + * + * @param model the configuration model + * @param componentLoader the component loader used to load SPIs + * @return the {@link SdkConfigProvider} + */ + public static SdkConfigProvider create( + OpenTelemetryConfigurationModel model, ComponentLoader componentLoader) { + return new SdkConfigProvider(model, componentLoader); } @Nullable diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ServiceResourceDetector.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ServiceResourceDetector.java index a8077032ec7..dcaeeee2718 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ServiceResourceDetector.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ServiceResourceDetector.java @@ -38,7 +38,8 @@ public String getName() { public Resource create(DeclarativeConfigProperties config) { ResourceBuilder builder = Resource.builder(); - ConfigProperties properties = DefaultConfigProperties.create(Collections.emptyMap()); + ConfigProperties properties = + DefaultConfigProperties.create(Collections.emptyMap(), config.getComponentLoader()); String serviceName = properties.getString("otel.service.name"); if (serviceName != null) { builder.put(SERVICE_NAME, serviceName).build(); From 84767aa8ebd47f9a6c80b8b1844e64cbd89cd3ac Mon Sep 17 00:00:00 2001 From: Jack Berg Date: Wed, 9 Jul 2025 11:14:58 -0500 Subject: [PATCH 4/5] Break out opentelemetry-api-util artifact --- README.md | 1 + .../config/DeclarativeConfigProperties.java | 2 +- .../config/EmptyDeclarativeConfigProperties.java | 2 +- api/util/build.gradle.kts | 12 ++++++++++++ .../opentelemetry/api/util}/ComponentLoader.java | 2 +- .../api/util}/ServiceLoaderComponentLoader.java | 2 +- context/build.gradle.kts | 1 + .../io/opentelemetry/context/LazyStorage.java | 1 + .../current_vs_latest/opentelemetry-api-util.txt | 7 +++++++ .../current_vs_latest/opentelemetry-context.txt | 7 +------ .../opentelemetry-exporter-otlp.txt | 12 ++++++------ ...telemetry-sdk-extension-autoconfigure-spi.txt | 2 +- ...opentelemetry-sdk-extension-autoconfigure.txt | 2 +- .../internal/compression/CompressorUtil.java | 2 +- .../internal/grpc/GrpcExporterBuilder.java | 2 +- .../internal/http/HttpExporterBuilder.java | 2 +- .../internal/compression/CompressorUtilTest.java | 2 +- .../internal/grpc/GrpcExporterBuilderTest.java | 2 +- .../internal/http/HttpExporterBuilderTest.java | 2 +- .../logs/OtlpHttpLogRecordExporterBuilder.java | 2 +- .../metrics/OtlpHttpMetricExporterBuilder.java | 2 +- .../http/trace/OtlpHttpSpanExporterBuilder.java | 2 +- .../exporter/otlp/internal/OtlpConfigUtil.java | 2 +- .../otlp/internal/OtlpDeclarativeConfigUtil.java | 2 +- .../logs/OtlpGrpcLogRecordExporterBuilder.java | 2 +- .../metrics/OtlpGrpcMetricExporterBuilder.java | 2 +- .../otlp/trace/OtlpGrpcSpanExporterBuilder.java | 2 +- .../OtlpGrpcProfilesExporterBuilder.java | 2 +- .../sdk/autoconfigure/spi/ConfigProperties.java | 2 +- .../spi/internal/DefaultConfigProperties.java | 2 +- .../spi/internal/ConfigPropertiesTest.java | 2 +- .../AutoConfiguredOpenTelemetrySdkBuilder.java | 2 +- .../sdk/autoconfigure/IncubatingUtil.java | 2 +- .../sdk/autoconfigure/ResourceConfiguration.java | 2 +- .../autoconfigure/internal/ComponentLoader.java | 4 ++-- .../sdk/autoconfigure/internal/SpiHelper.java | 13 +++++++------ .../AutoConfiguredOpenTelemetrySdkTest.java | 2 +- .../autoconfigure/ResourceConfigurationTest.java | 2 +- .../autoconfigure/internal/SpiHelperTest.java | 16 ++++++---------- .../autoconfigure/ResourceConfigurationTest.java | 2 +- .../DeclarativeConfigurationTest.java | 2 +- .../fileconfig/DeclarativeConfiguration.java | 2 +- .../incubator/fileconfig/SdkConfigProvider.java | 2 +- .../YamlDeclarativeConfigProperties.java | 2 +- .../DeclarativeConfigurationCreateTest.java | 2 +- settings.gradle.kts | 1 + 46 files changed, 80 insertions(+), 65 deletions(-) create mode 100644 api/util/build.gradle.kts rename {context/src/main/java/io/opentelemetry/context => api/util/src/main/java/io/opentelemetry/api/util}/ComponentLoader.java (95%) rename {context/src/main/java/io/opentelemetry/context => api/util/src/main/java/io/opentelemetry/api/util}/ServiceLoaderComponentLoader.java (94%) create mode 100644 docs/apidiffs/current_vs_latest/opentelemetry-api-util.txt diff --git a/README.md b/README.md index 88b2de8e150..42a3775d25d 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ The OpenTelemetry API for recording telemetry. | [API](./api/all) | OpenTelemetry API, including metrics, traces, baggage, context | `opentelemetry-api` | 1.49.0 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-api.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api) | | [API Incubator](./api/incubator) | API incubator, including pass through propagator, and extended tracer, and Event API | `opentelemetry-api-incubator` | 1.49.0-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-api-incubator.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api-incubator) | | [Context API](./context) | OpenTelemetry context API | `opentelemetry-context` | 1.49.0 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-context.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-context) | +| [Util](./api/util) | Common utility methods used across API components | `opentelemetry-util` | 1.49.0 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-context.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-context) |

diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java index 15a1038aa14..76e1b07a98e 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java @@ -7,7 +7,7 @@ import static io.opentelemetry.api.internal.ConfigUtil.defaultIfNull; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import java.util.List; import java.util.Set; import javax.annotation.Nullable; diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/EmptyDeclarativeConfigProperties.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/EmptyDeclarativeConfigProperties.java index 25d57d2b5b7..6c6b46674a4 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/EmptyDeclarativeConfigProperties.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/EmptyDeclarativeConfigProperties.java @@ -5,7 +5,7 @@ package io.opentelemetry.api.incubator.config; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import java.util.Collections; import java.util.List; import java.util.Set; diff --git a/api/util/build.gradle.kts b/api/util/build.gradle.kts new file mode 100644 index 00000000000..7934d5c7847 --- /dev/null +++ b/api/util/build.gradle.kts @@ -0,0 +1,12 @@ +plugins { + id("otel.java-conventions") + id("otel.publish-conventions") + + id("otel.animalsniffer-conventions") +} + +description = "OpenTelemetry API Common" +otelJava.moduleName.set("io.opentelemetry.api.util") + +dependencies { +} diff --git a/context/src/main/java/io/opentelemetry/context/ComponentLoader.java b/api/util/src/main/java/io/opentelemetry/api/util/ComponentLoader.java similarity index 95% rename from context/src/main/java/io/opentelemetry/context/ComponentLoader.java rename to api/util/src/main/java/io/opentelemetry/api/util/ComponentLoader.java index c5a019a0ecc..df5ca02ceb3 100644 --- a/context/src/main/java/io/opentelemetry/context/ComponentLoader.java +++ b/api/util/src/main/java/io/opentelemetry/api/util/ComponentLoader.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.context; +package io.opentelemetry.api.util; import java.util.ServiceLoader; diff --git a/context/src/main/java/io/opentelemetry/context/ServiceLoaderComponentLoader.java b/api/util/src/main/java/io/opentelemetry/api/util/ServiceLoaderComponentLoader.java similarity index 94% rename from context/src/main/java/io/opentelemetry/context/ServiceLoaderComponentLoader.java rename to api/util/src/main/java/io/opentelemetry/api/util/ServiceLoaderComponentLoader.java index 64d9dd4cc1d..537d84170dd 100644 --- a/context/src/main/java/io/opentelemetry/context/ServiceLoaderComponentLoader.java +++ b/api/util/src/main/java/io/opentelemetry/api/util/ServiceLoaderComponentLoader.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.context; +package io.opentelemetry.api.util; import java.util.ServiceLoader; diff --git a/context/build.gradle.kts b/context/build.gradle.kts index 6c8fa63837c..d011f616a73 100644 --- a/context/build.gradle.kts +++ b/context/build.gradle.kts @@ -10,6 +10,7 @@ description = "OpenTelemetry Context (Incubator)" otelJava.moduleName.set("io.opentelemetry.context") dependencies { + api(project(":api:util")) // MustBeClosed compileOnly("com.google.errorprone:error_prone_annotations") diff --git a/context/src/main/java/io/opentelemetry/context/LazyStorage.java b/context/src/main/java/io/opentelemetry/context/LazyStorage.java index e1dc0128338..c64d5b95bec 100644 --- a/context/src/main/java/io/opentelemetry/context/LazyStorage.java +++ b/context/src/main/java/io/opentelemetry/context/LazyStorage.java @@ -37,6 +37,7 @@ package io.opentelemetry.context; +import io.opentelemetry.api.util.ComponentLoader; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicReference; diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-api-util.txt b/docs/apidiffs/current_vs_latest/opentelemetry-api-util.txt new file mode 100644 index 00000000000..6649fc4652e --- /dev/null +++ b/docs/apidiffs/current_vs_latest/opentelemetry-api-util.txt @@ -0,0 +1,7 @@ +Comparing source compatibility of opentelemetry-api-util-1.52.0-SNAPSHOT.jar against ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.api.util.ComponentLoader (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.api.util.ComponentLoader forClassLoader(java.lang.ClassLoader) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Iterable load(java.lang.Class) + GENERIC TEMPLATES: +++ T:java.lang.Object diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-context.txt b/docs/apidiffs/current_vs_latest/opentelemetry-context.txt index 794d07c45d2..cb58011e0e0 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-context.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-context.txt @@ -1,7 +1,2 @@ Comparing source compatibility of opentelemetry-context-1.52.0-SNAPSHOT.jar against opentelemetry-context-1.51.0.jar -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.context.ComponentLoader (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.context.ComponentLoader forClassLoader(java.lang.ClassLoader) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Iterable load(java.lang.Class) - GENERIC TEMPLATES: +++ T:java.lang.Object +No changes. \ No newline at end of file diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-exporter-otlp.txt b/docs/apidiffs/current_vs_latest/opentelemetry-exporter-otlp.txt index 764057e24f6..72b7a4aa4ff 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-exporter-otlp.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-exporter-otlp.txt @@ -1,19 +1,19 @@ Comparing source compatibility of opentelemetry-exporter-otlp-1.52.0-SNAPSHOT.jar against opentelemetry-exporter-otlp-1.51.0.jar *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) 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 c0465086263..3bf9e270815 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,4 +1,4 @@ Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-spi-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-extension-autoconfigure-spi-1.51.0.jar *** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.context.ComponentLoader getComponentLoader() + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.api.util.ComponentLoader getComponentLoader() diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure.txt b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure.txt index bbcd71ed646..bf097690d03 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure.txt @@ -1,4 +1,4 @@ Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-extension-autoconfigure-1.51.0.jar *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader(io.opentelemetry.context.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/compression/CompressorUtil.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/compression/CompressorUtil.java index 1a523c285be..7b4ea62064d 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/compression/CompressorUtil.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/compression/CompressorUtil.java @@ -8,7 +8,7 @@ import static io.opentelemetry.api.internal.Utils.checkArgument; import static java.util.stream.Collectors.joining; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import java.util.HashMap; import java.util.Map; import java.util.Set; diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java index ebad2ccda25..05d722d38fc 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.internal.ConfigUtil; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.ExporterBuilderUtil; import io.opentelemetry.exporter.internal.TlsConfigHelper; import io.opentelemetry.exporter.internal.compression.Compressor; diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java index 89a83f3e563..5366411ab94 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.internal.ConfigUtil; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.ExporterBuilderUtil; import io.opentelemetry.exporter.internal.TlsConfigHelper; import io.opentelemetry.exporter.internal.compression.Compressor; diff --git a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/compression/CompressorUtilTest.java b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/compression/CompressorUtilTest.java index d9304ee3950..68790275d5a 100644 --- a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/compression/CompressorUtilTest.java +++ b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/compression/CompressorUtilTest.java @@ -8,7 +8,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import java.net.URL; import java.net.URLClassLoader; import org.junit.jupiter.api.Test; diff --git a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilderTest.java b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilderTest.java index 27752cd8110..fb5fc318b6e 100644 --- a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilderTest.java +++ b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilderTest.java @@ -8,7 +8,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.compression.GzipCompressor; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilderTest.java b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilderTest.java index 237a504f938..d26016546f4 100644 --- a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilderTest.java +++ b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilderTest.java @@ -8,7 +8,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.compression.GzipCompressor; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java index 24c76798f8b..43c6f6ca6ad 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.http.HttpExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java index 043cad320c1..fe64d6ccb8e 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.http.HttpExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java index cdaabcc1259..0b4a17475f6 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.http.HttpExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtil.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtil.java index 0a11cd0ad5c..9a6dd44fab1 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtil.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtil.java @@ -5,7 +5,7 @@ package io.opentelemetry.exporter.otlp.internal; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.ExporterBuilderUtil; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java index 4f9bb788a4c..7f444f9a6ea 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java @@ -11,7 +11,7 @@ import static io.opentelemetry.exporter.otlp.internal.OtlpConfigUtil.validateEndpoint; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.IncubatingExporterBuilderUtil; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java index 8bbaa644206..da7698191c5 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java @@ -11,7 +11,7 @@ import io.grpc.ManagedChannel; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.grpc.GrpcExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java index af89b283b1a..a84a7de4cb7 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java @@ -11,7 +11,7 @@ import io.grpc.ManagedChannel; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.grpc.GrpcExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java index 6c8a8685b61..5d62700dcf9 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java @@ -11,7 +11,7 @@ import io.grpc.ManagedChannel; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.grpc.GrpcExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/profiles/src/main/java/io/opentelemetry/exporter/otlp/profiles/OtlpGrpcProfilesExporterBuilder.java b/exporters/otlp/profiles/src/main/java/io/opentelemetry/exporter/otlp/profiles/OtlpGrpcProfilesExporterBuilder.java index 8f00a30b165..8eb3617f9f7 100644 --- a/exporters/otlp/profiles/src/main/java/io/opentelemetry/exporter/otlp/profiles/OtlpGrpcProfilesExporterBuilder.java +++ b/exporters/otlp/profiles/src/main/java/io/opentelemetry/exporter/otlp/profiles/OtlpGrpcProfilesExporterBuilder.java @@ -10,7 +10,7 @@ import io.grpc.ManagedChannel; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.grpc.GrpcExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigProperties.java b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigProperties.java index e813a760856..b01390a1a88 100644 --- a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigProperties.java +++ b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigProperties.java @@ -7,7 +7,7 @@ import static io.opentelemetry.api.internal.ConfigUtil.defaultIfNull; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import java.time.Duration; import java.util.List; import java.util.Map; diff --git a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/DefaultConfigProperties.java b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/DefaultConfigProperties.java index fd60c315df2..f75c88c7a99 100644 --- a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/DefaultConfigProperties.java +++ b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/DefaultConfigProperties.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.internal.ConfigUtil; import io.opentelemetry.api.internal.StringUtils; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import java.time.Duration; diff --git a/sdk-extensions/autoconfigure-spi/src/test/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ConfigPropertiesTest.java b/sdk-extensions/autoconfigure-spi/src/test/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ConfigPropertiesTest.java index e6683c519b5..daa4d92a9db 100644 --- a/sdk-extensions/autoconfigure-spi/src/test/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ConfigPropertiesTest.java +++ b/sdk-extensions/autoconfigure-spi/src/test/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ConfigPropertiesTest.java @@ -11,7 +11,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.entry; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import java.time.Duration; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java index 84332c9e4a0..01c8562ad78 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java @@ -8,7 +8,7 @@ import static java.util.Objects.requireNonNull; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.sdk.OpenTelemetrySdk; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java index c38814147eb..e9636fbfb5c 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.incubator.config.ConfigProvider; import io.opentelemetry.api.incubator.config.DeclarativeConfigException; import io.opentelemetry.api.incubator.config.GlobalConfigProvider; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.resources.Resource; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java index ca02caeb6ed..6c9a49f035e 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.common.AttributesBuilder; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/ComponentLoader.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/ComponentLoader.java index 8ac2ce2f4f3..59aabd12584 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/ComponentLoader.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/ComponentLoader.java @@ -11,8 +11,8 @@ *

This class is internal and is hence not for public use. Its APIs are unstable and can change * at any time. * - * @deprecated Use {@link io.opentelemetry.context.ComponentLoader} instead + * @deprecated Use {@link io.opentelemetry.api.util.ComponentLoader} instead */ @Deprecated // TODO(jack-berg): delete after 1.54.0 release -public interface ComponentLoader extends io.opentelemetry.context.ComponentLoader {} +public interface ComponentLoader extends io.opentelemetry.api.util.ComponentLoader {} diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelper.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelper.java index ab0282528f4..2975476e28d 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelper.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelper.java @@ -5,6 +5,7 @@ package io.opentelemetry.sdk.autoconfigure.internal; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.Ordered; import io.opentelemetry.sdk.autoconfigure.spi.internal.AutoConfigureListener; @@ -26,26 +27,26 @@ */ public final class SpiHelper { - private final io.opentelemetry.context.ComponentLoader componentLoader; + private final ComponentLoader componentLoader; private final Set listeners = Collections.newSetFromMap(new IdentityHashMap<>()); - private SpiHelper(io.opentelemetry.context.ComponentLoader componentLoader) { + private SpiHelper(ComponentLoader componentLoader) { this.componentLoader = componentLoader; } /** Create a {@link SpiHelper} which loads SPIs using the {@code classLoader}. */ public static SpiHelper create(ClassLoader classLoader) { - return new SpiHelper(io.opentelemetry.context.ComponentLoader.forClassLoader(classLoader)); + return new SpiHelper(ComponentLoader.forClassLoader(classLoader)); } /** Create a {@link SpiHelper} which loads SPIs using the {@code componentLoader}. */ - public static SpiHelper create(io.opentelemetry.context.ComponentLoader componentLoader) { + public static SpiHelper create(ComponentLoader componentLoader) { return new SpiHelper(componentLoader); } - /** Return the backing underlying {@link io.opentelemetry.context.ComponentLoader}. */ - public io.opentelemetry.context.ComponentLoader getComponentLoader() { + /** Return the backing underlying {@link ComponentLoader}. */ + public ComponentLoader getComponentLoader() { return componentLoader; } diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java index dc46a55363a..94ae6182fbb 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java @@ -28,7 +28,7 @@ import io.opentelemetry.api.trace.SpanId; import io.opentelemetry.api.trace.TraceId; import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.context.Context; import io.opentelemetry.context.ContextKey; import io.opentelemetry.context.propagation.TextMapGetter; diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java index 519a5014afa..b5c100c8a33 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java @@ -12,7 +12,7 @@ import com.google.common.collect.ImmutableMap; import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelperTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelperTest.java index bb825091dba..7097d677b5f 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelperTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelperTest.java @@ -15,6 +15,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; @@ -29,8 +30,7 @@ public class SpiHelperTest { @Test public void canRetrieveByName() { - io.opentelemetry.context.ComponentLoader mockLoader = - spy(io.opentelemetry.context.ComponentLoader.class); + ComponentLoader mockLoader = spy(ComponentLoader.class); when(mockLoader.load(any())) .thenReturn(Collections.singletonList(new SpiExampleProviderImplementation())); @@ -51,8 +51,7 @@ public void canRetrieveByName() { public void instantiatesImplementationsLazily() { SpiExampleProvider mockProvider = mock(SpiExampleProvider.class); when(mockProvider.getName()).thenReturn("lazy-init-example"); - io.opentelemetry.context.ComponentLoader mockLoader = - spy(io.opentelemetry.context.ComponentLoader.class); + ComponentLoader mockLoader = spy(ComponentLoader.class); when(mockLoader.load(any())).thenReturn(Collections.singletonList(mockProvider)); SpiHelper spiHelper = SpiHelper.create(mockLoader); @@ -71,8 +70,7 @@ public void instantiatesImplementationsLazily() { @Test public void onlyInstantiatesOnce() { - io.opentelemetry.context.ComponentLoader mockLoader = - mock(io.opentelemetry.context.ComponentLoader.class); + ComponentLoader mockLoader = mock(ComponentLoader.class); when(mockLoader.load(any())) .thenReturn(Collections.singletonList(new SpiExampleProviderImplementation())); @@ -97,8 +95,7 @@ public void failureToInitializeThrows() { when(mockProvider.getName()).thenReturn("init-failure-example"); when(mockProvider.createSpiExample(any())).thenThrow(new RuntimeException()); - io.opentelemetry.context.ComponentLoader mockLoader = - spy(io.opentelemetry.context.ComponentLoader.class); + ComponentLoader mockLoader = spy(ComponentLoader.class); when(mockLoader.load(any())).thenReturn(Collections.singletonList(mockProvider)); SpiHelper spiHelper = SpiHelper.create(mockLoader); @@ -125,8 +122,7 @@ void loadsOrderedSpi() { when(spi2.order()).thenReturn(0); when(spi3.order()).thenReturn(1); - io.opentelemetry.context.ComponentLoader mockLoader = - spy(io.opentelemetry.context.ComponentLoader.class); + ComponentLoader mockLoader = spy(ComponentLoader.class); when(mockLoader.load(ResourceProvider.class)).thenReturn(asList(spi1, spi2, spi3)); SpiHelper spiHelper = SpiHelper.create(mockLoader); diff --git a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java index 65ed55e4291..27693723a60 100644 --- a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java @@ -9,7 +9,7 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.internal.testing.slf4j.SuppressLogger; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; diff --git a/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java b/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java index 19344322df7..cbfaf46629d 100644 --- a/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java @@ -24,7 +24,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.api.incubator.config.GlobalConfigProvider; import io.opentelemetry.api.incubator.config.InstrumentationConfigUtil; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.exporter.logging.LoggingSpanExporter; import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.internal.testing.slf4j.SuppressLogger; diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfiguration.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfiguration.java index 868bbbe61f5..b44d32f8fcc 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfiguration.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfiguration.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.opentelemetry.api.incubator.config.DeclarativeConfigException; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java index a781f220894..3878e2509a3 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java @@ -7,7 +7,7 @@ import io.opentelemetry.api.incubator.config.ConfigProvider; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel; import javax.annotation.Nullable; diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/YamlDeclarativeConfigProperties.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/YamlDeclarativeConfigProperties.java index b1249922c72..351cd4183cf 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/YamlDeclarativeConfigProperties.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/YamlDeclarativeConfigProperties.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigException; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel; import java.util.Arrays; import java.util.Collections; diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigurationCreateTest.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigurationCreateTest.java index 41ebe9be555..eb9ff881dcf 100644 --- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigurationCreateTest.java +++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigurationCreateTest.java @@ -13,7 +13,7 @@ import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension; import io.github.netmikey.logunit.api.LogCapturer; import io.opentelemetry.api.incubator.config.DeclarativeConfigException; -import io.opentelemetry.context.ComponentLoader; +import io.opentelemetry.api.util.ComponentLoader; import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel; diff --git a/settings.gradle.kts b/settings.gradle.kts index 58659284e93..c7cb479a5ab 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -26,6 +26,7 @@ include(":all") include(":api:all") include(":api:incubator") include(":api:testing-internal") +include(":api:util") include(":bom") include(":bom-alpha") include(":context") From d2f36c1f6992f3c4028ba262bee0bb136ed82126 Mon Sep 17 00:00:00 2001 From: Jack Berg Date: Thu, 10 Jul 2025 10:57:15 -0500 Subject: [PATCH 5/5] change from opentelemetry-api-util to opentelemetry-common --- README.md | 2 +- .../java/io/opentelemetry/all/SdkDesignTest.java | 8 ++++++-- .../config/DeclarativeConfigProperties.java | 2 +- .../config/EmptyDeclarativeConfigProperties.java | 2 +- {api/util => common}/build.gradle.kts | 2 +- .../io/opentelemetry/common}/ComponentLoader.java | 2 +- .../common}/ServiceLoaderComponentLoader.java | 2 +- context/build.gradle.kts | 2 +- .../java/io/opentelemetry/context/LazyStorage.java | 2 +- .../current_vs_latest/opentelemetry-api-util.txt | 7 ------- .../current_vs_latest/opentelemetry-common.txt | 7 +++++++ .../opentelemetry-exporter-otlp.txt | 12 ++++++------ ...opentelemetry-sdk-extension-autoconfigure-spi.txt | 2 +- .../opentelemetry-sdk-extension-autoconfigure.txt | 2 +- .../internal/compression/CompressorUtil.java | 2 +- .../exporter/internal/grpc/GrpcExporterBuilder.java | 2 +- .../exporter/internal/http/HttpExporterBuilder.java | 2 +- .../internal/compression/CompressorUtilTest.java | 2 +- .../internal/grpc/GrpcExporterBuilderTest.java | 2 +- .../internal/http/HttpExporterBuilderTest.java | 2 +- .../http/logs/OtlpHttpLogRecordExporterBuilder.java | 2 +- .../http/metrics/OtlpHttpMetricExporterBuilder.java | 2 +- .../otlp/http/trace/OtlpHttpSpanExporterBuilder.java | 2 +- .../exporter/otlp/internal/OtlpConfigUtil.java | 2 +- .../otlp/internal/OtlpDeclarativeConfigUtil.java | 2 +- .../otlp/logs/OtlpGrpcLogRecordExporterBuilder.java | 2 +- .../otlp/metrics/OtlpGrpcMetricExporterBuilder.java | 2 +- .../otlp/trace/OtlpGrpcSpanExporterBuilder.java | 2 +- .../profiles/OtlpGrpcProfilesExporterBuilder.java | 2 +- .../sdk/autoconfigure/spi/ConfigProperties.java | 2 +- .../spi/internal/DefaultConfigProperties.java | 2 +- .../spi/internal/ConfigPropertiesTest.java | 2 +- .../AutoConfiguredOpenTelemetrySdkBuilder.java | 2 +- .../sdk/autoconfigure/IncubatingUtil.java | 2 +- .../sdk/autoconfigure/ResourceConfiguration.java | 2 +- .../sdk/autoconfigure/internal/ComponentLoader.java | 4 ++-- .../sdk/autoconfigure/internal/SpiHelper.java | 2 +- .../AutoConfiguredOpenTelemetrySdkTest.java | 2 +- .../sdk/autoconfigure/ResourceConfigurationTest.java | 2 +- .../sdk/autoconfigure/internal/SpiHelperTest.java | 2 +- .../sdk/autoconfigure/ResourceConfigurationTest.java | 2 +- .../autoconfigure/DeclarativeConfigurationTest.java | 2 +- .../fileconfig/DeclarativeConfiguration.java | 2 +- .../incubator/fileconfig/SdkConfigProvider.java | 2 +- .../fileconfig/YamlDeclarativeConfigProperties.java | 2 +- .../DeclarativeConfigurationCreateTest.java | 2 +- settings.gradle.kts | 2 +- 47 files changed, 63 insertions(+), 59 deletions(-) rename {api/util => common}/build.gradle.kts (76%) rename {api/util/src/main/java/io/opentelemetry/api/util => common/src/main/java/io/opentelemetry/common}/ComponentLoader.java (95%) rename {api/util/src/main/java/io/opentelemetry/api/util => common/src/main/java/io/opentelemetry/common}/ServiceLoaderComponentLoader.java (94%) delete mode 100644 docs/apidiffs/current_vs_latest/opentelemetry-api-util.txt create mode 100644 docs/apidiffs/current_vs_latest/opentelemetry-common.txt diff --git a/README.md b/README.md index 42a3775d25d..af86176258a 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ The OpenTelemetry API for recording telemetry. | [API](./api/all) | OpenTelemetry API, including metrics, traces, baggage, context | `opentelemetry-api` | 1.49.0 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-api.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api) | | [API Incubator](./api/incubator) | API incubator, including pass through propagator, and extended tracer, and Event API | `opentelemetry-api-incubator` | 1.49.0-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-api-incubator.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api-incubator) | | [Context API](./context) | OpenTelemetry context API | `opentelemetry-context` | 1.49.0 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-context.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-context) | -| [Util](./api/util) | Common utility methods used across API components | `opentelemetry-util` | 1.49.0 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-context.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-context) | +| [Common](./common) | Common utility methods used across API components | `opentelemetry-common` | TODO: add after first publish | TODO: add link after first publish |

diff --git a/all/src/test/java/io/opentelemetry/all/SdkDesignTest.java b/all/src/test/java/io/opentelemetry/all/SdkDesignTest.java index 1a1271b7c2d..fe2fb0045ea 100644 --- a/all/src/test/java/io/opentelemetry/all/SdkDesignTest.java +++ b/all/src/test/java/io/opentelemetry/all/SdkDesignTest.java @@ -28,7 +28,7 @@ class SdkDesignTest { * Ensures that all SDK methods that: - are defined in classes that extend or implement API model * and are public (to exclude protected builders) - are public (avoids issues with protected * methods returning classes unavailable to test's CL) - override or implement parent method - * return only API, Context or generic Java type. + * return only API, Context, Common, or generic Java type. */ @Test void sdkImplementationOfApiClassesShouldReturnApiTypeOnly() { @@ -45,7 +45,11 @@ void sdkImplementationOfApiClassesShouldReturnApiTypeOnly() { .and(implementOrOverride()) .should() .haveRawReturnType( - inPackage("io.opentelemetry.api..", "io.opentelemetry.context..", "java..")) + inPackage( + "io.opentelemetry.api..", + "io.opentelemetry.context..", + "io.opentelemetry.common..", + "java..")) .orShould() .haveRawReturnType("void"); diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java index 76e1b07a98e..e29f78c9c9b 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/DeclarativeConfigProperties.java @@ -7,7 +7,7 @@ import static io.opentelemetry.api.internal.ConfigUtil.defaultIfNull; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import java.util.List; import java.util.Set; import javax.annotation.Nullable; diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/EmptyDeclarativeConfigProperties.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/EmptyDeclarativeConfigProperties.java index 6c6b46674a4..6c3a85f1eeb 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/EmptyDeclarativeConfigProperties.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/EmptyDeclarativeConfigProperties.java @@ -5,7 +5,7 @@ package io.opentelemetry.api.incubator.config; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import java.util.Collections; import java.util.List; import java.util.Set; diff --git a/api/util/build.gradle.kts b/common/build.gradle.kts similarity index 76% rename from api/util/build.gradle.kts rename to common/build.gradle.kts index 7934d5c7847..ffeef6877fa 100644 --- a/api/util/build.gradle.kts +++ b/common/build.gradle.kts @@ -6,7 +6,7 @@ plugins { } description = "OpenTelemetry API Common" -otelJava.moduleName.set("io.opentelemetry.api.util") +otelJava.moduleName.set("io.opentelemetry.common") dependencies { } diff --git a/api/util/src/main/java/io/opentelemetry/api/util/ComponentLoader.java b/common/src/main/java/io/opentelemetry/common/ComponentLoader.java similarity index 95% rename from api/util/src/main/java/io/opentelemetry/api/util/ComponentLoader.java rename to common/src/main/java/io/opentelemetry/common/ComponentLoader.java index df5ca02ceb3..17dab36a1b4 100644 --- a/api/util/src/main/java/io/opentelemetry/api/util/ComponentLoader.java +++ b/common/src/main/java/io/opentelemetry/common/ComponentLoader.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.api.util; +package io.opentelemetry.common; import java.util.ServiceLoader; diff --git a/api/util/src/main/java/io/opentelemetry/api/util/ServiceLoaderComponentLoader.java b/common/src/main/java/io/opentelemetry/common/ServiceLoaderComponentLoader.java similarity index 94% rename from api/util/src/main/java/io/opentelemetry/api/util/ServiceLoaderComponentLoader.java rename to common/src/main/java/io/opentelemetry/common/ServiceLoaderComponentLoader.java index 537d84170dd..5f2d0c58cd8 100644 --- a/api/util/src/main/java/io/opentelemetry/api/util/ServiceLoaderComponentLoader.java +++ b/common/src/main/java/io/opentelemetry/common/ServiceLoaderComponentLoader.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.api.util; +package io.opentelemetry.common; import java.util.ServiceLoader; diff --git a/context/build.gradle.kts b/context/build.gradle.kts index d011f616a73..b3a35620518 100644 --- a/context/build.gradle.kts +++ b/context/build.gradle.kts @@ -10,7 +10,7 @@ description = "OpenTelemetry Context (Incubator)" otelJava.moduleName.set("io.opentelemetry.context") dependencies { - api(project(":api:util")) + api(project(":common")) // MustBeClosed compileOnly("com.google.errorprone:error_prone_annotations") diff --git a/context/src/main/java/io/opentelemetry/context/LazyStorage.java b/context/src/main/java/io/opentelemetry/context/LazyStorage.java index c64d5b95bec..428b87dc481 100644 --- a/context/src/main/java/io/opentelemetry/context/LazyStorage.java +++ b/context/src/main/java/io/opentelemetry/context/LazyStorage.java @@ -37,7 +37,7 @@ package io.opentelemetry.context; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicReference; diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-api-util.txt b/docs/apidiffs/current_vs_latest/opentelemetry-api-util.txt deleted file mode 100644 index 6649fc4652e..00000000000 --- a/docs/apidiffs/current_vs_latest/opentelemetry-api-util.txt +++ /dev/null @@ -1,7 +0,0 @@ -Comparing source compatibility of opentelemetry-api-util-1.52.0-SNAPSHOT.jar against -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.api.util.ComponentLoader (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.api.util.ComponentLoader forClassLoader(java.lang.ClassLoader) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Iterable load(java.lang.Class) - GENERIC TEMPLATES: +++ T:java.lang.Object diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-common.txt b/docs/apidiffs/current_vs_latest/opentelemetry-common.txt new file mode 100644 index 00000000000..515236fbc7b --- /dev/null +++ b/docs/apidiffs/current_vs_latest/opentelemetry-common.txt @@ -0,0 +1,7 @@ +Comparing source compatibility of opentelemetry-common-1.52.0-SNAPSHOT.jar against ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.common.ComponentLoader (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.common.ComponentLoader forClassLoader(java.lang.ClassLoader) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Iterable load(java.lang.Class) + GENERIC TEMPLATES: +++ T:java.lang.Object diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-exporter-otlp.txt b/docs/apidiffs/current_vs_latest/opentelemetry-exporter-otlp.txt index 72b7a4aa4ff..2cb2483fd03 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-exporter-otlp.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-exporter-otlp.txt @@ -1,19 +1,19 @@ Comparing source compatibility of opentelemetry-exporter-otlp-1.52.0-SNAPSHOT.jar against opentelemetry-exporter-otlp-1.51.0.jar *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader) *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader) *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader) *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader) *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader) *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader) 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 3bf9e270815..464dfcf5d08 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,4 +1,4 @@ Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-spi-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-extension-autoconfigure-spi-1.51.0.jar *** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.api.util.ComponentLoader getComponentLoader() + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.common.ComponentLoader getComponentLoader() diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure.txt b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure.txt index bf097690d03..ba20f69aaf0 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure.txt @@ -1,4 +1,4 @@ Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-extension-autoconfigure-1.51.0.jar *** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW METHOD: PUBLIC(+) io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader(io.opentelemetry.api.util.ComponentLoader) + +++ NEW METHOD: PUBLIC(+) io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader) diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/compression/CompressorUtil.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/compression/CompressorUtil.java index 7b4ea62064d..92b7d2d9c60 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/compression/CompressorUtil.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/compression/CompressorUtil.java @@ -8,7 +8,7 @@ import static io.opentelemetry.api.internal.Utils.checkArgument; import static java.util.stream.Collectors.joining; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import java.util.HashMap; import java.util.Map; import java.util.Set; diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java index 05d722d38fc..27d06b7116b 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.internal.ConfigUtil; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.ExporterBuilderUtil; import io.opentelemetry.exporter.internal.TlsConfigHelper; import io.opentelemetry.exporter.internal.compression.Compressor; diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java index 5366411ab94..42d55cb0a2c 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.internal.ConfigUtil; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.ExporterBuilderUtil; import io.opentelemetry.exporter.internal.TlsConfigHelper; import io.opentelemetry.exporter.internal.compression.Compressor; diff --git a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/compression/CompressorUtilTest.java b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/compression/CompressorUtilTest.java index 68790275d5a..d8dcffd3c41 100644 --- a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/compression/CompressorUtilTest.java +++ b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/compression/CompressorUtilTest.java @@ -8,7 +8,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import java.net.URL; import java.net.URLClassLoader; import org.junit.jupiter.api.Test; diff --git a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilderTest.java b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilderTest.java index fb5fc318b6e..b17f3cdb595 100644 --- a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilderTest.java +++ b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilderTest.java @@ -8,7 +8,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.compression.GzipCompressor; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilderTest.java b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilderTest.java index d26016546f4..c924dcd9af1 100644 --- a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilderTest.java +++ b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilderTest.java @@ -8,7 +8,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.compression.GzipCompressor; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java index 43c6f6ca6ad..b9606919075 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.http.HttpExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java index fe64d6ccb8e..07f24dac91c 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.http.HttpExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java index 0b4a17475f6..f8289010b5b 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.http.HttpExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtil.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtil.java index 9a6dd44fab1..427d79e7ac4 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtil.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpConfigUtil.java @@ -5,7 +5,7 @@ package io.opentelemetry.exporter.otlp.internal; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.ExporterBuilderUtil; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java index 7f444f9a6ea..b2f174ae3df 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/OtlpDeclarativeConfigUtil.java @@ -11,7 +11,7 @@ import static io.opentelemetry.exporter.otlp.internal.OtlpConfigUtil.validateEndpoint; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.IncubatingExporterBuilderUtil; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java index da7698191c5..467aa0cd6a9 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java @@ -11,7 +11,7 @@ import io.grpc.ManagedChannel; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.grpc.GrpcExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java index a84a7de4cb7..ef3403c7353 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java @@ -11,7 +11,7 @@ import io.grpc.ManagedChannel; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.grpc.GrpcExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java index 5d62700dcf9..fa7523b5b9e 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java @@ -11,7 +11,7 @@ import io.grpc.ManagedChannel; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.grpc.GrpcExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/exporters/otlp/profiles/src/main/java/io/opentelemetry/exporter/otlp/profiles/OtlpGrpcProfilesExporterBuilder.java b/exporters/otlp/profiles/src/main/java/io/opentelemetry/exporter/otlp/profiles/OtlpGrpcProfilesExporterBuilder.java index 8eb3617f9f7..18e19ca51bd 100644 --- a/exporters/otlp/profiles/src/main/java/io/opentelemetry/exporter/otlp/profiles/OtlpGrpcProfilesExporterBuilder.java +++ b/exporters/otlp/profiles/src/main/java/io/opentelemetry/exporter/otlp/profiles/OtlpGrpcProfilesExporterBuilder.java @@ -10,7 +10,7 @@ import io.grpc.ManagedChannel; import io.opentelemetry.api.metrics.MeterProvider; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.grpc.GrpcExporterBuilder; import io.opentelemetry.exporter.internal.marshal.Marshaler; diff --git a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigProperties.java b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigProperties.java index b01390a1a88..0485597edcc 100644 --- a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigProperties.java +++ b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigProperties.java @@ -7,7 +7,7 @@ import static io.opentelemetry.api.internal.ConfigUtil.defaultIfNull; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import java.time.Duration; import java.util.List; import java.util.Map; diff --git a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/DefaultConfigProperties.java b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/DefaultConfigProperties.java index f75c88c7a99..f8818c015bd 100644 --- a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/DefaultConfigProperties.java +++ b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/DefaultConfigProperties.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.internal.ConfigUtil; import io.opentelemetry.api.internal.StringUtils; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import java.time.Duration; diff --git a/sdk-extensions/autoconfigure-spi/src/test/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ConfigPropertiesTest.java b/sdk-extensions/autoconfigure-spi/src/test/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ConfigPropertiesTest.java index daa4d92a9db..4a119e600cc 100644 --- a/sdk-extensions/autoconfigure-spi/src/test/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ConfigPropertiesTest.java +++ b/sdk-extensions/autoconfigure-spi/src/test/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ConfigPropertiesTest.java @@ -11,7 +11,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.entry; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import java.time.Duration; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java index 01c8562ad78..1b0e43c1f12 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java @@ -8,7 +8,7 @@ import static java.util.Objects.requireNonNull; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.sdk.OpenTelemetrySdk; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java index e9636fbfb5c..df2686ece55 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/IncubatingUtil.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.incubator.config.ConfigProvider; import io.opentelemetry.api.incubator.config.DeclarativeConfigException; import io.opentelemetry.api.incubator.config.GlobalConfigProvider; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.resources.Resource; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java index 6c9a49f035e..6f15adfc035 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java @@ -8,7 +8,7 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.common.AttributesBuilder; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/ComponentLoader.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/ComponentLoader.java index 59aabd12584..b7f29db27eb 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/ComponentLoader.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/ComponentLoader.java @@ -11,8 +11,8 @@ *

This class is internal and is hence not for public use. Its APIs are unstable and can change * at any time. * - * @deprecated Use {@link io.opentelemetry.api.util.ComponentLoader} instead + * @deprecated Use {@link io.opentelemetry.common.ComponentLoader} instead */ @Deprecated // TODO(jack-berg): delete after 1.54.0 release -public interface ComponentLoader extends io.opentelemetry.api.util.ComponentLoader {} +public interface ComponentLoader extends io.opentelemetry.common.ComponentLoader {} diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelper.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelper.java index 2975476e28d..d1d00aed571 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelper.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelper.java @@ -5,7 +5,7 @@ package io.opentelemetry.sdk.autoconfigure.internal; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.Ordered; import io.opentelemetry.sdk.autoconfigure.spi.internal.AutoConfigureListener; diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java index 94ae6182fbb..3283cd8af6d 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkTest.java @@ -28,7 +28,7 @@ import io.opentelemetry.api.trace.SpanId; import io.opentelemetry.api.trace.TraceId; import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.context.Context; import io.opentelemetry.context.ContextKey; import io.opentelemetry.context.propagation.TextMapGetter; diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java index b5c100c8a33..1678fb29576 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java @@ -12,7 +12,7 @@ import com.google.common.collect.ImmutableMap; import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelperTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelperTest.java index 7097d677b5f..b1497079a9e 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelperTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/internal/SpiHelperTest.java @@ -15,7 +15,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; diff --git a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java index 27693723a60..8683dd6de36 100644 --- a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ResourceConfigurationTest.java @@ -9,7 +9,7 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.internal.testing.slf4j.SuppressLogger; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; diff --git a/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java b/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java index cbfaf46629d..a29a9f581d1 100644 --- a/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java @@ -24,7 +24,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.api.incubator.config.GlobalConfigProvider; import io.opentelemetry.api.incubator.config.InstrumentationConfigUtil; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.logging.LoggingSpanExporter; import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.internal.testing.slf4j.SuppressLogger; diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfiguration.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfiguration.java index b44d32f8fcc..966ea0a5697 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfiguration.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfiguration.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.opentelemetry.api.incubator.config.DeclarativeConfigException; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java index 3878e2509a3..9bc5192a787 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java @@ -7,7 +7,7 @@ import io.opentelemetry.api.incubator.config.ConfigProvider; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel; import javax.annotation.Nullable; diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/YamlDeclarativeConfigProperties.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/YamlDeclarativeConfigProperties.java index 351cd4183cf..cf090a7c9a4 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/YamlDeclarativeConfigProperties.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/YamlDeclarativeConfigProperties.java @@ -10,7 +10,7 @@ import io.opentelemetry.api.incubator.config.DeclarativeConfigException; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel; import java.util.Arrays; import java.util.Collections; diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigurationCreateTest.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigurationCreateTest.java index eb9ff881dcf..b72c0bc8ebe 100644 --- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigurationCreateTest.java +++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigurationCreateTest.java @@ -13,7 +13,7 @@ import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension; import io.github.netmikey.logunit.api.LogCapturer; import io.opentelemetry.api.incubator.config.DeclarativeConfigException; -import io.opentelemetry.api.util.ComponentLoader; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel; diff --git a/settings.gradle.kts b/settings.gradle.kts index c7cb479a5ab..571642683dc 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -26,9 +26,9 @@ include(":all") include(":api:all") include(":api:incubator") include(":api:testing-internal") -include(":api:util") include(":bom") include(":bom-alpha") +include(":common") include(":context") include(":custom-checks") include(":dependencyManagement")