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:54 UTC

[skywalking] branch yaml created (now 0e3fcbaaaf)

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

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


      at 0e3fcbaaaf Bump up snakeyaml to 2.0

This branch includes the following new commits:

     new 0e3fcbaaaf Bump up snakeyaml to 2.0

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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

Posted by ke...@apache.org.
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);
                 }