Skip to content

Commit cf6d7b7

Browse files
committed
simplify test
1 parent 96ade82 commit cf6d7b7

File tree

2 files changed

+11
-33
lines changed

2 files changed

+11
-33
lines changed

instrumentation/jmx-metrics/javaagent/src/test/java/io/opentelemetry/instrumentation/javaagent/jmx/JmxMetricInsightInstallerTest.java

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,13 @@
77

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

10-
import io.opentelemetry.instrumentation.jmx.yaml.JmxConfig;
11-
import io.opentelemetry.instrumentation.jmx.yaml.JmxRule;
10+
import io.opentelemetry.api.OpenTelemetry;
11+
import io.opentelemetry.instrumentation.jmx.JmxTelemetry;
1212
import io.opentelemetry.instrumentation.jmx.yaml.RuleParser;
13-
import java.io.File;
14-
import java.io.FileInputStream;
15-
import java.io.InputStream;
1613
import java.nio.file.Path;
1714
import java.nio.file.Paths;
1815
import java.util.Arrays;
1916
import java.util.HashSet;
20-
import java.util.List;
2117
import java.util.Set;
2218
import org.junit.jupiter.api.Test;
2319

@@ -40,32 +36,13 @@ void testToVerifyExistingRulesAreValid() throws Exception {
4036
Path path = Paths.get(PATH_TO_ALL_EXISTING_RULES);
4137
assertThat(path).isNotEmptyDirectory();
4238

43-
File existingRulesDir = path.toFile();
44-
File[] existingRules = existingRulesDir.listFiles();
45-
Set<String> filesChecked = new HashSet<>();
39+
for (String file : FILES_TO_BE_TESTED) {
40+
Path filePath = path.resolve(file);
41+
assertThat(filePath).isRegularFile();
4642

47-
for (File file : existingRules) {
48-
// make sure we only test the files that we supposed to test
49-
String fileName = file.getName();
50-
if (FILES_TO_BE_TESTED.contains(fileName)) {
51-
testRulesAreValid(file, parser);
52-
filesChecked.add(fileName);
53-
}
54-
}
55-
// make sure we checked all the files that are supposed to be here
56-
assertThat(filesChecked).isEqualTo(FILES_TO_BE_TESTED);
57-
}
58-
59-
void testRulesAreValid(File file, RuleParser parser) throws Exception {
60-
try (InputStream inputStream = new FileInputStream(file)) {
61-
JmxConfig config = parser.loadConfig(inputStream);
62-
assertThat(config).isNotNull();
63-
64-
List<JmxRule> defs = config.getRules();
65-
// make sure all the rules in that file are valid
66-
for (JmxRule rule : defs) {
67-
rule.buildMetricDef();
68-
}
43+
String target = file.substring(0, file.indexOf("."));
44+
// loading rules from direct file access
45+
JmxTelemetry.builder(OpenTelemetry.noop()).addCustomRules(filePath);
6946
}
7047
}
7148
}

instrumentation/jmx-metrics/library/src/main/java/io/opentelemetry/instrumentation/jmx/JmxTelemetryBuilder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ public JmxTelemetryBuilder beanDiscoveryDelay(long delayMs) {
5555
*/
5656
@CanIgnoreReturnValue
5757
public JmxTelemetryBuilder addClassPathRules(String target) {
58-
String yamlResource = String.format("/jmx/rules/%s.yaml", target);
59-
try (InputStream inputStream = JmxTelemetryBuilder.class.getResourceAsStream(yamlResource)) {
58+
String yamlResource = String.format("jmx/rules/%s.yaml", target);
59+
try (InputStream inputStream =
60+
JmxTelemetryBuilder.class.getClassLoader().getResourceAsStream(yamlResource)) {
6061
if (inputStream == null) {
6162
throw new IllegalArgumentException("JMX rules not found in classpath: " + yamlResource);
6263
}

0 commit comments

Comments
 (0)