Skip to content

Commit 1c671c5

Browse files
jack-bergbreedx-splk
authored andcommitted
Remove nullable from file config Factory contract (open-telemetry#6612)
1 parent 04b945d commit 1c671c5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+96
-358
lines changed

sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/FileConfigurationTest.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,7 @@
1717
import io.github.netmikey.logunit.api.LogCapturer;
1818
import io.opentelemetry.api.GlobalOpenTelemetry;
1919
import io.opentelemetry.api.OpenTelemetry;
20-
import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator;
2120
import io.opentelemetry.api.incubator.events.GlobalEventLoggerProvider;
22-
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
23-
import io.opentelemetry.context.propagation.ContextPropagators;
24-
import io.opentelemetry.context.propagation.TextMapPropagator;
2521
import io.opentelemetry.exporter.logging.LoggingSpanExporter;
2622
import io.opentelemetry.internal.testing.CleanupExtension;
2723
import io.opentelemetry.sdk.OpenTelemetrySdk;
@@ -91,11 +87,6 @@ void configFile_Valid() {
9187
Resource.getDefault().toBuilder().put("service.name", "test").build())
9288
.addSpanProcessor(SimpleSpanProcessor.create(LoggingSpanExporter.create()))
9389
.build())
94-
.setPropagators(
95-
ContextPropagators.create(
96-
TextMapPropagator.composite(
97-
W3CTraceContextPropagator.getInstance(),
98-
W3CBaggagePropagator.getInstance())))
9990
.build();
10091
cleanup.addCloseable(expectedSdk);
10192
AutoConfiguredOpenTelemetrySdkBuilder builder = spy(AutoConfiguredOpenTelemetrySdk.builder());

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExplicitBucketHistogram;
1313
import java.io.Closeable;
1414
import java.util.List;
15-
import javax.annotation.Nullable;
1615

1716
final class AggregationFactory
1817
implements Factory<Aggregation, io.opentelemetry.sdk.metrics.Aggregation> {
@@ -27,11 +26,7 @@ static AggregationFactory getInstance() {
2726

2827
@Override
2928
public io.opentelemetry.sdk.metrics.Aggregation create(
30-
@Nullable Aggregation model, SpiHelper spiHelper, List<Closeable> closeables) {
31-
if (model == null) {
32-
return io.opentelemetry.sdk.metrics.Aggregation.defaultAggregation();
33-
}
34-
29+
Aggregation model, SpiHelper spiHelper, List<Closeable> closeables) {
3530
if (model.getDrop() != null) {
3631
return io.opentelemetry.sdk.metrics.Aggregation.drop();
3732
}

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Attributes;
1515
import java.io.Closeable;
1616
import java.util.List;
17-
import javax.annotation.Nullable;
1817

1918
final class AttributesFactory
2019
implements Factory<Attributes, io.opentelemetry.api.common.Attributes> {
@@ -29,11 +28,7 @@ static AttributesFactory getInstance() {
2928

3029
@Override
3130
public io.opentelemetry.api.common.Attributes create(
32-
@Nullable Attributes model, SpiHelper spiHelper, List<Closeable> closeables) {
33-
if (model == null) {
34-
return io.opentelemetry.api.common.Attributes.empty();
35-
}
36-
31+
Attributes model, SpiHelper spiHelper, List<Closeable> closeables) {
3732
AttributesBuilder builder = io.opentelemetry.api.common.Attributes.builder();
3833

3934
String serviceName = model.getServiceName();

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
99
import java.io.Closeable;
1010
import java.util.List;
11-
import javax.annotation.Nullable;
1211

1312
interface Factory<ModelT, ResultT> {
1413

@@ -20,5 +19,5 @@ interface Factory<ModelT, ResultT> {
2019
* @param closeables mutable list of closeables created
2120
* @return the {@link ResultT}
2221
*/
23-
ResultT create(@Nullable ModelT model, SpiHelper spiHelper, List<Closeable> closeables);
22+
ResultT create(ModelT model, SpiHelper spiHelper, List<Closeable> closeables);
2423
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ static <T> T assertNotNull(@Nullable T object, String description) {
3232
return object;
3333
}
3434

35+
static <T> T requireNonNull(@Nullable T object, String description) {
36+
if (object == null) {
37+
throw new ConfigurationException(description + " is required but is null");
38+
}
39+
return object;
40+
}
41+
3542
/**
3643
* Find a registered {@link ComponentProvider} which {@link ComponentProvider#getType()} matching
3744
* {@code type}, {@link ComponentProvider#getName()} matching {@code name}, and call {@link

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import io.opentelemetry.sdk.metrics.InstrumentType;
1414
import java.io.Closeable;
1515
import java.util.List;
16-
import javax.annotation.Nullable;
1716

1817
final class InstrumentSelectorFactory implements Factory<Selector, InstrumentSelector> {
1918

@@ -27,11 +26,7 @@ static InstrumentSelectorFactory getInstance() {
2726

2827
@Override
2928
public InstrumentSelector create(
30-
@Nullable Selector model, SpiHelper spiHelper, List<Closeable> closeables) {
31-
if (model == null) {
32-
throw new ConfigurationException("selector must not be null");
33-
}
34-
29+
Selector model, SpiHelper spiHelper, List<Closeable> closeables) {
3530
InstrumentSelectorBuilder builder = InstrumentSelector.builder();
3631
if (model.getInstrumentName() != null) {
3732
builder.setName(model.getInstrumentName());

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

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import io.opentelemetry.sdk.logs.LogLimitsBuilder;
1313
import java.io.Closeable;
1414
import java.util.List;
15-
import javax.annotation.Nullable;
1615

1716
final class LogLimitsFactory implements Factory<LogRecordLimitsAndAttributeLimits, LogLimits> {
1817

@@ -26,12 +25,7 @@ static LogLimitsFactory getInstance() {
2625

2726
@Override
2827
public LogLimits create(
29-
@Nullable LogRecordLimitsAndAttributeLimits model,
30-
SpiHelper spiHelper,
31-
List<Closeable> closeables) {
32-
if (model == null) {
33-
return LogLimits.getDefault();
34-
}
28+
LogRecordLimitsAndAttributeLimits model, SpiHelper spiHelper, List<Closeable> closeables) {
3529
LogLimitsBuilder builder = LogLimits.builder();
3630

3731
AttributeLimits attributeLimitsModel = model.getAttributeLimits();

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

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import java.io.Closeable;
1515
import java.util.List;
1616
import java.util.Map;
17-
import javax.annotation.Nullable;
1817

1918
final class LogRecordExporterFactory
2019
implements Factory<
@@ -29,19 +28,11 @@ static LogRecordExporterFactory getInstance() {
2928
return INSTANCE;
3029
}
3130

32-
@SuppressWarnings("NullAway") // Override superclass non-null response
3331
@Override
34-
@Nullable
3532
public LogRecordExporter create(
36-
@Nullable
37-
io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.LogRecordExporter
38-
model,
33+
io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.LogRecordExporter model,
3934
SpiHelper spiHelper,
4035
List<Closeable> closeables) {
41-
if (model == null) {
42-
return null;
43-
}
44-
4536
Otlp otlpModel = model.getOtlp();
4637
if (otlpModel != null) {
4738
model.getAdditionalProperties().put("otlp", otlpModel);
@@ -67,8 +58,8 @@ public LogRecordExporter create(
6758
exporterKeyValue.getKey(),
6859
exporterKeyValue.getValue());
6960
return FileConfigUtil.addAndReturn(closeables, logRecordExporter);
61+
} else {
62+
throw new ConfigurationException("log exporter must be set");
7063
}
71-
72-
return null;
7364
}
7465
}

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

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import java.io.Closeable;
1818
import java.time.Duration;
1919
import java.util.List;
20-
import javax.annotation.Nullable;
2120

2221
final class LogRecordProcessorFactory
2322
implements Factory<
@@ -34,24 +33,18 @@ static LogRecordProcessorFactory getInstance() {
3433

3534
@Override
3635
public LogRecordProcessor create(
37-
@Nullable
38-
io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.LogRecordProcessor
39-
model,
36+
io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.LogRecordProcessor model,
4037
SpiHelper spiHelper,
4138
List<Closeable> closeables) {
42-
if (model == null) {
43-
return LogRecordProcessor.composite();
44-
}
45-
4639
io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.BatchLogRecordProcessor
4740
batchModel = model.getBatch();
4841
if (batchModel != null) {
49-
LogRecordExporter exporterModel = batchModel.getExporter();
42+
LogRecordExporter exporterModel =
43+
FileConfigUtil.requireNonNull(
44+
batchModel.getExporter(), "batch log record processor exporter");
45+
5046
io.opentelemetry.sdk.logs.export.LogRecordExporter logRecordExporter =
5147
LogRecordExporterFactory.getInstance().create(exporterModel, spiHelper, closeables);
52-
if (logRecordExporter == null) {
53-
throw new ConfigurationException("exporter required for batch log record processor");
54-
}
5548
BatchLogRecordProcessorBuilder builder = BatchLogRecordProcessor.builder(logRecordExporter);
5649
if (batchModel.getExportTimeout() != null) {
5750
builder.setExporterTimeout(Duration.ofMillis(batchModel.getExportTimeout()));
@@ -71,12 +64,11 @@ public LogRecordProcessor create(
7164
io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SimpleLogRecordProcessor
7265
simpleModel = model.getSimple();
7366
if (simpleModel != null) {
74-
LogRecordExporter exporterModel = simpleModel.getExporter();
67+
LogRecordExporter exporterModel =
68+
FileConfigUtil.requireNonNull(
69+
simpleModel.getExporter(), "simple log record processor exporter");
7570
io.opentelemetry.sdk.logs.export.LogRecordExporter logRecordExporter =
7671
LogRecordExporterFactory.getInstance().create(exporterModel, spiHelper, closeables);
77-
if (logRecordExporter == null) {
78-
throw new ConfigurationException("exporter required for simple log record processor");
79-
}
8072
return FileConfigUtil.addAndReturn(
8173
closeables, SimpleLogRecordProcessor.create(logRecordExporter));
8274
}
@@ -86,8 +78,8 @@ public LogRecordProcessor create(
8678
throw new ConfigurationException(
8779
"Unrecognized log record processor(s): "
8880
+ model.getAdditionalProperties().keySet().stream().collect(joining(",", "[", "]")));
81+
} else {
82+
throw new ConfigurationException("log processor must be set");
8983
}
90-
91-
return LogRecordProcessor.composite();
9284
}
9385
}

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

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import io.opentelemetry.sdk.logs.SdkLoggerProviderBuilder;
1414
import java.io.Closeable;
1515
import java.util.List;
16-
import javax.annotation.Nullable;
1716

1817
final class LoggerProviderFactory
1918
implements Factory<LoggerProviderAndAttributeLimits, SdkLoggerProviderBuilder> {
@@ -28,13 +27,9 @@ static LoggerProviderFactory getInstance() {
2827

2928
@Override
3029
public SdkLoggerProviderBuilder create(
31-
@Nullable LoggerProviderAndAttributeLimits model,
32-
SpiHelper spiHelper,
33-
List<Closeable> closeables) {
30+
LoggerProviderAndAttributeLimits model, SpiHelper spiHelper, List<Closeable> closeables) {
3431
SdkLoggerProviderBuilder builder = SdkLoggerProvider.builder();
35-
if (model == null) {
36-
return builder;
37-
}
32+
3833
LoggerProvider loggerProviderModel = model.getLoggerProvider();
3934
if (loggerProviderModel == null) {
4035
return builder;

0 commit comments

Comments
 (0)