diff --git a/bench/gradle.lockfile b/bench/gradle.lockfile index 97d04f04..b41a8e1c 100644 --- a/bench/gradle.lockfile +++ b/bench/gradle.lockfile @@ -40,5 +40,5 @@ org.openjdk.jmh:jmh-generator-reflection:1.37=jmh,jmhCompileClasspath,jmhImpleme org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata org.organicdesign:Paguro:3.10.3=jmh,jmhRuntimeClasspath org.ow2.asm:asm:9.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=jmh,jmhRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=jmh,jmhRuntimeClasspath empty=annotationProcessor,apiDependenciesMetadata,compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,jmhAnnotationProcessor,jmhApiDependenciesMetadata,jmhCompileOnlyDependenciesMetadata,jmhIntransitiveDependenciesMetadata,jmhKotlinScriptDef,jmhKotlinScriptDefExtensions,jmhRuntimeOnlyDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,runtimeClasspath,runtimeOnlyDependenciesMetadata,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/docs/gradle.lockfile b/docs/gradle.lockfile index ce17daad..75a51265 100644 --- a/docs/gradle.lockfile +++ b/docs/gradle.lockfile @@ -33,5 +33,5 @@ org.junit:junit-bom:5.11.3=testCompileClasspath,testImplementationDependenciesMe org.msgpack:msgpack-core:0.9.8=testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata org.organicdesign:Paguro:3.10.3=testRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=testRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=testRuntimeClasspath empty=annotationProcessor,apiDependenciesMetadata,compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,runtimeClasspath,runtimeOnlyDependenciesMetadata,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 70043f43..cbb6b057 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -46,9 +46,7 @@ nuValidator = "20.+" paguro = "3.+" shadowPlugin = "8.1.1" slf4j = "1.+" -# snakeYaml 2.6 removed DumpSettingsBuilder::setScalarResolver, -# which is used by the external YAML renderer (org.pkl.core.YamlRenderer) -snakeYaml = "2.5" +snakeYaml = "2.+" spotlessPlugin = "6.25.0" wiremock = "3.+" diff --git a/pkl-cli/gradle.lockfile b/pkl-cli/gradle.lockfile index a44f1b4f..60311c5a 100644 --- a/pkl-cli/gradle.lockfile +++ b/pkl-cli/gradle.lockfile @@ -93,7 +93,7 @@ org.msgpack:msgpack-core:0.9.8=runtimeClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath org.slf4j:slf4j-api:2.0.13=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=runtimeClasspath,testRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=runtimeClasspath,testRuntimeClasspath org.wiremock:wiremock:3.9.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath org.xmlunit:xmlunit-core:2.10.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath org.xmlunit:xmlunit-legacy:2.10.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath diff --git a/pkl-codegen-java/gradle.lockfile b/pkl-codegen-java/gradle.lockfile index 1417ebe1..9058ae3f 100644 --- a/pkl-codegen-java/gradle.lockfile +++ b/pkl-codegen-java/gradle.lockfile @@ -36,5 +36,5 @@ org.junit:junit-bom:5.11.3=testCompileClasspath,testImplementationDependenciesMe org.msgpack:msgpack-core:0.9.8=runtimeClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=runtimeClasspath,testRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=runtimeClasspath,testRuntimeClasspath empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,runtimeOnlyDependenciesMetadata,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/pkl-codegen-kotlin/gradle.lockfile b/pkl-codegen-kotlin/gradle.lockfile index ffd01658..63b28c16 100644 --- a/pkl-codegen-kotlin/gradle.lockfile +++ b/pkl-codegen-kotlin/gradle.lockfile @@ -39,5 +39,5 @@ org.junit:junit-bom:5.11.3=testCompileClasspath,testImplementationDependenciesMe org.msgpack:msgpack-core:0.9.8=runtimeClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=runtimeClasspath,testRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=runtimeClasspath,testRuntimeClasspath empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,runtimeOnlyDependenciesMetadata,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/pkl-commons-cli/gradle.lockfile b/pkl-commons-cli/gradle.lockfile index fa511915..9ab8705c 100644 --- a/pkl-commons-cli/gradle.lockfile +++ b/pkl-commons-cli/gradle.lockfile @@ -34,5 +34,5 @@ org.junit:junit-bom:5.11.3=testCompileClasspath,testImplementationDependenciesMe org.msgpack:msgpack-core:0.9.8=runtimeClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=runtimeClasspath,testRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=runtimeClasspath,testRuntimeClasspath empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,runtimeOnlyDependenciesMetadata,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/pkl-config-java/gradle.lockfile b/pkl-config-java/gradle.lockfile index 9b2bf630..c7655fb4 100644 --- a/pkl-config-java/gradle.lockfile +++ b/pkl-config-java/gradle.lockfile @@ -37,5 +37,5 @@ org.junit:junit-bom:5.11.3=testCompileClasspath,testImplementationDependenciesMe org.msgpack:msgpack-core:0.9.8=pklCodegenJava,runtimeClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata org.organicdesign:Paguro:3.10.3=pklCodegenJava,runtimeClasspath,testRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=pklCodegenJava,runtimeClasspath,testRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=pklCodegenJava,runtimeClasspath,testRuntimeClasspath empty=annotationProcessor,apiDependenciesMetadata,compileOnlyDependenciesMetadata,fatJar,firstPartySourcesJars,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,runtimeOnlyDependenciesMetadata,shadow,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/pkl-config-kotlin/gradle.lockfile b/pkl-config-kotlin/gradle.lockfile index ab8bd804..7b18450a 100644 --- a/pkl-config-kotlin/gradle.lockfile +++ b/pkl-config-kotlin/gradle.lockfile @@ -36,5 +36,5 @@ org.junit:junit-bom:5.11.3=testCompileClasspath,testImplementationDependenciesMe org.msgpack:msgpack-core:0.9.8=pklCodegenKotlin,pklConfigJava,runtimeClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata org.organicdesign:Paguro:3.10.3=pklCodegenKotlin,pklConfigJava,runtimeClasspath,testRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=pklCodegenKotlin,pklConfigJava,runtimeClasspath,testRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=pklCodegenKotlin,pklConfigJava,runtimeClasspath,testRuntimeClasspath empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,pklConfigJavaAll,runtimeOnlyDependenciesMetadata,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/pkl-core/gradle.lockfile b/pkl-core/gradle.lockfile index 78944247..aabf347c 100644 --- a/pkl-core/gradle.lockfile +++ b/pkl-core/gradle.lockfile @@ -40,5 +40,5 @@ org.junit:junit-bom:5.11.3=testCompileClasspath,testImplementationDependenciesMe org.msgpack:msgpack-core:0.9.8=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata org.organicdesign:Paguro:3.10.3=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath empty=apiDependenciesMetadata,generatorAnnotationProcessor,generatorApiDependenciesMetadata,generatorCompileOnlyDependenciesMetadata,generatorIntransitiveDependenciesMetadata,generatorKotlinScriptDef,generatorKotlinScriptDefExtensions,generatorRuntimeOnlyDependenciesMetadata,intransitiveDependenciesMetadata,javaExecutable,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,runtimeOnlyDependenciesMetadata,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/pkl-core/src/main/java/org/pkl/core/YamlRenderer.java b/pkl-core/src/main/java/org/pkl/core/YamlRenderer.java index 33b1892b..b3fa9c71 100644 --- a/pkl-core/src/main/java/org/pkl/core/YamlRenderer.java +++ b/pkl-core/src/main/java/org/pkl/core/YamlRenderer.java @@ -22,6 +22,7 @@ import java.util.*; import java.util.regex.Pattern; import org.pkl.core.util.Nullable; import org.pkl.core.util.yaml.snake.YamlUtils; +import org.snakeyaml.engine.v2.api.ConstructNode; import org.snakeyaml.engine.v2.api.DumpSettings; import org.snakeyaml.engine.v2.api.StreamDataWriter; import org.snakeyaml.engine.v2.common.FlowStyle; @@ -29,6 +30,7 @@ import org.snakeyaml.engine.v2.emitter.Emitter; import org.snakeyaml.engine.v2.events.*; import org.snakeyaml.engine.v2.nodes.Tag; import org.snakeyaml.engine.v2.resolver.ScalarResolver; +import org.snakeyaml.engine.v2.schema.Schema; final class YamlRenderer implements ValueRenderer { private final ScalarResolver resolver = YamlUtils.getEmitterResolver("compat"); @@ -42,7 +44,18 @@ final class YamlRenderer implements ValueRenderer { DumpSettings.builder() .setIndent(indent) .setBestLineBreak("\n") - .setScalarResolver(resolver) + .setSchema( + new Schema() { + @Override + public ScalarResolver getScalarResolver() { + return resolver; + } + + @Override + public Map getSchemaTagConstructors() { + throw new AssertionError("emitters don't use tag constructors"); + } + }) .build(); emitter = diff --git a/pkl-core/src/main/java/org/pkl/core/stdlib/yaml/ParserNodes.java b/pkl-core/src/main/java/org/pkl/core/stdlib/yaml/ParserNodes.java index fbe28890..bfbac0fc 100644 --- a/pkl-core/src/main/java/org/pkl/core/stdlib/yaml/ParserNodes.java +++ b/pkl-core/src/main/java/org/pkl/core/stdlib/yaml/ParserNodes.java @@ -39,6 +39,8 @@ import org.snakeyaml.engine.v2.constructor.StandardConstructor; import org.snakeyaml.engine.v2.exceptions.Mark; import org.snakeyaml.engine.v2.exceptions.YamlEngineException; import org.snakeyaml.engine.v2.nodes.*; +import org.snakeyaml.engine.v2.resolver.ScalarResolver; +import org.snakeyaml.engine.v2.schema.Schema; public final class ParserNodes { private static final Pattern WHITESPACE = Pattern.compile("\\s"); @@ -133,12 +135,24 @@ public final class ParserNodes { private static Load createLoad(VmTyped self, String text, String uri, PklConverter converter) { var mode = (String) VmUtils.readMember(self, Identifier.MODE); - var resolver = YamlUtils.getParserResolver(mode); var useMapping = (boolean) VmUtils.readMember(self, Identifier.USE_MAPPING); var settings = LoadSettings.builder() .setMaxAliasesForCollections(getMaxCollectionAliases(self)) - .setScalarResolver(resolver) + .setSchema( + new Schema() { + @Override + public ScalarResolver getScalarResolver() { + return YamlUtils.getParserResolver(mode); + } + + @Override + public Map getSchemaTagConstructors() { + // ParserNodes.Constructor ignores this method, + // but it is called from its superclass. + return Map.of(); + } + }) .setLabel(uri) .build(); var source = diff --git a/pkl-doc/gradle.lockfile b/pkl-doc/gradle.lockfile index c066a7d4..7260308c 100644 --- a/pkl-doc/gradle.lockfile +++ b/pkl-doc/gradle.lockfile @@ -78,5 +78,5 @@ org.junit:junit-bom:5.11.3=testCompileClasspath,testImplementationDependenciesMe org.msgpack:msgpack-core:0.9.8=runtimeClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=runtimeClasspath,testRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=runtimeClasspath,testRuntimeClasspath empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,runtimeOnlyDependenciesMetadata,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/pkl-executor/gradle.lockfile b/pkl-executor/gradle.lockfile index 870ede63..0067d9ce 100644 --- a/pkl-executor/gradle.lockfile +++ b/pkl-executor/gradle.lockfile @@ -35,5 +35,5 @@ org.organicdesign:Paguro:3.10.3=testRuntimeClasspath org.pkl-lang:pkl-config-java-all:0.25.0=pklHistoricalDistributions org.slf4j:slf4j-api:1.7.36=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath org.slf4j:slf4j-simple:1.7.36=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=testRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=testRuntimeClasspath empty=annotationProcessor,apiDependenciesMetadata,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,pklDistributionCurrent,runtimeOnlyDependenciesMetadata,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/pkl-server/gradle.lockfile b/pkl-server/gradle.lockfile index 2c628ad1..5ec0acf3 100644 --- a/pkl-server/gradle.lockfile +++ b/pkl-server/gradle.lockfile @@ -32,5 +32,5 @@ org.junit:junit-bom:5.11.3=testCompileClasspath,testImplementationDependenciesMe org.msgpack:msgpack-core:0.9.8=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=runtimeClasspath,testRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=runtimeClasspath,testRuntimeClasspath empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,runtimeOnlyDependenciesMetadata,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/pkl-tools/gradle.lockfile b/pkl-tools/gradle.lockfile index cf7bf286..d54ca8ec 100644 --- a/pkl-tools/gradle.lockfile +++ b/pkl-tools/gradle.lockfile @@ -30,5 +30,5 @@ org.jline:jline-terminal-jansi:3.23.0=runtimeClasspath,testRuntimeClasspath org.jline:jline-terminal:3.23.0=runtimeClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.8=runtimeClasspath,testRuntimeClasspath org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath -org.snakeyaml:snakeyaml-engine:2.5=runtimeClasspath,testRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.8=runtimeClasspath,testRuntimeClasspath empty=annotationProcessor,dummyAnnotationProcessor,dummyCompileClasspath,dummyRuntimeClasspath,fatJar,firstPartySourcesJars,shadow,signatures,testAnnotationProcessor