Skip to content

Commit 2cc9cf0

Browse files
committed
normalize system props before lookup to avoid ambiguity of "experimental-foo" and "experimental.foo" that both translate to "foo/development"
1 parent 6c889a7 commit 2cc9cf0

File tree

4 files changed

+17
-15
lines changed

4 files changed

+17
-15
lines changed

javaagent-tooling/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ testing {
105105

106106
val testConfigFile by registering(JvmTestSuite::class) {
107107
dependencies {
108+
implementation(project(":instrumentation-api"))
108109
implementation(project(":javaagent-tooling"))
109110
// requires mockito-inline
110111
implementation("uk.org.webcompere:system-stubs-jupiter")

javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/SpanLoggingCustomizerProviderTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import static org.assertj.core.api.Assertions.assertThat;
99

10+
import io.opentelemetry.instrumentation.api.internal.ConfigPropertiesUtil;
1011
import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfiguration;
1112
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel;
1213
import java.io.ByteArrayInputStream;
@@ -33,6 +34,7 @@ void addSpanLoggingExporter(String propertyValue, boolean alreadyAdded, boolean
3334
if (propertyValue != null) {
3435
System.setProperty("otel.javaagent.debug", propertyValue);
3536
}
37+
ConfigPropertiesUtil.resetForTest();
3638
String yaml =
3739
alreadyAdded
3840
? "file_format: \"1.0-rc.1\"\n"

javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/config/ConfigurationPropertiesSupplierTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import static org.assertj.core.api.Assertions.assertThat;
1111

1212
import io.opentelemetry.api.GlobalOpenTelemetry;
13+
import io.opentelemetry.instrumentation.api.internal.ConfigPropertiesUtil;
1314
import io.opentelemetry.javaagent.tooling.OpenTelemetryInstaller;
1415
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
1516
import io.opentelemetry.sdk.autoconfigure.internal.AutoConfigureUtil;
@@ -33,6 +34,7 @@ class ConfigurationPropertiesSupplierTest {
3334
void setUp() {
3435
GlobalOpenTelemetry.resetForTest();
3536
ConfigurationFile.resetForTest();
37+
ConfigPropertiesUtil.resetForTest();
3638
}
3739

3840
// regression for https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/6696
@@ -43,6 +45,7 @@ void fileConfigOverwritesUserPropertiesSupplier(@TempDir Path tempDir) throws IO
4345
Path configFile = tempDir.resolve("test-config.properties");
4446
Files.write(configFile, singleton("custom.key = 42"));
4547
System.setProperty(ConfigurationFile.CONFIGURATION_FILE_PROPERTY, configFile.toString());
48+
ConfigPropertiesUtil.resetForTest();
4649

4750
// when
4851
AutoConfiguredOpenTelemetrySdk autoConfiguredSdk =

javaagent-tooling/src/testConfigFile/java/io/opentelemetry/javaagent/tooling/config/ConfigurationFileTest.java

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import static org.assertj.core.api.Assertions.assertThat;
99

10+
import io.opentelemetry.instrumentation.api.internal.ConfigPropertiesUtil;
1011
import java.io.File;
1112
import java.io.IOException;
1213
import java.io.OutputStreamWriter;
@@ -36,19 +37,15 @@ void shouldUseEnvVar() throws IOException {
3637
String path = createFile("config", "property1=val-env");
3738
environmentVariables.set("OTEL_JAVAAGENT_CONFIGURATION_FILE", path);
3839

39-
Map<String, String> properties = ConfigurationFile.loadConfigFile();
40-
41-
assertThat(properties).containsEntry("property1", "val-env");
40+
assertThat(load()).containsEntry("property1", "val-env");
4241
}
4342

4443
@Test
4544
void shouldUseSystemProperty() throws IOException {
4645
String path = createFile("config", "property1=val-sys");
4746
systemProperties.set("otel.javaagent.configuration-file", path);
4847

49-
Map<String, String> properties = ConfigurationFile.loadConfigFile();
50-
51-
assertThat(properties).containsEntry("property1", "val-sys");
48+
assertThat(load()).containsEntry("property1", "val-sys");
5249
}
5350

5451
@Test
@@ -58,25 +55,19 @@ void shouldUseSystemPropertyOverEnvVar() throws IOException {
5855
systemProperties.set("otel.javaagent.configuration-file", path);
5956
environmentVariables.set("OTEL_JAVAAGENT_CONFIGURATION_FILE", pathEnv);
6057

61-
Map<String, String> properties = ConfigurationFile.loadConfigFile();
62-
63-
assertThat(properties).containsEntry("property1", "val-sys");
58+
assertThat(load()).containsEntry("property1", "val-sys");
6459
}
6560

6661
@Test
6762
void shouldReturnEmptyPropertiesIfFileDoesNotExist() {
6863
systemProperties.set("otel.javaagent.configuration-file", "somePath");
6964

70-
Map<String, String> properties = ConfigurationFile.loadConfigFile();
71-
72-
assertThat(properties).isEmpty();
65+
assertThat(load()).isEmpty();
7366
}
7467

7568
@Test
7669
void shouldReturnEmptyPropertiesIfPropertyIsNotSet() {
77-
Map<String, String> properties = ConfigurationFile.loadConfigFile();
78-
79-
assertThat(properties).isEmpty();
70+
assertThat(load()).isEmpty();
8071
}
8172

8273
private String createFile(String name, String contents) throws IOException {
@@ -87,4 +78,9 @@ private String createFile(String name, String contents) throws IOException {
8778
}
8879
return file.getAbsolutePath();
8980
}
81+
82+
private static Map<String, String> load() {
83+
ConfigPropertiesUtil.resetForTest();
84+
return ConfigurationFile.loadConfigFile();
85+
}
9086
}

0 commit comments

Comments
 (0)