Update SnakeYAML Engine to 2.8 (#813)

Changes:
- update version selector and lock files
- adapt code to breaking changes
This commit is contained in:
translatenix
2024-11-20 15:21:12 -08:00
committed by GitHub
parent cc579f8fd6
commit e6c1e1411b
16 changed files with 44 additions and 19 deletions

View File

@@ -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<Tag, ConstructNode> getSchemaTagConstructors() {
throw new AssertionError("emitters don't use tag constructors");
}
})
.build();
emitter =

View File

@@ -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<Tag, ConstructNode> getSchemaTagConstructors() {
// ParserNodes.Constructor ignores this method,
// but it is called from its superclass.
return Map.of();
}
})
.setLabel(uri)
.build();
var source =