From bfd0959138eb1d97b985f0b6ffb95ddf76f3185e Mon Sep 17 00:00:00 2001 From: Guillermo Calvo Date: Mon, 8 Jan 2024 10:29:33 +0100 Subject: [PATCH] Revert SnakeYAML changes Revert "Override Spring BOM for SnakeYAML to force version 2.2 (#13255)" - This reverts commit 13737502d06f2f8b877c5b4956c90e14e6ae8cbd. Revert "Upgrade snakeyaml; replace deprecated constructor calls" - This reverts commit 64a28067b68b9b7be38ef21176520597345845ae. --- build.gradle | 6 ------ gradle.properties | 1 - grails-bootstrap/build.gradle | 2 +- .../src/main/groovy/grails/util/Metadata.groovy | 3 +-- .../src/main/groovy/org/grails/config/CodeGenConfig.groovy | 3 +-- grails-docs/build.gradle | 2 +- grails-docs/src/main/groovy/grails/doc/DocPublisher.groovy | 5 ++--- .../main/groovy/grails/doc/internal/YamlTocStrategy.groovy | 3 +-- .../cli/gradle/cache/MapReadingCachedGradleOperation.groovy | 5 ++--- .../groovy/org/grails/cli/profile/AbstractProfile.groovy | 5 ++--- .../groovy/org/grails/cli/profile/DefaultFeature.groovy | 3 +-- .../cli/profile/commands/factory/YamlCommandFactory.groovy | 3 +-- 12 files changed, 13 insertions(+), 28 deletions(-) diff --git a/build.gradle b/build.gradle index b044774c5c0..286246d7eec 100644 --- a/build.gradle +++ b/build.gradle @@ -111,12 +111,6 @@ ext { names : ['grails-async', 'grails-events'], modules: ['gpars', 'rxjava', 'rxjava2'] ], - snakeyaml: [ - version: snakeyamlVersion, - group : 'org.yaml', - names: ['snakeyaml'], - modules: [''] - ], spock: [ version: spockVersion, group : 'org.spockframework', diff --git a/gradle.properties b/gradle.properties index 56b67e16d92..9e5169f95ee 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,7 +20,6 @@ jansiVersion=1.18 jlineVersion=2.14.6 jnaVersion=4.5.2 slf4jVersion=1.7.30 -snakeyamlVersion=2.2 directoryWatcherVersion=0.9.9 junitVersion=4.13 caffeineVersion=2.6.2 diff --git a/grails-bootstrap/build.gradle b/grails-bootstrap/build.gradle index c93b421ae6f..6a91e1c2d52 100644 --- a/grails-bootstrap/build.gradle +++ b/grails-bootstrap/build.gradle @@ -3,7 +3,7 @@ import org.apache.tools.ant.filters.ReplaceTokens dependencies { compile ( "org.codehaus.groovy:groovy-xml:$groovyVersion" ) compile ( "org.codehaus.groovy:groovy-templates:$groovyVersion" ) - compile "org.yaml:snakeyaml:$snakeyamlVersion" + compile "org.yaml:snakeyaml:1.33" compileOnly("io.methvin:directory-watcher:0.16.1") compileOnly("org.fusesource.jansi:jansi:$jansiVersion") diff --git a/grails-bootstrap/src/main/groovy/grails/util/Metadata.groovy b/grails-bootstrap/src/main/groovy/grails/util/Metadata.groovy index f4b08f49dbf..0228bee588c 100644 --- a/grails-bootstrap/src/main/groovy/grails/util/Metadata.groovy +++ b/grails-bootstrap/src/main/groovy/grails/util/Metadata.groovy @@ -22,7 +22,6 @@ import org.grails.config.NavigableMap import org.grails.io.support.FileSystemResource import org.grails.io.support.Resource import org.grails.io.support.UrlResource -import org.yaml.snakeyaml.LoaderOptions import org.yaml.snakeyaml.Yaml import org.yaml.snakeyaml.constructor.SafeConstructor @@ -169,7 +168,7 @@ class Metadata extends NavigableMap implements ConfigMap { } private Object loadYml(InputStream input) { - Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions())) + Yaml yaml = new Yaml(new SafeConstructor()) def loadedYaml = yaml.loadAll(input) List result = [] for(Object yamlObject : loadedYaml) { diff --git a/grails-bootstrap/src/main/groovy/org/grails/config/CodeGenConfig.groovy b/grails-bootstrap/src/main/groovy/org/grails/config/CodeGenConfig.groovy index b7eb5aa5514..11e6a06d974 100644 --- a/grails-bootstrap/src/main/groovy/org/grails/config/CodeGenConfig.groovy +++ b/grails-bootstrap/src/main/groovy/org/grails/config/CodeGenConfig.groovy @@ -22,7 +22,6 @@ import groovy.transform.CompileDynamic import groovy.transform.CompileStatic import org.codehaus.groovy.runtime.DefaultGroovyMethods import org.codehaus.groovy.runtime.typehandling.GroovyCastException -import org.yaml.snakeyaml.LoaderOptions import org.yaml.snakeyaml.Yaml import org.yaml.snakeyaml.constructor.SafeConstructor @@ -154,7 +153,7 @@ class CodeGenConfig implements Cloneable, ConfigMap { @CompileDynamic // fails with CompileStatic! void loadYml(InputStream input) { - Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions())) + Yaml yaml = new Yaml(new SafeConstructor()) for(Object yamlObject : yaml.loadAll(input)) { if(yamlObject instanceof Map) { // problem here with CompileStatic mergeMap((Map)yamlObject) diff --git a/grails-docs/build.gradle b/grails-docs/build.gradle index a7c7393d101..604eb9d122f 100644 --- a/grails-docs/build.gradle +++ b/grails-docs/build.gradle @@ -9,7 +9,7 @@ dependencies { "org.slf4j:jcl-over-slf4j:$slf4jVersion", "org.apache.ant:ant:$antVersion", 'org.grails:grails-gdoc-engine:1.0.1', - "org.yaml:snakeyaml:$snakeyamlVersion", + 'org.yaml:snakeyaml:1.33', "org.codehaus.groovy:groovy-ant:$groovyVersion" compile 'org.asciidoctor:asciidoctorj:2.5.6' diff --git a/grails-docs/src/main/groovy/grails/doc/DocPublisher.groovy b/grails-docs/src/main/groovy/grails/doc/DocPublisher.groovy index e8faf7fe023..1a4fa3b6b52 100644 --- a/grails-docs/src/main/groovy/grails/doc/DocPublisher.groovy +++ b/grails-docs/src/main/groovy/grails/doc/DocPublisher.groovy @@ -24,7 +24,6 @@ import org.apache.commons.logging.LogFactory import org.radeox.api.engine.WikiRenderEngine import org.radeox.engine.context.BaseInitialRenderContext import org.radeox.engine.context.BaseRenderContext -import org.yaml.snakeyaml.LoaderOptions import org.yaml.snakeyaml.Yaml import org.yaml.snakeyaml.constructor.SafeConstructor @@ -266,7 +265,7 @@ class DocPublisher { def legacyLinks = [:] if (legacyLinksFile.exists()) { legacyLinksFile.withInputStream { input -> - legacyLinks = new Yaml(new SafeConstructor(new LoaderOptions())).load(input) + legacyLinks = new Yaml(new SafeConstructor()).load(input) } } @@ -538,7 +537,7 @@ class DocPublisher { } else if(propertiesFile.name.endsWith('.yml')) { propertiesFile.withInputStream { input -> - def ymls = new Yaml(new SafeConstructor(new LoaderOptions())).loadAll(input) + def ymls = new Yaml(new SafeConstructor()).loadAll(input) for(yml in ymls) { if(yml instanceof Map) { def config = yml.grails?.doc diff --git a/grails-docs/src/main/groovy/grails/doc/internal/YamlTocStrategy.groovy b/grails-docs/src/main/groovy/grails/doc/internal/YamlTocStrategy.groovy index 07689b58c4c..fec54559155 100644 --- a/grails-docs/src/main/groovy/grails/doc/internal/YamlTocStrategy.groovy +++ b/grails-docs/src/main/groovy/grails/doc/internal/YamlTocStrategy.groovy @@ -1,6 +1,5 @@ package grails.doc.internal -import org.yaml.snakeyaml.LoaderOptions import org.yaml.snakeyaml.Yaml import org.yaml.snakeyaml.constructor.SafeConstructor @@ -8,7 +7,7 @@ import org.yaml.snakeyaml.constructor.SafeConstructor * Class representing a Grails user guide table of contents defined in YAML. */ class YamlTocStrategy { - private final parser = new Yaml(new SafeConstructor(new LoaderOptions())) + private final parser = new Yaml(new SafeConstructor()) private resourceChecker private String ext = ".gdoc" diff --git a/grails-shell/src/main/groovy/org/grails/cli/gradle/cache/MapReadingCachedGradleOperation.groovy b/grails-shell/src/main/groovy/org/grails/cli/gradle/cache/MapReadingCachedGradleOperation.groovy index fa0adaef5cc..b1460c97847 100644 --- a/grails-shell/src/main/groovy/org/grails/cli/gradle/cache/MapReadingCachedGradleOperation.groovy +++ b/grails-shell/src/main/groovy/org/grails/cli/gradle/cache/MapReadingCachedGradleOperation.groovy @@ -20,7 +20,6 @@ import groovy.transform.CompileStatic import groovy.transform.InheritConstructors import org.gradle.tooling.ProjectConnection import org.yaml.snakeyaml.DumperOptions -import org.yaml.snakeyaml.LoaderOptions import org.yaml.snakeyaml.Yaml import org.yaml.snakeyaml.constructor.SafeConstructor import org.yaml.snakeyaml.representer.Representer @@ -38,7 +37,7 @@ abstract class MapReadingCachedGradleOperation extends CachedGradleOperation @Override Map readFromCached(File f) { def map = (Map) f.withReader { BufferedReader r -> - new Yaml(new SafeConstructor(new LoaderOptions())).load(r) + new Yaml(new SafeConstructor()).load(r) } Map newMap = [:] @@ -62,7 +61,7 @@ abstract class MapReadingCachedGradleOperation extends CachedGradleOperation return [(key):val.toString()] } } - new Yaml(new SafeConstructor(new LoaderOptions()), new Representer(options), options).dump(toWrite, writer) + new Yaml(new SafeConstructor(), new Representer(), options).dump(toWrite, writer) } } diff --git a/grails-shell/src/main/groovy/org/grails/cli/profile/AbstractProfile.groovy b/grails-shell/src/main/groovy/org/grails/cli/profile/AbstractProfile.groovy index 503106e9dc7..b4edb3a5d1b 100644 --- a/grails-shell/src/main/groovy/org/grails/cli/profile/AbstractProfile.groovy +++ b/grails-shell/src/main/groovy/org/grails/cli/profile/AbstractProfile.groovy @@ -33,7 +33,6 @@ import org.grails.cli.profile.commands.DefaultMultiStepCommand import org.grails.cli.profile.commands.script.GroovyScriptCommand import org.grails.config.NavigableMap import org.grails.io.support.Resource -import org.yaml.snakeyaml.LoaderOptions import org.yaml.snakeyaml.Yaml import org.yaml.snakeyaml.constructor.SafeConstructor @@ -109,7 +108,7 @@ abstract class AbstractProfile implements Profile { protected void initialize() { def profileYml = profileDir.createRelative("profile.yml") - Map profileConfig = new Yaml(new SafeConstructor(new LoaderOptions())).> load(profileYml.getInputStream()) + Map profileConfig = new Yaml(new SafeConstructor()).> load(profileYml.getInputStream()) name = profileConfig.get("name")?.toString() description = profileConfig.get("description")?.toString() ?: '' @@ -139,7 +138,7 @@ abstract class AbstractProfile implements Profile { else if(fileName.endsWith('.yml')) { def yamlCommand = profileDir.createRelative("commands/$fileName") if(yamlCommand.exists()) { - Map data = new Yaml(new SafeConstructor(new LoaderOptions())).load(yamlCommand.getInputStream()) + Map data = new Yaml(new SafeConstructor()).load(yamlCommand.getInputStream()) Command cmd = new DefaultMultiStepCommand(clsName.toString(), this, data) Object minArguments = data?.minArguments cmd.minArguments = minArguments instanceof Integer ? (Integer)minArguments : 1 diff --git a/grails-shell/src/main/groovy/org/grails/cli/profile/DefaultFeature.groovy b/grails-shell/src/main/groovy/org/grails/cli/profile/DefaultFeature.groovy index bc1b99655f5..c44e1ffa920 100644 --- a/grails-shell/src/main/groovy/org/grails/cli/profile/DefaultFeature.groovy +++ b/grails-shell/src/main/groovy/org/grails/cli/profile/DefaultFeature.groovy @@ -23,7 +23,6 @@ import org.eclipse.aether.artifact.DefaultArtifact import org.eclipse.aether.graph.Dependency import org.grails.config.NavigableMap import org.grails.io.support.Resource -import org.yaml.snakeyaml.LoaderOptions import org.yaml.snakeyaml.Yaml import org.yaml.snakeyaml.constructor.SafeConstructor @@ -50,7 +49,7 @@ class DefaultFeature implements Feature { this.name = name this.location = location def featureYml = location.createRelative("feature.yml") - Map featureConfig = new Yaml(new SafeConstructor(new LoaderOptions())).>load(featureYml.getInputStream()) + Map featureConfig = new Yaml(new SafeConstructor()).>load(featureYml.getInputStream()) configuration.merge(featureConfig) def dependencyMap = configuration.get("dependencies") diff --git a/grails-shell/src/main/groovy/org/grails/cli/profile/commands/factory/YamlCommandFactory.groovy b/grails-shell/src/main/groovy/org/grails/cli/profile/commands/factory/YamlCommandFactory.groovy index 02a71a73e20..15c37483c2c 100644 --- a/grails-shell/src/main/groovy/org/grails/cli/profile/commands/factory/YamlCommandFactory.groovy +++ b/grails-shell/src/main/groovy/org/grails/cli/profile/commands/factory/YamlCommandFactory.groovy @@ -22,7 +22,6 @@ import org.grails.cli.profile.Command import org.grails.cli.profile.Profile import org.grails.cli.profile.commands.DefaultMultiStepCommand import org.grails.io.support.Resource -import org.yaml.snakeyaml.LoaderOptions import org.yaml.snakeyaml.Yaml import org.yaml.snakeyaml.constructor.SafeConstructor @@ -37,7 +36,7 @@ import java.util.regex.Pattern */ @CompileStatic class YamlCommandFactory extends ResourceResolvingCommandFactory { - protected Yaml yamlParser=new Yaml(new SafeConstructor(new LoaderOptions())) + protected Yaml yamlParser=new Yaml(new SafeConstructor()) // LAX parser for JSON: http://mrhaki.blogspot.ie/2014/08/groovy-goodness-relax-groovy-will-parse.html protected JsonSlurper jsonSlurper = new JsonSlurper().setType(JsonParserType.LAX)