44 */
55
66package io .opentelemetry .javaagent .extension .internal ;
7+
78import static org .assertj .core .api .Assertions .assertThat ;
89
9- import io .opentelemetry .javaagent .extension .internal .DeclarativeConfigPropertiesBridge ;
1010import io .opentelemetry .sdk .autoconfigure .spi .ConfigProperties ;
1111import io .opentelemetry .sdk .extension .incubator .fileconfig .DeclarativeConfiguration ;
1212import io .opentelemetry .sdk .extension .incubator .fileconfig .SdkConfigProvider ;
1313import io .opentelemetry .sdk .extension .incubator .fileconfig .internal .model .InstrumentationModel ;
1414import io .opentelemetry .sdk .extension .incubator .fileconfig .internal .model .OpenTelemetryConfigurationModel ;
15- import java .io .ByteArrayInputStream ;
16- import java .nio .charset .StandardCharsets ;
1715import java .time .Duration ;
1816import java .util .Arrays ;
19- import java .util .Collections ;
2017import java .util .HashMap ;
2118import java .util .Map ;
2219import java .util .Objects ;
2522
2623class DeclarativeConfigPropertiesBridgeTest {
2724
28- private static final String YAML =
29- "file_format: 0.4\n "
30- + "instrumentation/development:\n "
31- + " java:\n "
32- + " common:\n "
33- + " default-enabled: true\n "
34- + " runtime-telemetry:\n "
35- + " enabled: false\n "
36- + " example-instrumentation:\n "
37- + " string_key: value\n "
38- + " bool_key: true\n "
39- + " int_key: 1\n "
40- + " double_key: 1.1\n "
41- + " list_key:\n "
42- + " - value1\n "
43- + " - value2\n "
44- + " - true\n "
45- + " map_key:\n "
46- + " string_key1: value1\n "
47- + " string_key2: value2\n "
48- + " bool_key: true\n "
49- + " acme:\n "
50- + " full_name:\n "
51- + " preserved: true" ;
52-
5325 private ConfigProperties bridge ;
5426 private ConfigProperties emptyBridge ;
5527
5628 @ BeforeEach
5729 void setup () {
58- bridge = createBridge ( Collections . emptyMap ());
30+ bridge = create ( ConfigPropertiesUtil . propertyTranslatorBuilder ());
5931
6032 OpenTelemetryConfigurationModel emptyModel =
6133 new OpenTelemetryConfigurationModel ()
6234 .withAdditionalProperty ("instrumentation/development" , new InstrumentationModel ());
6335 SdkConfigProvider emptyConfigProvider = SdkConfigProvider .create (emptyModel );
6436 emptyBridge =
65- DeclarativeConfigPropertiesBridge .fromInstrumentationConfig (
66- Objects .requireNonNull (emptyConfigProvider .getInstrumentationConfig ()),
67- Collections .emptyMap ());
37+ ConfigPropertiesUtil .resolveInstrumentationConfig (
38+ Objects .requireNonNull (emptyConfigProvider .getInstrumentationConfig ()));
6839 }
6940
70- private static DeclarativeConfigPropertiesBridge createBridge (
71- Map <String , String > translationMap ) {
41+ private static ConfigProperties create (PropertyTranslatorBuilder builder ) {
7242 OpenTelemetryConfigurationModel model =
7343 DeclarativeConfiguration .parse (
74- new ByteArrayInputStream (YAML .getBytes (StandardCharsets .UTF_8 )));
75- return DeclarativeConfigPropertiesBridge .fromInstrumentationConfig (
76- Objects .requireNonNull (SdkConfigProvider .create (model ).getInstrumentationConfig ()),
77- translationMap );
44+ DeclarativeConfigPropertiesBridgeTest .class
45+ .getClassLoader ()
46+ .getResourceAsStream ("config.yaml" ));
47+ SdkConfigProvider configProvider = SdkConfigProvider .create (model );
48+ return ConfigPropertiesUtil .resolveInstrumentationConfig (
49+ configProvider .getInstrumentationConfig (), builder );
7850 }
7951
8052 @ Test
@@ -88,7 +60,6 @@ void getProperties() {
8860 .isTrue ();
8961
9062 // common cases
91- assertThat (bridge .getBoolean ("otel.instrumentation.common.default-enabled" )).isTrue ();
9263 assertThat (bridge .getBoolean ("otel.instrumentation.runtime-telemetry.enabled" )).isFalse ();
9364
9465 // check all the types
@@ -151,23 +122,34 @@ void vendor() {
151122 }
152123
153124 @ Test
154- void translation () {
155- DeclarativeConfigPropertiesBridge propertiesBridge =
156- createBridge (Collections .singletonMap ("acme" , "acme.full_name" ));
125+ void vendorTranslation () {
126+ ConfigProperties propertiesBridge =
127+ create (
128+ ConfigPropertiesUtil .propertyTranslatorBuilder ()
129+ .addTranslation ("acme" , "acme.full_name" ));
157130 assertThat (propertiesBridge .getBoolean ("acme.preserved" )).isTrue ();
158131 }
159132
160133 @ Test
161- void common () {
162- assertThat (bridge .getBoolean ("otel.instrumentation.common.default-enabled" )).isFalse ();
134+ void agentCommonTranslation () {
135+ assertThat (
136+ create (
137+ ConfigPropertiesUtil .propertyTranslatorBuilder ()
138+ .addTranslation (
139+ "otel.instrumentation.common.default-enabled" ,
140+ "common.default.enabled" ))
141+ .getBoolean ("otel.instrumentation.common.default-enabled" ))
142+ .isFalse ();
163143 }
164144
165145 @ Test
166- void agent () {
167- Map <String , Object > earlyInitProperties = new HashMap <>();
168- earlyInitProperties .put ("otel.javaagent.debug" , true );
169- earlyInitProperties .put ("otel.javaagent.logging" , "application" );
170- DeclarativeConfigPropertiesBridge bridge = create (earlyInitProperties );
146+ void agentTranslation () {
147+ ConfigProperties bridge =
148+ create (
149+ ConfigPropertiesUtil .propertyTranslatorBuilder ()
150+ .addTranslation ("otel.javaagent" , "agent" )
151+ .addFixedValue ("otel.javaagent.debug" , true )
152+ .addFixedValue ("otel.javaagent.logging" , "application" ));
171153
172154 assertThat (bridge .getBoolean ("otel.javaagent.debug" )).isTrue ();
173155 assertThat (bridge .getBoolean ("otel.javaagent.experimental.indy" )).isTrue ();
0 commit comments