From 27e6866b82bd1afe6102c1b48125cf4f3a445a4f Mon Sep 17 00:00:00 2001 From: Jack Berg Date: Thu, 1 Jun 2023 13:04:43 -0500 Subject: [PATCH] Copy ConfigProperties, ConfigurationException to opentelemetry-sdk-common --- .../opentelemetry-sdk-common.txt | 32 ++- ...emetry-sdk-extension-autoconfigure-spi.txt | 4 +- .../OtlpLogRecordExporterProvider.java | 2 +- .../internal/OtlpMetricExporterProvider.java | 2 +- .../internal/OtlpSpanExporterProvider.java | 2 +- .../OtlpLogRecordExporterProviderTest.java | 2 +- .../OtlpMetricExporterProviderTest.java | 2 +- .../OtlpSpanExporterProviderTest.java | 2 +- .../internal/otlp/OtlpConfigUtil.java | 2 +- .../internal/otlp/OtlpConfigUtilTest.java | 2 +- .../autoconfigure/spi/ConfigProperties.java | 175 +++------------ .../spi/ConfigurationException.java | 7 +- .../spi/internal/DefaultConfigProperties.java | 5 +- .../spi/internal/ConfigPropertiesTest.java | 2 +- ...AutoConfiguredOpenTelemetrySdkBuilder.java | 2 +- .../LogRecordExporterConfiguration.java | 2 +- .../MeterProviderConfiguration.java | 2 +- .../MetricExporterConfiguration.java | 2 +- .../PropagatorConfiguration.java | 2 +- .../autoconfigure/ResourceConfiguration.java | 2 +- .../SpanExporterConfiguration.java | 2 +- .../TracerProviderConfiguration.java | 2 +- .../AutoConfiguredOpenTelemetrySdkTest.java | 2 +- .../LogRecordExporterConfigurationTest.java | 2 +- .../MetricExporterConfigurationTest.java | 2 +- .../PropagatorConfigurationTest.java | 2 +- .../SpanExporterConfigurationTest.java | 2 +- .../TracerProviderConfigurationTest.java | 2 +- .../sdk/autoconfigure/ConfigErrorTest.java | 2 +- .../ConfigurableLogRecordExporterTest.java | 2 +- .../ConfigurableMetricExporterTest.java | 2 +- .../ConfigurableSpanExporterTest.java | 2 +- .../LogRecordExporterConfigurationTest.java | 2 +- .../MetricExporterConfigurationTest.java | 2 +- .../SpanExporterConfigurationTest.java | 2 +- .../TracerProviderConfigurationTest.java | 2 +- .../metric/viewconfig/ViewConfig.java | 2 +- .../viewconfig/ViewConfigCustomizer.java | 2 +- .../metric/viewconfig/ViewConfigTest.java | 2 +- .../sdk/common/config/ConfigProperties.java | 207 ++++++++++++++++++ .../common/config/ConfigurationException.java | 22 ++ 41 files changed, 333 insertions(+), 187 deletions(-) create mode 100644 sdk/common/src/main/java/io/opentelemetry/sdk/common/config/ConfigProperties.java create mode 100644 sdk/common/src/main/java/io/opentelemetry/sdk/common/config/ConfigurationException.java diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-common.txt b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-common.txt index df26146497b..6fcecbb3a0c 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-common.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-common.txt @@ -1,2 +1,32 @@ Comparing source compatibility of against -No changes. \ No newline at end of file ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.sdk.common.config.ConfigProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Boolean getBoolean(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) boolean getBoolean(java.lang.String, boolean) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Double getDouble(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) double getDouble(java.lang.String, double) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.time.Duration getDuration(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.time.Duration getDuration(java.lang.String, java.time.Duration) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Integer getInt(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) int getInt(java.lang.String, int) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.util.List getList(java.lang.String) + +++ NEW METHOD: PUBLIC(+) java.util.List getList(java.lang.String, java.util.List) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Long getLong(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) long getLong(java.lang.String, long) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.util.Map getMap(java.lang.String) + +++ NEW METHOD: PUBLIC(+) java.util.Map getMap(java.lang.String, java.util.Map) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getString(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getString(java.lang.String, java.lang.String) ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.opentelemetry.sdk.common.config.ConfigurationException (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.RuntimeException + +++ NEW CONSTRUCTOR: PUBLIC(+) ConfigurationException(java.lang.String) + +++ NEW CONSTRUCTOR: PUBLIC(+) ConfigurationException(java.lang.String, java.lang.Throwable) 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 df26146497b..d11b7235634 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 against -No changes. \ No newline at end of file +=== UNCHANGED CLASS: PUBLIC FINAL io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException (compatible) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW ANNOTATION: java.lang.Deprecated 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 008b49c3418..d2f729b73f9 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 @@ -16,8 +16,8 @@ import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter; import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.logs.ConfigurableLogRecordExporterProvider; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.logs.export.LogRecordExporter; /** 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 5b84a9ea3d1..047dd67cf93 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 @@ -16,8 +16,8 @@ import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter; import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.metrics.ConfigurableMetricExporterProvider; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.metrics.export.MetricExporter; /** 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 89caa922785..008c14a806d 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 @@ -16,8 +16,8 @@ import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter; import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSpanExporterProvider; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.trace.export.SpanExporter; /** 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 d96a5b4d6dc..4609d65a0d8 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 @@ -18,8 +18,8 @@ import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder; import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter; import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.logs.export.LogRecordExporter; import java.io.IOException; import java.nio.file.Files; 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 bc898af7f99..18ce38b400c 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 @@ -18,8 +18,8 @@ import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder; import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter; import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.metrics.export.MetricExporter; import java.io.IOException; import java.nio.file.Files; 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 0ae50db5a9e..4fe6602a3bf 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 @@ -18,8 +18,8 @@ import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder; import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter; import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.trace.export.SpanExporter; import java.io.IOException; import java.nio.file.Files; diff --git a/exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/OtlpConfigUtil.java b/exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/OtlpConfigUtil.java index 90c5c70b5e6..fd5ed152a77 100644 --- a/exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/OtlpConfigUtil.java +++ b/exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/OtlpConfigUtil.java @@ -9,7 +9,7 @@ import io.opentelemetry.exporter.internal.retry.RetryPolicy; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.metrics.Aggregation; import io.opentelemetry.sdk.metrics.InstrumentType; import io.opentelemetry.sdk.metrics.data.AggregationTemporality; diff --git a/exporters/otlp/common/src/test/java/io/opentelemetry/exporter/internal/otlp/OtlpConfigUtilTest.java b/exporters/otlp/common/src/test/java/io/opentelemetry/exporter/internal/otlp/OtlpConfigUtilTest.java index 69e1a45bbcf..d076e1cefc0 100644 --- a/exporters/otlp/common/src/test/java/io/opentelemetry/exporter/internal/otlp/OtlpConfigUtilTest.java +++ b/exporters/otlp/common/src/test/java/io/opentelemetry/exporter/internal/otlp/OtlpConfigUtilTest.java @@ -15,8 +15,8 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import com.google.common.collect.ImmutableMap; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.metrics.Aggregation; import io.opentelemetry.sdk.metrics.InstrumentType; import io.opentelemetry.sdk.metrics.data.AggregationTemporality; 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 4d03ca108ad..6833e500f96 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 @@ -5,203 +5,82 @@ package io.opentelemetry.sdk.autoconfigure.spi; -import static io.opentelemetry.api.internal.ConfigUtil.defaultIfNull; - import java.time.Duration; import java.util.List; import java.util.Map; import javax.annotation.Nullable; /** Properties used for auto-configuration of the OpenTelemetry SDK components. */ -public interface ConfigProperties { - - /** - * Returns a string-valued configuration property. - * - * @return null if the property has not been configured. - * @throws ConfigurationException if the property is not a valid string. - */ +public interface ConfigProperties extends io.opentelemetry.sdk.common.config.ConfigProperties { + + @Override @Nullable String getString(String name); - /** - * Returns a string-valued configuration property. - * - * @return a string-valued configuration property or {@code defaultValue} if a property with - * {@code name} has not been configured. - * @throws ConfigurationException if the property is not a valid string. - * @since 1.15.0 - */ + @Override default String getString(String name, String defaultValue) { - return defaultIfNull(getString(name), defaultValue); + return io.opentelemetry.sdk.common.config.ConfigProperties.super.getString(name, defaultValue); } - /** - * Returns a boolean-valued configuration property. Implementations should use the same rules as - * {@link Boolean#parseBoolean(String)} for handling the values. - * - * @return null if the property has not been configured. - * @throws ConfigurationException if the property is not a valid boolean. - */ + @Override @Nullable Boolean getBoolean(String name); - /** - * Returns a boolean-valued configuration property. - * - * @return a Boolean-valued configuration property or {@code defaultValue} if a property with - * {@code name} has not been configured. - * @throws ConfigurationException if the property is not a valid string. - * @since 1.15.0 - */ + @Override default boolean getBoolean(String name, boolean defaultValue) { - return defaultIfNull(getBoolean(name), defaultValue); + return io.opentelemetry.sdk.common.config.ConfigProperties.super.getBoolean(name, defaultValue); } - /** - * Returns an Integer-valued configuration property. - * - * @return null if the property has not been configured. - * @throws ConfigurationException if the property is not a valid integer. - */ + @Override @Nullable Integer getInt(String name); - /** - * Returns an Integer-valued configuration property. - * - * @return an Integer-valued configuration property or {@code defaultValue} if a property with - * {@code name} has not been configured. - * @throws ConfigurationException if the property is not a valid string. - * @since 1.15.0 - */ + @Override default int getInt(String name, int defaultValue) { - return defaultIfNull(getInt(name), defaultValue); + return io.opentelemetry.sdk.common.config.ConfigProperties.super.getInt(name, defaultValue); } - /** - * Returns a Long-valued configuration property. - * - * @return null if the property has not been configured. - * @throws ConfigurationException if the property is not a valid long. - */ + @Override @Nullable Long getLong(String name); - /** - * Returns a Long-valued configuration property. - * - * @return a Long-valued configuration property or {@code defaultValue} if a property with {@code - * name} has not been configured. - * @throws ConfigurationException if the property is not a valid string. - * @since 1.15.0 - */ + @Override default long getLong(String name, long defaultValue) { - return defaultIfNull(getLong(name), defaultValue); + return io.opentelemetry.sdk.common.config.ConfigProperties.super.getLong(name, defaultValue); } - /** - * Returns a double-valued configuration property. - * - * @return null if the property has not been configured. - * @throws ConfigurationException if the property is not a valid double. - */ + @Override @Nullable Double getDouble(String name); - /** - * Returns a double-valued configuration property. - * - * @return a Double-valued configuration property or {@code defaultValue} if a property with - * {@code name} has not been configured. - * @throws ConfigurationException if the property is not a valid string. - * @since 1.15.0 - */ + @Override default double getDouble(String name, double defaultValue) { - return defaultIfNull(getDouble(name), defaultValue); + return io.opentelemetry.sdk.common.config.ConfigProperties.super.getDouble(name, defaultValue); } - /** - * Returns a duration property from the map, or {@code null} if it cannot be found or it has a - * wrong type. - * - *

Durations can be of the form "{number}{unit}", where unit is one of: - * - *

- * - *

If no unit is specified, milliseconds is the assumed duration unit. - * - * @param name The property name - * @return the {@link Duration} value of the property, {@code null} if the property cannot be - * found. - * @throws ConfigurationException for malformed duration strings. - */ + @Override @Nullable Duration getDuration(String name); - /** - * Returns a Duration value configuration property. - * - * @see ConfigProperties#getDuration(String name) - * @return a Double-valued configuration property or {@code defaultValue} if a property with name - * {@code name} has not been configured. - * @throws ConfigurationException if the property is not a valid string. - * @since 1.15.0 - */ + @Override default Duration getDuration(String name, Duration defaultValue) { - return defaultIfNull(getDuration(name), defaultValue); + return io.opentelemetry.sdk.common.config.ConfigProperties.super.getDuration( + name, defaultValue); } - /** - * Returns a list-valued configuration property. The format of the original value must be - * comma-separated. Empty values will be removed. - * - * @return an empty list if the property has not been configured. - * @throws ConfigurationException if the property is not a valid comma-separated list. - */ + @Override List getList(String name); - /** - * Returns a List value configuration property. - * - * @see ConfigProperties#getList(String name) - * @return a List configuration property or {@code defaultValue} if a property with {@code name} - * has not been configured. - * @throws ConfigurationException if the property is not a valid string. - * @since 1.15.0 - */ + @Override default List getList(String name, List defaultValue) { - List value = getList(name); - return value.isEmpty() ? defaultValue : value; + return io.opentelemetry.sdk.common.config.ConfigProperties.super.getList(name, defaultValue); } - /** - * Returns a Map configuration property. The format of the original value must be comma-separated - * for each key, with an '=' separating the key and value. For instance, - * service.name=Greatest Service,host.name=localhost Empty values will be removed. - * - * @return an empty map if the property has not been configured. - * @throws ConfigurationException for malformed map strings. - */ + @Override Map getMap(String name); - /** - * Returns a Map value configuration property. - * - * @see ConfigProperties#getMap(String name) - * @return a Double-valued configuration property or {@code defaultValue} if a property with - * {@code name} has not been configured. - * @throws ConfigurationException if the property is not a valid string. - * @since 1.15.0 - */ + @Override default Map getMap(String name, Map defaultValue) { - Map value = getMap(name); - return value.isEmpty() ? defaultValue : value; + return io.opentelemetry.sdk.common.config.ConfigProperties.super.getMap(name, defaultValue); } } diff --git a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigurationException.java b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigurationException.java index 66ee3a08197..60b2acd927e 100644 --- a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigurationException.java +++ b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ConfigurationException.java @@ -5,7 +5,12 @@ package io.opentelemetry.sdk.autoconfigure.spi; -/** An exception that is thrown if the user-provided configuration is invalid. */ +/** + * An exception that is thrown if the user-provided configuration is invalid. + * + * @deprecated Use {@link io.opentelemetry.sdk.common.config.ConfigurationException} + */ +@Deprecated public final class ConfigurationException extends RuntimeException { private static final long serialVersionUID = 4717640118051490483L; 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 c548f7586ca..5e47780da67 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.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; +import io.opentelemetry.sdk.common.config.ConfigurationException; import java.time.Duration; import java.util.AbstractMap; import java.util.Arrays; @@ -262,7 +262,8 @@ private static TimeUnit getDurationUnit(String unitString) { case "d": return TimeUnit.DAYS; default: - throw new ConfigurationException("Invalid duration string, found: " + unitString); + throw new io.opentelemetry.sdk.common.config.ConfigurationException( + "Invalid duration string, found: " + unitString); } } 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 c903d509f97..997ccaf00b4 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 @@ -12,7 +12,7 @@ import static org.assertj.core.api.Assertions.entry; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; +import io.opentelemetry.sdk.common.config.ConfigurationException; import java.time.Duration; import java.util.Arrays; import java.util.Collections; 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 767ecf39224..972245cb3ce 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 @@ -16,8 +16,8 @@ import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer; import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.logs.SdkLoggerProvider; import io.opentelemetry.sdk.logs.SdkLoggerProviderBuilder; import io.opentelemetry.sdk.logs.export.LogRecordExporter; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfiguration.java index da3edc42122..81e73128097 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfiguration.java @@ -6,9 +6,9 @@ package io.opentelemetry.sdk.autoconfigure; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.logs.ConfigurableLogRecordExporterProvider; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.logs.export.LogRecordExporter; import java.io.Closeable; import java.util.Collections; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/MeterProviderConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/MeterProviderConfiguration.java index aaab88488f5..244f233f0b0 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/MeterProviderConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/MeterProviderConfiguration.java @@ -6,8 +6,8 @@ package io.opentelemetry.sdk.autoconfigure; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder; import io.opentelemetry.sdk.metrics.export.MetricExporter; import io.opentelemetry.sdk.metrics.export.MetricReader; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfiguration.java index b7eacfc0644..afe508f0a9f 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfiguration.java @@ -6,8 +6,8 @@ package io.opentelemetry.sdk.autoconfigure; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.metrics.ConfigurableMetricExporterProvider; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.metrics.export.MetricExporter; import io.opentelemetry.sdk.metrics.export.MetricReader; import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/PropagatorConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/PropagatorConfiguration.java index ad909019d06..54d2ace7e7b 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/PropagatorConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/PropagatorConfiguration.java @@ -11,7 +11,7 @@ import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurablePropagatorProvider; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; +import io.opentelemetry.sdk.common.config.ConfigurationException; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.List; 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 3dca2c10fe1..be40478f677 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,9 +8,9 @@ import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider; import io.opentelemetry.sdk.autoconfigure.spi.internal.ConditionalResourceProvider; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.resources.Resource; import io.opentelemetry.sdk.resources.ResourceBuilder; import io.opentelemetry.semconv.resource.attributes.ResourceAttributes; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfiguration.java index c1dd0824ad6..2232a593952 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfiguration.java @@ -6,9 +6,9 @@ package io.opentelemetry.sdk.autoconfigure; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSpanExporterProvider; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.trace.export.SpanExporter; import java.io.Closeable; import java.util.Collections; diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfiguration.java index ec476feea4a..599ee235106 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfiguration.java @@ -7,8 +7,8 @@ import io.opentelemetry.api.metrics.MeterProvider; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSamplerProvider; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.trace.SdkTracerProviderBuilder; import io.opentelemetry.sdk.trace.SpanLimits; import io.opentelemetry.sdk.trace.SpanLimitsBuilder; 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 9e4c6c39305..81ef8e60fb9 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 @@ -34,8 +34,8 @@ import io.opentelemetry.internal.testing.slf4j.SuppressLogger; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.common.CompletableResultCode; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.logs.LogRecordProcessor; import io.opentelemetry.sdk.logs.SdkLoggerProvider; import io.opentelemetry.sdk.logs.SdkLoggerProviderBuilder; diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfigurationTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfigurationTest.java index d1533f034c7..6b1966e8eb9 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfigurationTest.java @@ -11,8 +11,8 @@ import com.google.common.collect.ImmutableMap; import io.opentelemetry.internal.testing.CleanupExtension; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.logs.export.LogRecordExporter; import java.io.Closeable; import java.util.ArrayList; diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfigurationTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfigurationTest.java index 3b67873a224..e5caf1978f8 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfigurationTest.java @@ -12,8 +12,8 @@ import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.metrics.export.MetricExporter; import java.io.Closeable; import java.util.ArrayList; diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/PropagatorConfigurationTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/PropagatorConfigurationTest.java index f8b66b75d49..161c420560b 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/PropagatorConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/PropagatorConfigurationTest.java @@ -9,8 +9,8 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import io.opentelemetry.context.propagation.ContextPropagators; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import java.util.Collections; import org.junit.jupiter.api.Test; diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfigurationTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfigurationTest.java index 6ee7992464d..c506205deac 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfigurationTest.java @@ -8,8 +8,8 @@ import static io.opentelemetry.sdk.autoconfigure.SpanExporterConfiguration.configureExporter; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.trace.export.SpanExporter; import java.util.Collections; import org.junit.jupiter.api.Test; diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfigurationTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfigurationTest.java index 3c4f41f7323..7b734025766 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfigurationTest.java @@ -13,9 +13,9 @@ import io.opentelemetry.api.metrics.MeterProvider; import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; import io.opentelemetry.sdk.common.CompletableResultCode; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.trace.SdkTracerProvider; import io.opentelemetry.sdk.trace.SdkTracerProviderBuilder; import io.opentelemetry.sdk.trace.SpanLimits; diff --git a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigErrorTest.java b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigErrorTest.java index a1bf8dc10b2..94acc9d16f4 100644 --- a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigErrorTest.java +++ b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigErrorTest.java @@ -13,7 +13,7 @@ import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.internal.testing.slf4j.SuppressLogger; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; +import io.opentelemetry.sdk.common.config.ConfigurationException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; diff --git a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigurableLogRecordExporterTest.java b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigurableLogRecordExporterTest.java index bdc64e0ac81..74a2b2fa676 100644 --- a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigurableLogRecordExporterTest.java +++ b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigurableLogRecordExporterTest.java @@ -12,8 +12,8 @@ import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.sdk.autoconfigure.provider.TestConfigurableLogRecordExporterProvider; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.logs.export.LogRecordExporter; import java.io.Closeable; import java.net.URL; diff --git a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigurableMetricExporterTest.java b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigurableMetricExporterTest.java index ece4b561e61..13b559e2d50 100644 --- a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigurableMetricExporterTest.java +++ b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigurableMetricExporterTest.java @@ -14,8 +14,8 @@ import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.sdk.autoconfigure.provider.TestConfigurableMetricExporterProvider; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.metrics.export.MetricExporter; import io.opentelemetry.sdk.metrics.export.MetricReader; import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader; diff --git a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigurableSpanExporterTest.java b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigurableSpanExporterTest.java index 0cfc0c2c54b..aedba9ae16f 100644 --- a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigurableSpanExporterTest.java +++ b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/ConfigurableSpanExporterTest.java @@ -16,8 +16,8 @@ import io.opentelemetry.internal.testing.CleanupExtension; import io.opentelemetry.sdk.autoconfigure.provider.TestConfigurableSpanExporterProvider; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.trace.SpanProcessor; import io.opentelemetry.sdk.trace.export.BatchSpanProcessor; import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; diff --git a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfigurationTest.java b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfigurationTest.java index 07f8cd3f6e2..8735db837ee 100644 --- a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfigurationTest.java @@ -12,8 +12,8 @@ import io.opentelemetry.exporter.logging.SystemOutLogRecordExporter; import io.opentelemetry.exporter.logging.otlp.OtlpJsonLoggingLogRecordExporter; import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.logs.export.LogRecordExporter; import java.util.Collections; import org.junit.jupiter.api.Test; diff --git a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfigurationTest.java b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfigurationTest.java index 5f6a7721459..4064912da86 100644 --- a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfigurationTest.java @@ -18,9 +18,9 @@ import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.metrics.ConfigurableMetricExporterProvider; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.metrics.export.MetricExporter; import io.opentelemetry.sdk.metrics.export.MetricReader; import java.io.Closeable; diff --git a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfigurationTest.java b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfigurationTest.java index 01724e7b79d..0fa155bd508 100644 --- a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfigurationTest.java @@ -15,8 +15,8 @@ import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter; import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.trace.export.SpanExporter; import java.util.Collections; import org.junit.jupiter.api.Test; diff --git a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfigurationTest.java b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfigurationTest.java index 7ae855b9d99..62c52cd639d 100644 --- a/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfigurationTest.java @@ -11,8 +11,8 @@ import com.google.common.collect.ImmutableMap; import io.opentelemetry.sdk.autoconfigure.provider.TestConfigurableSamplerProvider; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.extension.trace.jaeger.sampler.JaegerRemoteSampler; import io.opentelemetry.sdk.trace.samplers.Sampler; import java.net.URL; diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfig.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfig.java index 9c08770d072..b29af22a3b8 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfig.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfig.java @@ -8,7 +8,7 @@ import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.toList; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.metrics.Aggregation; import io.opentelemetry.sdk.metrics.InstrumentSelector; import io.opentelemetry.sdk.metrics.InstrumentSelectorBuilder; diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigCustomizer.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigCustomizer.java index 4c3acfe30d0..0bcb19aebb9 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigCustomizer.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigCustomizer.java @@ -8,7 +8,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer; import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder; import java.io.FileInputStream; import java.io.FileNotFoundException; diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigTest.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigTest.java index a62204e1180..c34f93f774e 100644 --- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigTest.java +++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigTest.java @@ -13,7 +13,7 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; import io.opentelemetry.context.Context; -import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; +import io.opentelemetry.sdk.common.config.ConfigurationException; import io.opentelemetry.sdk.metrics.Aggregation; import io.opentelemetry.sdk.metrics.InstrumentSelector; import io.opentelemetry.sdk.metrics.InstrumentType; diff --git a/sdk/common/src/main/java/io/opentelemetry/sdk/common/config/ConfigProperties.java b/sdk/common/src/main/java/io/opentelemetry/sdk/common/config/ConfigProperties.java new file mode 100644 index 00000000000..a54ceb920e8 --- /dev/null +++ b/sdk/common/src/main/java/io/opentelemetry/sdk/common/config/ConfigProperties.java @@ -0,0 +1,207 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.sdk.common.config; + +import static io.opentelemetry.api.internal.ConfigUtil.defaultIfNull; + +import java.time.Duration; +import java.util.List; +import java.util.Map; +import javax.annotation.Nullable; + +/** Properties used for configuration of the OpenTelemetry SDK components. */ +public interface ConfigProperties { + + /** + * Returns a string-valued configuration property. + * + * @return null if the property has not been configured. + * @throws ConfigurationException if the property is not a valid string. + */ + @Nullable + String getString(String name); + + /** + * Returns a string-valued configuration property. + * + * @return a string-valued configuration property or {@code defaultValue} if a property with + * {@code name} has not been configured. + * @throws ConfigurationException if the property is not a valid string. + * @since 1.15.0 + */ + default String getString(String name, String defaultValue) { + return defaultIfNull(getString(name), defaultValue); + } + + /** + * Returns a boolean-valued configuration property. Implementations should use the same rules as + * {@link Boolean#parseBoolean(String)} for handling the values. + * + * @return null if the property has not been configured. + * @throws ConfigurationException if the property is not a valid boolean. + */ + @Nullable + Boolean getBoolean(String name); + + /** + * Returns a boolean-valued configuration property. + * + * @return a Boolean-valued configuration property or {@code defaultValue} if a property with + * {@code name} has not been configured. + * @throws ConfigurationException if the property is not a valid string. + * @since 1.15.0 + */ + default boolean getBoolean(String name, boolean defaultValue) { + return defaultIfNull(getBoolean(name), defaultValue); + } + + /** + * Returns an Integer-valued configuration property. + * + * @return null if the property has not been configured. + * @throws ConfigurationException if the property is not a valid integer. + */ + @Nullable + Integer getInt(String name); + + /** + * Returns an Integer-valued configuration property. + * + * @return an Integer-valued configuration property or {@code defaultValue} if a property with + * {@code name} has not been configured. + * @throws ConfigurationException if the property is not a valid string. + * @since 1.15.0 + */ + default int getInt(String name, int defaultValue) { + return defaultIfNull(getInt(name), defaultValue); + } + + /** + * Returns a Long-valued configuration property. + * + * @return null if the property has not been configured. + * @throws ConfigurationException if the property is not a valid long. + */ + @Nullable + Long getLong(String name); + + /** + * Returns a Long-valued configuration property. + * + * @return a Long-valued configuration property or {@code defaultValue} if a property with {@code + * name} has not been configured. + * @throws ConfigurationException if the property is not a valid string. + * @since 1.15.0 + */ + default long getLong(String name, long defaultValue) { + return defaultIfNull(getLong(name), defaultValue); + } + + /** + * Returns a double-valued configuration property. + * + * @return null if the property has not been configured. + * @throws ConfigurationException if the property is not a valid double. + */ + @Nullable + Double getDouble(String name); + + /** + * Returns a double-valued configuration property. + * + * @return a Double-valued configuration property or {@code defaultValue} if a property with + * {@code name} has not been configured. + * @throws ConfigurationException if the property is not a valid string. + * @since 1.15.0 + */ + default double getDouble(String name, double defaultValue) { + return defaultIfNull(getDouble(name), defaultValue); + } + + /** + * Returns a duration property from the map, or {@code null} if it cannot be found or it has a + * wrong type. + * + *

Durations can be of the form "{number}{unit}", where unit is one of: + * + *

+ * + *

If no unit is specified, milliseconds is the assumed duration unit. + * + * @param name The property name + * @return the {@link Duration} value of the property, {@code null} if the property cannot be + * found. + * @throws ConfigurationException for malformed duration strings. + */ + @Nullable + Duration getDuration(String name); + + /** + * Returns a Duration value configuration property. + * + * @see ConfigProperties#getDuration(String name) + * @return a Double-valued configuration property or {@code defaultValue} if a property with name + * {@code name} has not been configured. + * @throws ConfigurationException if the property is not a valid string. + * @since 1.15.0 + */ + default Duration getDuration(String name, Duration defaultValue) { + return defaultIfNull(getDuration(name), defaultValue); + } + + /** + * Returns a list-valued configuration property. The format of the original value must be + * comma-separated. Empty values will be removed. + * + * @return an empty list if the property has not been configured. + * @throws ConfigurationException if the property is not a valid comma-separated list. + */ + List getList(String name); + + /** + * Returns a List value configuration property. + * + * @see ConfigProperties#getList(String name) + * @return a List configuration property or {@code defaultValue} if a property with {@code name} + * has not been configured. + * @throws ConfigurationException if the property is not a valid string. + * @since 1.15.0 + */ + default List getList(String name, List defaultValue) { + List value = getList(name); + return value.isEmpty() ? defaultValue : value; + } + + /** + * Returns a Map configuration property. The format of the original value must be comma-separated + * for each key, with an '=' separating the key and value. For instance, + * service.name=Greatest Service,host.name=localhost Empty values will be removed. + * + * @return an empty map if the property has not been configured. + * @throws ConfigurationException for malformed map strings. + */ + Map getMap(String name); + + /** + * Returns a Map value configuration property. + * + * @see ConfigProperties#getMap(String name) + * @return a Double-valued configuration property or {@code defaultValue} if a property with + * {@code name} has not been configured. + * @throws ConfigurationException if the property is not a valid string. + * @since 1.15.0 + */ + default Map getMap(String name, Map defaultValue) { + Map value = getMap(name); + return value.isEmpty() ? defaultValue : value; + } +} diff --git a/sdk/common/src/main/java/io/opentelemetry/sdk/common/config/ConfigurationException.java b/sdk/common/src/main/java/io/opentelemetry/sdk/common/config/ConfigurationException.java new file mode 100644 index 00000000000..d2f59892287 --- /dev/null +++ b/sdk/common/src/main/java/io/opentelemetry/sdk/common/config/ConfigurationException.java @@ -0,0 +1,22 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.sdk.common.config; + +/** An exception that is thrown if the user-provided configuration is invalid. */ +public final class ConfigurationException extends RuntimeException { + + private static final long serialVersionUID = -6548754499741039091L; + + /** Create a new configuration exception with specified {@code message} and without a cause. */ + public ConfigurationException(String message) { + super(message); + } + + /** Create a new configuration exception with specified {@code message} and {@code cause}. */ + public ConfigurationException(String message, Throwable cause) { + super(message, cause); + } +}