diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/ConfigProvider.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/ConfigProvider.java index 62cc044e653..70717e76e40 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/ConfigProvider.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/ConfigProvider.java @@ -5,7 +5,6 @@ package io.opentelemetry.api.incubator.config; -import javax.annotation.Nullable; import javax.annotation.concurrent.ThreadSafe; /** @@ -23,15 +22,14 @@ public interface ConfigProvider { /** * Returns the {@link DeclarativeConfigProperties} corresponding to instrumentation - * config, or {@code null} if unavailable. + * config, or {@link DeclarativeConfigProperties#empty()} if unavailable. * * @return the instrumentation {@link DeclarativeConfigProperties} */ - @Nullable DeclarativeConfigProperties getInstrumentationConfig(); /** Returns a no-op {@link ConfigProvider}. */ static ConfigProvider noop() { - return () -> null; + return DeclarativeConfigProperties::empty; } } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/InstrumentationConfigUtil.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/InstrumentationConfigUtil.java index 1a37ace2dca..f0ee7090710 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/InstrumentationConfigUtil.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/config/InstrumentationConfigUtil.java @@ -136,9 +136,6 @@ public static T getOrNull( Function accessor, String... segments) { DeclarativeConfigProperties config = configProvider.getInstrumentationConfig(); - if (config == null) { - return null; - } for (String segment : segments) { config = config.getStructured(segment); if (config == null) { diff --git a/api/incubator/src/testConvertToModel/java/io/opentelemetry/api/incubator/InstrumentationConfigUtilTest.java b/api/incubator/src/testConvertToModel/java/io/opentelemetry/api/incubator/InstrumentationConfigUtilTest.java index 56e1ad55922..f4c3ca3353a 100644 --- a/api/incubator/src/testConvertToModel/java/io/opentelemetry/api/incubator/InstrumentationConfigUtilTest.java +++ b/api/incubator/src/testConvertToModel/java/io/opentelemetry/api/incubator/InstrumentationConfigUtilTest.java @@ -62,12 +62,12 @@ void toMap_RoundTrip() throws JsonProcessingException { @Test void getInstrumentationConfigModel_UnsetConfig() { - ConfigProvider configProvider = () -> null; + ConfigProvider configProvider = DeclarativeConfigProperties::empty; assertThat( InstrumentationConfigUtil.getInstrumentationConfigModel( configProvider, "my_instrumentation_library", MAPPER, Model.class)) - .isEqualTo(null); + .isNull(); } @Test diff --git a/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java b/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java index 09038b40e6d..88bdb322b26 100644 --- a/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java @@ -20,7 +20,6 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.incubator.ExtendedOpenTelemetry; import io.opentelemetry.api.incubator.config.ConfigProvider; -import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.api.incubator.config.InstrumentationConfigUtil; import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.exporter.logging.LoggingSpanExporter; @@ -40,7 +39,6 @@ import java.nio.file.Path; import java.util.Arrays; import java.util.Collections; -import java.util.Optional; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -160,12 +158,10 @@ void configFile_setComponentLoader() { cleanup.addCloseable(autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk()); assertThat( - Optional.ofNullable( - ((ExtendedOpenTelemetry) autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk()) - .getConfigProvider() - .getInstrumentationConfig()) - .map(DeclarativeConfigProperties::getComponentLoader) - .orElse(null)) + ((ExtendedOpenTelemetry) autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk()) + .getConfigProvider() + .getInstrumentationConfig() + .getComponentLoader()) .isSameAs(componentLoader); } @@ -221,9 +217,6 @@ void configFile_ConfigProvider() { ConfigProvider globalConfigProvider = ((ExtendedOpenTelemetry) GlobalOpenTelemetry.get()).getConfigProvider(); - DeclarativeConfigProperties instrumentationConfig = - globalConfigProvider.getInstrumentationConfig(); - assertThat(instrumentationConfig).isNotNull(); // Extract instrumentation config from ConfigProvider assertThat(InstrumentationConfigUtil.httpClientRequestCapturedHeaders(globalConfigProvider)) diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/ExtendedOpenTelemetrySdk.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/ExtendedOpenTelemetrySdk.java index 5b24dbfd035..f7f838e04cc 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/ExtendedOpenTelemetrySdk.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/ExtendedOpenTelemetrySdk.java @@ -11,7 +11,6 @@ import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.extension.incubator.fileconfig.SdkConfigProvider; import java.io.Closeable; -import javax.annotation.Nullable; import javax.annotation.concurrent.ThreadSafe; /** A new interface for creating OpenTelemetrySdk that supports getting {@link ConfigProvider}. */ @@ -74,7 +73,6 @@ private ObfuscatedConfigProvider(SdkConfigProvider delegate) { } @Override - @Nullable public DeclarativeConfigProperties getInstrumentationConfig() { return delegate.getInstrumentationConfig(); } diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java index 561800d9949..cc1b3c2f3c1 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java @@ -5,22 +5,24 @@ package io.opentelemetry.sdk.extension.incubator.fileconfig; +import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty; + import io.opentelemetry.api.incubator.config.ConfigProvider; import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel; -import javax.annotation.Nullable; /** SDK implementation of {@link ConfigProvider}. */ public final class SdkConfigProvider implements ConfigProvider { - @Nullable private final DeclarativeConfigProperties instrumentationConfig; + private final DeclarativeConfigProperties instrumentationConfig; private SdkConfigProvider( OpenTelemetryConfigurationModel model, ComponentLoader componentLoader) { DeclarativeConfigProperties configProperties = DeclarativeConfiguration.toConfigProperties(model, componentLoader); - this.instrumentationConfig = configProperties.getStructured("instrumentation/development"); + this.instrumentationConfig = + configProperties.getStructured("instrumentation/development", empty()); } /** @@ -45,7 +47,6 @@ public static SdkConfigProvider create( return new SdkConfigProvider(model, componentLoader); } - @Nullable @Override public DeclarativeConfigProperties getInstrumentationConfig() { return instrumentationConfig;