Skip to content

Commit

Permalink
Replace deprecated constructor calls (#13271)
Browse files Browse the repository at this point in the history
  • Loading branch information
guillermocalvo committed Dec 7, 2023
1 parent 74326bd commit 213a4a1
Show file tree
Hide file tree
Showing 8 changed files with 28 additions and 11 deletions.
4 changes: 3 additions & 1 deletion grails-bootstrap/src/main/groovy/grails/util/Metadata.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ 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

import java.lang.ref.Reference
import java.lang.ref.SoftReference
Expand Down Expand Up @@ -167,7 +169,7 @@ class Metadata extends NavigableMap implements ConfigMap {
}

private Object loadYml(InputStream input) {
Yaml yaml = new Yaml()
Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()))
def loadedYaml = yaml.loadAll(input)
List result = []
for(Object yamlObject : loadedYaml) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ 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


/**
Expand Down Expand Up @@ -152,7 +154,7 @@ class CodeGenConfig implements Cloneable, ConfigMap {

@CompileDynamic // fails with CompileStatic!
void loadYml(InputStream input) {
Yaml yaml = new Yaml()
Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()))
for(Object yamlObject : yaml.loadAll(input)) {
if(yamlObject instanceof Map) { // problem here with CompileStatic
mergeMap((Map)yamlObject)
Expand Down
6 changes: 4 additions & 2 deletions grails-docs/src/main/groovy/grails/doc/DocPublisher.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ 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

import java.util.regex.Pattern

Expand Down Expand Up @@ -264,7 +266,7 @@ class DocPublisher {
def legacyLinks = [:]
if (legacyLinksFile.exists()) {
legacyLinksFile.withInputStream { input ->
legacyLinks = new Yaml().load(input)
legacyLinks = new Yaml(new SafeConstructor(new LoaderOptions())).load(input)
}
}

Expand Down Expand Up @@ -536,7 +538,7 @@ class DocPublisher {
}
else if(propertiesFile.name.endsWith('.yml')) {
propertiesFile.withInputStream { input ->
def ymls = new Yaml().loadAll(input)
def ymls = new Yaml(new SafeConstructor(new LoaderOptions())).loadAll(input)
for(yml in ymls) {
if(yml instanceof Map) {
def config = yml.grails?.doc
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package grails.doc.internal

import org.yaml.snakeyaml.LoaderOptions
import org.yaml.snakeyaml.Yaml
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()
private final parser = new Yaml(new SafeConstructor(new LoaderOptions()))
private resourceChecker
private String ext = ".gdoc"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ 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


/**
Expand All @@ -35,7 +38,7 @@ abstract class MapReadingCachedGradleOperation <V> extends CachedGradleOperation
@Override
Map<String, V> readFromCached(File f) {
def map = (Map<String, Object>) f.withReader { BufferedReader r ->
new Yaml().load(r)
new Yaml(new SafeConstructor(new LoaderOptions())).load(r)
}
Map<String, V> newMap = [:]

Expand All @@ -59,7 +62,7 @@ abstract class MapReadingCachedGradleOperation <V> extends CachedGradleOperation
return [(key):val.toString()]
}
}
new Yaml(options).dump(toWrite, writer)
new Yaml(new SafeConstructor(new LoaderOptions()), new Representer(options), options).dump(toWrite, writer)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ 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

/**
* Abstract implementation of the profile class
Expand Down Expand Up @@ -107,7 +109,7 @@ abstract class AbstractProfile implements Profile {

protected void initialize() {
def profileYml = profileDir.createRelative("profile.yml")
def profileConfig = (Map<String, Object>) new Yaml().loadAs(profileYml.getInputStream(), Map)
Map<String, Object> profileConfig = new Yaml(new SafeConstructor(new LoaderOptions())).<Map<String, Object>> load(profileYml.getInputStream())

name = profileConfig.get("name")?.toString()
description = profileConfig.get("description")?.toString() ?: ''
Expand Down Expand Up @@ -137,7 +139,7 @@ abstract class AbstractProfile implements Profile {
else if(fileName.endsWith('.yml')) {
def yamlCommand = profileDir.createRelative("commands/$fileName")
if(yamlCommand.exists()) {
def data = new Yaml().loadAs(yamlCommand.getInputStream(), Map.class)
Map<String, Object> data = new Yaml(new SafeConstructor(new LoaderOptions())).<Map>load(yamlCommand.getInputStream())
Command cmd = new DefaultMultiStepCommand(clsName.toString(), this, data)
Object minArguments = data?.minArguments
cmd.minArguments = minArguments instanceof Integer ? (Integer)minArguments : 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ 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


/**
Expand All @@ -48,7 +50,7 @@ class DefaultFeature implements Feature {
this.name = name
this.location = location
def featureYml = location.createRelative("feature.yml")
def featureConfig = (Map<String, Object>) new Yaml().loadAs(featureYml.getInputStream(), Map)
Map<String, Object> featureConfig = new Yaml(new SafeConstructor(new LoaderOptions())).<Map<String, Object>>load(featureYml.getInputStream())
configuration.merge(featureConfig)
def dependencyMap = configuration.get("dependencies")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ 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

import java.util.regex.Pattern

Expand All @@ -35,7 +37,7 @@ import java.util.regex.Pattern
*/
@CompileStatic
class YamlCommandFactory extends ResourceResolvingCommandFactory<Map> {
protected Yaml yamlParser=new Yaml()
protected Yaml yamlParser=new Yaml(new SafeConstructor(new LoaderOptions()))
// 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)

Expand Down

0 comments on commit 213a4a1

Please sign in to comment.