Skip to content

Commit 3e2e6f1

Browse files
committed
Simplify tree walking
1 parent a2534ba commit 3e2e6f1

File tree

2 files changed

+8
-73
lines changed

2 files changed

+8
-73
lines changed

javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/StructuredConfigPropertiesBridge.java

Lines changed: 7 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@
55

66
package io.opentelemetry.javaagent.extension;
77

8+
import static io.opentelemetry.sdk.autoconfigure.spi.internal.StructuredConfigProperties.empty;
9+
810
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
911
import io.opentelemetry.sdk.autoconfigure.spi.internal.StructuredConfigProperties;
1012
import java.time.Duration;
1113
import java.util.Collections;
1214
import java.util.HashMap;
1315
import java.util.List;
1416
import java.util.Map;
15-
import java.util.Set;
1617
import java.util.function.BiFunction;
1718
import javax.annotation.Nullable;
1819

@@ -48,20 +49,14 @@ final class StructuredConfigPropertiesBridge implements ConfigProperties {
4849

4950
private static final String OTEL_INSTRUMENTATION_PREFIX = "otel.instrumentation.";
5051

51-
private static final StructuredConfigProperties EMPTY = new EmptyStructuredConfigProperties();
52-
5352
// The node at .instrumentation.java
5453
private final StructuredConfigProperties instrumentationJavaNode;
5554

5655
StructuredConfigPropertiesBridge(StructuredConfigProperties rootStructuredConfigProperties) {
57-
StructuredConfigProperties instrumentation =
58-
rootStructuredConfigProperties.getStructured("instrumentation");
59-
if (instrumentation != null) {
60-
StructuredConfigProperties javaInstrumentation = instrumentation.getStructured("java");
61-
this.instrumentationJavaNode = javaInstrumentation != null ? javaInstrumentation : EMPTY;
62-
} else {
63-
this.instrumentationJavaNode = EMPTY;
64-
}
56+
instrumentationJavaNode =
57+
rootStructuredConfigProperties
58+
.getStructured("instrumentation", empty())
59+
.getStructured("java", empty());
6560
}
6661

6762
@Nullable
@@ -149,70 +144,10 @@ private <T> T getPropertyValue(
149144
StructuredConfigProperties target = instrumentationJavaNode;
150145
if (segments.length > 1) {
151146
for (int i = 0; i < segments.length - 1; i++) {
152-
StructuredConfigProperties newTarget = target.getStructured(segments[i]);
153-
if (newTarget == null) {
154-
target = EMPTY;
155-
break;
156-
}
157-
target = newTarget;
147+
target = target.getStructured(segments[i], empty());
158148
}
159149
}
160150
String lastPart = segments[segments.length - 1];
161151
return extractor.apply(target, lastPart);
162152
}
163-
164-
private static class EmptyStructuredConfigProperties implements StructuredConfigProperties {
165-
@Nullable
166-
@Override
167-
public String getString(String s) {
168-
return null;
169-
}
170-
171-
@Nullable
172-
@Override
173-
public Boolean getBoolean(String s) {
174-
return null;
175-
}
176-
177-
@Nullable
178-
@Override
179-
public Integer getInt(String s) {
180-
return null;
181-
}
182-
183-
@Nullable
184-
@Override
185-
public Long getLong(String s) {
186-
return null;
187-
}
188-
189-
@Nullable
190-
@Override
191-
public Double getDouble(String s) {
192-
return null;
193-
}
194-
195-
@Nullable
196-
@Override
197-
public <T> List<T> getScalarList(String s, Class<T> aClass) {
198-
return null;
199-
}
200-
201-
@Nullable
202-
@Override
203-
public StructuredConfigProperties getStructured(String s) {
204-
return null;
205-
}
206-
207-
@Nullable
208-
@Override
209-
public List<StructuredConfigProperties> getStructuredList(String s) {
210-
return null;
211-
}
212-
213-
@Override
214-
public Set<String> getPropertyKeys() {
215-
return Collections.emptySet();
216-
}
217-
}
218153
}

javaagent-extension-api/src/test/java/io/opentelemetry/javaagent/extension/StructuredConfigPropertiesBridgeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class StructuredConfigPropertiesBridgeTest {
5454

5555
@Test
5656
void getProperties() {
57-
// only properties startig with "otel.instrumentation." are resolved
57+
// only properties starting with "otel.instrumentation." are resolved
5858
// asking for properties which don't exist or inaccessible shouldn't result in an error
5959
assertThat(bridge.getString("file_format")).isNull();
6060
assertThat(bridge.getString("file_format", "foo")).isEqualTo("foo");

0 commit comments

Comments
 (0)