<document xmlns="http://maven.apache.org/changes/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/plugins/maven-changes-plugin/xsd/changes-1.0.0.xsd">
    <properties>
        <title>YAML 1.1 parser and emitter</title>
        <author email="public.somov@gmail.com">Andrey Somov</author>
    </properties>
    <body>
        <release version="1.16-SNAPSHOT" date="in Mercurial" description="Maintenance">
            <action dev="asomov" type="fix" issue="302">
                Convert binary byte[] to String when it matches the JavaBean property (2015-05-26)
            </action>
            <action dev="asomov" type="update">
                The source code migrated to Bitbucket. Old commits (older then 6 years) have
                been removed. (2015-05-20)
            </action>
            <action dev="asomov" type="fix"  issue="212">
                Fix a typo in an error message in ScannerImpl (2015-05-19)
            </action>
            <action dev="asomov" type="fix"  issue="209">
                Do not print special characters in the error message (2015-04-16)
            </action>
            <action dev="asomov" type="fix"  issue="199">
                Evaluate implementations for duplicate mapping keys.
            </action>
        </release>
        <release version="1.15" date="2015-02-19" description="Maintenance">
            <action dev="asomov" type="update">
                Apply FindBugs and PMD recommendations (2015-02-16)
            </action>
            <action dev="asomov" type="update">
                Added split lines option to DumperOptions to allow line splitting to be disabled. (2015-02-08)
            </action>
            <action dev="asomov" type="update">
                Use Maven 3 and update plugin versions (2015-02-05)
            </action>
            <action dev="asomov" type="update"  issue="205">
                Add test to clarify iOS emoji character in the surrogate range (2015-02-03)
            </action>
            <action dev="asomov" type="fix"  issue="201">
                Fix grammar error in exception message (2014-11-18)
            </action>
        </release>
        <release version="1.14" date="2014-08-29" description="Maintenance">
            <action dev="maslovalex" type="fix"  issue="197">
	        Load JavaBean with fields using custom constructors (2014-08-18)
            </action>
            <action dev="asomov" type="fix"  issue="192">
                Drop support for "Value Key Language-Independent Type" and '=' a standard character (2014-05-22)
            </action>
            <action dev="maslovalex" type="fix"  issue="191">
                Improve error message for invalid YAML document (2014-05-21)
            </action>
            <action dev="asomov" type="fix"  issue="188">
                Improve error message for invalid YAML document (2014-03-26)
            </action>
            <action dev="asomov" type="fix"  issue="183">
                Support Number class (2013-11-07)
            </action>
             <action dev="asomov" type="fix"  issue="182">
                Double.POSITIVE_INFINITY applied to float fields (2013-11-07)
             </action>
        </release>
        <release version="1.13" date="2013-08-29" description="Maintenance">
             <action dev="asomov" type="fix"  issue="178">
                OSGi: Specify version for exported packages (2013-06-27)
             </action>
             <action dev="asomov" type="fix"  issue="177">
                Improve error report while parsing a JavaBean (2013-05-14)
             </action>
              <action dev="Jordan" type="fix"  issue="135">
                Arrays of primitives are now fully supported (2013-04-16)
             </action>
             <action dev="asomov" type="fix"  issue="174">
                Duplicate anchors in an input document should not be an error (2013-04-03)
             </action>
             <action dev="asomov" type="fix"  issue="172">
                Using a locale with minimum number fraction digits breaks anchor generation (2013-03-30)
             </action>
             <action dev="asomov" type="fix"  issue="171">
                Use more generic generics in BaseRepresenter (2013-03-30)
             </action>
        </release>
        <release version="1.12" date="2013-03-02" description="Maintenance">
             <action dev="asomov" type="update">
                The build is using JDK 1.6 (2013-03-02)
             </action>
             <action dev="asomov" type="fix"  issue="169">
                Make Constructor.typeDefinitions protected to be more flexible (2013-02-18)
             </action>
             <action dev="asomov" type="remove">
                Remove file AUTHORS because it does not reflect the actual situation (2012-11-09)
             </action>
             <action dev="asomov" type="update">
                Improve the error message when a TAB character starts a token (2012-11-06)
             </action>
        </release>
        <release version="1.11" date="2012-09-29" description="Maintenance">
             <action dev="asomov" type="fix"  issue="158">
                Fix issue 158: improve support for 32-bit characters (UTF-16 surrogate pairs) (2012-09-29)
             </action>
             <action dev="asomov" type="fix"  issue="146">
                Fix issue 146: empty tags should not force explicit document start (2012-09-29)
             </action>
             <action dev="asomov" type="fix"  issue="156">
                Fix issue 156: setSkipMissingProperties fails for non-scalar values (2012-09-05)
             </action>
             <action dev="asomov" type="fix"  issue="155">
                Fix issue 155: SnakeYAML must always eat its own food - a YAML document created by itself must
                be read without exceptions (2012-09-04)
             </action>
             <action dev="asomov" type="update"  issue="154">
                Fix issue 154: Add option to skip missing properties when deserializing YAML into Java object (2012-07-25)
             </action>
             <action dev="asomov" type="update">
                Add a test for issue 150 (2012-06-17)
             </action>
             <action dev="asomov" type="update">
                Add a test for issue 151 (2012-06-14)
             </action>
             <action dev="asomov" type="fix">
                Fix issue 149: Directives are no longer lost between documents (2012-06-10)
             </action>
             <action dev="asomov" type="update">
                Refactor: use Version enum instead of Array of Integers.
                This is done to simplify fixing issue 149 (2012-06-09)
             </action>
             <action dev="asomov" type="fix">
                Add tests for issue 148  (2012-06-07)
             </action>
             <action dev="asomov" type="fix">
                Fix issue 147: Serialized representation of character U+FFFD causes exception on deserialization  (2012-06-05)
             </action>
             <action dev="asomov" type="fix">
                Fix issue 145: exception.getMessage() must show the line number as exception.toString() does (2012-04-03)
             </action>
             <action dev="maslovalex" type="fix">
                Fix issue 144: improve type inference for Compact Object Notation (2012-03-16)
             </action>
             <action dev="maslovalex" type="add">
                Improve Android support
             </action>
        </release>
        <release version="1.10" date="2012-02-08" description="Maintenance">
             <action dev="asomov" type="update">
                Fix issue 141: TimeZone is configurable in DumperOptions (2012-02-03)
             </action>
             <action dev="asomov" type="update">
                Refactor with PMD: minor non-functional improvements (2012-01-28)
             </action>
             <action dev="asomov" type="update">
                Refactor with PMD: Avoid unused method parameter 'index' in
                Serializer and Emitter (2012-01-28)
             </action>
             <action dev="asomov" type="update">
                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)
             </action>
             <action dev="asomov" type="update">
                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)
             </action>
             <action dev="asomov" type="remove">
                Refactor with FindBugs: remove unused ScalarAnalysis.allowDoubleQuoted (2012-01-28)
             </action>
             <action dev="asomov" type="update">
                Refactor with FindBugs: do not rely on default encoding (2012-01-28)
             </action>
             <action dev="asomov" type="update">
                Refactor: apply FindBugs recommendations (2012-01-28)
             </action>
             <action dev="maslovalex" type="fix">
                Fix issue 139: merge should use last key in map (2012-01-24)
             </action>
             <action dev="asomov" type="fix">
                Fix issue 136: tabs are allowed in plain scalars. This is a deviation from PyYAML (2012-01-11)
             </action>
             <action dev="asomov" type="add" issue="138">
                Expose internal data of ReaderException (2012-01-06)
             </action>
             <action dev="asomov" type="fix" issue="137">
                Respect supplementary characters (2012-01-06)
             </action>
             <action dev="asomov" type="add">
                Use http://mercurial.selenic.com/wiki/EolExtension to force LF  as line separator
                for all operating systems (2011-12-20)
             </action>
             <action dev="asomov" type="add">
                Add a test for issue 136 (2011-12-14)
             </action>
              <action dev="asomov" type="remove">
                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)
             </action>
             <action dev="asomov" type="fix">
                Fix issue 66: literal scalar style is used by default for multiline scalars (2011-10-10)
             </action>
             <action dev="asomov" type="add">
                An example added: how to dump multiline literal scalars (2011-10-04)
             </action>
             <action dev="asomov" type="add">
                An example added: how to dump recursive object for issue 133 (2011-09-14)
             </action>
             <action dev="asomov" type="add">
                A test added for issue 132 (2011-09-13)
             </action>
             <action dev="asomov" type="update">
                Finish 1.9 release (2011-08-15)
             </action>
        </release>
        <release version="1.9" date="2011-08-15" description="Introduce Yaml.loadAs() and Yaml.dumpAs() methods">
            <action dev="asomov" type="update">
                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)
            </action>
            <action dev="asomov" type="fix" issue="128">
                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)
            </action>
            <action dev="asomov" type="fix" issue="130">
                Fix scientific notation inconsistency in the YAML 1.1 specification:
                scalar '8e-06' should be parsed as a Double (2011-07-24)
            </action>
            <action dev="asomov" type="remove" issue="127">
                Do not allow to override BaseRepresenter.representData(Object data) because
                users should instead implement Represent interface (2011-07-21)
            </action>
            <action dev="asomov" type="remove" issue="124">
                Deprecate DumperOptions.explicitRoot (2011-07-20)
            </action>
            <action dev="asomov" type="add" issue="124">
                Add Yaml.dumpAs(Object, Tag.MAP, FlowStyle) and Yaml.dumpAsMap(Object) methods. JavaBeanDumper is marked as deprecated (2011-07-16)
            </action>
            <action dev="asomov" type="add" issue="127">
                Add example to show how to dump a custom class (2011-07-12)
            </action>
            <action dev="asomov" type="add" issue="129">
                Add Yaml.serialize(Node) low level method to the public API (2011-07-14)
            </action>
            <action dev="asomov" type="add" issue="129">
                Add Yaml.represent(Object) low level method to the public API (2011-07-14)
            </action>
            <action dev="asomov" type="add" issue="125">
                Add support for Maven 3 via 'm3' profile (2011-07-10)
            </action>
            <action dev="asomov" type="remove" issue="124">
                Remove deprecated JavaBeanParser (2011-07-05)
            </action>
            <action dev="asomov" type="remove" issue="124">
                Remove redundant JavaBeanDumper.classTags set (2011-07-03)
            </action>
            <action dev="asomov" type="add" issue="124">
                Add Yaml.loadAs() methods. JavaBeanLoader is marked as deprecated (2011-07-03)
            </action>
            <action dev="asomov" type="remove" issue="124">
                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)
            </action>
            <action dev="asomov" type="fix" issue="121" due-to="Jaromir">
                Fix: close files in tests to avoid a possible file handle limit (2011-06-09)
            </action>
            <action dev="asomov" type="fix" issue="116" due-to="Jim Peterson">
                Fix: Improved support for empty JavaBeans (2011-06-09)
            </action>
            <action dev="asomov" type="fix" issue="112" due-to="Lethargish">
                Fix: Improved support for parameterised types in collections (2011-05-25)
            </action>
            <action dev="asomov" type="fix" issue="115" due-to="elkniwt">
                Fix: parameterised JavaBeans fail to load and dump because they are treated as Maps (2011-05-16)
            </action>
            <action dev="asomov" type="fix" issue="114" due-to="gileadis">
                Fix: Do not remove root tags of JavaBeans when it is not explicitly requested (2011-04-20)
            </action>
            <action dev="asomov" type="fix" issue="111" due-to="JordanAngold">
                Fix: Long escaped tag URI sequences throw BufferOverflowException (2011-03-03)
            </action>
            <action dev="asomov" type="fix" issue="110" due-to="dmitry.s.mamonov">
                Fix: introduce a package for external libraries and move there the 64Coder
                and the Google's URL encoder (2011-02-24)
            </action>
            <action dev="asomov" type="fix" issue="109" due-to="cjalmeida">
                Fix: ancient years must be dumped with leading zeros (2011-02-19)
            </action>
            <action dev="asomov" type="remove" due-to="JordanAngold">
                Remove unused code in Constructor: Modifier.isAbstract() is not needed any more (2011-02-18)
            </action>
            <action dev="JordanAngold" type="fix" issue="108">
                Enum's name property shall be dumped instead of the 'toString()' output (2011-02-16)
            </action>
        </release>
        <release version="1.8" date="2011-02-15" description="Performance improvement">
            <action dev="asomov" type="add">
                Add example to howto Wiki:
                How_to_substitute_object_in_YAML_document_with_a_custom_object (2011-01-27)
            </action>
            <action dev="asomov" type="update">
                When the YAML document to be loaded is provided as String parse it directly
                without making a Reader first (2011-01-23)
            </action>
            <action dev="asomov" type="fix" issue="106">
                Immutable data structures in StreamReader allow to share the same buffer for all
                the Mark instances. It makes 'withMarkContext' setting redundant (2011-01-19)
            </action>
            <action dev="maslovalex" type="update" issue="100">
                Merge JavaBean properties when an explicit tag is provided (2011-01-11)
            </action>
            <action dev="asomov" type="update" issue="99">
                Add an example for escaping line breaks in binary content (2011-01-03)
            </action>
            <action dev="asomov" type="update" issue="97">
                Propose a solution for JavaBeans to support SortedSet property when it is encoded
                as a sequence (2010-11-24)
            </action>
            <action dev="asomov" type="update" issue="59">
                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)
            </action>
            <action dev="maslovalex" type="fix" issue="95">
                Fix: Loading of generic collections with Array parameter(s). (2010-11-16)
            </action>
            <action dev="asomov" type="update" issue="94">
                Add ChangeRuntimeClassTest as an example how to change a class for a global tag (2010-11-05)
            </action>
            <action dev="asomov" type="update">
                Inner objects in Constructor become protected to be more flexible when Constructor
                is expended (2010-10-03)
            </action>
            <action dev="asomov" type="update" issue="91">
                Apply www.snakeyaml.org domain name (2010-09-20)
            </action>
            <action dev="asomov" type="fix" issue="90">
                Move Base64Coder into another package to keep a separate copyright statement.
                Base64Coder is left unchanged (2010-09-19)
            </action>
            <action dev="asomov" type="fix" issue="69">
                Iterable should not be serialised as sequence (2010-09-16)
            </action>
            <action dev="asomov" type="update">
                Introduce 'fast' Maven profile to quickly build cobertura reports (2010-09-16)
            </action>
            <action dev="asomov" type="update" issue="89">
                Fix: Specify plugin versions in POM (2010-09-15)
            </action>
            <action dev="maslovalex" type="fix" issue="88">
                Fix: Custom tag erased when referenced from generic collection (2010-09-15)
            </action>
            <action dev="asomov" type="update">
                Minor refactoring in Emitter to improve performance: save calls to Constant.has() (2010-09-13)
            </action>
            <action dev="maslovalex" type="update">
                Minor refactorings in Emitter to improve performance: create less Strings [r9185e0b3] (2010-09-10)
            </action>
            <action dev="asomov" type="update" issue="79">
                Introduce LoaderOptions to be able to specify configuration while loading (2010-09-03)
            </action>
            <action dev="asomov" type="fix" issue="81">
                Representer.representJavaBeanProperty() is given the wrong tag. Instead of the property tag,
                the tag for the JavaBean itself is provided. (2010-09-01)
            </action>
            <action dev="asomov" type="update">
                Rename JvmDetector into GenericsBugDetector (2010-08-31)
            </action>
            <action dev="asomov" type="fix" issue="80" due-to="SebastienRainville">
                Fix: Timestamp is not parsed properly when milliseconds start with 0 (2010-08-24)
            </action>
            <action dev="maslovalex" type="update" issue="79">
                Context for error reporting consumes a lot of resources (2010-08-21)
            </action>
            <action dev="asomov" type="remove">
                Cleanup unused code in deprecated Loader and Dumper (2010-08-13)
            </action>
        </release>
        <release version="1.7" date="2010-08-12" description="Simplify public API (drop Loader and Dumper)">
            <action dev="asomov" type="update">
                Eclipse does not run JUnit 4 tests when they are launched for the whole project (2010-08-11)
            </action>
            <action dev="maslovalex" type="update" issue="55">
                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)
            </action>
            <action dev="asomov" type="update">
                Create 1.7 Release Candidate 1 (2010-08-11)
            </action>
            <action dev="asomov" type="update" issue="77">
                Simplify public API: Drop Dumper (2010-08-06)
            </action>
            <action dev="asomov" type="update" issue="77">
                Simplify public API: Drop Loader (2010-08-05)
            </action>
            <action dev="asomov" type="update" issue="75" due-to="jon.p.hermes">
                Add examples to create scalars that match custom regular expression:
                CustomImplicitResolverTest, CustomBeanResolverTest (2010-08-03)
            </action>
            <action dev="asomov" type="fix" issue="74" due-to="Kevin Menard">
                Do not use redundant tags for arrays which are JavaBean properties. (2010-07-21)
            </action>
            <action dev="asomov" type="update">
                RecursiveSetTest proves that it is possible to construct a recursive set (2010-07-20)
            </action>
            <action dev="asomov" type="add" issue="73" due-to="birnbuazn">
                Provide sequence support for loading java.util.Set. Also provide an example
                to serialise a java.util.Set as a sequence. (2010-07-19)
            </action>
            <action dev="asomov" type="add" issue="72" due-to="birnbuazn">
                Support java.util.Collection as a parent for List and Set (2010-07-09)
            </action>
            <action dev="maslovalex" type="add" issue="55" due-to="birnbuazn">
                Allow direct field access bypassing setters and getters. Empty constructor
                is required to support 2-step construction (2010-07-02)
            </action>
            <action dev="asomov" type="update" issue="69">
                Serialise Iterator and Iterable as sequences (2010-06-25)
            </action>
            <action dev="asomov" type="update" due-to="maslovalex">
                Change error message when 'No suitable constructor with N arguments found for class' (2010-06-23)
            </action>
            <action dev="asomov" type="add" due-to="Antony Stubbs">
                Add JodaTime example (2010-06-04)
            </action>
            <action dev="asomov" type="add" issue="67" due-to="Manuel Sugawara">
                Add possibility to create a Tag out of an URI (2010-05-31)
            </action>
            <action dev="asomov" type="update">
                URLDecoder.decode() does not fail when UTF-8 is invalid. Use
                CodingErrorAction.REPORT to implement the failure (2010-05-21)
            </action>
            <action dev="maslovalex" type="update">
                Fix generic collections which contain other collections (2010-05-18)
            </action>
            <action dev="asomov" type="fix" issue="67" due-to="Manuel Sugawara">
                Fix: java classes containing non-ASCII characters in names are
                incorrectly encoded (2010-05-14)
            </action>
            <action dev="asomov" type="fix" issue="65" due-to="lerch.johannes">
                Fix: add checks for null arguments for JavaBeanDumper (2010-04-27)
            </action>
            <action dev="asomov" type="add">
                Add a test to see how stack trace is serialised (2010-04-27)
            </action>
            <action dev="asomov" type="fix" issue="64" due-to="maxim.moschko">
                ClassCastException in Representer when working with ParameterizedType (2010-04-25)
            </action>
            <action dev="asomov" type="update">
                Improve toString() method for Node. Since scalars cannot be recursive
                they can be printed (2010-04-15)
            </action>
            <action dev="maslovalex" type="fix" issue="63" due-to="Udo">
                Refactor the way arrays are constructed (2010-04-15)
            </action>
            <action dev="asomov" type="fix" issue="62">
                Add examples for dumping custom values for !!bool and !!null (2010-04-13)
            </action>
            <action dev="asomov" type="fix" issue="61">
                Fix: ClassCastException when dumping generic bean (2010-04-11)
            </action>
            <action dev="asomov" type="fix" issue="59">
                Provide an example for changing JavaBean properties order (2010-04-01)
            </action>
            <action dev="asomov" type="fix" issue="60">
                Provide example for skipping null and empty collections (2010-03-29)
            </action>
            <action dev="asomov" type="fix" issue="58" due-to="jeff.caulfield">
                JavaBeanDumper.dump throws NullPointerException on list property
                with null element (2010-03-23)
            </action>
            <action dev="asomov" type="fix" issue="56" due-to="DZeiss">
                Make constructors in SafeConstructor public (2010-03-16)
            </action>
            <action dev="asomov" type="update" due-to="David Bernard">
                Releases and snapshots are available in the Sonatype Maven repository.
                https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide
            </action>
            <action dev="obastard" type="fix" issue="53" due-to="obastard">
                Enhancement for a pretty format that combines BLOCK and FLOW (2010-03-03)
            </action>
            <action dev="asomov" type="fix" issue="50" due-to="sualeh.fatehi">
                Unable to dump JavaBean that inherits from a protected base class (2010-03-02)
            </action>
            <action dev="asomov" type="update">
                Format source (2010-03-01)
            </action>
            <action dev="asomov" type="update">
                Use Token.ID and Event.ID instead of just ID (2010-03-01)
            </action>
            <action dev="asomov" type="update">
                Issue 50 fails in Eclipse but works with Maven (2010-03-01)
            </action>
        </release>
        <release version="1.6" date="2010-02-26" description="introduce Tag class">
            <action dev="asomov" type="update">
                Release Candidate 2 is available (2010-02-24)
            </action>
            <action dev="asomov" type="fix" issue="47" due-to="obastard">
                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)
            </action>
            <action dev="asomov" type="fix" issue="49" due-to="obastard">
                Support GregorianCalendar. Due to Daylight Saving Time parsing the timestamp with
                a TimeZone cannot determine the exact time (2010-02-19)
            </action>
            <action dev="asomov" type="fix" issue="51" due-to="johann.Werner">
                Some Unicode characters are wrongly replaced by \x{fffd} during
                double quoted style dump (2010-02-15)
            </action>
            <action dev="asomov" type="fix" issue="48" due-to="obastard">
                Introduce representJavaBeanProperty() method in Representer. The method
                can be overridden to simplify custom JavaBean representation (2010-02-12)
            </action>
            <action dev="asomov" type="update">
                Release Candidate 1 is available (2010-02-01)
            </action>
            <action dev="asomov" type="add">
                Representer.representJavaBean() returns MappingNode (2010-01-26)
            </action>
            <action dev="asomov" type="add">
                Add example of serialising static fields  (2010-01-26)
            </action>
            <action dev="asomov" type="add">
                Add example of serialising java.io.File as scalar node for issue 46  (2010-01-25)
            </action>
            <action dev="asomov" type="update">
                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)
            </action>
            <action dev="asomov" type="update">
                Refactor: use Event.ID enum instead of classes (2010-01-15)
            </action>
            <action dev="asomov" type="update">
                Refactor: use Token.ID enum instead of classes (2010-01-15)
            </action>
            <action dev="asomov" type="update">
                Refactor: use generic classes for DirectiveToken (2010-01-14)
            </action>
            <action dev="asomov" type="update">
                Refactor: rename Reader to StreamReader to avoid name conflict with java.io.Reader (2010-01-13)
            </action>
            <action dev="asomov" type="update">
                Refactor: use StringBuilder instead of StringBuffer (2010-01-12)
            </action>
            <action dev="asomov" type="update">
                Refactor: introduce Constant class to share String constants (2010-01-12)
            </action>
            <action dev="asomov" type="update">
                Keep Tag.equals(String) to simplify transition to Tag class (2010-01-08)
            </action>
            <action dev="asomov" type="update">
                Refactor: introduce Tag instead of Tags. Nodes use Tag class instead of String (2010-01-05)
            </action>
            <action dev="asomov" type="fix" issue="42" due-to="Artem">
                BaseConstructor shall give more flexibility to choose a constructor at runtime (2010-01-08)
            </action>
            <action dev="asomov" type="update">
                Refactor: introduce TagTuple instead of String[] (2010-01-04)
            </action>
            <action dev="asomov" type="fix" issue="40" due-to="sitrious">
                Ignore tags when they are compatible with the runtime class (2010-01-04)
            </action>
            <action dev="asomov" type="add">
                Add example to ignore unknown tags (2009-12-08)
            </action>
            <action dev="asomov" type="add">
                Add Ruby example (2009-12-08)
            </action>
            <action dev="asomov" type="update">
                Do not omit the tag for JavaBean properties when the tag is explicitly defined (2009-12-08)
            </action>
            <action dev="asomov" type="fix" issue="38" due-to="gchpaco">
                Fix ID format for numbers over 999 (2009-12-05)
            </action>
            <action dev="asomov" type="fix" issue="29" due-to="grignaak">
                Allow separate option in DumperOptions for long strings (2009-11-16)
            </action>
            <action dev="asomov" type="add">
                JavaBeanDumper: add possibility to define a custom Representer (2009-11-25)
            </action>
            <action dev="asomov" type="fix" issue="36">
                Introduce multi contructors (tag prefix). A family of tags may be processed
                by a single constructor (2009-11-25)
            </action>
            <action dev="asomov" type="update">
                Refactor BaseConstructor: simplify second step for recursive structures (2009-11-25)
            </action>
            <action dev="asomov" type="add">
                Add FilterPropertyToDumpTest to show how to filter JavaBean properties (2009-11-24)
            </action>
            <action dev="asomov" type="add">
                Add FilterClassesConstructorTest to show how to filter created classes (2009-11-16)
            </action>
            <action dev="asomov" type="update" due-to="Stefan">
                Improve JavaDoc (2009-11-12)
            </action>
            <action dev="asomov" type="add">
                Add Velocity example (2009-11-03)
            </action>
            <action dev="asomov" type="update">
                Refactor: rename Tuple to RecursiveTuple and hide it inside BaseConstructor (2009-11-03)
            </action>
        </release>
        <release version="1.5" date="2009-10-30" description="Improve usage of generic collections in JavaBeans">
            <action dev="asomov" type="fix" issue="27" due-to="Polyglot Maven team">
                Extend Resolver to support custom implicit types (2009-10-27)
            </action>
            <action dev="asomov" type="update">
                Performance improvement: use ArrayStack instead of Stack which extends Vector (2009-10-20)
            </action>
            <action dev="asomov" type="fix" issue="25" due-to="Benjamin Bentmann">
                Improve usage of generic collections: while type erase makes no difference between
                Class&lt; Foo&gt; and Class&lt; Bar&gt; at runtime, the information about generics is still
                accessible via reflection from Method/Field. (2009-10-19)
            </action>
            <action dev="asomov" type="update">
                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)
            </action>
            <action dev="asomov" type="update">
                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)
            </action>
            <action dev="asomov" type="fix" issue="24" due-to="shrode">
                Line numbers reported in Exceptions are Zero based, should be 1 based (2009-10-12)
            </action>
            <action dev="asomov" type="fix" issue="21" due-to="ashwin.jayaprakash">
                Support arrays of reference types as JavaBean properties (2009-09-22)
            </action>
            <action dev="asomov" type="fix" issue="17" due-to="jcucurull">
                Respect root tag for sequences (2009-09-04)
            </action>
            <action dev="asomov" type="fix" issue="18" due-to="creiniger">
                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)
            </action>
            <action dev="asomov" type="add">
                Add possibility to define a custom Class Loader. (2009-09-01)
            </action>
            <action dev="asomov" type="fix">
                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)
            </action>
            <action dev="asomov" type="fix" issue="16" due-to="infinity0x">
                Cache JavaBean class properties. Tests show that the loading has become a few percents faster (2009-08-31)
            </action>
            <action dev="asomov" type="add">
                Introduce ArrayStack to use push() and pop() instead of standard (and too verbose)
                'remove(size()-1)'  (2009-08-27)
            </action>
            <action dev="asomov" type="fix" issue="14" due-to="infinity0x">
                Fix: ArrayList is more efficient than LinkedList  (2009-08-26)
            </action>
        </release>
        <release version="1.4" date="2009-08-26" description="better support for loading immutable objects">
            <action dev="asomov" type="update">
                Apply Apache License Version 2.0 (2009-08-14)
            </action>
            <action dev="asomov" type="fix" issue="13" due-to="infinity0x">
                Provide javadocs link to Sun Java API (2009-08-10)
            </action>
            <action dev="asomov" type="add">
                Build 1.4 Release Candidate 1 (2009-08-07)
            </action>
            <action dev="asomov" type="add">
                Introduce Tags.getGlobalTagForClass() to simplify tag generation in custom constructors (2009-08-06)
            </action>
            <action dev="asomov" type="update">
                Refactor: introduce ImplicitTuple (2009-08-06)
            </action>
            <action dev="asomov" type="fix" issue="11" due-to="infinity0x">
                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)
            </action>
            <action dev="asomov" type="fix" issue="9" due-to="wwagner4">
                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)
            </action>
            <action dev="asomov" type="add">
                Deliver possibility to load immutable instances with no global tags. Reflection for
                constructor arguments is used to get the runtime classes (2009-08-04)
            </action>
            <action dev="asomov" type="update">
                Use more informative error message when a JavaBean property cannot
                be created (2009-08-02)
            </action>
            <action dev="asomov" type="update">
                Refactor: Constructor is rewritten. Do not overwrite methods from BaseConstructor.
                Instead introduce ConstructScalar, ConstructSequence, ConstructMapping (2009-07-31)
            </action>
            <action dev="asomov" type="update">
                Change Maven repository path: groupId='org.yaml', artifactId='snakeyaml' (2009-07-31)
            </action>
            <action dev="asomov" type="fix" issue="10" due-to="derrick.rice">
                Fix: dump omits JavaBean class name when used with an alias (2009-07-28)
            </action>
            <action dev="asomov" type="add">
                Generate sources and Javadoc (2009-07-27)
            </action>
            <action dev="asomov" type="update">
                Node does not have the value. It is delegated to the non-abstract classes (2009-07-27)
            </action>
            <action dev="asomov" type="add">
                Extends JavaBeanDumper to allow skipping global tags inside type-safe collections.
                Introduce method setMapTagForBean() (2009-07-22)
            </action>
            <action dev="asomov" type="add">
                Add ConstructEmptyBeanTest to test JavaBean construction with no
                properties in the YAML document(2009-07-22)
            </action>
            <action dev="asomov" type="remove">
                Refactor: redesign tag management for JavaBeans in Representer.
                Drop dynamic root tag concept (2009-07-22)
            </action>
            <action dev="asomov" type="remove">
                Remove unused TypeDescription in Representer (2009-07-21)
            </action>
            <action dev="asomov" type="update">
                Use NodeTuple instead of Node[] for mappings (2009-07-21)
            </action>
            <action dev="asomov" type="add">
                Introduce JavaBeanLoader and JavaBeanDumper. Deprecate JavaBeanParser (2009-07-21)
            </action>
            <action dev="asomov" type="fix" issue="8" due-to="Alan Gutierrez">
                Fix: Representer was keeping state between invocations (2009-07-21)
            </action>
        </release>
        <release version="1.3" date="2009-07-20" description="complete support for recursive objects">
            <action dev="asomov" type="fix" issue="6" due-to="infinity0x">
                Fix: values returned by System.identityHashCode() are not guaranteed to be unique (2009-07-14)
            </action>
            <action dev="asomov" type="add">
                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)
            </action>
            <action dev="asomov" type="fix" issue="5" due-to="infinity0x">
                Fix: set the "cause" field for MarkedYAMLException (2009-07-10)
            </action>
            <action dev="maslovalex" type="fix" issue="1">
                Fix: Recursive objects are now fully supported (2009-07-09)
            </action>
            <action dev="asomov" type="add">
                Add support for BigDecimal as a JavaBean property (2009-07-07)
            </action>
            <action dev="asomov" type="update">
                Improve test coverage for Constructor. Allow construction of JavaBeans
                with only setter without the corresponding getter (2009-07-07)
            </action>
            <action dev="asomov" type="add">
                Add a test to check the proper report for IOException (2009-07-03)
            </action>
            <action dev="asomov" type="fix" issue="3" due-to="infinity0x">
                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)
            </action>
            <action dev="asomov" type="update">
                Refactor: run PMD and apply some of the recommendations (2009-06-18)
            </action>
            <action dev="asomov" type="add" issue="1">
                Create an issue for Recursive objects to be remembered (2009-06-08)
            </action>
            <action dev="asomov" type="update">
                Migrate project hosting from Assembla to Google code (2009-06-08)
            </action>
            <action dev="asomov" type="fix" due-to="Magne">
                Fix: null as a JavaBean property was not handled properly (2009-06-04)
            </action>
            <action dev="asomov" type="update">
                Validate changes.xml file (2009-05-25)
            </action>
            <action dev="asomov" type="fix" due-to="Magne">
                Fix ticket 40 in Assembla: getting an error when javabean contains java.sql.Timestamp fields (2009-05-25)
            </action>
        </release>
        <release version="1.2" date="2009-04-27" description="expose low-level API">
            <action dev="asomov" type="add">
                Add 'Yaml.parse()' method which return Events to support low level YAML processing (2009-04-20)
            </action>
            <action dev="asomov" type="add" due-to="Bob Jalex">
                Introduce LineBreak.getPlatformLineBreak (ticket 5 in Assembla) (2009-04-18)
            </action>
            <action dev="asomov" type="update" due-to="Bob Jalex">
                 Rename LineBreak.LINUX to LineBreak.UNIX (ticket 5 in Assembla) (2009-04-18)
            </action>
            <action dev="asomov" type="add">
                Add 'Yaml.compose()' methods which return Nodes to support YEdit (2009-04-17)
            </action>
            <action dev="asomov" type="update">
                Refactor: rename enums in DumperOptions to make the names consistent (2009-04-07)
            </action>
            <action dev="asomov" type="update">
                Refactor: use Character instead of char primitive for style in Emitter (2009-04-07)
            </action>
            <action dev="asomov" type="add">
                Add possibility to parse all scalars as Strings (2009-03-30)
            </action>
            <action dev="asomov" type="update">
                Merge changeset 347 from PyYAML (2009-03-30)
            </action>
            <action dev="asomov" type="fix">
                Respect DumperOptions with a custom Representer (2009-03-18)
            </action>
            <action dev="asomov" type="fix">
                Represent TAB as '\t' instead of '(9' in the error message (2009-03-17)
            </action>
        </release>
        <release version="1.1" date="2009-03-14" description="improve performance and test coverage">
            <action dev="asomov" type="add">
                Introduce JavaBeanParser (2009-03-14)
            </action>
            <action dev="asomov" type="add">
                Introduce DumperOptions.Version enum (2009-03-13)
            </action>
            <action dev="asomov" type="add">
                Introduce DumperOptions.LineBreak enum (2009-03-10)
            </action>
            <action dev="asomov" type="update">
                Use byte[] for binary type. (2009-03-09)
            </action>
            <action dev="asomov" type="update">
                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)
            </action>
            <action dev="asomov" type="add">
                Better Spring support: it is now possible to create a constructor with a String
                as the class name. (2009-03-05)
            </action>
            <action dev="asomov" type="update">
                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)
            </action>
            <action dev="asomov" type="add">
                Add possibility to set a meaningful name for Yaml instance to be shown in toString(). (2009-03-05)
            </action>
            <action dev="asomov" type="update">
                Refactor: declare classes which are not expected to be extended as final. (2009-03-04)
            </action>
            <action dev="asomov" type="update">
                Refactor: use 'final' keyword to identify immutable fields. (2009-03-04)
            </action>
            <action dev="asomov" type="update">
                Refactor: do not use 'final' keyword for local variables. (2009-03-04)
            </action>
            <action dev="asomov" type="fix">
                Fix: respect implicit resolvers with 'null' as a first character. (2009-03-02)
            </action>
            <action dev="asomov" type="update">
                Refactor: use Character instead of String as a key for implicit resolvers. (2009-03-02)
            </action>
            <action dev="asomov" type="add">
                Use Ragel instead of Regular Expressions for implicit types. (2009-03-02)
            </action>
            <action dev="asomov" type="fix" due-to="Christophe Desguez">
                Fix ticket #4 (in Assembla): java.sql.Date not handled. (2009-02-28)
            </action>
             <action dev="asomov" type="add">
                Introduce DumperOptions.DefaultFlowStyle enum (2009-02-24)
            </action>
            <action dev="asomov" type="add">
                Introduce DumperOptions.DefaultScalarStyle enum (2009-02-24)
            </action>
            <action dev="asomov" type="update">
                Refactor: use 'switch' with Enum instead of multiple 'if' statements to distinguish nodes (2009-02-19)
            </action>
            <action dev="asomov" type="update">
                Refactor: use Enum instead of String as NodeId (2009-02-19)
            </action>
        </release>
        <release version="1.0.1" date="2009-02-18" description="implement Enum support">
            <action dev="asomov" type="fix">
                Do not emit anchors for Enum (2009-02-18)
            </action>
            <action dev="asomov" type="fix">
                Enum as a JavaBean property (when the Enum class is implicitly defined) does
                not need tags for both loading and dumping (2009-02-17)
            </action>
            <action dev="asomov" type="fix">
                Enum is emitted as a scalar node (2009-02-17)
            </action>
            <action dev="asomov" type="fix" due-to="James Nissel">
                Enum is parsed as a scalar node or as a JavaBean property (2009-02-17)
            </action>
            <action dev="asomov" type="update">
                Refactor: for performance ScannerImpl.stalePossibleSimpleKeys() does not copy key Set (2009-02-10)
            </action>
            <action dev="asomov" type="update">
                By default allowUnicode=true. If it is necessary to escape Unicode use
                DumperOptions.setAllowUnicode(false) (2009-02-09)
            </action>
            <action dev="asomov" type="add">
                Implement allowUnicode setting (to escape Unicode characters on non UTF-8 terminals) (2009-02-09)
            </action>
            <action dev="asomov" type="add">
                Add possibility to specify tags for dumping (2009-02-09)
            </action>
            <action dev="asomov" type="update">
                Rename getExpRoot to getExplicitRoot to conform with
                standard JavaBean naming convention (2009-02-09)
            </action>
            <action dev="asomov" type="update">
                Rename explictStart and explicitEnd to standard setters to conform with
                standard JavaBean naming convention (2009-02-09)
            </action>
            <action dev="asomov" type="fix">
                Add possibility to specify a line break (2009-02-09)
            </action>
        </release>
        <release version="1.0" date="2009-02-06" description="final 1.0 release">
            <action dev="asomov" type="add">
                Deliver first release (2009-02-06)
            </action>
        </release>
    </body>
</document>
