NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Maven Central
YAML 1.1 parser and emitter for Java
Last release 1 months ago
30 Aug 2026
Ships fairly regularly
a new release about every 6 months
Nearly every release is documented
notes for 37 of 38 stable releases
Nothing withdrawn
no release was ever pulled
17 years old
38 releases · first in 2009
Fix issue #1115 : Vulnerabity: SnakeYAML 2.x's CompactConstructor and PackageCompactConstructor extensions completely bypass the TagInspector security…
Fix issue #1116 : Comments located in list become list entries after serialize (thanks to yablonsky-anton)
Fix issue #1117 : Indirectly-recursive collection key may bypass the allowRecursiveKeys=false guard (thanks to Mirko Swillus)
Fix issue #1115 : Vulnerabity: SnakeYAML 2.x's CompactConstructor and PackageCompactConstructor extensions completely bypass the TagInspector security control (thanks to the reporter)
Fix issue #1113 : Remove Compact Object Notation ( Backwards-incompatible ). Users are welcome to copy the removed code if they use it.
Fix issue #1110 : Parse JSON with any leading TABs (thanks to Kristian Atanasov)
Fix issue #1110 : Parse JSON with any leading TABs (thanks to Kristian Atanasov)
Fix issue #1109 : Add example to migrate to SnakeYAML Engine and provide a custom resolver (thanks to Joacim Breiler)
One column per quarter.
Fix issue #1108 : Fix Inline comments in flow mapping context (thanks to Vladimir Maslov)
Fix issue #1108 : Fix Inline comments in flow mapping context (thanks to Vladimir Maslov)
Fix issue #1105 : Introduce devcontainer
Fix issue #1106 : Log 'Failed to find field...' in PropertySubstitute as DEBUG message instead of WARN (thanks to Karthik Kondapally)
Fix issue #1101 : Add option to log duplicate keys (thanks to Matteo Franci)
Fix issue #1101 : Add option to log duplicate keys (thanks to Matteo Franci)
Fix issue #1098 : allow HighSurrogate to be the last char in the data window (thanks to Madalin Ilie)
Fix issue #1097 : Refactor Scanner to improve performance (thanks to David Schlosnagle)
Remove external Base64Coder and use provided Base64 (thanks to MithunKhanna)
Switch to Java 8 for runtime and support JDK 21
This is the last release to support Java 7 to run. From the next release the target bytecode will be for Java 8
This is the last release to support Java 7 to run. From the next release the target bytecode will be for Java 8
Add possibility to create JMH benchmark (thank to David Schlosnagle)
Fix issue #1096 : Implement the merge tag in the Node graph (thanks to Floris Westerman)
Add Javadoc for issue #1093 : DumperOptions are not always fully respected (thanks Ling Hengqian)
Fix issue #1090 : Try to keep the anchor name when available (thanks to Gergely Czuczy)
Add test for issue #1089 (thanks to Gergely Czuczy)
Add tests for issue #1088 , when a field starts with a single lower-case letter (thanks to Evgeny Bogatyrev)
Fix issue #1084 : Dump as JSON (thanks to Mikael Ståldal)
Run SnakeYAML without java.desktop module (thanks to Jaroslav Tulach)
Fix issue #1086 : Use DumberOptions.setDereferenceAliases to avoid dumping anchors (thanks to Mikael Ståldal)
Fix issue #1080 : Add test (thanks to Ralph)
Fix issue #1079 : finalizeConstruction not actually used (thanks to Jakub Kaszycki)
Add missing 'exports org.yaml.snakeyaml.inspector' to module-info.java (thanks to Marius Hanl and Clayton Walker)
Minor fix for polyglot Maven
Add missing 'exports org.yaml.snakeyaml.inspector' to module-info.java (thanks to Marius Hanl and Clayton Walker)
Fix issue #1075 : Heavy Allocation in Emitter.analyzeScalar(String) due to Regex Overhead (thanks to Carter Kozak)
Fix issue #1075 : Heavy Allocation in Emitter.analyzeScalar(String) due to Regex Overhead (thanks to Carter Kozak)
Fix issue #1064 : Avoid OutOfMemoryError when calling toString() from user code. SnakeYAML does not call toString() (thanks to 郭逸帆)
Fix issue #1061 : NumberFormatException from SnakeYAML due to int overflow for corrupt YAML version (thanks to Tatu Saloranta)
Fix issue #1065 : Document size limit should be applied to single document not the whole input stream (thanks to Petr Gladkikh)
Fix issue #576 : Report properly not a valid Unicode code point (thanks to Tatu Saloranta)
Fix issue #573 : fix NoSuchMethod (thanks to Peter Moore)
Removed Trusted*Inspetor classes from main sources tree ( Backwards-incompatible )
Update #565 : ( Backwards-incompatible ) Do not allow global tags by default to fix CVE-2022-1471 (thanks to Jonathan Leitschuh)
Fix #570 : SafeConstructor ignores LoaderOptions setCodePointLimit() (thanks to Robert Patrick)
Fix #495 : Add module-info.java (thanks to Clayton Walker and Василий Кудрявцев)
Remove many deprecated methods ( Backwards-incompatible )
Require Java 11 to build and Java 7 to run
Update #565 : ( Backwards-incompatible ) Do not allow global tags by default to fix CVE-2022-1471 (thanks to Jonathan Leitschuh)
Fix #556 : ( Backwards-incompatible ) Yaml.LoadAs() signature to support Class<? super T> type instead of Class<T> (thanks to Matt D.)
Update: CustomClassLoaderConstructor takes LoaderOptions
Fix #560 : Check input parameters for non-null values (thanks to Larry West)
Remove some deprecated unused methods
Remove some deprecated unused methods
Fix #555 : Fixed Github actions (thanks to Lee Read)
Fix #553 : LoaderOptions.setCodePointLimit() not honored by loadAll() (thanks to Robert Patrick)
Fix #554 : Always emit numberish strings with quotes (thanks to Lee Read)
Fix #543 : show the configuration in the test
Fix #543 : show the configuration in the test
Fix #531 : provide configuration to fail early
Fix #547 : Set the limit for incoming data to prevent a CVE report in NIST. By default it is 3MB
Fix #544 : Support unescaped unicode characters for double-quoted scalars (thanks to Florian Waltenberger)
Fix #539 : false positive CVE-2020-13936 (thanks to Gaétan Collaud)
Fix #530 : Restrict scalar values
Fix #539 : false positive CVE-2020-13936 (thanks to Gaétan Collaud)
Fix #537 : Improved RE for integers (thanks to Petr Pucil)
Improve restrictions against DoS attacks (thanks to OSS-Fuzz)
Fix #525 : Restrict nested depth for collections to avoid DoS attacks (thanks to OSS-Fuzz)
Fix #522 : De-serializing key "on" fails with Exception
Example with Lombok and ENV variable substitution was added
reported issue with trailing TAB
fixes for reading and writing comments
Migrate to new home: snakeyaml/snakeyaml
Migrate to new home: snakeyaml/snakeyaml
fixes for reading and writing comments
Fix #506 : Improve parsing a number starting with 0x (thanks to Michael Ziwisky)
fixes for reading and writing comments (thanks to Wolf2323)
Add possibility to construct enum with case sensitivity (thanks to Łukasz Trzciński)
Add possibility to construct enum with case sensitivity (thanks to Łukasz Trzciński)
Fix #493 : substitution default can contain special characters (thanks to Alexander Fanshawe)
Add possibility to read and write comments (thanks to Omer Azmon)
Fix #485 : Alias names are too permissive compared to libyaml and future spec (thanks to @Charles Nutter)
Update #307 : add example (thanks to @Alascut)
Update #307 : add example (thanks to @Alascut)
Add: build with CI on github (thanks to @Alascut)
Fix #481 : Serialize anchors that are not used by any alias (thanks to @Alascut)
Fix #416 : Improve dumping sequences (thanks to @Alascut)
Fix #480 : Anchor allows non ASCII characters while dumping (thanks to 大竹崇文)
Fix #476 : Make constructor of EnvScalarConstructor public (thanks to Yin shen)
Fix #474 : Parse the value of byte and short after a narrowing primitive conversion (thanks to Олег Мороз )
Fix yet another OWASP false positive. It complains that the Spring controller makes SnakeYAML insecure even though SnakeYAML does not use Spring controller and does not depend on Spring (but the tests do). Bump spring.version from 3.2.17.RELEASE to 5.2.4.RELEASE
Migrated from hg to git
Fix #377 : Allow configuration for preventing billion laughs attack (thanks to Colm O hEigeartaigh )
Fix #377 : Allow configuration for preventing billion laughs attack (thanks to Colm O hEigeartaigh )
Add: parse ENV variables similar to how it works for docker-compose
Fix #468 : Allow non ASCII characters in the anchor names (thanks to 大竹崇文 )
Add: expose Event.ID in Event via a getter
Fix #454 : Add example for integer without time pattern (thanks to Evgeniy Stroykov)
Fix #441 : Restore the way to get anchor for a Node (thanks to @kdvolder)
Fix #441 : Restore the way to get anchor for a Node (thanks to @kdvolder)
Fix #437 : Introduce setting to keep !!str tag for String even when it contains non-printable chars (thanks to @Nebu )
Update plugin versions
BaseConstructor: Factored out postponed mapping logic so subclasses can effectively override constructMapping2ndStep() and delegate to the postponed m
BaseConstructor: Factored out postponed mapping logic so subclasses can effectively override constructMapping2ndStep() and delegate to the postponed mapping logic (backported from SnakeYAML engine)
Fix #431 : Customize simple key length when dumping (thanks to @sergeyleonov)
Fix #430 : Wrap runtime exceptions into YAMLException. It was reported for snakeyaml-engine (thanks to @fred_curts)
Fix: Null tag constructor not called when parsing top-level null value. It was reported for snakeyaml-engine (thanks to @fred_curts)
Fix #429 : Provide "Automatic-Module-Name" entry in MANIFEST (thanks to @nlipsky)
Fix #426 : Fix NPE when duplicate keys are not allowed and the key is null (thanks to @marc_omorain)
Apply pull request #41 : Support java.sql classes without the need to depend on java.sql module in java9+ (thanks to @tomas-langer)
Update: Java 7 is required.
Fix #423 : Date Serialization Fails for TimeZones on Daylight Savings Time (thanks to @rerobins )
Update: run tests under Java 11 (thanks to Docker) This is the last release to support Java 6. As of the next release Java 7 will be required.
Update: run tests under Java 11 (thanks to Docker) This is the last release to support Java 6. As of the next release Java 7 will be required.
Fix #412 : Restore the Boolean constructors for Events and Nodes for binary compatibility of dependent projects (thanks to Alex Heneveld)
Fix #411 : System Property "java.runtime.name" is not required to be defined (thanks to @marcus_boehm)
Fix #409 : Dumping Enum breaks when Enum value is Anonymous inner class (thanks to @evanward1)
Nothing published for this version
Update: Scanner.peekToken() and Scanner.getToken() throw exception instead of returning null
Update: Scanner.peekToken() and Scanner.getToken() throw exception instead of returning null
Update: Enhance output of token IDs (thanks to @sbaudoin)
Update: Mark - expose buffer and pointer (thanks to @sbaudoin)
Update: Improvements in the Bitbucket pipeline (thanks to @slachiewicz)
Fix #397 : Plain scalars with colons in flow sequences/mappings are valid YAML. This change follows what happens with PyYAML and libyaml (thanks to developers from the YAML community)
Fix #393 : Improve reflective access operation to avoid warning under Java 9 (thanks to @thetaph1 and @IanDCarroll)
Fix #393 : Improve reflective access operation to avoid warning under Java 9 (thanks to @thetaph1 and @IanDCarroll)
Hold #397 : because of the inconsistent corner cases the ':' is not yet allowed in a flow context
Refactor nodes and events - use enum FlowStyle instead of Boolean ( minor backwards-incompatible change )
Refactor ScalarToken, ScalarNode and ScalarEvent - use enum ScalarStyle instead of Character ( minor backwards-incompatible change )
Refactor Mark - remove unused code ( minor backwards-incompatible change )
Fix #395 and #394 : Introduce DuplicateKeyException and report line number for duplicate keys when creating non-Javabeans (thanks to @neopaf and @manfredi_giordano)
Apply pull request #22 : Only use FIELD access for Android in PropertyUtils (thanks to @SteveOfTheStow).
Apply pull request #22 : Only use FIELD access for Android in PropertyUtils (thanks to @SteveOfTheStow).
Apply pull request #27 : Add getAnnotations() and getAnnotation() methods to Property (thanks to @RoKish).
Apply pull request #26 and fix #383 : Some configuration properties of Representer were ignored (thanks to @RoKish).
Fix issue #386:Fix order of duplicate keys indices to prevent wrong removals (thanks to @NathanWolf).
Update: major improvement when parsing JavaBeans.
Fix issue #382 and #322 : MethodProperty should check for generic type in getters and setters (thanks to @jason_s and @ksainsbury).
Fix issue #377 : Add test for billion laughs attack .
Fix issue #368 : Relax final restriction on TypeDescription. (thanks to @cjnygard).
Fix issue #375 : Empty YAML file must return null instead of throwing an exception when loading a JavaBean. (thanks to @mpkusnierz).
Fix issue #374 : Localization settings (e.g. fr_CA) convert Number type floats to ints. (thanks to @darren_janeczek).
Apply pull request #20 : Provide access to node's anchor (thanks to @piotr_piastucki).
Fix issue #370 : Remove redundant "Bundle-RequiredExecutionEnvironment: J2SE-1.5" (thanks to @mbooth101).
Fix issue #364 : Serializing Calendar objects with certain timezone offsets renders invalid YAML (thanks to @oscar_scholten. See pull request #17 ).
Add: create Android artifact with android classifier
Add: create Android artifact with android classifier
Fix issue #358 : Validate DumperOptions to prevent invalid YAML to be dumped.
Fix issue #355 : Fix for emitter to split long plain string scalars over multiple lines (thanks to @oscar_scholten. See pull request #16 ).
Apply pull request #13 : Let Mark implement Serializable so that ParserException can be serialized (thanks to Hans Schulz )
Fix issue #337 : Throw exception in case of duplicate keys when LoaderOptions.allowDuplicateKeys is false (thanks to @rbuckland. See pull request #11 ).
Fix issue #351 : Keep same nodes order on merge (preprocess keys for MappingNode and remove duplicates keeping the last one).
Fix issue #349 : Ignore white spaces for base64 encoded scalar (thanks to Terry Moschou )
Fix issue #348 : Not removing parent object when composed object is an anchor (thanks to Muhammet YILDIZ )
Fix issue #323 : Support "Miscellaneous Symbols and Pictographs" (thanks to Pawel Skierczynski [Atlassian]). This fix introduces minor backwards-incompatible changes - some of the methods have been renamed. This fixes also long standing issue with iOS emoji
Fix issue #341 : Fix NPE in BaseRepresenter.multiRepresenters if it contains 'null' as a key (thanks to Jörg Michelberger)
Update plugin versions
Fix issue #318 : Use Thread.currentThread.getContextClassLoader in Class.forName instead of default one (thanks to @ronsigal)
Fix issue #318 : Use Thread.currentThread.getContextClassLoader in Class.forName instead of default one (thanks to @ronsigal)
Fix issue #327 : Allow customizing block sequence indentation (thanks to @tareqsha)
Fix issue #329 : Add parameters to POM to change distribution server
Fix issue #326 : Relax some of the modifiers to make integration easier (thanks to @Vermut)
Fix issue #310 : Make use of private/protected constructors for Scalars and 'immutable' objects. This fix allows Bean properties of type java.util.Optional (thanks to Alex)
Fix issue #306 : Support UUID (thanks to The Alchemist)
Apply pull request #3 : Add Support for Polyglot Maven. Thanks to Jason van Zyl.
Fix issue #314 : Ability to customize anchor names (thanks to B. K. Oxley)
Pull request 2 : Added a correct URL for the license (thanks to Oliver Fischer)
Pull request 2 : Added a correct URL for the license (thanks to Oliver Fischer)
Fix issue 302 : Convert byte[] to String when it matches the JavaBean property (thanks to Jalian)
Fix issue 212 : Fix a typo in an error message in ScannerImpl (thanks to michael koch)
Fix issue 209 : Do not print special characters in the error message (thanks to joseph.gregory)
Investigate issue 199 : Duplicate mapping keys
Added split lines option to DumperOptions to allow line splitting to be disabled. (thanks to Ville Koskela)
Use Maven 3
Added split lines option to DumperOptions to allow line splitting to be disabled. (thanks to Ville Koskela)
Fix issue 201 : Fix grammar error in exception message (thanks to eric.c.dahl and matthew.boston)
Fix issue 197 : Improve loading JavaBeans with fields using custom constructors (thanks to dev at minecrell.net)
Fix issue 197 : Improve loading JavaBeans with fields using custom constructors (thanks to dev at minecrell.net)
Fix issue 192 : Do not implement "Value Key Language-Independent Type" to make '=' a standard character (thanks to Marc)
Fix issue 188 : Improve error message for invalid YAML document (thanks to shtilman)
Fix issue 183 : Support Number class (thanks to darren.janeczek)
Fix issue 182 : Double.POSITIVE_INFINITY applied to float fields (thanks to darren.janeczek)
Java 6 is now used to build the package. The source code stays compatible with Java 5
Java 6 is now used to build the package. The source code stays compatible with Java 5
Fix issue 178 : OSGi - Specify version for exported packages (thanks to Lukasz Dywicki)
Fix issue 177 : Improve error report while parsing a JavaBean (thanks to Eric Brown)
Fix issue 135 : Arrays of primitives are now fully supported (thanks to Jordan)
Fix issue 174 : Duplicate anchors in an input document should not be an error (thanks to llasram)
Fix issue 172 : Using a locale with minimum number fraction digits breaks anchor generation (thanks to Michael Simons)
Fix issue 171 : Use more generic generics in BaseRepresenter (thanks to Ash2kk)
Fix issue 169 : Make Constructor.typeDefinitions protected to be more flexible (thanks to Alexey)
Fix issue 169 : Make Constructor.typeDefinitions protected to be more flexible (thanks to Alexey)
Improve the error message when a TAB is used as indentation (due to enormous amount of misunderstanding). It now says: "found character \t '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)"
Fix issue 158 : improve support for 32-bit characters (UTF-16 surrogate pairs) (thanks to Charlie)
Fix issue 158 : improve support for 32-bit characters (UTF-16 surrogate pairs) (thanks to Charlie)
Fix issue 146 : empty tags should not force explicit document start (thanks to Charlie)
Fix issue 156 : setSkipMissingProperties should not fail for non-scalar values (thanks to Blake Matheny)
Fix issue 155 : any generated output must be parsed without errors (thanks to Robert Fletcher)
Fix issue 154 : Add option to skip missing JavaBean properties when deserializing YAML into Java object (thanks to Shawn Lauzon)
Fix issue 149 : Directives are no longer lost between documents (thanks to robinETmiller)
Fix issue 147 : Serialized representation of character U+FFFD causes exception on deserialization (thanks to johnkarp)
Fix issue 145 : exception.getMessage() must show the line number as exception.toString() does (thanks to theaspect)
Fix issue 144 : improve type inference for Compact Object Notation (thanks to tommy.odom)
Better support for Android
Apply some minor FindBugs and PMD recommendations
Apply some minor FindBugs and PMD recommendations
Fix issue 141 : TimeZone is configurable in DumperOptions (thanks to Yaroslav)
Fix issue 139 : merge should favor last key in map (thanks to davidahelder)
Fix issue 136 : TAB is allowed inside a plain scalar. This is yet another deviation from PyYAML (thanks to Uwe Kubosch)
Fix issue 138 : Expose internal data of ReaderException (thanks to asari.ruby)
Fix issue 137 : Respect supplementary characters (thanks to joshhoyt)
Fix issue 66 : use literal scalar style when the scalar contains multiple lines
JavaBeanLoader and JavaBeanDumper are deprecated (thanks to JordanAngold )
Fix issue 130 : apply regular expression for !!float from YAML 1.2 specification (thanks to xandey )
Fix issue 127 : BaseRepresenter.representData(Object data) has been made 'final' to avoid confusion
Fix issue 129 : Provide low level methods from objects to Nodes and Events (represent(Object), serialize(Node))
Fix issue 125 : Provide Manen 3 support
Fix issue 116 : Improved support for empty JavaBeans (thanks to Jim Peterson)
Fix issue 121 : Close files in tests to avoid a possible file handle limit (thanks to Jaromir)
Fix issue 112 : Improved support for parameterised types in collections (thanks to Lethargish)
Fix issue 115 : parametrized JavaBeans fail to load and dump because they are treated as Maps (thanks to elkniwt)
Fix issue 114 : do not remove root tags of JavaBeans when it is not explicitly requested (thanks to gileadis)
Fix issue 111 : Long escaped tag URI sequences throw BufferOverflowException (thanks to JordanAngold )
Fix issue 110 : introduce a package for external libraries and move there the 64Coder and the Google's URL encoder (thanks to dmitry.s.mamonov)
Fix issue 96 : generate OSGi bundle (thanks to thegreendragon and longkerdandy)
Fix issue 109 : ancient years must be dumped with leading zeros (thanks to cjalmeida)
Fix issue 108 : Enum's name property shall be dumped instead of the 'toString()' output (thanks to JordanAngold )
Cleanup unused code in deprecated Loader and Dumper
Fix issue 104 : Expose Mark.index
Fix issue 100 : !!merge tag properly merges also JavaBeans (thanks to JordanAngold )
Issue 99 : Add an example for escaping line breaks in binary content
Fix issue 59 : Simplify the way to dump JavaBean properties in a custom order
Issue 97 : Add an example to show how to use JavaBean property which is a SortedSet but encoded as a YAML sequence
Fix issue 95 : Loading of generic collections with Array parameter(s)
Issue 87 : Implement Compact Object Notation
Fix issue 69 : Iterable is no longer serialised as sequence
Fix issue 88 : Custom tag erased when referenced from generic collection
Fix issue 82 : When object referenced from generic collection dumping may erase tags and prevent future loading
Fix issue 79 and 101 : Context for error reporting consumes a lot of resources
Fix issue 81 : Fix minor bug in Representer
Fix issue 80 : Timestamp is not parsed properly when milliseconds start with 0 (thanks to Sebastien Rainville )
Cleanup unused code in deprecated Loader and Dumper
Update public API ( issue 77 ): Loader and Dumper are deprecated. All the functionality was moved to the Yaml class .
Update public API ( issue 77 ): Loader and Dumper are deprecated. All the functionality was moved to the Yaml class .
Fix issue 74 : Do not use redundant tags for arrays which are JavaBean properties
Add examples to create scalars that match custom regular expression ( issue 75 ): when the runtime class is not defined , and when the runtime class is defined in the JavaBean (thanks to jon.p.hermes)
Fix issue 73 : Provide support for loading java.util.Set as a sequence . Also provide an example to serialise a java.util.Set as a sequence. (thanks to birnbuazn)
Fix issue 72 : Support java.util.Collection as a parent for List and Set (thanks to birnbuazn)
Fix issue 55 : Allow direct field access bypassing setters and getters (thanks to mju and birnbuazn)
Fix issue 69 : Serialise Iterator and Iterable as sequences
Add JodaTime example (thanks to Antony Stubbs)
Fix generic collections which contain other collections (thanks to Alex Maslov)
Fix issue 67 : java classes containing non-ASCII characters in names are incorrectly encoded (thanks to Manuel Sugawara)
Fix issue 65 : add checks for null arguments for JavaBeanDumper (thanks to lerch.johannes)
Fix issue 64 : ClassCastException in Representer when working with ParameterizedType (thanks to Maxim)
Fix issue 63 : Problems with recursive links when included in an array (thanks to Udo and Alex)
Add examples for dumping custom values for !!bool and !!null
Fix issue 61 : ClassCastException when dumping generic bean (thanks to Udo)
Fix issue 58 : JavaBeanDumper.dump throws NullPointerException on list property with null element (thanks to jeff.caulfiel)
Add an example of parsing a YAML document generated by Perl
Fix issue 56 : Make constructors in SafeConstructor public
Releases are available in the central Maven repository (thanks to Sonatype )
Fix issue 54 : deploy artifacts in the Sonatype repository . (thanks to David Bernard)
Fix issue 53 : Enhancement for a pretty format that combines BLOCK and FLOW. (thanks to obastard)
Fix issue 50 : Unable to dump JavaBean that inherits from a protected base class. (thanks to sualeh.fatehi)
Fix issue 47 : Don't dump read-only JavaBean properties by default. This is backwards- incompatible change. (thanks to obastard)
Fix issue 47 : Don't dump read-only JavaBean properties by default. This is backwards- incompatible change. (thanks to obastard)
Fix issue 49 : Support GregorianCalendar as regular Timestamp (thanks to obastard)
Fix issue 51 : do not escape non-ASCII characters in double quoted scalar style (thanks to Johann Werner)
Fix issue 48 : Introduce representJavaBeanProperty() method in Representer. (thanks to obastard)
Representer.representJavaBean() returns MappingNode
Add an example of serialising java.io.File as scalar node for issue 46
Refactoring of scanner and parser. Low-level API is not affected.
Improve performance: use StringBuilder instead of StringBuffer
Introduce String constants in scanner and emitter to improve readability and performance
Fix issue 43 : introduce Tag class. This is backwards- incompatible change.
Fix issue 42 : BaseConstructor.getConstructor(Node node) is now 'protected' to get more flexibility at runtime. (thanks to Artem)
Fix issue 40 : Ignore tags when they are compatible with the JavaBean runtime class (thanks to sitrious)
Add an example how to ignore unknown tags (for issue 31 and issue 39 )
Add an example how to work with Ruby YAML documents
Do not omit the tag for JavaBean properties when the tag is explicitly defined
Fix issue 38 : Fix ID format for numbers over 999 (thanks to gchpaco)
Fix issue 29 : it is possible to define which scalar style will be used when a scalar is emitted
Fix issue 36 : process a family of tags which have the same prefix with one constructor
Add an example to demonstrate how to restrict classes to be loaded
Improve JavaDoc (thanks to Stefan)
add examples for flexible YAML dumping using a template engine
Fix issue 27 : Extend Resolver to support custom implicit types
Fix issue 27 : Extend Resolver to support custom implicit types
Fix issue 25 : Improve usage of generic collections in JavaBeans (thanks to the Polyglot Maven team and especially to Benjamin Bentmann)
Fix issue 26 : Parse different Map implementations ( SortedMap , Properties ) without global tags if they are JavaBean properties (thanks to Benjamin Bentmann)
SnakeYAML 1.4 is available in the central Maven repository
Fix issue 24 : Line numbers reported in Exceptions are Zero based, should be 1 based (thanks to shrode)
Fix issue 21 : Support arrays of reference types as JavaBean properties (thanks to ashwin.jayaprakash)
Fix issue 17 : Respect root tag for sequences (thanks to jcucurull)
Fix issue 18 : SafeRepresenter respects custom tags for standard Java classes where standard tag has more then one Java implementation available (Long, List, Map, Date etc) (thanks to creiniger)
Add possibility to define a custom Class Loader
Fix a scanner error not reported when there is no line break at the end of the stream. Import the fix from PyYAML 3.09 { ticket 118 }
Fix issue 16 : Cache JavaBean class properties (thanks to infinity0x)
Fix issue 14 : ArrayList is more efficient than LinkedList (thanks to infinity0x)
Introduce JavaBeanLoader and JavaBeanDumper . Deprecate JavaBeanParser
Apache License, Version 2.0 applied
Fix issue 13 : Provide javadocs link to Sun Java API (thanks to infinity0x)
Fix issue 11 : create a Java instance with the following priority to choose the class: Explicit tag -> Runtime class (defined in JavaBean ) -> implicit tag (thanks to infinity0x)
Fix issue 9 : Bean with no property cannot be instantiated (thanks to wwagner4)
Better support for loading immutable instances
Major refactoring: Constructor is completely rewritten to prepare better support for immutable objects
Change Maven repository path: groupId= org.yaml , artifactId= snakeyaml
Fix issue 10 : dump omits JavaBean class name when used with an alias (thanks to derrick.rice)
JAR packages with source and Javadoc will also be uploaded to Maven repository
Introduce JavaBeanLoader and JavaBeanDumper . Deprecate JavaBeanParser
Fix issue 8 : Representer was keeping state between invocations (thanks to Alan Gutierrez)
Your coding agent can read these notes before it upgrades. Set up the MCP server →