Skip to content

Commit 4d01c83

Browse files
committed
use optional instead of providing default for boolean
1 parent 0faac14 commit 4d01c83

File tree

16 files changed

+57
-44
lines changed

16 files changed

+57
-44
lines changed

instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/ConfigPropertiesUtil.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.Arrays;
1515
import java.util.List;
1616
import java.util.Locale;
17+
import java.util.Optional;
1718
import java.util.stream.Collectors;
1819
import javax.annotation.Nullable;
1920

@@ -43,25 +44,23 @@ private static boolean supportsDeclarativeConfig() {
4344
* Returns the boolean value of the given property name from system properties and environment
4445
* variables.
4546
*
46-
* <p>It's recommended to use {@link #getBoolean(OpenTelemetry, boolean, String...)} instead to
47-
* support Declarative Config.
47+
* <p>It's recommended to use {@link #getBoolean(OpenTelemetry, String...)} instead to support
48+
* Declarative Config.
4849
*/
49-
public static boolean getBoolean(String propertyName, boolean defaultValue) {
50-
String strValue = getString(propertyName);
51-
return strValue == null ? defaultValue : Boolean.parseBoolean(strValue);
50+
public static Optional<Boolean> getBoolean(String propertyName) {
51+
return Optional.ofNullable(getString(propertyName)).map(Boolean::parseBoolean);
5252
}
5353

5454
/**
5555
* Returns the boolean value of the given property name from Declarative Config if available,
5656
* otherwise falls back to system properties and environment variables.
5757
*/
58-
public static boolean getBoolean(
59-
OpenTelemetry openTelemetry, boolean defaultValue, String... propertyName) {
58+
public static Optional<Boolean> getBoolean(OpenTelemetry openTelemetry, String... propertyName) {
6059
DeclarativeConfigProperties node = getDeclarativeConfigNode(openTelemetry, propertyName);
6160
if (node != null) {
62-
return node.getBoolean(leaf(propertyName), defaultValue);
61+
return Optional.ofNullable(node.getBoolean(leaf(propertyName)));
6362
}
64-
return getBoolean(toSystemProperty(propertyName), defaultValue);
63+
return getBoolean(toSystemProperty(propertyName));
6564
}
6665

6766
/**

instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/ContextPropagationDebug.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,16 @@ public final class ContextPropagationDebug {
3232
private static final boolean FAIL_ON_CONTEXT_LEAK;
3333

3434
static {
35-
boolean agentDebugEnabled = ConfigPropertiesUtil.getBoolean("otel.javaagent.debug", false);
35+
boolean agentDebugEnabled =
36+
ConfigPropertiesUtil.getBoolean("otel.javaagent.debug").orElse(false);
3637

3738
THREAD_PROPAGATION_DEBUGGER =
3839
ConfigPropertiesUtil.getBoolean(
39-
"otel.javaagent.experimental.thread-propagation-debugger.enabled", agentDebugEnabled);
40+
"otel.javaagent.experimental.thread-propagation-debugger.enabled")
41+
.orElse(agentDebugEnabled);
4042
FAIL_ON_CONTEXT_LEAK =
41-
ConfigPropertiesUtil.getBoolean("otel.javaagent.testing.fail-on-context-leak", false);
43+
ConfigPropertiesUtil.getBoolean("otel.javaagent.testing.fail-on-context-leak")
44+
.orElse(false);
4245
}
4346

4447
// context to which debug locations were added

instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/SupportabilityMetrics.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public final class SupportabilityMetrics {
3030

3131
private static final SupportabilityMetrics INSTANCE =
3232
new SupportabilityMetrics(
33-
ConfigPropertiesUtil.getBoolean("otel.javaagent.debug", false), logger::fine)
33+
ConfigPropertiesUtil.getBoolean("otel.javaagent.debug").orElse(false), logger::fine)
3434
.start();
3535

3636
public static SupportabilityMetrics instance() {

instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/internal/ConfigPropertiesUtilTest.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,11 +132,13 @@ void getBoolean_none() {
132132
}
133133

134134
private static void assertBoolean(boolean expected) {
135-
assertThat(ConfigPropertiesUtil.getBoolean("otel.instrumentation.test.property.boolean", false))
135+
assertThat(
136+
ConfigPropertiesUtil.getBoolean("otel.instrumentation.test.property.boolean")
137+
.orElse(false))
136138
.isEqualTo(expected);
137139
assertThat(
138-
ConfigPropertiesUtil.getBoolean(
139-
OpenTelemetry.noop(), false, "test", "property", "boolean"))
140+
ConfigPropertiesUtil.getBoolean(OpenTelemetry.noop(), "test", "property", "boolean")
141+
.orElse(false))
140142
.isEqualTo(expected);
141143
}
142144

@@ -154,7 +156,8 @@ public static Stream<Arguments> booleanValuesProvider() {
154156
void getBoolean_declarativeConfig(Object property, boolean expected) {
155157
assertThat(
156158
ConfigPropertiesUtil.getBoolean(
157-
DeclarativeConfiguration.create(model(property)), false, "foo", "bar"))
159+
DeclarativeConfiguration.create(model(property)), "foo", "bar")
160+
.orElse(false))
158161
.isEqualTo(expected);
159162
}
160163

instrumentation/aws-sdk/aws-sdk-1.11/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/autoconfigure/TracingRequestHandler.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,12 @@ private static RequestHandler2 buildDelegate(OpenTelemetry openTelemetry) {
2727
return AwsSdkTelemetry.builder(openTelemetry)
2828
.setCaptureExperimentalSpanAttributes(
2929
ConfigPropertiesUtil.getBoolean(
30-
openTelemetry, false, "aws_sdk", "experimental_span_attributes"))
30+
openTelemetry, "aws_sdk", "experimental_span_attributes")
31+
.orElse(false))
3132
.setMessagingReceiveInstrumentationEnabled(
3233
ConfigPropertiesUtil.getBoolean(
33-
openTelemetry, false, "messaging", "experimental", "receive_telemetry", "enabled"))
34+
openTelemetry, "messaging", "experimental", "receive_telemetry", "enabled")
35+
.orElse(false))
3436
.setCapturedHeaders(
3537
ConfigPropertiesUtil.getList(
3638
openTelemetry, emptyList(), "messaging", "experimental", "capture_headers"))

instrumentation/aws-sdk/aws-sdk-2.2/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/autoconfigure/AwsSdkSingletons.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,17 @@ protected List<String> getCapturedHeaders() {
3232
@Override
3333
protected boolean messagingReceiveInstrumentationEnabled() {
3434
return ConfigPropertiesUtil.getBoolean(
35-
GlobalOpenTelemetry.get(),
36-
false,
37-
"messaging",
38-
"experimental",
39-
"receive_telemetry",
40-
"enabled");
35+
GlobalOpenTelemetry.get(),
36+
"messaging",
37+
"experimental",
38+
"receive_telemetry",
39+
"enabled")
40+
.orElse(false);
4141
}
4242

4343
@Override
4444
protected boolean getBoolean(boolean defaultValue, String... name) {
45-
return ConfigPropertiesUtil.getBoolean(GlobalOpenTelemetry.get(), defaultValue, name);
45+
return ConfigPropertiesUtil.getBoolean(GlobalOpenTelemetry.get(), name).orElse(defaultValue);
4646
}
4747
}
4848

instrumentation/aws-sdk/aws-sdk-2.2/testing/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AbstractAws2ClientCoreTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ public abstract class AbstractAws2ClientCoreTest {
101101
protected static boolean isSqsAttributeInjectionEnabled() {
102102
// See io.opentelemetry.instrumentation.awssdk.v2_2.autoconfigure.TracingExecutionInterceptor
103103
return ConfigPropertiesUtil.getBoolean(
104-
"otel.instrumentation.aws-sdk.experimental-use-propagator-for-messaging", false);
104+
"otel.instrumentation.aws-sdk.experimental-use-propagator-for-messaging")
105+
.orElse(false);
105106
}
106107

107108
protected void configureSdkClient(SdkClientBuilder<?, ?> builder) {

instrumentation/aws-sdk/aws-sdk-2.2/testing/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AbstractAws2ClientRecordHttpErrorTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,8 @@ private static void cleanResponses() {
126126
public boolean isRecordIndividualHttpErrorEnabled() {
127127
// See io.opentelemetry.instrumentation.awssdk.v2_2.autoconfigure.TracingExecutionInterceptor
128128
return ConfigPropertiesUtil.getBoolean(
129-
"otel.instrumentation.aws-sdk.experimental-record-individual-http-error", false);
129+
"otel.instrumentation.aws-sdk.experimental-record-individual-http-error")
130+
.orElse(false);
130131
}
131132

132133
@SuppressWarnings("deprecation") // using deprecated semconv

instrumentation/aws-sdk/aws-sdk-2.2/testing/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AbstractAws2SqsBaseTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,8 @@ protected void configureSdkClient(SqsAsyncClientBuilder builder) throws URISynta
132132
protected boolean isSqsAttributeInjectionEnabled() {
133133
// See io.opentelemetry.instrumentation.awssdk.v2_2.autoconfigure.TracingExecutionInterceptor
134134
return ConfigPropertiesUtil.getBoolean(
135-
"otel.instrumentation.aws-sdk.experimental-use-propagator-for-messaging", false);
135+
"otel.instrumentation.aws-sdk.experimental-use-propagator-for-messaging")
136+
.orElse(false);
136137
}
137138

138139
@BeforeAll

instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/OpenTelemetryDriver.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,13 @@ public final class OpenTelemetryDriver implements Driver {
6666
private static SqlCommenter getSqlCommenter(OpenTelemetry openTelemetry) {
6767
boolean defaultValue =
6868
ConfigPropertiesUtil.getBoolean(
69-
openTelemetry, false, "common", "experimental", "db_sqlcommenter", "enabled");
69+
openTelemetry, "common", "experimental", "db_sqlcommenter", "enabled")
70+
.orElse(false);
7071
return SqlCommenter.builder()
7172
.setEnabled(
7273
ConfigPropertiesUtil.getBoolean(
73-
openTelemetry, defaultValue, "jdbc", "experimental", "sqlcommenter", "enabled"))
74+
openTelemetry, "jdbc", "experimental", "sqlcommenter", "enabled")
75+
.orElse(defaultValue))
7476
.build();
7577
}
7678

0 commit comments

Comments
 (0)