Skip to content

Commit 213a4a1

Browse files
Replace deprecated constructor calls (#13271)
1 parent 74326bd commit 213a4a1

File tree

8 files changed

+28
-11
lines changed

8 files changed

+28
-11
lines changed

grails-bootstrap/src/main/groovy/grails/util/Metadata.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ import org.grails.config.NavigableMap
2222
import org.grails.io.support.FileSystemResource
2323
import org.grails.io.support.Resource
2424
import org.grails.io.support.UrlResource
25+
import org.yaml.snakeyaml.LoaderOptions
2526
import org.yaml.snakeyaml.Yaml
27+
import org.yaml.snakeyaml.constructor.SafeConstructor
2628

2729
import java.lang.ref.Reference
2830
import java.lang.ref.SoftReference
@@ -167,7 +169,7 @@ class Metadata extends NavigableMap implements ConfigMap {
167169
}
168170

169171
private Object loadYml(InputStream input) {
170-
Yaml yaml = new Yaml()
172+
Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()))
171173
def loadedYaml = yaml.loadAll(input)
172174
List result = []
173175
for(Object yamlObject : loadedYaml) {

grails-bootstrap/src/main/groovy/org/grails/config/CodeGenConfig.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ import groovy.transform.CompileDynamic
2222
import groovy.transform.CompileStatic
2323
import org.codehaus.groovy.runtime.DefaultGroovyMethods
2424
import org.codehaus.groovy.runtime.typehandling.GroovyCastException
25+
import org.yaml.snakeyaml.LoaderOptions
2526
import org.yaml.snakeyaml.Yaml
27+
import org.yaml.snakeyaml.constructor.SafeConstructor
2628

2729

2830
/**
@@ -152,7 +154,7 @@ class CodeGenConfig implements Cloneable, ConfigMap {
152154

153155
@CompileDynamic // fails with CompileStatic!
154156
void loadYml(InputStream input) {
155-
Yaml yaml = new Yaml()
157+
Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()))
156158
for(Object yamlObject : yaml.loadAll(input)) {
157159
if(yamlObject instanceof Map) { // problem here with CompileStatic
158160
mergeMap((Map)yamlObject)

grails-docs/src/main/groovy/grails/doc/DocPublisher.groovy

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ import org.apache.commons.logging.LogFactory
2424
import org.radeox.api.engine.WikiRenderEngine
2525
import org.radeox.engine.context.BaseInitialRenderContext
2626
import org.radeox.engine.context.BaseRenderContext
27+
import org.yaml.snakeyaml.LoaderOptions
2728
import org.yaml.snakeyaml.Yaml
29+
import org.yaml.snakeyaml.constructor.SafeConstructor
2830

2931
import java.util.regex.Pattern
3032

@@ -264,7 +266,7 @@ class DocPublisher {
264266
def legacyLinks = [:]
265267
if (legacyLinksFile.exists()) {
266268
legacyLinksFile.withInputStream { input ->
267-
legacyLinks = new Yaml().load(input)
269+
legacyLinks = new Yaml(new SafeConstructor(new LoaderOptions())).load(input)
268270
}
269271
}
270272

@@ -536,7 +538,7 @@ class DocPublisher {
536538
}
537539
else if(propertiesFile.name.endsWith('.yml')) {
538540
propertiesFile.withInputStream { input ->
539-
def ymls = new Yaml().loadAll(input)
541+
def ymls = new Yaml(new SafeConstructor(new LoaderOptions())).loadAll(input)
540542
for(yml in ymls) {
541543
if(yml instanceof Map) {
542544
def config = yml.grails?.doc

grails-docs/src/main/groovy/grails/doc/internal/YamlTocStrategy.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package grails.doc.internal
22

3+
import org.yaml.snakeyaml.LoaderOptions
34
import org.yaml.snakeyaml.Yaml
5+
import org.yaml.snakeyaml.constructor.SafeConstructor
46

57
/**
68
* Class representing a Grails user guide table of contents defined in YAML.
79
*/
810
class YamlTocStrategy {
9-
private final parser = new Yaml()
11+
private final parser = new Yaml(new SafeConstructor(new LoaderOptions()))
1012
private resourceChecker
1113
private String ext = ".gdoc"
1214

grails-shell/src/main/groovy/org/grails/cli/gradle/cache/MapReadingCachedGradleOperation.groovy

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ import groovy.transform.CompileStatic
2020
import groovy.transform.InheritConstructors
2121
import org.gradle.tooling.ProjectConnection
2222
import org.yaml.snakeyaml.DumperOptions
23+
import org.yaml.snakeyaml.LoaderOptions
2324
import org.yaml.snakeyaml.Yaml
25+
import org.yaml.snakeyaml.constructor.SafeConstructor
26+
import org.yaml.snakeyaml.representer.Representer
2427

2528

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

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

6568
}

grails-shell/src/main/groovy/org/grails/cli/profile/AbstractProfile.groovy

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ import org.grails.cli.profile.commands.DefaultMultiStepCommand
3333
import org.grails.cli.profile.commands.script.GroovyScriptCommand
3434
import org.grails.config.NavigableMap
3535
import org.grails.io.support.Resource
36+
import org.yaml.snakeyaml.LoaderOptions
3637
import org.yaml.snakeyaml.Yaml
38+
import org.yaml.snakeyaml.constructor.SafeConstructor
3739

3840
/**
3941
* Abstract implementation of the profile class
@@ -107,7 +109,7 @@ abstract class AbstractProfile implements Profile {
107109

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

112114
name = profileConfig.get("name")?.toString()
113115
description = profileConfig.get("description")?.toString() ?: ''
@@ -137,7 +139,7 @@ abstract class AbstractProfile implements Profile {
137139
else if(fileName.endsWith('.yml')) {
138140
def yamlCommand = profileDir.createRelative("commands/$fileName")
139141
if(yamlCommand.exists()) {
140-
def data = new Yaml().loadAs(yamlCommand.getInputStream(), Map.class)
142+
Map<String, Object> data = new Yaml(new SafeConstructor(new LoaderOptions())).<Map>load(yamlCommand.getInputStream())
141143
Command cmd = new DefaultMultiStepCommand(clsName.toString(), this, data)
142144
Object minArguments = data?.minArguments
143145
cmd.minArguments = minArguments instanceof Integer ? (Integer)minArguments : 1

grails-shell/src/main/groovy/org/grails/cli/profile/DefaultFeature.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ import org.eclipse.aether.artifact.DefaultArtifact
2323
import org.eclipse.aether.graph.Dependency
2424
import org.grails.config.NavigableMap
2525
import org.grails.io.support.Resource
26+
import org.yaml.snakeyaml.LoaderOptions
2627
import org.yaml.snakeyaml.Yaml
28+
import org.yaml.snakeyaml.constructor.SafeConstructor
2729

2830

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

grails-shell/src/main/groovy/org/grails/cli/profile/commands/factory/YamlCommandFactory.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ import org.grails.cli.profile.Command
2222
import org.grails.cli.profile.Profile
2323
import org.grails.cli.profile.commands.DefaultMultiStepCommand
2424
import org.grails.io.support.Resource
25+
import org.yaml.snakeyaml.LoaderOptions
2526
import org.yaml.snakeyaml.Yaml
27+
import org.yaml.snakeyaml.constructor.SafeConstructor
2628

2729
import java.util.regex.Pattern
2830

@@ -35,7 +37,7 @@ import java.util.regex.Pattern
3537
*/
3638
@CompileStatic
3739
class YamlCommandFactory extends ResourceResolvingCommandFactory<Map> {
38-
protected Yaml yamlParser=new Yaml()
40+
protected Yaml yamlParser=new Yaml(new SafeConstructor(new LoaderOptions()))
3941
// LAX parser for JSON: http://mrhaki.blogspot.ie/2014/08/groovy-goodness-relax-groovy-will-parse.html
4042
protected JsonSlurper jsonSlurper = new JsonSlurper().setType(JsonParserType.LAX)
4143

0 commit comments

Comments
 (0)