Skip to content

Commit a4deaea

Browse files
committed
Clean up stableconfig stuff
1 parent 68d5f1d commit a4deaea

File tree

7 files changed

+143
-244
lines changed

7 files changed

+143
-244
lines changed

internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigParser.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package datadog.trace.bootstrap.config.provider;
22

3-
import datadog.trace.bootstrap.config.provider.stableconfigyaml.Rule;
4-
import datadog.trace.bootstrap.config.provider.stableconfigyaml.Selector;
5-
import datadog.trace.bootstrap.config.provider.stableconfigyaml.StableConfigYaml;
3+
import datadog.trace.bootstrap.config.provider.stableconfig.Rule;
4+
import datadog.trace.bootstrap.config.provider.stableconfig.Selector;
5+
import datadog.trace.bootstrap.config.provider.stableconfig.StableConfig;
66
import datadog.yaml.YamlParser;
77
import java.io.IOException;
88
import java.nio.charset.StandardCharsets;
@@ -42,15 +42,14 @@ public static StableConfigSource.StableConfig parse(String filePath) throws IOEx
4242
String content = new String(Files.readAllBytes(Paths.get(filePath)), StandardCharsets.UTF_8);
4343
String processedContent = processTemplate(content);
4444
Object parsedYaml = YamlParser.parse(processedContent);
45-
StableConfigYaml data = new StableConfigYaml(parsedYaml);
45+
StableConfig data = new StableConfig(parsedYaml);
4646

47-
String configId = data.getConfig_id();
48-
Map<String, Object> configMap = data.getApm_configuration_default();
49-
List<Rule> rules = data.getApm_configuration_rules();
47+
String configId = data.getConfigId();
48+
Map<String, Object> configMap = data.getApmConfigurationDefault();
49+
List<Rule> rules = data.getApmConfigurationRules();
5050

5151
if (!rules.isEmpty()) {
5252
for (Rule rule : rules) {
53-
// Use the first matching rule
5453
if (doesRuleMatch(rule)) {
5554
// Merge configs found in apm_configuration_rules with those found in
5655
// apm_configuration_default
@@ -62,8 +61,7 @@ public static StableConfigSource.StableConfig parse(String filePath) throws IOEx
6261
}
6362
// If configs were found in apm_configuration_default, use them
6463
if (!configMap.isEmpty()) {
65-
return new StableConfigSource.StableConfig(
66-
configId, new LinkedHashMap<String, Object>(configMap));
64+
return new StableConfigSource.StableConfig(configId, new LinkedHashMap<>(configMap));
6765
}
6866

6967
// If there's a configId but no configMap, use configId but return an empty map
@@ -72,10 +70,7 @@ public static StableConfigSource.StableConfig parse(String filePath) throws IOEx
7270
}
7371

7472
} catch (IOException e) {
75-
log.debug(
76-
"Stable configuration file either not found or not readable at filepath {}. Error: {}",
77-
filePath,
78-
e.getMessage());
73+
log.debug("Failed to read the stable configuration file: {}", filePath, e);
7974
}
8075
return StableConfigSource.StableConfig.EMPTY;
8176
}

internal-api/src/main/java/datadog/trace/bootstrap/config/provider/stableconfigyaml/Rule.java renamed to internal-api/src/main/java/datadog/trace/bootstrap/config/provider/stableconfig/Rule.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
package datadog.trace.bootstrap.config.provider.stableconfigyaml;
1+
package datadog.trace.bootstrap.config.provider.stableconfig;
22

33
import java.util.ArrayList;
4+
import java.util.Collections;
45
import java.util.LinkedHashMap;
56
import java.util.List;
67
import java.util.Map;
@@ -9,13 +10,13 @@
910

1011
// Rule represents a set of selectors and their corresponding configurations found in stable
1112
// configuration files
12-
public class Rule {
13-
private List<Selector> selectors;
14-
private Map<String, Object> configuration;
13+
public final class Rule {
14+
private final List<Selector> selectors;
15+
private final Map<String, Object> configuration;
1516

1617
public Rule() {
17-
this.selectors = new ArrayList<>();
18-
this.configuration = new LinkedHashMap<>();
18+
this.selectors = Collections.unmodifiableList(new ArrayList<>());
19+
this.configuration = Collections.unmodifiableMap(new LinkedHashMap<>());
1920
}
2021

2122
public Rule(List<Selector> selectors, Map<String, Object> configuration) {
@@ -26,9 +27,10 @@ public Rule(List<Selector> selectors, Map<String, Object> configuration) {
2627
public Rule(Object yaml) {
2728
Map map = (Map) yaml;
2829
selectors =
29-
((List<Object>) map.get("selectors"))
30-
.stream().filter(Objects::nonNull).map(Selector::new).collect(Collectors.toList());
31-
configuration = (Map<String, Object>) map.get("configuration");
30+
Collections.unmodifiableList(
31+
((List<Object>) map.get("selectors"))
32+
.stream().filter(Objects::nonNull).map(Selector::new).collect(Collectors.toList()));
33+
configuration = Collections.unmodifiableMap((Map<String, Object>) map.get("configuration"));
3234
}
3335

3436
public List<Selector> getSelectors() {
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
package datadog.trace.bootstrap.config.provider.stableconfigyaml;
1+
package datadog.trace.bootstrap.config.provider.stableconfig;
22

3+
import java.util.Collections;
34
import java.util.List;
45
import java.util.Map;
56

6-
public class Selector {
7-
private String origin;
8-
private String key;
9-
private List<String> matches;
10-
private String operator;
7+
public final class Selector {
8+
private final String origin;
9+
private final String key;
10+
private final List<String> matches;
11+
private final String operator;
1112

1213
public Selector(String origin, String key, List<String> matches, String operator) {
1314
this.origin = origin;
@@ -20,39 +21,23 @@ public Selector(Object yaml) {
2021
Map map = (Map) yaml;
2122
origin = (String) map.get("origin");
2223
key = (String) map.get("key");
23-
matches = (List<String>) map.get("matches");
24+
matches = Collections.unmodifiableList((List<String>) map.get("matches"));
2425
operator = (String) map.get("operator");
2526
}
2627

2728
public String getOrigin() {
2829
return origin;
2930
}
3031

31-
public void setOrigin(String origin) {
32-
this.origin = origin;
33-
}
34-
3532
public String getKey() {
3633
return key;
3734
}
3835

39-
public void setKey(String key) {
40-
this.key = key;
41-
}
42-
4336
public List<String> getMatches() {
4437
return matches;
4538
}
4639

47-
public void setMatches(List<String> matches) {
48-
this.matches = matches;
49-
}
50-
5140
public String getOperator() {
5241
return operator;
5342
}
54-
55-
public void setOperator(String operator) {
56-
this.operator = operator;
57-
}
5843
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package datadog.trace.bootstrap.config.provider.stableconfig;
2+
3+
import java.util.ArrayList;
4+
import java.util.Collections;
5+
import java.util.LinkedHashMap;
6+
import java.util.List;
7+
import java.util.Map;
8+
import java.util.stream.Collectors;
9+
10+
public final class StableConfig {
11+
private final String configId;
12+
private final Map<String, Object> apmConfigurationDefault;
13+
private final List<Rule> apmConfigurationRules;
14+
15+
public StableConfig(Object yaml) {
16+
Map<Object, Object> map = (Map<Object, Object>) yaml;
17+
this.configId = String.valueOf(map.get("config_id"));
18+
this.apmConfigurationDefault =
19+
Collections.unmodifiableMap(
20+
(Map<String, Object>)
21+
map.getOrDefault("apm_configuration_default", new LinkedHashMap<>()));
22+
this.apmConfigurationRules =
23+
Collections.unmodifiableList(
24+
((List<Object>) map.getOrDefault("apm_configuration_rules", new ArrayList<>()))
25+
.stream().map(Rule::new).collect(Collectors.toList()));
26+
}
27+
28+
public StableConfig(String configId, Map<String, Object> apmConfigurationDefault) {
29+
this.configId = configId;
30+
this.apmConfigurationDefault = apmConfigurationDefault;
31+
this.apmConfigurationRules = new ArrayList<>();
32+
}
33+
34+
public String getConfigId() {
35+
return configId;
36+
}
37+
38+
public Map<String, Object> getApmConfigurationDefault() {
39+
return apmConfigurationDefault;
40+
}
41+
42+
public List<Rule> getApmConfigurationRules() {
43+
return apmConfigurationRules;
44+
}
45+
}

internal-api/src/main/java/datadog/trace/bootstrap/config/provider/stableconfigyaml/StableConfigYaml.java

Lines changed: 0 additions & 49 deletions
This file was deleted.

0 commit comments

Comments
 (0)