You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2023/03/07 08:55:55 UTC

[skywalking] 01/01: Bump up snakeyaml to 2.0

This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch yaml
in repository https://gitbox.apache.org/repos/asf/skywalking.git

commit 0e3fcbaaaf29dc316cce4d76eb63822220272e7d
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Tue Mar 7 16:55:26 2023 +0800

    Bump up snakeyaml to 2.0
---
 dist-material/release-docs/LICENSE                             |  2 +-
 oap-server-bom/pom.xml                                         |  2 +-
 .../server/analyzer/provider/meter/config/MeterConfigs.java    |  2 +-
 .../provider/trace/sampling/SamplingPolicySettingsReader.java  |  7 ++++---
 .../oap/log/analyzer/dsl/spec/parser/YamlParserSpec.java       |  6 +++++-
 .../skywalking/oap/log/analyzer/provider/LALConfigs.java       |  2 +-
 .../skywalking/oap/server/core/alarm/provider/RulesReader.java |  9 +++++----
 .../oap/server/core/analysis/ApdexThresholdConfig.java         |  3 ++-
 .../server/core/config/group/EndpointGroupingRuleReader.java   |  5 +++--
 .../group/openapi/EndpointGroupingRuleReader4Openapi.java      |  5 +++--
 .../oap/server/library/util/yaml/ClassFilterConstructor.java   | 10 +++++++---
 .../configuration/discovery/AgentConfigurationsReader.java     |  9 +++++----
 .../server/receiver/zabbix/provider/config/ZabbixConfigs.java  |  2 +-
 13 files changed, 39 insertions(+), 25 deletions(-)

diff --git a/dist-material/release-docs/LICENSE b/dist-material/release-docs/LICENSE
index 9e553204bd..bea42c58e9 100644
--- a/dist-material/release-docs/LICENSE
+++ b/dist-material/release-docs/LICENSE
@@ -345,7 +345,7 @@ The text of each license is the standard Apache 2.0 license.
     https://mvnrepository.com/artifact/org.slf4j/log4j-over-slf4j/1.7.30 Apache-2.0
     https://mvnrepository.com/artifact/org.slf4j/slf4j-api/1.7.30 Apache-2.0
     https://mvnrepository.com/artifact/org.xerial.snappy/snappy-java/1.1.8.1 Apache-2.0
-    https://mvnrepository.com/artifact/org.yaml/snakeyaml/1.33 Apache-2.0
+    https://mvnrepository.com/artifact/org.yaml/snakeyaml/2.0 Apache-2.0
     https://npmjs.com/package/typescript/v/4.7.4 4.7.4 Apache-2.0
 
 ========================================================================
diff --git a/oap-server-bom/pom.xml b/oap-server-bom/pom.xml
index 8c22ed7d1d..a5ff3d2a8a 100644
--- a/oap-server-bom/pom.xml
+++ b/oap-server-bom/pom.xml
@@ -40,7 +40,7 @@
         <joda-time.version>2.10.5</joda-time.version>
         <zookeeper.version>3.5.7</zookeeper.version>
         <guava.version>31.1-jre</guava.version>
-        <snakeyaml.version>1.33</snakeyaml.version>
+        <snakeyaml.version>2.0</snakeyaml.version>
         <protobuf-java.version>3.21.8</protobuf-java.version>
         <protobuf-java-util.version>3.21.8</protobuf-java-util.version>
         <commons-codec.version>1.11</commons-codec.version>
diff --git a/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/meter/config/MeterConfigs.java b/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/meter/config/MeterConfigs.java
index ac53413e78..4e4a3a3493 100644
--- a/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/meter/config/MeterConfigs.java
+++ b/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/meter/config/MeterConfigs.java
@@ -65,7 +65,7 @@ public class MeterConfigs {
                     return null;
                 }
                 try (Reader r = new FileReader(f)) {
-                    return new Yaml().loadAs(r, MeterConfig.class);
+                    return new Yaml().<MeterConfig>load(r);
                 } catch (IOException e) {
                     log.warn("Reading file {} failed", f, e);
                 }
diff --git a/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/sampling/SamplingPolicySettingsReader.java b/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/sampling/SamplingPolicySettingsReader.java
index e4b171882e..13b452e506 100644
--- a/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/sampling/SamplingPolicySettingsReader.java
+++ b/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/sampling/SamplingPolicySettingsReader.java
@@ -18,6 +18,7 @@
 package org.apache.skywalking.oap.server.analyzer.provider.trace.sampling;
 
 import org.apache.skywalking.oap.server.library.util.StringUtil;
+import org.yaml.snakeyaml.LoaderOptions;
 import org.yaml.snakeyaml.Yaml;
 import org.yaml.snakeyaml.constructor.SafeConstructor;
 
@@ -32,15 +33,15 @@ import java.util.Objects;
  * SamplingPolicySettings}.
  */
 public class SamplingPolicySettingsReader {
-    private Map yamlData;
+    private Map<String, ?> yamlData;
 
     public SamplingPolicySettingsReader(InputStream inputStream) {
-        Yaml yaml = new Yaml(new SafeConstructor());
+        Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
         yamlData = yaml.load(inputStream);
     }
 
     public SamplingPolicySettingsReader(Reader io) {
-        Yaml yaml = new Yaml(new SafeConstructor());
+        Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
         yamlData = yaml.load(io);
     }
 
diff --git a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/dsl/spec/parser/YamlParserSpec.java b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/dsl/spec/parser/YamlParserSpec.java
index bbd4dc4765..2b99b30bed 100644
--- a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/dsl/spec/parser/YamlParserSpec.java
+++ b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/dsl/spec/parser/YamlParserSpec.java
@@ -37,6 +37,10 @@ public class YamlParserSpec extends AbstractParserSpec {
     }
 
     public Yaml create() {
-        return new Yaml(new SafeConstructor(), new Representer(), new DumperOptions(), loaderOptions);
+        final var dumperOptions = new DumperOptions();
+        return new Yaml(
+                new SafeConstructor(loaderOptions),
+                new Representer(dumperOptions),
+                dumperOptions, loaderOptions);
     }
 }
diff --git a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/LALConfigs.java b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/LALConfigs.java
index 11b0214570..a67f0a4c76 100644
--- a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/LALConfigs.java
+++ b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/LALConfigs.java
@@ -62,7 +62,7 @@ public class LALConfigs {
                          })
                          .map(f -> {
                              try (final Reader r = new FileReader(f)) {
-                                 return new Yaml().loadAs(r, LALConfigs.class);
+                                 return new Yaml().<LALConfigs>load(r);
                              } catch (IOException e) {
                                  log.debug("Failed to read file {}", f, e);
                              }
diff --git a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RulesReader.java b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RulesReader.java
index c0bfc8b8fd..924c04894f 100644
--- a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RulesReader.java
+++ b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RulesReader.java
@@ -38,6 +38,7 @@ import org.apache.skywalking.oap.server.core.alarm.provider.slack.SlackSettings;
 import org.apache.skywalking.oap.server.core.alarm.provider.wechat.WechatSettings;
 import org.apache.skywalking.oap.server.core.alarm.provider.welink.WeLinkSettings;
 import org.apache.skywalking.oap.server.library.util.CollectionUtils;
+import org.yaml.snakeyaml.LoaderOptions;
 import org.yaml.snakeyaml.Yaml;
 import org.yaml.snakeyaml.constructor.SafeConstructor;
 
@@ -48,13 +49,13 @@ public class RulesReader {
     private Map yamlData;
 
     public RulesReader(InputStream inputStream) {
-        Yaml yaml = new Yaml(new SafeConstructor());
-        yamlData = (Map) yaml.load(inputStream);
+        Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
+        yamlData = yaml.load(inputStream);
     }
 
     public RulesReader(Reader io) {
-        Yaml yaml = new Yaml(new SafeConstructor());
-        yamlData = (Map) yaml.load(io);
+        Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
+        yamlData = yaml.load(io);
     }
 
     /**
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/ApdexThresholdConfig.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/ApdexThresholdConfig.java
index 083eaad6f3..457b4eebd3 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/ApdexThresholdConfig.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/ApdexThresholdConfig.java
@@ -29,6 +29,7 @@ import org.apache.skywalking.oap.server.configuration.api.ConfigChangeWatcher;
 import org.apache.skywalking.oap.server.core.CoreModule;
 import org.apache.skywalking.oap.server.core.CoreModuleProvider;
 import org.apache.skywalking.oap.server.library.util.ResourceUtils;
+import org.yaml.snakeyaml.LoaderOptions;
 import org.yaml.snakeyaml.Yaml;
 import org.yaml.snakeyaml.constructor.SafeConstructor;
 
@@ -95,7 +96,7 @@ public class ApdexThresholdConfig extends ConfigChangeWatcher implements Configu
 
     @SuppressWarnings("unchecked")
     private void updateConfig(final Reader contentRender) {
-        dictionary = (Map<String, Integer>) new Yaml(new SafeConstructor()).load(contentRender);
+        dictionary = new Yaml(new SafeConstructor(new LoaderOptions())).load(contentRender);
         if (dictionary == null) {
             dictionary = Collections.emptyMap();
         }
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/config/group/EndpointGroupingRuleReader.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/config/group/EndpointGroupingRuleReader.java
index 88dfffa84b..a7bc86a67b 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/config/group/EndpointGroupingRuleReader.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/config/group/EndpointGroupingRuleReader.java
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import org.apache.skywalking.oap.server.library.util.StringUtil;
+import org.yaml.snakeyaml.LoaderOptions;
 import org.yaml.snakeyaml.Yaml;
 import org.yaml.snakeyaml.constructor.SafeConstructor;
 
@@ -34,12 +35,12 @@ public class EndpointGroupingRuleReader {
     private Map yamlData;
 
     public EndpointGroupingRuleReader(InputStream inputStream) {
-        Yaml yaml = new Yaml(new SafeConstructor());
+        Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
         yamlData = (Map) yaml.load(inputStream);
     }
 
     public EndpointGroupingRuleReader(Reader io) {
-        Yaml yaml = new Yaml(new SafeConstructor());
+        Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
         yamlData = (Map) yaml.load(io);
     }
 
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/config/group/openapi/EndpointGroupingRuleReader4Openapi.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/config/group/openapi/EndpointGroupingRuleReader4Openapi.java
index 21c8555499..4347359363 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/config/group/openapi/EndpointGroupingRuleReader4Openapi.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/config/group/openapi/EndpointGroupingRuleReader4Openapi.java
@@ -30,6 +30,7 @@ import java.util.List;
 import java.util.Map;
 import org.apache.skywalking.oap.server.library.util.StringUtil;
 import org.apache.skywalking.oap.server.library.util.ResourceUtils;
+import org.yaml.snakeyaml.LoaderOptions;
 import org.yaml.snakeyaml.Yaml;
 import org.yaml.snakeyaml.constructor.SafeConstructor;
 
@@ -99,7 +100,7 @@ public class EndpointGroupingRuleReader4Openapi {
                 continue;
             }
             Reader reader = new FileReader(file);
-            Yaml yaml = new Yaml(new SafeConstructor());
+            Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
             Map openapiData = yaml.load(reader);
             if (openapiData != null) {
                 serviceOpenapiDefMap.computeIfAbsent(getServiceName(openapiDefPath, file, openapiData), k -> new ArrayList<>()).add(openapiData);
@@ -119,7 +120,7 @@ public class EndpointGroupingRuleReader4Openapi {
                 serviceName = itemNameInfo[0];
             }
             Reader reader = new StringReader(openapiDefs);
-            Yaml yaml = new Yaml(new SafeConstructor());
+            Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
             Map openapiData = yaml.load(reader);
             if (openapiData != null) {
                 serviceOpenapiDefMap.computeIfAbsent(getServiceName(serviceName, openapiData), k -> new ArrayList<>())
diff --git a/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/yaml/ClassFilterConstructor.java b/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/yaml/ClassFilterConstructor.java
index c31f324013..fc5d03bce5 100644
--- a/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/yaml/ClassFilterConstructor.java
+++ b/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/yaml/ClassFilterConstructor.java
@@ -18,18 +18,22 @@
 
 package org.apache.skywalking.oap.server.library.util.yaml;
 
-import lombok.RequiredArgsConstructor;
+import org.yaml.snakeyaml.LoaderOptions;
 import org.yaml.snakeyaml.constructor.Constructor;
 
 /**
  * Whitelist constructor implementation for YAML snake.
  * Copied from Apache ShardingSphere.
  */
-@RequiredArgsConstructor
 public final class ClassFilterConstructor extends Constructor {
 
     private final Class<?>[] acceptClasses;
 
+    public ClassFilterConstructor(final Class<?>[] acceptClasses) {
+        super(new LoaderOptions());
+        this.acceptClasses = acceptClasses;
+    }
+
     @Override
     protected Class<?> getClassForName(final String name) throws ClassNotFoundException {
         for (Class<? extends Object> each : acceptClasses) {
@@ -39,4 +43,4 @@ public final class ClassFilterConstructor extends Constructor {
         }
         throw new IllegalArgumentException(String.format("Class is not accepted: %s", name));
     }
-}
\ No newline at end of file
+}
diff --git a/oap-server/server-receiver-plugin/configuration-discovery-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/recevier/configuration/discovery/AgentConfigurationsReader.java b/oap-server/server-receiver-plugin/configuration-discovery-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/recevier/configuration/discovery/AgentConfigurationsReader.java
index 69d44cae58..27d581a6a8 100644
--- a/oap-server/server-receiver-plugin/configuration-discovery-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/recevier/configuration/discovery/AgentConfigurationsReader.java
+++ b/oap-server/server-receiver-plugin/configuration-discovery-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/recevier/configuration/discovery/AgentConfigurationsReader.java
@@ -26,6 +26,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
 import lombok.extern.slf4j.Slf4j;
+import org.yaml.snakeyaml.LoaderOptions;
 import org.yaml.snakeyaml.Yaml;
 import org.yaml.snakeyaml.constructor.SafeConstructor;
 
@@ -37,13 +38,13 @@ public class AgentConfigurationsReader {
     private Map yamlData;
 
     public AgentConfigurationsReader(InputStream inputStream) {
-        Yaml yaml = new Yaml(new SafeConstructor());
-        yamlData = (Map) yaml.load(inputStream);
+        Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
+        yamlData = yaml.load(inputStream);
     }
 
     public AgentConfigurationsReader(Reader io) {
-        Yaml yaml = new Yaml(new SafeConstructor());
-        yamlData = (Map) yaml.load(io);
+        Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
+        yamlData = yaml.load(io);
     }
 
     public AgentConfigurationsTable readAgentConfigurationsTable() {
diff --git a/oap-server/server-receiver-plugin/skywalking-zabbix-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zabbix/provider/config/ZabbixConfigs.java b/oap-server/server-receiver-plugin/skywalking-zabbix-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zabbix/provider/config/ZabbixConfigs.java
index 9d5c5730f0..3f65f7d576 100644
--- a/oap-server/server-receiver-plugin/skywalking-zabbix-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zabbix/provider/config/ZabbixConfigs.java
+++ b/oap-server/server-receiver-plugin/skywalking-zabbix-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zabbix/provider/config/ZabbixConfigs.java
@@ -59,7 +59,7 @@ public class ZabbixConfigs {
                     return null;
                 }
                 try (Reader r = new FileReader(f)) {
-                    return new Yaml().loadAs(r, ZabbixConfig.class);
+                    return new Yaml().<ZabbixConfig>load(r);
                 } catch (IOException e) {
                     log.warn("Reading file {} failed", f, e);
                 }