diff --git a/pom.xml b/pom.xml
index 0bdf51bd6..7a7e92f81 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,6 +61,9 @@
1.18.38
2.28.2
1.7.32
+
+ 2.9
+
2.0
1.19.8
@@ -215,6 +218,13 @@
snakeyaml
${snakeyaml.version}
+
+ org.snakeyaml
+ snakeyaml-engine
+ ${snakeyaml-engine.version}
+ provided
+ true
+
javax.management.j2ee
javax.management.j2ee-api
diff --git a/src/main/java/org/datadog/jmxfetch/App.java b/src/main/java/org/datadog/jmxfetch/App.java
index 9983267ba..230344cb9 100644
--- a/src/main/java/org/datadog/jmxfetch/App.java
+++ b/src/main/java/org/datadog/jmxfetch/App.java
@@ -84,8 +84,8 @@ public class App {
private static int loopCounter;
private int lastJsonConfigTs;
private Map adJsonConfigs;
- private Map configs;
- private Map adPipeConfigs = new ConcurrentHashMap<>();
+ private Map configs;
+ private Map adPipeConfigs = new ConcurrentHashMap<>();
private List instances = new ArrayList<>();
private Map brokenInstanceMap = new ConcurrentHashMap<>();
private AtomicBoolean reinit = new AtomicBoolean(false);
@@ -403,7 +403,7 @@ public boolean processAutoDiscovery(byte[] buffer) {
final String name = getAutoDiscoveryName(config);
log.debug("Attempting to apply config. Name: " + name);
final InputStream stream = new ByteArrayInputStream(config.getBytes(UTF_8));
- final YamlParser yaml = new YamlParser(stream);
+ final ConfigYaml yaml = new ConfigYaml(stream);
if (this.addConfig(name, yaml)) {
reinit = true;
@@ -700,7 +700,7 @@ public TaskStatusHandler invoke(
* Adds a configuration to the auto-discovery pipe-collected configuration list. This method is
* deprecated.
*/
- public boolean addConfig(final String name, final YamlParser config) {
+ public boolean addConfig(final String name, final ConfigYaml config) {
// named groups not supported with Java6:
//
// "AUTO_DISCOVERY_PREFIX(?.{1,80})_(?\\d{0,AD_MAX_MAG_INSTANCES})"
@@ -746,8 +746,8 @@ public boolean addJsonConfig(final String name, final String json) {
return false;
}
- private Map getConfigs(final AppConfig config) {
- final Map configs = new ConcurrentHashMap<>();
+ private Map getConfigs(final AppConfig config) {
+ final Map configs = new ConcurrentHashMap<>();
this.loadFileConfigs(config, configs);
this.loadResourceConfigs(config, configs);
@@ -756,7 +756,7 @@ private Map getConfigs(final AppConfig config) {
return configs;
}
- private void loadFileConfigs(final AppConfig config, final Map configs) {
+ private void loadFileConfigs(final AppConfig config, final Map configs) {
final List fileList = config.getYamlFileList();
if (fileList != null) {
for (final String fileName : fileList) {
@@ -765,7 +765,7 @@ private void loadFileConfigs(final AppConfig config, final Map configs) {
+ final AppConfig config, final Map configs) {
final List resourceConfigList = config.getInstanceConfigResources();
if (resourceConfigList != null) {
final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
@@ -788,7 +788,7 @@ private void loadResourceConfigs(
log.warn("Cannot find " + resourceName);
} else {
try {
- configs.put(name, new YamlParser(inputStream));
+ configs.put(name, new ConfigYaml(inputStream));
} catch (Exception e) {
log.warn("Cannot parse yaml file " + resourceName, e);
} finally {
@@ -933,11 +933,11 @@ public void init(final boolean forceNewConnection) {
final Set instanceNamesSeen = new HashSet<>();
log.info("Dealing with YAML config instances...");
- final Iterator> it = this.configs.entrySet().iterator();
- final Iterator> itPipeConfigs = this.adPipeConfigs
+ final Iterator> it = this.configs.entrySet().iterator();
+ final Iterator> itPipeConfigs = this.adPipeConfigs
.entrySet().iterator();
while (it.hasNext() || itPipeConfigs.hasNext()) {
- Map.Entry entry;
+ Map.Entry entry;
boolean fromPipeIterator = false;
if (it.hasNext()) {
entry = it.next();
@@ -947,14 +947,14 @@ public void init(final boolean forceNewConnection) {
}
final String name = entry.getKey();
- final YamlParser yamlConfig = entry.getValue();
+ final ConfigYaml yamlConfig = entry.getValue();
// AD config cache doesn't remove configs - it just overwrites.
if (!fromPipeIterator) {
it.remove();
}
final List