@@ -57,31 +57,27 @@ public String getConfigFileStatus() {
57
57
return "no config file present" ;
58
58
}
59
59
60
+ // Gets a string value when there is no default value.
60
61
public String getString (String key ) {
61
62
return getString (key , null );
62
63
}
63
64
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
+ */
80
69
public String getString (String key , String defaultValue , String ... aliases ) {
81
70
if (collectConfig ) {
82
71
reportDefault (key , defaultValue );
83
72
}
73
+ String value = getStringInternal (key , aliases );
84
74
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 ) {
85
81
ConfigValueResolver <String > resolver = null ;
86
82
int seqId = DEFAULT_SEQ_ID + 1 ;
87
83
@@ -101,7 +97,23 @@ public String getString(String key, String defaultValue, String... aliases) {
101
97
seqId ++;
102
98
}
103
99
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 ;
105
117
}
106
118
107
119
/**
@@ -287,7 +299,7 @@ public List<String> getList(String key, List<String> defaultValue) {
287
299
if (collectConfig ) {
288
300
reportDefault (key , defaultValue );
289
301
}
290
- String list = getString (key );
302
+ String list = getStringInternal (key );
291
303
if (null == list ) {
292
304
return defaultValue ;
293
305
} else {
@@ -300,7 +312,7 @@ public Set<String> getSet(String key, Set<String> defaultValue) {
300
312
if (collectConfig ) {
301
313
reportDefault (key , defaultValue );
302
314
}
303
- String list = getString (key );
315
+ String list = getStringInternal (key );
304
316
if (null == list ) {
305
317
return defaultValue ;
306
318
} else {
@@ -443,7 +455,7 @@ public BitSet getIntegerRange(final String key, final BitSet defaultValue, Strin
443
455
if (collectConfig ) {
444
456
reportDefault (key , defaultValue );
445
457
}
446
- final String value = getString (key , null , aliases );
458
+ final String value = getStringInternal (key , aliases );
447
459
try {
448
460
if (value != null ) {
449
461
return ConfigConverter .parseIntegerRangeSet (value , key );
0 commit comments