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 <kezhenx...@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); }