YAML 1.1 parser and emitter Add a test for issue 543 (thanks to Henry Lin) Set the limit for incoming data to prevent a CVE report in NIST By default it is 3 MB Format the source with Google style. Info: https://stackoverflow.com/questions/49712148/maven-plugin-for-auto-formatting-code-to-match-google-checkstyle Format: https://raw.githubusercontent.com/google/styleguide/gh-pages/eclipse-java-google-style.xml Activation: ./mvnw clean install site -Preformat Support unescaped unicode characters for double-quoted scalars (thanks to Florian Waltenberger) JDK 8 is required for tests Fix false positive CVE-2020-13936 (thanks to GaƩtan Collaud) Improved RE for integers (thanks to Petr Pucil) Add an opportunity to restrict data matched with Regular Expressions to avoid possible attack when RE takes too many resources (detected by OSS-Fuzz) Show proper error message for invalid !!float and !!int scalar (detected by OSS-Fuzz) Restrict nested depth for collections to avoid DoS attacks (detected by OSS-Fuzz) Add test for stackoverflow Deserializing key "on" fails with Exception Merged PR #7: https://bitbucket.org/snakeyaml/snakeyaml/pull-requests/7 (2022-04-04) Do not emit global TAGs by not keeping them in Parser (breaks https://code.google.com/archive/p/snakeyaml/issues/149) Add an example with Lombok and ENV variable substitution (2021-12-29) Fix issues with comments Recognise issue with trailing TAB Remove snakeyaml.org Migrate to https://bitbucket.org/snakeyaml/snakeyaml (2021-10-23) Fix issues with comments Improve parsing a number starting with 0x (2021-06-28) Take the Float pattern from ruamel: https://pypi.org/project/ruamel.yaml Fix Events ordering and improve Node-Comment association (2021-05-13) Fix corner case for comments where blank lines after plain token (2021-03-02) Add a test for issue 500 (2021-03-14) Remove unused variable (2021-02-28) Fix tests to work on Windows (2021-02-19) Add enumCaseSensitive property to LoaderOptions to control constructing enum with case sensitivity (2021-01-05) ENV substitution default can contain special characters (2021-01-03) Allow for read and write YAML with Comments (2020-11-01) Alias names are too permissive compared to libyaml and future spec. Follow https://github.com/yaml/yaml-spec/blob/master/rfc/RFC-0003.md (2020-10-06) Serialize anchors that are not used by any alias (2020-08-14) Add indentWithIndicator option to improve dumping sequences (2020-07-14) Anchor should allow non ascii characters while dumping (2020-06-29) Remove Spring related tests because they are outdated and upgrading to Spring 5 makes the tests fail under JDK 7 (2020-05-02) Make constructor of EnvScalarConstructor public (2020-04-24) Parse the value of byte and short after a narrowing primitive conversion (2020-04-16) Add test for different Line Break Characters in the error message (2020-03-09) 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 (2020-03-08) Migrated to GIT (2020-02-29) Allow configuration for preventing billion laughs attack (2020-02-24) Update Maven wrapper (2020-01-18) Parse ENV variables similar to how it works in docker-compose (2019-12-25) Allow non ASCII characters in the anchor names (2019-12-23) Clean up composer internal maps after construction. Should not have any impact but it does not harm (2019-10-25) The '!' tag now works the same way as for PyYAML. (12 is parsed as int instead of string) The spec files are modified (spec-08-07.canonical spec-08-07.data) Add test for not implemented "!" tag (2019-10-11) Refactor Events: expose Event.ID via a getter (2019-10-05) Refactor ScalarAnalysis: make it immutable (2019-09-28) Add example for integer without time pattern (2019-08-22) Deprecate setting tags in TypeDescription (2019-06-23) Add test for issue 449 (2019-06-19) Restore the way to get anchor for a Node (2019-04-13) Introduce setting to keep !!str tag for String even when it contains non-printable chars (2019-03-24) Update plugin versions (2019-03-04) Refactor BaseConstructor: Factored out postponed mapping logic so subclasses can effectively override constructMapping2ndStep() and delegate to the postponed mapping logic. This is backported from SnakeYAML engine (2019-01-26) Customize simple key length when dumping (2019-01-17) Wrap runtime exceptions into YAMLException (2019-01-14) Fix: Null tag constructor not called when parsing top-level null value (2019-01-13) (issue reported for snakeyaml-engine) Provide "Automatic-Module-Name" entry in MANIFEST (2018-12-16) Fix NPE when duplicate keys are not allowed and the key is null (2018-12-02) Support java.sql classes without the need to depend on java.sql module in java9+ (2018-11-06) Require Java 7 (2018-11-06) Date Serialization Fails for TimeZones on Daylight Savings Time (2018-11-06) Add another getter for ScalarStyle to support backwards compatibility (2018-08-27) Run tests under Java 11 (2018-08-19) Use Maven 3.5.4 (2018-08-19) Restore the Boolean constructors for Events and Nodes for binary compatibility of dependent projects (2018-08-17) System Property "java.runtime.name" is not required to be defined (2018-08-12) Ensure Compatibility with Graal Dumping Enum breaks when Enum value is Anonymous inner class (2018-08-07) Solution: refactor the way to detect if the full tag can be omitted (and !!str is used instead). Instead of checking whether the class for property and the class for the actual value is the same we can just check that the property class is not java.lang.Enum Scanner throws IndexOutOfBoundsException if no more token left but getToken() or peekToken() called (2018-04-10) Enhance output of token IDs (2018-04-06) Mark: expose buffer and pointer (2018-04-06) Restore index in Mark - it is used in JRuby (2018-03-26) Plain scalars with colons in flow sequences/mappings are valid YAML (2018-03-03) Improve reflective access operation to avoid warning under Java 9 (2018-02-24) Refactor collection node - flow style must not be null (2018-02-16) Refactor: remove unused method isResolved in Node (2018-02-15) Refactor: remove unused code in Tag (2018-02-15) Refactor nodes and events - use enum FlowStyle instead of Boolean (2018-02-10) Refactor ScalarToken, ScalarNode and ScalarEvent - use enum ScalarStyle instead of Character (2018-02-10) Refactor Token - remove unused code (2018-02-08) Refactor Mark - remove unused code (2018-02-06) Introduce DuplicateKeyException and report line number for duplicate keys when creating non-Javabeans (2017-12-15) Only use FIELD access for Android in PropertyUtils (2017-08-20) Add getAnnotations() and getAnnotation() methods to Property (2017-08-20) Some configuration properties of Representer are ignored. Fix order of duplicate keys indices to prevent wrong removals. Fix 382: same as 322 Fix 322: if there is no getter try to get type information from a setter Add test for 'billion laughs attack' Relax final restriction on TypeDescription (2017-05-05) Empty yaml file must return null instead of throwing an exception when loading a JavaBean (2017-05-03) Fix Number when it is used as a JavaBean property with a custom Locale (2017-04-30) Add redundant test (2017-04-06) Provide access to node's anchor, pull request#20 (2017-03-30) Remove redundant "Bundle-RequiredExecutionEnvironment: J2SE-1.5" (2017-03-16) Serializing Calendar objects with certain timezone offsets renders invalid YAML (2017-02-28) Validate DumperOptions to prevent invalid YAML to be dumped (2017-01-12) Fix for emitter to split long plain string scalars over multiple lines (2017-01-10) Let Mark implement Serializable so that ParserException can be serialized (2016-12-15) Add tests for issue 354 (2016-12-12) Throw exception in case of duplicate keys in MappingNode and LoaderOptions.allowDuplicateKeys is false. (2016-11-25) Keep same nodes order on merge (preprocess keys for MappingNode and remove duplicates keeping the last one). (2016-11-22) Ignore white spaces for base64 encoded scalar (2016-11-17) Not removing parent object when composed object is an anchor. (2016-10-13) Support "Miscellaneous Symbols and Pictographs" (2016-09-05) Fix NPE in BaseRepresenter.multiRepresenters if it contains 'null' as value (2016-05-03) Add example for issue 335 - the same tag for different node kinds (2016-03-19) Add example for issue 332 (2016-02-24) Build SnakeYAML for different JDKs with docker without building images (2016-02-22) Update plugin versions (2016-02-19) Use Thread.currentThread.getContextClassLoader in Class.forName instead of default one (2016-02-15) Add parameters to POM to change distribution server (2016-02-03) Relax some of the modifiers to make integration easier (2016-02-02) Make use of private/protected constructors for Scalars and 'immutable' objects. Added 'src/test/java8' for Java8 specific tests (requires -Pwith-java8-tests) (2016-01-07) Better support to customise BaseConstructor. Make 'composer' field and constructDocument() method protected (2015-10-03) Better UUID support (2015-09-23) Use Polyglot Maven: add support for YAML POM (2015-09-10) Provide ability to customize anchor names (2015-08-25) Provide Docker image for testing under different Java 8 (2015-06-19) Convert binary byte[] to String when it matches the JavaBean property (2015-05-26) The source code migrated to Bitbucket. Old commits (older then 6 years) have been removed. (2015-05-20) Fix a typo in an error message in ScannerImpl (2015-05-19) Do not print special characters in the error message (2015-04-16) Evaluate implementations for duplicate mapping keys. Apply FindBugs and PMD recommendations (2015-02-16) Added split lines option to DumperOptions to allow line splitting to be disabled. (2015-02-08) Use Maven 3 and update plugin versions (2015-02-05) Add test to clarify iOS emoji character in the surrogate range (2015-02-03) Fix grammar error in exception message (2014-11-18) Load JavaBean with fields using custom constructors (2014-08-18) Drop support for "Value Key Language-Independent Type" and '=' a standard character (2014-05-22) Improve error message for invalid YAML document (2014-05-21) Improve error message for invalid YAML document (2014-03-26) Support Number class (2013-11-07) Double.POSITIVE_INFINITY applied to float fields (2013-11-07) OSGi: Specify version for exported packages (2013-06-27) Improve error report while parsing a JavaBean (2013-05-14) Arrays of primitives are now fully supported (2013-04-16) Duplicate anchors in an input document should not be an error (2013-04-03) Using a locale with minimum number fraction digits breaks anchor generation (2013-03-30) Use more generic generics in BaseRepresenter (2013-03-30) The build is using JDK 1.6 (2013-03-02) Make Constructor.typeDefinitions protected to be more flexible (2013-02-18) Remove file AUTHORS because it does not reflect the actual situation (2012-11-09) Improve the error message when a TAB character starts a token (2012-11-06) Fix issue 158: improve support for 32-bit characters (UTF-16 surrogate pairs) (2012-09-29) Fix issue 146: empty tags should not force explicit document start (2012-09-29) Fix issue 156: setSkipMissingProperties fails for non-scalar values (2012-09-05) Fix issue 155: SnakeYAML must always eat its own food - a YAML document created by itself must be read without exceptions (2012-09-04) Fix issue 154: Add option to skip missing properties when deserializing YAML into Java object (2012-07-25) Add a test for issue 150 (2012-06-17) Add a test for issue 151 (2012-06-14) Fix issue 149: Directives are no longer lost between documents (2012-06-10) Refactor: use Version enum instead of Array of Integers. This is done to simplify fixing issue 149 (2012-06-09) Add tests for issue 148 (2012-06-07) Fix issue 147: Serialized representation of character U+FFFD causes exception on deserialization (2012-06-05) Fix issue 145: exception.getMessage() must show the line number as exception.toString() does (2012-04-03) Fix issue 144: improve type inference for Compact Object Notation (2012-03-16) Improve Android support Fix issue 141: TimeZone is configurable in DumperOptions (2012-02-03) Refactor with PMD: minor non-functional improvements (2012-01-28) Refactor with PMD: Avoid unused method parameter 'index' in Serializer and Emitter (2012-01-28) Refactor with PMD: Composer - Avoid unused method parameter 'index' in 'Composer.composeNode(Node parent, Object index)''. It was used in PyYAML for kind of XPath for YAML, but it was not imported from PyYAML (2012-01-28) Refactor Emitter: the SPACE mutable static field could be changed by malicious code or by accident. Boxed value is unboxed and then immediately reboxed (2012-01-28) Refactor with FindBugs: remove unused ScalarAnalysis.allowDoubleQuoted (2012-01-28) Refactor with FindBugs: do not rely on default encoding (2012-01-28) Refactor: apply FindBugs recommendations (2012-01-28) Fix issue 139: merge should use last key in map (2012-01-24) Fix issue 136: tabs are allowed in plain scalars. This is a deviation from PyYAML (2012-01-11) Expose internal data of ReaderException (2012-01-06) Respect supplementary characters (2012-01-06) Use http://mercurial.selenic.com/wiki/EolExtension to force LF as line separator for all operating systems (2011-12-20) Add a test for issue 136 (2011-12-14) Deprecate the DumperOptions.calculateScalarStyle() method because it was introduced as a quick fix for issue 29. Now it should not be required at all (because of the fix for issue 66), or it should be implemented in the Representer (in RepresentString) (2011-10-10) Fix issue 66: literal scalar style is used by default for multiline scalars (2011-10-10) An example added: how to dump multiline literal scalars (2011-10-04) An example added: how to dump recursive object for issue 133 (2011-09-14) A test added for issue 132 (2011-09-13) Finish 1.9 release (2011-08-15) Add a test to prove that SnakeYAML is not affected by the problem reported for libyaml at http://pyyaml.org/ticket/196 (2011-07-28) Since timestamp contains ':' characters it is dumped with single quoted scalar style in the flow context. The single quoted scalar style causes to dump the explicit tag. In the block context the plain scalar can be used and the tag is not required. It may cause unpredictable behaviour if the tag is required. See the comments in JodaTimeExampleTest (2011-07-25) Fix scientific notation inconsistency in the YAML 1.1 specification: scalar '8e-06' should be parsed as a Double (2011-07-24) Do not allow to override BaseRepresenter.representData(Object data) because users should instead implement Represent interface (2011-07-21) Deprecate DumperOptions.explicitRoot (2011-07-20) Add Yaml.dumpAs(Object, Tag.MAP, FlowStyle) and Yaml.dumpAsMap(Object) methods. JavaBeanDumper is marked as deprecated (2011-07-16) Add example to show how to dump a custom class (2011-07-12) Add Yaml.serialize(Node) low level method to the public API (2011-07-14) Add Yaml.represent(Object) low level method to the public API (2011-07-14) Add support for Maven 3 via 'm3' profile (2011-07-10) Remove deprecated JavaBeanParser (2011-07-05) Remove redundant JavaBeanDumper.classTags set (2011-07-03) Add Yaml.loadAs() methods. JavaBeanLoader is marked as deprecated (2011-07-03) Remove TypeDescription.root property to prepare issue 124. This is a minor backwards incompatible change. Now instead of setting as root, the TypeDescription must be passed to the Contructor's constructor to be taken as the root definition (2011-07-03) Fix: close files in tests to avoid a possible file handle limit (2011-06-09) Fix: Improved support for empty JavaBeans (2011-06-09) Fix: Improved support for parameterised types in collections (2011-05-25) Fix: parameterised JavaBeans fail to load and dump because they are treated as Maps (2011-05-16) Fix: Do not remove root tags of JavaBeans when it is not explicitly requested (2011-04-20) Fix: Long escaped tag URI sequences throw BufferOverflowException (2011-03-03) Fix: introduce a package for external libraries and move there the 64Coder and the Google's URL encoder (2011-02-24) Fix: ancient years must be dumped with leading zeros (2011-02-19) Remove unused code in Constructor: Modifier.isAbstract() is not needed any more (2011-02-18) Enum's name property shall be dumped instead of the 'toString()' output (2011-02-16) Add example to howto Wiki: How_to_substitute_object_in_YAML_document_with_a_custom_object (2011-01-27) When the YAML document to be loaded is provided as String parse it directly without making a Reader first (2011-01-23) Immutable data structures in StreamReader allow to share the same buffer for all the Mark instances. It makes 'withMarkContext' setting redundant (2011-01-19) Merge JavaBean properties when an explicit tag is provided (2011-01-11) Add an example for escaping line breaks in binary content (2011-01-03) Propose a solution for JavaBeans to support SortedSet property when it is encoded as a sequence (2010-11-24) Simplify the way how the order of JavaBean properties is specified. Introduce PropertyUtils.createPropertySet() method to be overridden when a specific order is expected (2010-11-23) Fix: Loading of generic collections with Array parameter(s). (2010-11-16) Add ChangeRuntimeClassTest as an example how to change a class for a global tag (2010-11-05) Inner objects in Constructor become protected to be more flexible when Constructor is expended (2010-10-03) Apply www.snakeyaml.org domain name (2010-09-20) Move Base64Coder into another package to keep a separate copyright statement. Base64Coder is left unchanged (2010-09-19) Iterable should not be serialised as sequence (2010-09-16) Introduce 'fast' Maven profile to quickly build cobertura reports (2010-09-16) Fix: Specify plugin versions in POM (2010-09-15) Fix: Custom tag erased when referenced from generic collection (2010-09-15) Minor refactoring in Emitter to improve performance: save calls to Constant.has() (2010-09-13) Minor refactorings in Emitter to improve performance: create less Strings [r9185e0b3] (2010-09-10) Introduce LoaderOptions to be able to specify configuration while loading (2010-09-03) Representer.representJavaBeanProperty() is given the wrong tag. Instead of the property tag, the tag for the JavaBean itself is provided. (2010-09-01) Rename JvmDetector into GenericsBugDetector (2010-08-31) Fix: Timestamp is not parsed properly when milliseconds start with 0 (2010-08-24) Context for error reporting consumes a lot of resources (2010-08-21) Cleanup unused code in deprecated Loader and Dumper (2010-08-13) Eclipse does not run JUnit 4 tests when they are launched for the whole project (2010-08-11) Share PropertyUtils if not explicitly set in Constructor or Representer (BeanAccess.FIELD works properly when JavaBean is identified by a root tag) (2010-08-11) Create 1.7 Release Candidate 1 (2010-08-11) Simplify public API: Drop Dumper (2010-08-06) Simplify public API: Drop Loader (2010-08-05) Add examples to create scalars that match custom regular expression: CustomImplicitResolverTest, CustomBeanResolverTest (2010-08-03) Do not use redundant tags for arrays which are JavaBean properties. (2010-07-21) RecursiveSetTest proves that it is possible to construct a recursive set (2010-07-20) Provide sequence support for loading java.util.Set. Also provide an example to serialise a java.util.Set as a sequence. (2010-07-19) Support java.util.Collection as a parent for List and Set (2010-07-09) Allow direct field access bypassing setters and getters. Empty constructor is required to support 2-step construction (2010-07-02) Serialise Iterator and Iterable as sequences (2010-06-25) Change error message when 'No suitable constructor with N arguments found for class' (2010-06-23) Add JodaTime example (2010-06-04) Add possibility to create a Tag out of an URI (2010-05-31) URLDecoder.decode() does not fail when UTF-8 is invalid. Use CodingErrorAction.REPORT to implement the failure (2010-05-21) Fix generic collections which contain other collections (2010-05-18) Fix: java classes containing non-ASCII characters in names are incorrectly encoded (2010-05-14) Fix: add checks for null arguments for JavaBeanDumper (2010-04-27) Add a test to see how stack trace is serialised (2010-04-27) ClassCastException in Representer when working with ParameterizedType (2010-04-25) Improve toString() method for Node. Since scalars cannot be recursive they can be printed (2010-04-15) Refactor the way arrays are constructed (2010-04-15) Add examples for dumping custom values for !!bool and !!null (2010-04-13) Fix: ClassCastException when dumping generic bean (2010-04-11) Provide an example for changing JavaBean properties order (2010-04-01) Provide example for skipping null and empty collections (2010-03-29) JavaBeanDumper.dump throws NullPointerException on list property with null element (2010-03-23) Make constructors in SafeConstructor public (2010-03-16) Releases and snapshots are available in the Sonatype Maven repository. https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide Enhancement for a pretty format that combines BLOCK and FLOW (2010-03-03) Unable to dump JavaBean that inherits from a protected base class (2010-03-02) Format source (2010-03-01) Use Token.ID and Event.ID instead of just ID (2010-03-01) Issue 50 fails in Eclipse but works with Maven (2010-03-01) Release Candidate 2 is available (2010-02-24) Don't dump read-only properties by default. DumperOptions gets a setting to include read-only JavaBean properties. This is no backwards compatible change (2010-02-19) Support GregorianCalendar. Due to Daylight Saving Time parsing the timestamp with a TimeZone cannot determine the exact time (2010-02-19) Some Unicode characters are wrongly replaced by \x{fffd} during double quoted style dump (2010-02-15) Introduce representJavaBeanProperty() method in Representer. The method can be overridden to simplify custom JavaBean representation (2010-02-12) Release Candidate 1 is available (2010-02-01) Representer.representJavaBean() returns MappingNode (2010-01-26) Add example of serialising static fields (2010-01-26) Add example of serialising java.io.File as scalar node for issue 46 (2010-01-25) Refactor: introduce Chomping to avoid using null as value for Boolean. Stay in line with Scala port where null is not allowed (2010-01-19) Refactor: use Event.ID enum instead of classes (2010-01-15) Refactor: use Token.ID enum instead of classes (2010-01-15) Refactor: use generic classes for DirectiveToken (2010-01-14) Refactor: rename Reader to StreamReader to avoid name conflict with java.io.Reader (2010-01-13) Refactor: use StringBuilder instead of StringBuffer (2010-01-12) Refactor: introduce Constant class to share String constants (2010-01-12) Keep Tag.equals(String) to simplify transition to Tag class (2010-01-08) Refactor: introduce Tag instead of Tags. Nodes use Tag class instead of String (2010-01-05) BaseConstructor shall give more flexibility to choose a constructor at runtime (2010-01-08) Refactor: introduce TagTuple instead of String[] (2010-01-04) Ignore tags when they are compatible with the runtime class (2010-01-04) Add example to ignore unknown tags (2009-12-08) Add Ruby example (2009-12-08) Do not omit the tag for JavaBean properties when the tag is explicitly defined (2009-12-08) Fix ID format for numbers over 999 (2009-12-05) Allow separate option in DumperOptions for long strings (2009-11-16) JavaBeanDumper: add possibility to define a custom Representer (2009-11-25) Introduce multi contructors (tag prefix). A family of tags may be processed by a single constructor (2009-11-25) Refactor BaseConstructor: simplify second step for recursive structures (2009-11-25) Add FilterPropertyToDumpTest to show how to filter JavaBean properties (2009-11-24) Add FilterClassesConstructorTest to show how to filter created classes (2009-11-16) Improve JavaDoc (2009-11-12) Add Velocity example (2009-11-03) Refactor: rename Tuple to RecursiveTuple and hide it inside BaseConstructor (2009-11-03) Extend Resolver to support custom implicit types (2009-10-27) Performance improvement: use ArrayStack instead of Stack which extends Vector (2009-10-20) Improve usage of generic collections: while type erase makes no difference between Class< Foo> and Class< Bar> at runtime, the information about generics is still accessible via reflection from Method/Field. (2009-10-19) Fix ConstructYamlObject: support recursive objects. Introduce 'resolved' property for Nodes. This property supposed to help to distinguish explicit tag from the resolved tag (2009-10-19) Refactor: use rootTag instead of rootType (for Class) in BaseConstructor. This is done to solve the priority problem: normally explicit tag has more priority then runtime class but for the root tag it is the other way around (2009-10-19) Line numbers reported in Exceptions are Zero based, should be 1 based (2009-10-12) Support arrays of reference types as JavaBean properties (2009-09-22) Respect root tag for sequences (2009-09-04) SafeRepresenter respects custom tags for standard Java classes where standard tag has more then one Java implementation available (Long, List, Map, Date etc) (2009-09-03) Add possibility to define a custom Class Loader. (2009-09-01) Fixed an obscure scanner error not reported when there is no line break at the end of the stream. The fix is imported from PyYAML 3.09 {ticket 118} (2009-08-31) Cache JavaBean class properties. Tests show that the loading has become a few percents faster (2009-08-31) Introduce ArrayStack to use push() and pop() instead of standard (and too verbose) 'remove(size()-1)' (2009-08-27) Fix: ArrayList is more efficient than LinkedList (2009-08-26) Apply Apache License Version 2.0 (2009-08-14) Provide javadocs link to Sun Java API (2009-08-10) Build 1.4 Release Candidate 1 (2009-08-07) Introduce Tags.getGlobalTagForClass() to simplify tag generation in custom constructors (2009-08-06) Refactor: introduce ImplicitTuple (2009-08-06) Fix: create a Java instance with the following priority to choose the class: Explicit tag -> Runtime class (defined in JavaBean) -> implicit tag (2009-08-06) Fix: Bean with no property cannot be instantiated. This is implemented via better support for immutable objects. Custom Constructor may be used when there are more then 1 way to create an instance (2009-08-04) Deliver possibility to load immutable instances with no global tags. Reflection for constructor arguments is used to get the runtime classes (2009-08-04) Use more informative error message when a JavaBean property cannot be created (2009-08-02) Refactor: Constructor is rewritten. Do not overwrite methods from BaseConstructor. Instead introduce ConstructScalar, ConstructSequence, ConstructMapping (2009-07-31) Change Maven repository path: groupId='org.yaml', artifactId='snakeyaml' (2009-07-31) Fix: dump omits JavaBean class name when used with an alias (2009-07-28) Generate sources and Javadoc (2009-07-27) Node does not have the value. It is delegated to the non-abstract classes (2009-07-27) Extends JavaBeanDumper to allow skipping global tags inside type-safe collections. Introduce method setMapTagForBean() (2009-07-22) Add ConstructEmptyBeanTest to test JavaBean construction with no properties in the YAML document(2009-07-22) Refactor: redesign tag management for JavaBeans in Representer. Drop dynamic root tag concept (2009-07-22) Remove unused TypeDescription in Representer (2009-07-21) Use NodeTuple instead of Node[] for mappings (2009-07-21) Introduce JavaBeanLoader and JavaBeanDumper. Deprecate JavaBeanParser (2009-07-21) Fix: Representer was keeping state between invocations (2009-07-21) Fix: values returned by System.identityHashCode() are not guaranteed to be unique (2009-07-14) Add a simple test for Java Generics (BirdTest). Unfortunately it shows that some JVM implementations do not recognise classes for JavaBean properties at runtime. It leads to unnecessary global tags. See http://code.google.com/p/snakeyaml/wiki/Documentation#Generics for details (2009-07-13) Fix: set the "cause" field for MarkedYAMLException (2009-07-10) Fix: Recursive objects are now fully supported (2009-07-09) Add support for BigDecimal as a JavaBean property (2009-07-07) Improve test coverage for Constructor. Allow construction of JavaBeans with only setter without the corresponding getter (2009-07-07) Add a test to check the proper report for IOException (2009-07-03) Fix: represent proper tags for JavaBeans when they are not the root of the YAML document but a member of a collection (2009-07-03) Refactor: run PMD and apply some of the recommendations (2009-06-18) Create an issue for Recursive objects to be remembered (2009-06-08) Migrate project hosting from Assembla to Google code (2009-06-08) Fix: null as a JavaBean property was not handled properly (2009-06-04) Validate changes.xml file (2009-05-25) Fix ticket 40 in Assembla: getting an error when javabean contains java.sql.Timestamp fields (2009-05-25) Add 'Yaml.parse()' method which return Events to support low level YAML processing (2009-04-20) Introduce LineBreak.getPlatformLineBreak (ticket 5 in Assembla) (2009-04-18) Rename LineBreak.LINUX to LineBreak.UNIX (ticket 5 in Assembla) (2009-04-18) Add 'Yaml.compose()' methods which return Nodes to support YEdit (2009-04-17) Refactor: rename enums in DumperOptions to make the names consistent (2009-04-07) Refactor: use Character instead of char primitive for style in Emitter (2009-04-07) Add possibility to parse all scalars as Strings (2009-03-30) Merge changeset 347 from PyYAML (2009-03-30) Respect DumperOptions with a custom Representer (2009-03-18) Represent TAB as '\t' instead of '(9' in the error message (2009-03-17) Introduce JavaBeanParser (2009-03-14) Introduce DumperOptions.Version enum (2009-03-13) Introduce DumperOptions.LineBreak enum (2009-03-10) Use byte[] for binary type. (2009-03-09) Restore Regular Expressions in Resolver. Ragel gives only 5% performance increase. Fix a bug in Resolver with expanded regular expressions which caused the performance problem. (2009-03-06) Better Spring support: it is now possible to create a constructor with a String as the class name. (2009-03-05) Throw an exception when the same Loader or Dumper instance is shared between different Yaml instances. Because they are statefull it is not Thread-safe. (2009-03-05) Add possibility to set a meaningful name for Yaml instance to be shown in toString(). (2009-03-05) Refactor: declare classes which are not expected to be extended as final. (2009-03-04) Refactor: use 'final' keyword to identify immutable fields. (2009-03-04) Refactor: do not use 'final' keyword for local variables. (2009-03-04) Fix: respect implicit resolvers with 'null' as a first character. (2009-03-02) Refactor: use Character instead of String as a key for implicit resolvers. (2009-03-02) Use Ragel instead of Regular Expressions for implicit types. (2009-03-02) Fix ticket #4 (in Assembla): java.sql.Date not handled. (2009-02-28) Introduce DumperOptions.DefaultFlowStyle enum (2009-02-24) Introduce DumperOptions.DefaultScalarStyle enum (2009-02-24) Refactor: use 'switch' with Enum instead of multiple 'if' statements to distinguish nodes (2009-02-19) Refactor: use Enum instead of String as NodeId (2009-02-19) Do not emit anchors for Enum (2009-02-18) Enum as a JavaBean property (when the Enum class is implicitly defined) does not need tags for both loading and dumping (2009-02-17) Enum is emitted as a scalar node (2009-02-17) Enum is parsed as a scalar node or as a JavaBean property (2009-02-17) Refactor: for performance ScannerImpl.stalePossibleSimpleKeys() does not copy key Set (2009-02-10) By default allowUnicode=true. If it is necessary to escape Unicode use DumperOptions.setAllowUnicode(false) (2009-02-09) Implement allowUnicode setting (to escape Unicode characters on non UTF-8 terminals) (2009-02-09) Add possibility to specify tags for dumping (2009-02-09) Rename getExpRoot to getExplicitRoot to conform with standard JavaBean naming convention (2009-02-09) Rename explictStart and explicitEnd to standard setters to conform with standard JavaBean naming convention (2009-02-09) Add possibility to specify a line break (2009-02-09) Deliver first release (2009-02-06)