diff --git a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/logs/OtlpStdoutLogRecordExporterComponentProvider.java b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/logs/OtlpStdoutLogRecordExporterComponentProvider.java
index ee6fbfe66ba..4f864ac8c89 100644
--- a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/logs/OtlpStdoutLogRecordExporterComponentProvider.java
+++ b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/logs/OtlpStdoutLogRecordExporterComponentProvider.java
@@ -16,11 +16,10 @@
*
This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public final class OtlpStdoutLogRecordExporterComponentProvider
- implements ComponentProvider {
+public final class OtlpStdoutLogRecordExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return LogRecordExporter.class;
}
diff --git a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/metrics/OtlpStdoutMetricExporterComponentProvider.java b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/metrics/OtlpStdoutMetricExporterComponentProvider.java
index 70de404af14..15df12c9abb 100644
--- a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/metrics/OtlpStdoutMetricExporterComponentProvider.java
+++ b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/metrics/OtlpStdoutMetricExporterComponentProvider.java
@@ -16,11 +16,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public final class OtlpStdoutMetricExporterComponentProvider
- implements ComponentProvider {
+public final class OtlpStdoutMetricExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return MetricExporter.class;
}
diff --git a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/traces/OtlpStdoutSpanExporterComponentProvider.java b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/traces/OtlpStdoutSpanExporterComponentProvider.java
index e16ac868e3b..1f2e5b47e4e 100644
--- a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/traces/OtlpStdoutSpanExporterComponentProvider.java
+++ b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/traces/OtlpStdoutSpanExporterComponentProvider.java
@@ -16,11 +16,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public final class OtlpStdoutSpanExporterComponentProvider
- implements ComponentProvider {
+public final class OtlpStdoutSpanExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return SpanExporter.class;
}
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 44b046aca42..3a1b0934935 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
@@ -333,7 +333,7 @@ protected T exporterFromComponentProvider(DeclarativeConfigProperties properties
properties.getComponentLoader().load(ComponentProvider.class).spliterator(), false)
.filter(
p -> {
- ComponentProvider> c = p;
+ ComponentProvider c = p;
return "otlp_file/development".equals(c.getName())
&& c.getType().equals(componentProviderType);
})
diff --git a/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleLogRecordExporterComponentProvider.java b/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleLogRecordExporterComponentProvider.java
index 2d8141cc4f2..24aac9fddda 100644
--- a/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleLogRecordExporterComponentProvider.java
+++ b/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleLogRecordExporterComponentProvider.java
@@ -16,11 +16,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public final class ConsoleLogRecordExporterComponentProvider
- implements ComponentProvider {
+public final class ConsoleLogRecordExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return LogRecordExporter.class;
}
diff --git a/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleMetricExporterComponentProvider.java b/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleMetricExporterComponentProvider.java
index 6fab453403f..7c0c46bf82f 100644
--- a/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleMetricExporterComponentProvider.java
+++ b/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleMetricExporterComponentProvider.java
@@ -16,11 +16,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public final class ConsoleMetricExporterComponentProvider
- implements ComponentProvider {
+public final class ConsoleMetricExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return MetricExporter.class;
}
diff --git a/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleSpanExporterComponentProvider.java b/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleSpanExporterComponentProvider.java
index fd65a5acad8..09ab0c5a003 100644
--- a/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleSpanExporterComponentProvider.java
+++ b/exporters/logging/src/main/java/io/opentelemetry/exporter/logging/internal/ConsoleSpanExporterComponentProvider.java
@@ -16,10 +16,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public final class ConsoleSpanExporterComponentProvider implements ComponentProvider {
+public final class ConsoleSpanExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return SpanExporter.class;
}
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 f8faab7a00a..190adb820e9 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
@@ -19,11 +19,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public class OtlpGrpcLogRecordExporterComponentProvider
- implements ComponentProvider {
+public class OtlpGrpcLogRecordExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return LogRecordExporter.class;
}
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 25f8341fb07..2002adddf2e 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
@@ -20,10 +20,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public class OtlpGrpcMetricExporterComponentProvider implements ComponentProvider {
+public class OtlpGrpcMetricExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return MetricExporter.class;
}
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 84e230ca515..449c59096f7 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
@@ -19,10 +19,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public class OtlpGrpcSpanExporterComponentProvider implements ComponentProvider {
+public class OtlpGrpcSpanExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return SpanExporter.class;
}
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 e6a513e8982..4c4ae862264 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
@@ -19,11 +19,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public class OtlpHttpLogRecordExporterComponentProvider
- implements ComponentProvider {
+public class OtlpHttpLogRecordExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return LogRecordExporter.class;
}
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 d6cc1bf62d1..f4d1dc17e78 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
@@ -20,10 +20,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public class OtlpHttpMetricExporterComponentProvider implements ComponentProvider {
+public class OtlpHttpMetricExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return MetricExporter.class;
}
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 752e9698dcf..7b5b3a38e25 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
@@ -19,10 +19,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public class OtlpHttpSpanExporterComponentProvider implements ComponentProvider {
+public class OtlpHttpSpanExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return SpanExporter.class;
}
diff --git a/exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/internal/PrometheusComponentProvider.java b/exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/internal/PrometheusComponentProvider.java
index 25d069db7a8..0ea696596f8 100644
--- a/exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/internal/PrometheusComponentProvider.java
+++ b/exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/internal/PrometheusComponentProvider.java
@@ -19,10 +19,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public class PrometheusComponentProvider implements ComponentProvider {
+public class PrometheusComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return MetricReader.class;
}
diff --git a/exporters/zipkin/src/main/java/io/opentelemetry/exporter/zipkin/internal/ZipkinSpanExporterComponentProvider.java b/exporters/zipkin/src/main/java/io/opentelemetry/exporter/zipkin/internal/ZipkinSpanExporterComponentProvider.java
index 42c43eef14a..213640a5033 100644
--- a/exporters/zipkin/src/main/java/io/opentelemetry/exporter/zipkin/internal/ZipkinSpanExporterComponentProvider.java
+++ b/exporters/zipkin/src/main/java/io/opentelemetry/exporter/zipkin/internal/ZipkinSpanExporterComponentProvider.java
@@ -18,9 +18,9 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public class ZipkinSpanExporterComponentProvider implements ComponentProvider {
+public class ZipkinSpanExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return SpanExporter.class;
}
diff --git a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3ComponentProvider.java b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3ComponentProvider.java
index ebd766640f9..061c408c379 100644
--- a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3ComponentProvider.java
+++ b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3ComponentProvider.java
@@ -17,10 +17,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public final class B3ComponentProvider implements ComponentProvider {
+public final class B3ComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return TextMapPropagator.class;
}
diff --git a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3MultiComponentProvider.java b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3MultiComponentProvider.java
index 0fb223d81a7..e7f9f4fb032 100644
--- a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3MultiComponentProvider.java
+++ b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/B3MultiComponentProvider.java
@@ -17,10 +17,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public final class B3MultiComponentProvider implements ComponentProvider {
+public final class B3MultiComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return TextMapPropagator.class;
}
diff --git a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/JaegerComponentProvider.java b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/JaegerComponentProvider.java
index 1326dd4cc83..6d4ed47e184 100644
--- a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/JaegerComponentProvider.java
+++ b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/JaegerComponentProvider.java
@@ -16,10 +16,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public final class JaegerComponentProvider implements ComponentProvider {
+public final class JaegerComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return TextMapPropagator.class;
}
diff --git a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/OtTraceComponentProvider.java b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/OtTraceComponentProvider.java
index 261eb5f8585..79c99906eb2 100644
--- a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/OtTraceComponentProvider.java
+++ b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/internal/OtTraceComponentProvider.java
@@ -17,10 +17,10 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public final class OtTraceComponentProvider implements ComponentProvider {
+public final class OtTraceComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return TextMapPropagator.class;
}
diff --git a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ComponentProvider.java b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ComponentProvider.java
index 5772a0a1797..30a544887c6 100644
--- a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ComponentProvider.java
+++ b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/internal/ComponentProvider.java
@@ -27,18 +27,17 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*
- * @param the type of the SDK extension component. See {@link #getType()}. Supported values
- * include: {@link SpanExporter}, {@link MetricExporter}, {@link LogRecordExporter}, {@link
- * SpanProcessor}, {@link LogRecordProcessor}, {@link TextMapPropagator}, {@link Sampler},
- * {@link Resource}.
+ * Supported component types include: {@link SpanExporter}, {@link MetricExporter}, {@link
+ * LogRecordExporter}, {@link SpanProcessor}, {@link LogRecordProcessor}, {@link TextMapPropagator},
+ * {@link Sampler}, {@link Resource}.
*/
-public interface ComponentProvider {
+public interface ComponentProvider {
/**
* The type of SDK extension component. For example, if providing instances of a custom span
* exporter, the type would be {@link SpanExporter}.
*/
- Class getType();
+ Class> getType();
/**
* The name of the exporter, to be referenced in configuration files. For example, if providing
@@ -59,5 +58,5 @@ public interface ComponentProvider {
*/
// TODO (jack-berg): consider dynamic configuration use case before stabilizing in case that
// affects any API decisions
- T create(DeclarativeConfigProperties config);
+ Object create(DeclarativeConfigProperties config);
}
diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigContext.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigContext.java
index 9cc697ecaea..e9a0780d5b3 100644
--- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigContext.java
+++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigContext.java
@@ -13,7 +13,6 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.function.Function;
import java.util.stream.Collectors;
/** Declarative configuration context and state carrier. */
@@ -54,11 +53,8 @@ T loadComponent(Class type, String name, Object model) {
// TODO(jack-berg): cache loaded component providers
List componentProviders = spiHelper.load(ComponentProvider.class);
- List> matchedProviders =
+ List matchedProviders =
componentProviders.stream()
- .map(
- (Function>)
- componentProvider -> componentProvider)
.filter(
componentProvider ->
componentProvider.getType() == type && name.equals(componentProvider.getName()))
@@ -79,10 +75,10 @@ T loadComponent(Class type, String name, Object model) {
.collect(Collectors.joining(",", "[", "]")));
}
// Exactly one matching component provider
- ComponentProvider provider = (ComponentProvider) matchedProviders.get(0);
+ ComponentProvider provider = matchedProviders.get(0);
try {
- return provider.create(config);
+ return (T) provider.create(config);
} catch (Throwable throwable) {
throw new DeclarativeConfigException(
"Error configuring " + type.getName() + " with name \"" + name + "\"", throwable);
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 dcaeeee2718..81bf7426c54 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
@@ -15,7 +15,7 @@
import java.util.Collections;
import java.util.UUID;
-public class ServiceResourceDetector implements ComponentProvider {
+public class ServiceResourceDetector implements ComponentProvider {
private static final AttributeKey SERVICE_NAME = AttributeKey.stringKey("service.name");
private static final AttributeKey SERVICE_INSTANCE_ID =
@@ -25,7 +25,7 @@ public class ServiceResourceDetector implements ComponentProvider {
private static final String RANDOM_SERVICE_INSTANCE_ID = UUID.randomUUID().toString();
@Override
- public Class getType() {
+ public Class> getType() {
return Resource.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/CapturingComponentLoader.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/CapturingComponentLoader.java
new file mode 100644
index 00000000000..ee99e1e1517
--- /dev/null
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/CapturingComponentLoader.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.sdk.extension.incubator.fileconfig;
+
+import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
+import io.opentelemetry.common.ComponentLoader;
+import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * A test utility that captures the configuration passed to component providers during loading. This
+ * allows tests to verify that component providers receive the expected configuration.
+ */
+class CapturingComponentLoader implements ComponentLoader {
+
+ private final ComponentLoader delegate;
+ private final Map capturedConfigs =
+ new ConcurrentHashMap<>();
+
+ CapturingComponentLoader() {
+ delegate = ComponentLoader.forClassLoader(getClass().getClassLoader());
+ }
+
+ DeclarativeConfigProperties getCapturedConfig(String name) {
+ return capturedConfigs.get(name);
+ }
+
+ @Override
+ public Iterable load(Class spiClass) {
+ if (spiClass == ComponentProvider.class) {
+ return createWrappedComponentProviders();
+ }
+ return delegate.load(spiClass);
+ }
+
+ @SuppressWarnings("unchecked")
+ private Iterable createWrappedComponentProviders() {
+ List wrappedProviders = new ArrayList<>();
+ for (ComponentProvider provider : delegate.load(ComponentProvider.class)) {
+ ComponentProvider wrapped = new CapturingComponentProvider(provider);
+ wrappedProviders.add((T) wrapped);
+ }
+ return wrappedProviders;
+ }
+
+ private class CapturingComponentProvider implements ComponentProvider {
+
+ private final ComponentProvider delegate;
+
+ CapturingComponentProvider(ComponentProvider delegate) {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public Class> getType() {
+ return delegate.getType();
+ }
+
+ @Override
+ public String getName() {
+ return delegate.getName();
+ }
+
+ @Override
+ public Object create(DeclarativeConfigProperties config) {
+ capturedConfigs.put(getName(), config);
+ return delegate.create(config);
+ }
+ }
+}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/LogRecordExporterFactoryTest.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/LogRecordExporterFactoryTest.java
index d1964c15de3..054e2c312d1 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/LogRecordExporterFactoryTest.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/LogRecordExporterFactoryTest.java
@@ -8,9 +8,6 @@
import static io.opentelemetry.sdk.extension.incubator.fileconfig.FileConfigTestUtil.createTempFileWithContent;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
import com.google.common.collect.ImmutableMap;
import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension;
@@ -21,7 +18,6 @@
import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter;
import io.opentelemetry.internal.testing.CleanupExtension;
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
-import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
import io.opentelemetry.sdk.extension.incubator.fileconfig.component.LogRecordExporterComponentProvider;
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalOtlpFileExporterModel;
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.LogRecordExporterModel;
@@ -36,22 +32,12 @@
import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
-import java.util.stream.Collectors;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.api.io.TempDir;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mockito;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.junit.jupiter.MockitoSettings;
-import org.mockito.quality.Strictness;
-
-@ExtendWith(MockitoExtension.class)
-@MockitoSettings(strictness = Strictness.LENIENT)
+
class LogRecordExporterFactoryTest {
@RegisterExtension
@@ -62,39 +48,24 @@ class LogRecordExporterFactoryTest {
@RegisterExtension CleanupExtension cleanup = new CleanupExtension();
- private final SpiHelper spiHelper =
- spy(SpiHelper.create(SpanExporterFactoryTest.class.getClassLoader()));
- private final DeclarativeConfigContext context = new DeclarativeConfigContext(spiHelper);
- private List> loadedComponentProviders = Collections.emptyList();
+ private CapturingComponentLoader capturingComponentLoader;
+ private SpiHelper spiHelper;
+ private DeclarativeConfigContext context;
@BeforeEach
- @SuppressWarnings("unchecked")
void setup() {
- when(spiHelper.load(ComponentProvider.class))
- .thenAnswer(
- invocation -> {
- List> result =
- (List>) invocation.callRealMethod();
- loadedComponentProviders =
- result.stream().map(Mockito::spy).collect(Collectors.toList());
- return loadedComponentProviders;
- });
- }
-
- private ComponentProvider> getComponentProvider(String name, Class> type) {
- return loadedComponentProviders.stream()
- .filter(
- componentProvider ->
- componentProvider.getName().equals(name)
- && componentProvider.getType().equals(type))
- .findFirst()
- .orElseThrow(IllegalStateException::new);
+ capturingComponentLoader = new CapturingComponentLoader();
+ spiHelper = SpiHelper.create(capturingComponentLoader);
+ context = new DeclarativeConfigContext(spiHelper);
}
@Test
void create_OtlpHttpDefaults() {
List closeables = new ArrayList<>();
- OtlpHttpLogRecordExporter expectedExporter = OtlpHttpLogRecordExporter.getDefault();
+ OtlpHttpLogRecordExporter expectedExporter =
+ OtlpHttpLogRecordExporter.getDefault().toBuilder()
+ .setComponentLoader(capturingComponentLoader) // needed for the toString() check to pass
+ .build();
cleanup.addCloseable(expectedExporter);
LogRecordExporter exporter =
@@ -106,14 +77,10 @@ void create_OtlpHttpDefaults() {
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
-
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider =
- getComponentProvider("otlp_http", LogRecordExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_http");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("protocol")).isNull();
assertThat(configProperties.getString("endpoint")).isNull();
assertThat(configProperties.getStructured("headers")).isNull();
@@ -135,6 +102,7 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
.addHeader("key2", "value2")
.setTimeout(Duration.ofSeconds(15))
.setCompression("gzip")
+ .setComponentLoader(capturingComponentLoader) // needed for the toString() check to pass
.build();
cleanup.addCloseable(expectedExporter);
@@ -174,12 +142,10 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider =
- getComponentProvider("otlp_http", LogRecordExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_http");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("endpoint")).isEqualTo("http://example:4318/v1/logs");
List headers = configProperties.getStructuredList("headers");
assertThat(headers)
@@ -204,7 +170,10 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
@Test
void create_OtlpGrpcDefaults() {
List closeables = new ArrayList<>();
- OtlpGrpcLogRecordExporter expectedExporter = OtlpGrpcLogRecordExporter.getDefault();
+ OtlpGrpcLogRecordExporter expectedExporter =
+ OtlpGrpcLogRecordExporter.getDefault().toBuilder()
+ .setComponentLoader(capturingComponentLoader) // needed for the toString() check to pass
+ .build();
cleanup.addCloseable(expectedExporter);
LogRecordExporter exporter =
@@ -216,14 +185,10 @@ void create_OtlpGrpcDefaults() {
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
-
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider =
- getComponentProvider("otlp_grpc", LogRecordExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_grpc");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("endpoint")).isNull();
assertThat(configProperties.getStructured("headers")).isNull();
assertThat(configProperties.getString("compression")).isNull();
@@ -244,6 +209,7 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
.addHeader("key2", "value2")
.setTimeout(Duration.ofSeconds(15))
.setCompression("gzip")
+ .setComponentLoader(capturingComponentLoader) // needed for the toString() check to pass
.build();
cleanup.addCloseable(expectedExporter);
@@ -283,12 +249,10 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider =
- getComponentProvider("otlp_grpc", LogRecordExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_grpc");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("endpoint")).isEqualTo("http://example:4317");
List headers = configProperties.getStructuredList("headers");
assertThat(headers)
@@ -327,11 +291,10 @@ void create_OtlpFile() {
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider =
- getComponentProvider("otlp_file/development", LogRecordExporter.class);
- verify(componentProvider).create(configCaptor.capture());
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_file/development");
+ assertThat(configProperties).isNotNull();
}
@Test
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/MetricExporterFactoryTest.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/MetricExporterFactoryTest.java
index d5aa856877d..5fe2da41942 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/MetricExporterFactoryTest.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/MetricExporterFactoryTest.java
@@ -8,9 +8,6 @@
import static io.opentelemetry.sdk.extension.incubator.fileconfig.FileConfigTestUtil.createTempFileWithContent;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
import com.google.common.collect.ImmutableMap;
import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension;
@@ -22,7 +19,6 @@
import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter;
import io.opentelemetry.internal.testing.CleanupExtension;
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
-import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
import io.opentelemetry.sdk.extension.incubator.fileconfig.component.MetricExporterComponentProvider;
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ConsoleExporterModel;
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalOtlpFileMetricExporterModel;
@@ -42,22 +38,12 @@
import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
-import java.util.stream.Collectors;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.api.io.TempDir;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mockito;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.junit.jupiter.MockitoSettings;
-import org.mockito.quality.Strictness;
-
-@ExtendWith(MockitoExtension.class)
-@MockitoSettings(strictness = Strictness.LENIENT)
+
class MetricExporterFactoryTest {
@RegisterExtension
@@ -68,39 +54,24 @@ class MetricExporterFactoryTest {
@RegisterExtension CleanupExtension cleanup = new CleanupExtension();
- private final SpiHelper spiHelper =
- spy(SpiHelper.create(SpanExporterFactoryTest.class.getClassLoader()));
- private final DeclarativeConfigContext context = new DeclarativeConfigContext(spiHelper);
- private List> loadedComponentProviders = Collections.emptyList();
+ private CapturingComponentLoader capturingComponentLoader;
+ private SpiHelper spiHelper;
+ private DeclarativeConfigContext context;
@BeforeEach
- @SuppressWarnings("unchecked")
void setup() {
- when(spiHelper.load(ComponentProvider.class))
- .thenAnswer(
- invocation -> {
- List> result =
- (List>) invocation.callRealMethod();
- loadedComponentProviders =
- result.stream().map(Mockito::spy).collect(Collectors.toList());
- return loadedComponentProviders;
- });
- }
-
- private ComponentProvider> getComponentProvider(String name, Class> type) {
- return loadedComponentProviders.stream()
- .filter(
- componentProvider ->
- componentProvider.getName().equals(name)
- && componentProvider.getType().equals(type))
- .findFirst()
- .orElseThrow(IllegalStateException::new);
+ capturingComponentLoader = new CapturingComponentLoader();
+ spiHelper = SpiHelper.create(capturingComponentLoader);
+ context = new DeclarativeConfigContext(spiHelper);
}
@Test
void create_OtlpHttpDefaults() {
List closeables = new ArrayList<>();
- OtlpHttpMetricExporter expectedExporter = OtlpHttpMetricExporter.getDefault();
+ OtlpHttpMetricExporter expectedExporter =
+ OtlpHttpMetricExporter.getDefault().toBuilder()
+ .setComponentLoader(capturingComponentLoader) // needed for the toString() check to pass
+ .build();
cleanup.addCloseable(expectedExporter);
MetricExporter exporter =
@@ -113,12 +84,10 @@ void create_OtlpHttpDefaults() {
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider =
- getComponentProvider("otlp_http", MetricExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_http");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("protocol")).isNull();
assertThat(configProperties.getString("endpoint")).isNull();
assertThat(configProperties.getStructured("headers")).isNull();
@@ -146,6 +115,7 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
.setDefaultAggregationSelector(
DefaultAggregationSelector.getDefault()
.with(InstrumentType.HISTOGRAM, Aggregation.base2ExponentialBucketHistogram()))
+ .setComponentLoader(capturingComponentLoader) // needed for the toString() check to pass
.build();
cleanup.addCloseable(expectedExporter);
@@ -190,12 +160,10 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider =
- getComponentProvider("otlp_http", MetricExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_http");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("endpoint")).isEqualTo("http://example:4318/v1/metrics");
List headers = configProperties.getStructuredList("headers");
assertThat(headers)
@@ -223,7 +191,10 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
@Test
void create_OtlpGrpcDefaults() {
List closeables = new ArrayList<>();
- OtlpGrpcMetricExporter expectedExporter = OtlpGrpcMetricExporter.getDefault();
+ OtlpGrpcMetricExporter expectedExporter =
+ OtlpGrpcMetricExporter.getDefault().toBuilder()
+ .setComponentLoader(capturingComponentLoader) // needed for the toString() check to pass
+ .build();
cleanup.addCloseable(expectedExporter);
MetricExporter exporter =
@@ -236,12 +207,10 @@ void create_OtlpGrpcDefaults() {
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider =
- getComponentProvider("otlp_grpc", MetricExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_grpc");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("endpoint")).isNull();
assertThat(configProperties.getStructured("headers")).isNull();
assertThat(configProperties.getString("compression")).isNull();
@@ -268,6 +237,7 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
.setDefaultAggregationSelector(
DefaultAggregationSelector.getDefault()
.with(InstrumentType.HISTOGRAM, Aggregation.base2ExponentialBucketHistogram()))
+ .setComponentLoader(capturingComponentLoader) // needed for the toString() check to pass
.build();
cleanup.addCloseable(expectedExporter);
@@ -312,12 +282,10 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider =
- getComponentProvider("otlp_grpc", MetricExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_grpc");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("endpoint")).isEqualTo("http://example:4317");
List headers = configProperties.getStructuredList("headers");
assertThat(headers)
@@ -374,11 +342,10 @@ void create_OtlpFile() {
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider =
- getComponentProvider("otlp_file/development", MetricExporter.class);
- verify(componentProvider).create(configCaptor.capture());
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_file/development");
+ assertThat(configProperties).isNotNull();
}
@Test
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SpanExporterFactoryTest.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SpanExporterFactoryTest.java
index 3bcd13c9731..2896cc55bd3 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SpanExporterFactoryTest.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SpanExporterFactoryTest.java
@@ -8,9 +8,6 @@
import static io.opentelemetry.sdk.extension.incubator.fileconfig.FileConfigTestUtil.createTempFileWithContent;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
import com.google.common.collect.ImmutableMap;
import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension;
@@ -23,7 +20,6 @@
import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter;
import io.opentelemetry.internal.testing.CleanupExtension;
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
-import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
import io.opentelemetry.sdk.extension.incubator.fileconfig.component.SpanExporterComponentProvider;
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ConsoleExporterModel;
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalOtlpFileExporterModel;
@@ -40,22 +36,12 @@
import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
-import java.util.stream.Collectors;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.api.io.TempDir;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mockito;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.junit.jupiter.MockitoSettings;
-import org.mockito.quality.Strictness;
-
-@ExtendWith(MockitoExtension.class)
-@MockitoSettings(strictness = Strictness.LENIENT)
+
class SpanExporterFactoryTest {
@RegisterExtension
@@ -66,39 +52,24 @@ class SpanExporterFactoryTest {
@RegisterExtension CleanupExtension cleanup = new CleanupExtension();
- private final SpiHelper spiHelper =
- spy(SpiHelper.create(SpanExporterFactoryTest.class.getClassLoader()));
- private final DeclarativeConfigContext context = new DeclarativeConfigContext(spiHelper);
- private List> loadedComponentProviders = Collections.emptyList();
+ private CapturingComponentLoader capturingComponentLoader;
+ private SpiHelper spiHelper;
+ private DeclarativeConfigContext context;
@BeforeEach
- @SuppressWarnings("unchecked")
void setup() {
- when(spiHelper.load(ComponentProvider.class))
- .thenAnswer(
- invocation -> {
- List> result =
- (List>) invocation.callRealMethod();
- loadedComponentProviders =
- result.stream().map(Mockito::spy).collect(Collectors.toList());
- return loadedComponentProviders;
- });
- }
-
- private ComponentProvider> getComponentProvider(String name, Class> type) {
- return loadedComponentProviders.stream()
- .filter(
- componentProvider ->
- componentProvider.getName().equals(name)
- && componentProvider.getType().equals(type))
- .findFirst()
- .orElseThrow(IllegalStateException::new);
+ capturingComponentLoader = new CapturingComponentLoader();
+ spiHelper = SpiHelper.create(capturingComponentLoader);
+ context = new DeclarativeConfigContext(spiHelper);
}
@Test
void create_OtlpHttpDefaults() {
List closeables = new ArrayList<>();
- OtlpHttpSpanExporter expectedExporter = OtlpHttpSpanExporter.getDefault();
+ OtlpHttpSpanExporter expectedExporter =
+ OtlpHttpSpanExporter.getDefault().toBuilder()
+ .setComponentLoader(capturingComponentLoader) // needed for the toString() check to pass
+ .build();
cleanup.addCloseable(expectedExporter);
SpanExporter exporter =
@@ -109,11 +80,10 @@ void create_OtlpHttpDefaults() {
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider = getComponentProvider("otlp_http", SpanExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_http");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("protocol")).isNull();
assertThat(configProperties.getString("endpoint")).isNull();
assertThat(configProperties.getStructured("headers")).isNull();
@@ -135,6 +105,7 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
.addHeader("key2", "value2")
.setTimeout(Duration.ofSeconds(15))
.setCompression("gzip")
+ .setComponentLoader(capturingComponentLoader) // needed for the toString() check to pass
.build();
cleanup.addCloseable(expectedExporter);
@@ -174,11 +145,10 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider = getComponentProvider("otlp_http", SpanExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_http");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("endpoint")).isEqualTo("http://example:4318/v1/traces");
List headers = configProperties.getStructuredList("headers");
assertThat(headers)
@@ -203,7 +173,10 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
@Test
void create_OtlpGrpcDefaults() {
List closeables = new ArrayList<>();
- OtlpGrpcSpanExporter expectedExporter = OtlpGrpcSpanExporter.getDefault();
+ OtlpGrpcSpanExporter expectedExporter =
+ OtlpGrpcSpanExporter.getDefault().toBuilder()
+ .setComponentLoader(capturingComponentLoader) // needed for the toString() check to pass
+ .build();
cleanup.addCloseable(expectedExporter);
SpanExporter exporter =
@@ -214,11 +187,10 @@ void create_OtlpGrpcDefaults() {
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider = getComponentProvider("otlp_grpc", SpanExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_grpc");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("endpoint")).isNull();
assertThat(configProperties.getStructured("headers")).isNull();
assertThat(configProperties.getString("compression")).isNull();
@@ -239,6 +211,7 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
.addHeader("key2", "value2")
.setTimeout(Duration.ofSeconds(15))
.setCompression("gzip")
+ .setComponentLoader(capturingComponentLoader) // needed for the toString() check to pass
.build();
cleanup.addCloseable(expectedExporter);
@@ -278,11 +251,10 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider = getComponentProvider("otlp_grpc", SpanExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_grpc");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("endpoint")).isEqualTo("http://example:4317");
List headers = configProperties.getStructuredList("headers");
assertThat(headers)
@@ -334,11 +306,10 @@ void create_ZipkinDefaults() {
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider = getComponentProvider("zipkin", SpanExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("zipkin");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("endpoint")).isNull();
assertThat(configProperties.getLong("timeout")).isNull();
}
@@ -367,11 +338,10 @@ void create_ZipkinConfigured() {
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider = getComponentProvider("zipkin", SpanExporter.class);
- verify(componentProvider).create(configCaptor.capture());
- DeclarativeConfigProperties configProperties = configCaptor.getValue();
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("zipkin");
+ assertThat(configProperties).isNotNull();
assertThat(configProperties.getString("endpoint")).isEqualTo("http://zipkin:9411/v1/v2/spans");
assertThat(configProperties.getLong("timeout")).isEqualTo(15_000);
}
@@ -393,11 +363,10 @@ void create_OtlpFile() {
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
- ArgumentCaptor configCaptor =
- ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
- ComponentProvider> componentProvider =
- getComponentProvider("otlp_file/development", SpanExporter.class);
- verify(componentProvider).create(configCaptor.capture());
+ // Verify the configuration passed to the component provider
+ DeclarativeConfigProperties configProperties =
+ capturingComponentLoader.getCapturedConfig("otlp_file/development");
+ assertThat(configProperties).isNotNull();
}
@Test
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ContainerResourceProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ContainerResourceProvider.java
index a5d3a331003..98c37ed175c 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ContainerResourceProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ContainerResourceProvider.java
@@ -12,9 +12,9 @@
// TODO(jack-berg): This allows DeclarativeConfigurationCreateTest to pass with kitchen-sink.yaml
// example. Delete after resource providers from opentelemetry-java-instrumentation are renamed to
// reflect declarative config naming
-public class ContainerResourceProvider implements ComponentProvider {
+public class ContainerResourceProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return Resource.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/HostResourceProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/HostResourceProvider.java
index bf8d978d9e6..e4472c7eefe 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/HostResourceProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/HostResourceProvider.java
@@ -12,9 +12,9 @@
// TODO(jack-berg): This allows DeclarativeConfigurationCreateTest to pass with kitchen-sink.yaml
// example. Delete after resource providers from opentelemetry-java-instrumentation are renamed to
// reflect declarative config naming
-public class HostResourceProvider implements ComponentProvider {
+public class HostResourceProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return Resource.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/LogRecordExporterComponentProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/LogRecordExporterComponentProvider.java
index f21c1d1bf09..01ddd2811c6 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/LogRecordExporterComponentProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/LogRecordExporterComponentProvider.java
@@ -12,9 +12,9 @@
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import java.util.Collection;
-public class LogRecordExporterComponentProvider implements ComponentProvider {
+public class LogRecordExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return LogRecordExporter.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/LogRecordProcessorComponentProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/LogRecordProcessorComponentProvider.java
index a44cd939c74..e43d2f10627 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/LogRecordProcessorComponentProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/LogRecordProcessorComponentProvider.java
@@ -12,9 +12,9 @@
import io.opentelemetry.sdk.logs.LogRecordProcessor;
import io.opentelemetry.sdk.logs.ReadWriteLogRecord;
-public class LogRecordProcessorComponentProvider implements ComponentProvider {
+public class LogRecordProcessorComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return LogRecordProcessor.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/MetricExporterComponentProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/MetricExporterComponentProvider.java
index 80ea6b556ce..b372282f6c0 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/MetricExporterComponentProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/MetricExporterComponentProvider.java
@@ -15,9 +15,9 @@
import io.opentelemetry.sdk.metrics.export.MetricExporter;
import java.util.Collection;
-public class MetricExporterComponentProvider implements ComponentProvider {
+public class MetricExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return MetricExporter.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/OsResourceProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/OsResourceProvider.java
index 04114fe43bb..4420fc4afee 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/OsResourceProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/OsResourceProvider.java
@@ -12,9 +12,9 @@
// TODO(jack-berg): This allows DeclarativeConfigurationCreateTest to pass with kitchen-sink.yaml
// example. Delete after resource providers from opentelemetry-java-instrumentation are renamed to
// reflect declarative config naming
-public class OsResourceProvider implements ComponentProvider {
+public class OsResourceProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return Resource.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ProcessResourceProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ProcessResourceProvider.java
index 06d02355f34..4df018bc9c3 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ProcessResourceProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ProcessResourceProvider.java
@@ -12,9 +12,9 @@
// TODO(jack-berg): This allows DeclarativeConfigurationCreateTest to pass with kitchen-sink.yaml
// example. Delete after resource providers from opentelemetry-java-instrumentation are renamed to
// reflect declarative config naming
-public class ProcessResourceProvider implements ComponentProvider {
+public class ProcessResourceProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return Resource.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ResourceComponentProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ResourceComponentProvider.java
index b5c9a6fd7a3..4fc9f676eb3 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ResourceComponentProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ResourceComponentProvider.java
@@ -9,9 +9,9 @@
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
import io.opentelemetry.sdk.resources.Resource;
-public class ResourceComponentProvider implements ComponentProvider {
+public class ResourceComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return Resource.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ResourceFirstComponentProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ResourceFirstComponentProvider.java
index 32381134e1b..2c400665a7b 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ResourceFirstComponentProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ResourceFirstComponentProvider.java
@@ -9,9 +9,9 @@
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
import io.opentelemetry.sdk.resources.Resource;
-public class ResourceFirstComponentProvider implements ComponentProvider {
+public class ResourceFirstComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return Resource.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ResourceSecondComponentProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ResourceSecondComponentProvider.java
index e77c6726717..2192ede151d 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ResourceSecondComponentProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/ResourceSecondComponentProvider.java
@@ -9,9 +9,9 @@
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
import io.opentelemetry.sdk.resources.Resource;
-public class ResourceSecondComponentProvider implements ComponentProvider {
+public class ResourceSecondComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return Resource.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/SamplerComponentProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/SamplerComponentProvider.java
index 3264dd91fc7..056b371a4dd 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/SamplerComponentProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/SamplerComponentProvider.java
@@ -15,9 +15,9 @@
import io.opentelemetry.sdk.trace.samplers.SamplingResult;
import java.util.List;
-public class SamplerComponentProvider implements ComponentProvider {
+public class SamplerComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return Sampler.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/SpanExporterComponentProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/SpanExporterComponentProvider.java
index ddaca3ca4b9..00415e6b8c3 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/SpanExporterComponentProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/SpanExporterComponentProvider.java
@@ -12,9 +12,9 @@
import io.opentelemetry.sdk.trace.export.SpanExporter;
import java.util.Collection;
-public class SpanExporterComponentProvider implements ComponentProvider {
+public class SpanExporterComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return SpanExporter.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/SpanProcessorComponentProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/SpanProcessorComponentProvider.java
index 3a1ddf9b13a..a82d99aa1ec 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/SpanProcessorComponentProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/SpanProcessorComponentProvider.java
@@ -13,9 +13,9 @@
import io.opentelemetry.sdk.trace.ReadableSpan;
import io.opentelemetry.sdk.trace.SpanProcessor;
-public class SpanProcessorComponentProvider implements ComponentProvider {
+public class SpanProcessorComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return SpanProcessor.class;
}
diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/TextMapPropagatorComponentProvider.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/TextMapPropagatorComponentProvider.java
index 9c8e4e5ebbf..f1a11ee7ec4 100644
--- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/TextMapPropagatorComponentProvider.java
+++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/component/TextMapPropagatorComponentProvider.java
@@ -15,9 +15,9 @@
import java.util.Collections;
import javax.annotation.Nullable;
-public class TextMapPropagatorComponentProvider implements ComponentProvider {
+public class TextMapPropagatorComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return TextMapPropagator.class;
}
diff --git a/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/internal/JaegerRemoteSamplerComponentProvider.java b/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/internal/JaegerRemoteSamplerComponentProvider.java
index fd89f42cae9..1391b01fdfa 100644
--- a/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/internal/JaegerRemoteSamplerComponentProvider.java
+++ b/sdk-extensions/jaeger-remote-sampler/src/main/java/io/opentelemetry/sdk/extension/trace/jaeger/sampler/internal/JaegerRemoteSamplerComponentProvider.java
@@ -19,9 +19,9 @@
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
-public class JaegerRemoteSamplerComponentProvider implements ComponentProvider {
+public class JaegerRemoteSamplerComponentProvider implements ComponentProvider {
@Override
- public Class getType() {
+ public Class> getType() {
return Sampler.class;
}