4
4
*/
5
5
6
6
package io .opentelemetry .javaagent .extension .internal ;
7
+
7
8
import static org .assertj .core .api .Assertions .assertThat ;
8
9
9
- import io .opentelemetry .javaagent .extension .internal .DeclarativeConfigPropertiesBridge ;
10
10
import io .opentelemetry .sdk .autoconfigure .spi .ConfigProperties ;
11
11
import io .opentelemetry .sdk .extension .incubator .fileconfig .DeclarativeConfiguration ;
12
12
import io .opentelemetry .sdk .extension .incubator .fileconfig .SdkConfigProvider ;
13
13
import io .opentelemetry .sdk .extension .incubator .fileconfig .internal .model .InstrumentationModel ;
14
14
import io .opentelemetry .sdk .extension .incubator .fileconfig .internal .model .OpenTelemetryConfigurationModel ;
15
- import java .io .ByteArrayInputStream ;
16
- import java .nio .charset .StandardCharsets ;
17
15
import java .time .Duration ;
18
16
import java .util .Arrays ;
19
- import java .util .Collections ;
20
17
import java .util .HashMap ;
21
18
import java .util .Map ;
22
19
import java .util .Objects ;
25
22
26
23
class DeclarativeConfigPropertiesBridgeTest {
27
24
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
-
53
25
private ConfigProperties bridge ;
54
26
private ConfigProperties emptyBridge ;
55
27
56
28
@ BeforeEach
57
29
void setup () {
58
- bridge = createBridge ( Collections . emptyMap ());
30
+ bridge = create ( ConfigPropertiesUtil . propertyTranslatorBuilder ());
59
31
60
32
OpenTelemetryConfigurationModel emptyModel =
61
33
new OpenTelemetryConfigurationModel ()
62
34
.withAdditionalProperty ("instrumentation/development" , new InstrumentationModel ());
63
35
SdkConfigProvider emptyConfigProvider = SdkConfigProvider .create (emptyModel );
64
36
emptyBridge =
65
- DeclarativeConfigPropertiesBridge .fromInstrumentationConfig (
66
- Objects .requireNonNull (emptyConfigProvider .getInstrumentationConfig ()),
67
- Collections .emptyMap ());
37
+ ConfigPropertiesUtil .resolveInstrumentationConfig (
38
+ Objects .requireNonNull (emptyConfigProvider .getInstrumentationConfig ()));
68
39
}
69
40
70
- private static DeclarativeConfigPropertiesBridge createBridge (
71
- Map <String , String > translationMap ) {
41
+ private static ConfigProperties create (PropertyTranslatorBuilder builder ) {
72
42
OpenTelemetryConfigurationModel model =
73
43
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 );
78
50
}
79
51
80
52
@ Test
@@ -88,7 +60,6 @@ void getProperties() {
88
60
.isTrue ();
89
61
90
62
// common cases
91
- assertThat (bridge .getBoolean ("otel.instrumentation.common.default-enabled" )).isTrue ();
92
63
assertThat (bridge .getBoolean ("otel.instrumentation.runtime-telemetry.enabled" )).isFalse ();
93
64
94
65
// check all the types
@@ -151,23 +122,34 @@ void vendor() {
151
122
}
152
123
153
124
@ 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" ));
157
130
assertThat (propertiesBridge .getBoolean ("acme.preserved" )).isTrue ();
158
131
}
159
132
160
133
@ 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 ();
163
143
}
164
144
165
145
@ 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" ));
171
153
172
154
assertThat (bridge .getBoolean ("otel.javaagent.debug" )).isTrue ();
173
155
assertThat (bridge .getBoolean ("otel.javaagent.experimental.indy" )).isTrue ();
0 commit comments