Skip to content

Commit a46b073

Browse files
authored
make getInstrumentationConfig non-null (#7954)
1 parent ad8559e commit a46b073

File tree

6 files changed

+13
-26
lines changed

6 files changed

+13
-26
lines changed

api/incubator/src/main/java/io/opentelemetry/api/incubator/config/ConfigProvider.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package io.opentelemetry.api.incubator.config;
77

8-
import javax.annotation.Nullable;
98
import javax.annotation.concurrent.ThreadSafe;
109

1110
/**
@@ -23,15 +22,14 @@ public interface ConfigProvider {
2322
/**
2423
* Returns the {@link DeclarativeConfigProperties} corresponding to <a
2524
* href="https://github.com/open-telemetry/opentelemetry-configuration/blob/main/schema/instrumentation.json">instrumentation
26-
* config</a>, or {@code null} if unavailable.
25+
* config</a>, or {@link DeclarativeConfigProperties#empty()} if unavailable.
2726
*
2827
* @return the instrumentation {@link DeclarativeConfigProperties}
2928
*/
30-
@Nullable
3129
DeclarativeConfigProperties getInstrumentationConfig();
3230

3331
/** Returns a no-op {@link ConfigProvider}. */
3432
static ConfigProvider noop() {
35-
return () -> null;
33+
return DeclarativeConfigProperties::empty;
3634
}
3735
}

api/incubator/src/main/java/io/opentelemetry/api/incubator/config/InstrumentationConfigUtil.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,9 +136,6 @@ public static <T> T getOrNull(
136136
Function<DeclarativeConfigProperties, T> accessor,
137137
String... segments) {
138138
DeclarativeConfigProperties config = configProvider.getInstrumentationConfig();
139-
if (config == null) {
140-
return null;
141-
}
142139
for (String segment : segments) {
143140
config = config.getStructured(segment);
144141
if (config == null) {

api/incubator/src/testConvertToModel/java/io/opentelemetry/api/incubator/InstrumentationConfigUtilTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,12 @@ void toMap_RoundTrip() throws JsonProcessingException {
6262

6363
@Test
6464
void getInstrumentationConfigModel_UnsetConfig() {
65-
ConfigProvider configProvider = () -> null;
65+
ConfigProvider configProvider = DeclarativeConfigProperties::empty;
6666

6767
assertThat(
6868
InstrumentationConfigUtil.getInstrumentationConfigModel(
6969
configProvider, "my_instrumentation_library", MAPPER, Model.class))
70-
.isEqualTo(null);
70+
.isNull();
7171
}
7272

7373
@Test

sdk-extensions/autoconfigure/src/testIncubating/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import io.opentelemetry.api.GlobalOpenTelemetry;
2121
import io.opentelemetry.api.incubator.ExtendedOpenTelemetry;
2222
import io.opentelemetry.api.incubator.config.ConfigProvider;
23-
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
2423
import io.opentelemetry.api.incubator.config.InstrumentationConfigUtil;
2524
import io.opentelemetry.common.ComponentLoader;
2625
import io.opentelemetry.exporter.logging.LoggingSpanExporter;
@@ -40,7 +39,6 @@
4039
import java.nio.file.Path;
4140
import java.util.Arrays;
4241
import java.util.Collections;
43-
import java.util.Optional;
4442
import org.junit.jupiter.api.BeforeEach;
4543
import org.junit.jupiter.api.Test;
4644
import org.junit.jupiter.api.extension.RegisterExtension;
@@ -160,12 +158,10 @@ void configFile_setComponentLoader() {
160158
cleanup.addCloseable(autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk());
161159

162160
assertThat(
163-
Optional.ofNullable(
164-
((ExtendedOpenTelemetry) autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk())
165-
.getConfigProvider()
166-
.getInstrumentationConfig())
167-
.map(DeclarativeConfigProperties::getComponentLoader)
168-
.orElse(null))
161+
((ExtendedOpenTelemetry) autoConfiguredOpenTelemetrySdk.getOpenTelemetrySdk())
162+
.getConfigProvider()
163+
.getInstrumentationConfig()
164+
.getComponentLoader())
169165
.isSameAs(componentLoader);
170166
}
171167

@@ -221,9 +217,6 @@ void configFile_ConfigProvider() {
221217

222218
ConfigProvider globalConfigProvider =
223219
((ExtendedOpenTelemetry) GlobalOpenTelemetry.get()).getConfigProvider();
224-
DeclarativeConfigProperties instrumentationConfig =
225-
globalConfigProvider.getInstrumentationConfig();
226-
assertThat(instrumentationConfig).isNotNull();
227220

228221
// Extract instrumentation config from ConfigProvider
229222
assertThat(InstrumentationConfigUtil.httpClientRequestCapturedHeaders(globalConfigProvider))

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/ExtendedOpenTelemetrySdk.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import io.opentelemetry.sdk.OpenTelemetrySdk;
1212
import io.opentelemetry.sdk.extension.incubator.fileconfig.SdkConfigProvider;
1313
import java.io.Closeable;
14-
import javax.annotation.Nullable;
1514
import javax.annotation.concurrent.ThreadSafe;
1615

1716
/** A new interface for creating OpenTelemetrySdk that supports getting {@link ConfigProvider}. */
@@ -74,7 +73,6 @@ private ObfuscatedConfigProvider(SdkConfigProvider delegate) {
7473
}
7574

7675
@Override
77-
@Nullable
7876
public DeclarativeConfigProperties getInstrumentationConfig() {
7977
return delegate.getInstrumentationConfig();
8078
}

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SdkConfigProvider.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,24 @@
55

66
package io.opentelemetry.sdk.extension.incubator.fileconfig;
77

8+
import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty;
9+
810
import io.opentelemetry.api.incubator.config.ConfigProvider;
911
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
1012
import io.opentelemetry.common.ComponentLoader;
1113
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel;
12-
import javax.annotation.Nullable;
1314

1415
/** SDK implementation of {@link ConfigProvider}. */
1516
public final class SdkConfigProvider implements ConfigProvider {
1617

17-
@Nullable private final DeclarativeConfigProperties instrumentationConfig;
18+
private final DeclarativeConfigProperties instrumentationConfig;
1819

1920
private SdkConfigProvider(
2021
OpenTelemetryConfigurationModel model, ComponentLoader componentLoader) {
2122
DeclarativeConfigProperties configProperties =
2223
DeclarativeConfiguration.toConfigProperties(model, componentLoader);
23-
this.instrumentationConfig = configProperties.getStructured("instrumentation/development");
24+
this.instrumentationConfig =
25+
configProperties.getStructured("instrumentation/development", empty());
2426
}
2527

2628
/**
@@ -45,7 +47,6 @@ public static SdkConfigProvider create(
4547
return new SdkConfigProvider(model, componentLoader);
4648
}
4749

48-
@Nullable
4950
@Override
5051
public DeclarativeConfigProperties getInstrumentationConfig() {
5152
return instrumentationConfig;

0 commit comments

Comments
 (0)