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;