Skip to content

Commit 84ab423

Browse files
committed
Introduce new getStringInternal, for getting string from non-default sources
1 parent 9794631 commit 84ab423

File tree

1 file changed

+32
-20
lines changed

1 file changed

+32
-20
lines changed

utils/config-utils/src/main/java/datadog/trace/bootstrap/config/provider/ConfigProvider.java

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -57,31 +57,27 @@ public String getConfigFileStatus() {
5757
return "no config file present";
5858
}
5959

60+
// Gets a string value when there is no default value.
6061
public String getString(String key) {
6162
return getString(key, null);
6263
}
6364

64-
public <T extends Enum<T>> T getEnum(String key, Class<T> enumType, T defaultValue) {
65-
if (collectConfig) {
66-
String defaultValueString = defaultValue == null ? null : defaultValue.name();
67-
reportDefault(key, defaultValueString);
68-
}
69-
String value = getString(key);
70-
if (null != value) {
71-
try {
72-
return Enum.valueOf(enumType, value);
73-
} catch (Exception ignoreAndUseDefault) {
74-
log.debug("failed to parse {} for {}, defaulting to {}", value, key, defaultValue);
75-
}
76-
}
77-
return defaultValue;
78-
}
79-
65+
/**
66+
* Gets a string value with a default fallback and optional aliases. Use for configs with
67+
* meaningful defaults. Reports default to telemetry.
68+
*/
8069
public String getString(String key, String defaultValue, String... aliases) {
8170
if (collectConfig) {
8271
reportDefault(key, defaultValue);
8372
}
73+
String value = getStringInternal(key, aliases);
8474

75+
return value != null ? value : defaultValue;
76+
}
77+
78+
// Internal helper that performs configuration source lookup and reports values from non-default
79+
// sources to telemetry.
80+
private String getStringInternal(String key, String... aliases) {
8581
ConfigValueResolver<String> resolver = null;
8682
int seqId = DEFAULT_SEQ_ID + 1;
8783

@@ -101,7 +97,23 @@ public String getString(String key, String defaultValue, String... aliases) {
10197
seqId++;
10298
}
10399

104-
return resolver != null ? resolver.value : defaultValue;
100+
return resolver != null ? resolver.value : null;
101+
}
102+
103+
public <T extends Enum<T>> T getEnum(String key, Class<T> enumType, T defaultValue) {
104+
if (collectConfig) {
105+
String defaultValueString = defaultValue == null ? null : defaultValue.name();
106+
reportDefault(key, defaultValueString);
107+
}
108+
String value = getStringInternal(key);
109+
if (null != value) {
110+
try {
111+
return Enum.valueOf(enumType, value);
112+
} catch (Exception ignoreAndUseDefault) {
113+
log.debug("failed to parse {} for {}, defaulting to {}", value, key, defaultValue);
114+
}
115+
}
116+
return defaultValue;
105117
}
106118

107119
/**
@@ -287,7 +299,7 @@ public List<String> getList(String key, List<String> defaultValue) {
287299
if (collectConfig) {
288300
reportDefault(key, defaultValue);
289301
}
290-
String list = getString(key);
302+
String list = getStringInternal(key);
291303
if (null == list) {
292304
return defaultValue;
293305
} else {
@@ -300,7 +312,7 @@ public Set<String> getSet(String key, Set<String> defaultValue) {
300312
if (collectConfig) {
301313
reportDefault(key, defaultValue);
302314
}
303-
String list = getString(key);
315+
String list = getStringInternal(key);
304316
if (null == list) {
305317
return defaultValue;
306318
} else {
@@ -443,7 +455,7 @@ public BitSet getIntegerRange(final String key, final BitSet defaultValue, Strin
443455
if (collectConfig) {
444456
reportDefault(key, defaultValue);
445457
}
446-
final String value = getString(key, null, aliases);
458+
final String value = getStringInternal(key, aliases);
447459
try {
448460
if (value != null) {
449461
return ConfigConverter.parseIntegerRangeSet(value, key);

0 commit comments

Comments
 (0)