<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="py4fun@gmail.com">Andrey Somov</author>
	</properties>
	<body>
          <release version="1.8-SNAPSHOT" date="in Mercurial" description="Performance improvement">
            <action dev="py4fun" 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="py4fun" 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="py4fun" type="update" issue="94">
                Add ChangeRuntimeClassTest as an example how to change a class for a global tag (2010-11-05)
            </action>
            <action dev="py4fun" type="update">
                Inner objects in Constructor become protected to be more flexible when Constructor
                is expended (2010-10-03)
            </action>
            <action dev="py4fun" type="update" issue="91">
                Apply www.snakeyaml.org domain name (2010-09-20)
            </action>
            <action dev="py4fun" 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="py4fun" type="fix" issue="69">
                Iterable should not be serialised as sequence (2010-09-16)
            </action>
            <action dev="py4fun" type="update">
                Introduce 'fast' Maven profile to quickly build cobertura reports (2010-09-16)
            </action>
            <action dev="py4fun" 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="py4fun" 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="py4fun" type="update" issue="79">
                Introduce LoaderOptions to be able to specify configuration while loading (2010-09-03)
            </action>
            <action dev="py4fun" 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="py4fun" type="update">
                Rename JvmDetector into GenericsBugDetector (2010-08-31)
            </action>
            <action dev="py4fun" 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="py4fun" 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="py4fun" 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="py4fun" type="update">
                Create 1.7 Release Candidate 1 (2010-08-11)
            </action>
            <action dev="py4fun" type="update" issue="77">
                Simplify public API: Drop Dumper (2010-08-06)
            </action>
            <action dev="py4fun" type="update" issue="77">
                Simplify public API: Drop Loader (2010-08-05)
            </action>
            <action dev="py4fun" 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="py4fun" 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="py4fun" type="update">
                RecursiveSetTest proves that it is possible to construct a recursive set (2010-07-20)
            </action>
            <action dev="py4fun" 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="py4fun" 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="py4fun" type="update" issue="69">
                Serialise Iterator and Iterable as sequences (2010-06-25)
            </action>
            <action dev="py4fun" type="update" due-to="maslovalex">
                Change error message when 'No suitable constructor with N arguments found for class' (2010-06-23)
            </action>
            <action dev="py4fun" type="add" due-to="Antony Stubbs">
                Add JodaTime example (2010-06-04)
            </action>
            <action dev="py4fun" type="add" issue="67" due-to="Manuel Sugawara">
                Add possibility to create a Tag out of an URI (2010-05-31)
            </action>
            <action dev="py4fun" 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="py4fun" 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="py4fun" type="fix" issue="65" due-to="lerch.johannes">
                Fix: add checks for null arguments for JavaBeanDumper (2010-04-27)
            </action>
		    <action dev="py4fun" type="add">
                Add a test to see how stack trace is serialised (2010-04-27)
            </action>
            <action dev="py4fun" type="fix" issue="64" due-to="maxim.moschko">
                ClassCastException in Representer when working with ParameterizedType (2010-04-25)
            </action>
	        <action dev="py4fun" 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="py4fun" type="fix" issue="62">
                Add examples for dumping custom values for !!bool and !!null (2010-04-13)
            </action>
            <action dev="py4fun" type="fix" issue="61">
                Fix: ClassCastException when dumping generic bean (2010-04-11)
            </action>
            <action dev="py4fun" type="fix" issue="59">
                Provide an example for changing JavaBean properties order (2010-04-01)
            </action>
            <action dev="py4fun" type="fix" issue="60">
                Provide example for skipping null and empty collections (2010-03-29)
            </action>
            <action dev="py4fun" type="fix" issue="58" due-to="jeff.caulfield">
                JavaBeanDumper.dump throws NullPointerException on list property 
                with null element (2010-03-23)
            </action>
            <action dev="py4fun" type="fix" issue="56" due-to="DZeiss">
                Make constructors in SafeConstructor public (2010-03-16)
            </action>
            <action dev="py4fun" 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="py4fun" 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="py4fun" type="update">
                Format source (2010-03-01)
            </action>
            <action dev="py4fun" type="update">
                Use Token.ID and Event.ID instead of just ID (2010-03-01)
            </action>
            <action dev="py4fun" 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="py4fun" type="update">
                Release Candidate 2 is available (2010-02-24)
            </action>
	        <action dev="py4fun" 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="py4fun" 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="py4fun" 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="py4fun" 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="py4fun" type="update">
                Release Candidate 1 is available (2010-02-01)
            </action>
            <action dev="py4fun" type="add">
                Representer.representJavaBean() returns MappingNode (2010-01-26)
            </action>
            <action dev="py4fun" type="add">
                Add example of serialising static fields  (2010-01-26)
            </action>
            <action dev="py4fun" type="add">
                Add example of serialising java.io.File as scalar node for issue 46  (2010-01-25)
            </action>
            <action dev="py4fun" 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="py4fun" type="update">
                Refactor: use Event.ID enum instead of classes (2010-01-15)
            </action>
            <action dev="py4fun" type="update">
                Refactor: use Token.ID enum instead of classes (2010-01-15)
            </action>
            <action dev="py4fun" type="update">
                Refactor: use generic classes for DirectiveToken (2010-01-14)
            </action>
            <action dev="py4fun" type="update">
                Refactor: rename Reader to StreamReader to avoid name conflict with java.io.Reader (2010-01-13)
            </action>
            <action dev="py4fun" type="update">
                Refactor: use StringBuilder instead of StringBuffer (2010-01-12)
            </action>
            <action dev="py4fun" type="update">
                Refactor: introduce Constant class to share String constants (2010-01-12)
            </action>
            <action dev="py4fun" type="update">
                Keep Tag.equals(String) to simplify transition to Tag class (2010-01-08)
            </action>
            <action dev="py4fun" type="update">
                Refactor: introduce Tag instead of Tags. Nodes use Tag class instead of String (2010-01-05)
            </action>
            <action dev="py4fun" type="fix" issue="42" due-to="Artem">
                BaseConstructor shall give more flexibility to choose a constructor at runtime (2010-01-08)
            </action>
            <action dev="py4fun" type="update">
                Refactor: introduce TagTuple instead of String[] (2010-01-04)
            </action>
	    	<action dev="py4fun" type="fix" issue="40" due-to="sitrious">
                Ignore tags when they are compatible with the runtime class (2010-01-04)
            </action>
            <action dev="py4fun" type="add">
                Add example to ignore unknown tags (2009-12-08)
            </action>
            <action dev="py4fun" type="add">
                Add Ruby example (2009-12-08)
            </action>
            <action dev="py4fun" type="update">
                Do not omit the tag for JavaBean properties when the tag is explicitly defined (2009-12-08)
            </action>
            <action dev="py4fun" type="fix" issue="38" due-to="gchpaco">
                Fix ID format for numbers over 999 (2009-12-05)
            </action>
            <action dev="py4fun" type="fix" issue="29" due-to="grignaak">
                Allow separate option in DumperOptions for long strings (2009-11-16)
            </action>
            <action dev="py4fun" type="add">
                JavaBeanDumper: add possibility to define a custom Representer (2009-11-25)
            </action>
            <action dev="py4fun" 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="py4fun" type="update">
                Refactor BaseConstructor: simplify second step for recursive structures (2009-11-25)
            </action>
            <action dev="py4fun" type="add">
                Add FilterPropertyToDumpTest to show how to filter JavaBean properties (2009-11-24)
            </action>
            <action dev="py4fun" type="add">
                Add FilterClassesConstructorTest to show how to filter created classes (2009-11-16)
            </action>
            <action dev="py4fun" type="update" due-to="Stefan">
                Improve JavaDoc (2009-11-12)
            </action>
            <action dev="py4fun" type="add">
                Add Velocity example (2009-11-03)
            </action>
            <action dev="py4fun" 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="py4fun" type="fix" issue="27" due-to="Polyglot Maven team">
                Extend Resolver to support custom implicit types (2009-10-27)
            </action>
            <action dev="py4fun" type="update">
                Performance improvement: use ArrayStack instead of Stack which extends Vector (2009-10-20)
            </action>
            <action dev="py4fun" 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="py4fun" 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="py4fun" 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="py4fun" 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="py4fun" type="fix" issue="21" due-to="ashwin.jayaprakash">
                Support arrays of reference types as JavaBean properties (2009-09-22)
            </action>
            <action dev="py4fun" type="fix" issue="17" due-to="jcucurull">
                Respect root tag for sequences (2009-09-04)
            </action>
            <action dev="py4fun" 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="py4fun" type="add">
                Add possibility to define a custom Class Loader. (2009-09-01)
            </action>
            <action dev="py4fun" 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="py4fun" 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="py4fun" type="add">
                Introduce ArrayStack to use push() and pop() instead of standard (and too verbose) 
                'remove(size()-1)'  (2009-08-27)
            </action>
            <action dev="py4fun" 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="py4fun" type="update">
                Apply Apache License Version 2.0 (2009-08-14)
            </action>
            <action dev="py4fun" type="fix" issue="13" due-to="infinity0x">
                Provide javadocs link to Sun Java API (2009-08-10)
            </action>
            <action dev="py4fun" type="add">
                Build 1.4 Release Candidate 1 (2009-08-07)
            </action>
            <action dev="py4fun" type="add">
                Introduce Tags.getGlobalTagForClass() to simplify tag generation in custom constructors (2009-08-06)
            </action>
            <action dev="py4fun" type="update">
                Refactor: introduce ImplicitTuple (2009-08-06)
            </action>
            <action dev="py4fun" 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="py4fun" 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="py4fun" 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="py4fun" type="update">
                Use more informative error message when a JavaBean property cannot
                be created (2009-08-02)
            </action>
            <action dev="py4fun" type="update">
                Refactor: Constructor is rewritten. Do not overwrite methods from BaseConstructor. 
                Instead introduce ConstructScalar, ConstructSequence, ConstructMapping (2009-07-31)
            </action>
            <action dev="py4fun" type="update">
                Change Maven repository path: groupId='org.yaml', artifactId='snakeyaml' (2009-07-31)
            </action>
            <action dev="py4fun" 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="py4fun" type="add">
                Generate sources and Javadoc (2009-07-27)
            </action>
            <action dev="py4fun" type="update">
                Node does not have the value. It is delegated to the non-abstract classes (2009-07-27)
            </action>
            <action dev="py4fun" type="add">
                Extends JavaBeanDumper to allow skipping global tags inside type-safe collections.
                Introduce method setMapTagForBean() (2009-07-22)
            </action>
            <action dev="py4fun" type="add">
                Add ConstructEmptyBeanTest to test JavaBean construction with no 
                properties in the YAML document(2009-07-22)
            </action>
            <action dev="py4fun" type="remove">
                Refactor: redesign tag management for JavaBeans in Representer. 
                Drop dynamic root tag concept (2009-07-22)
            </action>
            <action dev="py4fun" type="remove">
                Remove unused TypeDescription in Representer (2009-07-21)
            </action>
            <action dev="py4fun" type="update">
                Use NodeTuple instead of Node[] for mappings (2009-07-21)
            </action>
            <action dev="py4fun" type="add">
                Introduce JavaBeanLoader and JavaBeanDumper. Deprecate JavaBeanParser (2009-07-21)
            </action>
            <action dev="py4fun" 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="py4fun" 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="py4fun" 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="py4fun" 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="py4fun" type="add">
                Add support for BigDecimal as a JavaBean property (2009-07-07)
            </action>
            <action dev="py4fun" type="update">
                Improve test coverage for Constructor. Allow construction of JavaBeans
                with only setter without the corresponding getter (2009-07-07)
            </action>
            <action dev="py4fun" type="add">
                Add a test to check the proper report for IOException (2009-07-03)
            </action>
            <action dev="py4fun" 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="py4fun" type="update">
                Refactor: run PMD and apply some of the recommendations (2009-06-18)
            </action>
            <action dev="py4fun" type="add" issue="1">
                Create an issue for Recursive objects to be remembered (2009-06-08)
            </action>
            <action dev="py4fun" type="update">
                Migrate project hosting from Assembla to Google code (2009-06-08)
            </action>
            <action dev="py4fun" type="fix" due-to="Magne">
                Fix: null as a JavaBean property was not handled properly (2009-06-04)
            </action>
            <action dev="py4fun" type="update">
                Validate changes.xml file (2009-05-25)
            </action>
            <action dev="py4fun" 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="py4fun" type="add">
                Add 'Yaml.parse()' method which return Events to support low level YAML processing (2009-04-20)
            </action>
            <action dev="py4fun" type="add" due-to="Bob Jalex">
                Introduce LineBreak.getPlatformLineBreak (ticket 5 in Assembla) (2009-04-18)
            </action>
            <action dev="py4fun" type="update" due-to="Bob Jalex">
                 Rename LineBreak.LINUX to LineBreak.UNIX (ticket 5 in Assembla) (2009-04-18)
            </action>
            <action dev="py4fun" type="add">
                Add 'Yaml.compose()' methods which return Nodes to support YEdit (2009-04-17)
            </action>
            <action dev="py4fun" type="update">
                Refactor: rename enums in DumperOptions to make the names consistent (2009-04-07)
            </action>
            <action dev="py4fun" type="update">
                Refactor: use Character instead of char primitive for style in Emitter (2009-04-07)
            </action>
            <action dev="py4fun" type="add">
                Add possibility to parse all scalars as Strings (2009-03-30)
            </action>
            <action dev="py4fun" type="update">
                Merge changeset 347 from PyYAML (2009-03-30)
            </action>
            <action dev="py4fun" type="fix">
                Respect DumperOptions with a custom Representer (2009-03-18)
            </action>
            <action dev="py4fun" 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="py4fun" type="add">
                Introduce JavaBeanParser (2009-03-14)
            </action>
            <action dev="py4fun" type="add">
                Introduce DumperOptions.Version enum (2009-03-13)
            </action>
            <action dev="py4fun" type="add">
                Introduce DumperOptions.LineBreak enum (2009-03-10)
            </action>
            <action dev="py4fun" type="update">
                Use byte[] for binary type. (2009-03-09)
            </action>
            <action dev="py4fun" 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="py4fun" 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="py4fun" 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="py4fun" type="add">
                Add possibility to set a meaningful name for Yaml instance to be shown in toString(). (2009-03-05)
            </action>
            <action dev="py4fun" type="update">
                Refactor: declare classes which are not expected to be extended as final. (2009-03-04)
            </action>
            <action dev="py4fun" type="update">
                Refactor: use 'final' keyword to identify immutable fields. (2009-03-04)
            </action>
            <action dev="py4fun" type="update">
                Refactor: do not use 'final' keyword for local variables. (2009-03-04)
            </action>
            <action dev="py4fun" type="fix">
                Fix: respect implicit resolvers with 'null' as a first character. (2009-03-02)
            </action>
            <action dev="py4fun" type="update">
                Refactor: use Character instead of String as a key for implicit resolvers. (2009-03-02)
            </action>
            <action dev="py4fun" type="add">
                Use Ragel instead of Regular Expressions for implicit types. (2009-03-02)
            </action>
            <action dev="py4fun" type="fix" due-to="Christophe Desguez">
                Fix ticket #4 (in Assembla): java.sql.Date not handled. (2009-02-28)
            </action>
             <action dev="py4fun" type="add">
                Introduce DumperOptions.DefaultFlowStyle enum (2009-02-24)
            </action>
            <action dev="py4fun" type="add">
                Introduce DumperOptions.DefaultScalarStyle enum (2009-02-24)
            </action>
            <action dev="py4fun" type="update">
                Refactor: use 'switch' with Enum instead of multiple 'if' statements to distinguish nodes (2009-02-19)
            </action>
            <action dev="py4fun" 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="py4fun" type="fix">
                Do not emit anchors for Enum (2009-02-18)
            </action>
            <action dev="py4fun" 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="py4fun" type="fix">
                Enum is emitted as a scalar node (2009-02-17)
            </action>
            <action dev="py4fun" type="fix" due-to="James Nissel">
                Enum is parsed as a scalar node or as a JavaBean property (2009-02-17)
            </action>
            <action dev="py4fun" type="update">
                Refactor: for performance ScannerImpl.stalePossibleSimpleKeys() does not copy key Set (2009-02-10)
            </action>
            <action dev="py4fun" type="update">
                By default allowUnicode=true. If it is necessary to escape Unicode use 
                DumperOptions.setAllowUnicode(false) (2009-02-09)
            </action>
            <action dev="py4fun" type="add">
                Implement allowUnicode setting (to escape Unicode characters on non UTF-8 terminals) (2009-02-09)
            </action>
            <action dev="py4fun" type="add">
                Add possibility to specify tags for dumping (2009-02-09)
            </action>
            <action dev="py4fun" type="update">
                Rename getExpRoot to getExplicitRoot to conform with 
                standard JavaBean naming convention (2009-02-09)
            </action>
            <action dev="py4fun" type="update">
                Rename explictStart and explicitEnd to standard setters to conform with 
                standard JavaBean naming convention (2009-02-09)
            </action>
            <action dev="py4fun" 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="py4fun" type="fix">
                Use LinkedHashMap for Emitter.tagPrefixes to respect the order (2009-02-06)
            </action>
            <action dev="py4fun" type="fix">
                Use LinkedHashMap for ScannerImpl.possibleSimpleKeys to respect the key order (2009-02-05)
            </action>
            <action dev="py4fun" type="add">
                Add a test to prove that Yaml instances are independent and can safely be used in 
                multithreaded environment like for instance a Servlet container (2009-02-05)
            </action>
            <action dev="py4fun" type="update">
                The mailing list is renamed to snakeyaml-core to avoid a 
                name conflict in Google AppEngine (2009-02-03)
            </action>
        </release>
        <release version="1.0rc2" date="2008-01-22" description="Improve JavaBeans support">
            <action dev="py4fun" type="add">
                Provide possibility to define/eliminate the root tag for JavaBeans. Avoiding global tags
                helps to exchange YAML documents with other programming languages (2009-01-21)
            </action>
            <action dev="py4fun" type="fix">
                Arrays as JavaBens properties are properly supported (2009-01-21)
            </action>
            <action dev="py4fun" type="update">
                Do not emit redundant tags for JavaBeans (2009-01-20)
            </action>
            <action dev="py4fun" type="add">
                Respect public fields in JavaBeans (2009-01-20)
            </action>
        </release>
        <release version="1.0rc1" date="2009-01-16" description="Construct type safe collections">
            <action dev="py4fun" type="update">
                Replace String.getBytes(Charset charset) with String.getBytes(String charsetName) because 
                String.getBytes(Charset charset) was introduced only in Java 6 (2009-01-16)
            </action>
            <action dev="py4fun" type="update">
                Replace LinkedList.pop() with removeFirst() because pop() was
                introduced only in Java 6 (2009-01-16)
            </action>
            <action dev="py4fun" type="update">
                Replace LinkedList.push() with addFirst() because push() was
                introduced only in Java 6 (2009-01-16)
            </action>
            <action dev="py4fun" type="add">
                Implement type safe Map as a property of custom Java class (2009-01-16)
            </action>
            <action dev="py4fun" type="add">
                Implement type safe List as a property of custom Java class (2009-01-15)
            </action>
            <action dev="py4fun" type="update">
                Construct interface does not use generics. The type information is set
                to the Node (2009-01-15)
            </action>
            <action dev="py4fun" type="add">
                Introduce TypeDescription as a single configuration option for a custom class (2009-01-15)
            </action>
        </release>
        <release version="0.91" date="2008-01-14" description="Support shortcut tags for custom classes">
            <action dev="py4fun" type="add">
                Add possibility to define shortcut tags for custom classes while loading (2009-01-13)
            </action>
            <action dev="py4fun" type="add">
                Add possibility to define shortcut tags for custom classes while dumping (2009-01-13)
            </action>
            <action dev="py4fun" type="add">
                Construct List as a JavaBean property. But due to erasure only standard Java
                classes created (2009-01-13)
            </action>
            <action dev="py4fun" type="add">
                Import PyStructureTest from PyYAML (2009-01-13)
            </action>
            <action dev="py4fun" type="add">
                Import canonical scanner and parser from PyYAML (2009-01-12)
            </action>
        </release>
        <release version="0.9" date="2008-01-12" description="Add possibility to define a root class for Loader">
            <action dev="py4fun" type="add">
                Finish 2.27 example from the specification (2009-01-12)
            </action>
            <action dev="py4fun" type="add">
                Add possibility to define a root class for Loader (2009-01-11)
            </action>
            <action dev="py4fun" type="update">
                Use Java Generics in the Construct interface (2009-01-11)
            </action>
            <action dev="py4fun" type="update">
                Use Java Generics in the Scanner interface (2009-01-08)
            </action>
            <action dev="py4fun" type="update">
                Create ScannerIml only in ParserImpl (2009-01-08)
            </action>
            <action dev="py4fun" type="fix">
                Import changeset 312 from PyYAML. Fix a bug in Emitter when writing folded scalars (2009-01-07)
            </action>
        </release>
        <release version="0.8" date="2009-01-07" description="Import changes from PyYAML 3.08">
            <action dev="py4fun" type="add">
                Add possibility to use java.io.Reader as input. BOM must be respected. (2009-01-06)
            </action>
            <action dev="py4fun" type="update">
                Import Changeset 308 from PyYAML: Refactored whitespace combination 
                detector in the scalar analyser. (2009-01-06)
            </action>
            <action dev="py4fun" type="update">
                Import Changeset 313 from PyYAML: Emit an explicit document end indicator 
                when there is a possibility of ambiguous parsing. (2009-01-06)
            </action>
            <action dev="py4fun" type="update">
                Use global tags (with !!) to dump Java custom instances. (2009-01-05)
            </action>
            <action dev="py4fun" type="update">
                Use global tags (with !!) to load Java custom instances. (2009-01-05)
            </action>
            <action dev="py4fun" type="add">
                Add example of defining a custom List and Map implementations. (2009-01-04)
            </action>
            <action dev="py4fun" type="fix">
                Fix parsing Long.MIN_VALUE: respect the sign when parsing integers. (2009-01-04)
            </action>
            <action dev="py4fun" type="update">
                when constructing integers try to create the first in the following order: 
                Integer -> Long -> BigInteger. (2009-01-02)
            </action>
        </release>
        <release version="0.7" date="2008-12-20" description="Improve test coverage">
            <action dev="py4fun" type="update">
                Improve test coverage for constructor package (2008-12-20)
            </action>
            <action dev="py4fun" type="remove">
                Remove support for "value" type because it is not used (2008-12-20)
            </action>
             <action dev="py4fun" type="update">
                Require test coverage 95% (2008-12-19)
            </action>
            <action dev="py4fun" type="update">
                Improve test coverage for Nodes (2008-12-19)
            </action>
            <action dev="py4fun" type="fix">
                Fix dumping Date and better coverage for Representer (2008-12-19)
            </action>
            <action dev="py4fun" type="remove">
                Remove unused code based on coverage report (2008-12-19)
            </action>
            <action dev="py4fun" type="remove">
                Tokens are 100% covered by tests (2008-12-19)
            </action>
            <action dev="py4fun" type="remove">
                Remove old tests (2008-12-18)
            </action>
            <action dev="py4fun" type="update">
                Synchronized with PyYAML revision 307
            </action>
        </release>
        <release version="0.6" date="2008-12-17" description="Documentation added">
            <action dev="py4fun" type="add">
                Many examples added to the Wiki page  (2008-12-17)
            </action>
            <action dev="py4fun" type="update">
                Public interface is using Iterator instead of Iterable (2008-12-17)
            </action>
            <action dev="py4fun" type="update">
                Sort names when JavaBeans are represented (2008-12-15)
            </action>
            <action dev="py4fun" type="fix">
                defaultFlowStyle for Dumper is configurable in DumperOptions (2008-12-12)
            </action>
        </release>
        <release version="0.5" date="2008-12-12" description="Import PyYAML 3.06">
            <action dev="py4fun" type="add">
                Add possibility to define an implicit resolver. {359:63190d5bcd10} (2008-12-11)
            </action>
            <action dev="py4fun" type="add">
                Add possibility to define an explicit constructor. {356:ccaa0df9ca98} (2008-12-11)
            </action>
            <action dev="py4fun" type="update">
                Java objects can be constructed from mapping (JavaBeans), from sequence (constructor)
                from scalar (constructor). (2008-12-10)
            </action>
            <action dev="py4fun" type="fix">
                pairs tag works properly. (2008-12-08)
            </action>
            <action dev="py4fun" type="fix">
                omap tag works properly. (2008-12-08)
            </action>
            <action dev="py4fun" type="add">
                Implement possibility to define a custom Map implementation {332}. (2008-12-06)
            </action>
            <action dev="py4fun" type="add">
                Implement possibility to define a custom List implementation {331:72c03254c184}. (2008-12-06)
            </action>
            <action dev="py4fun" type="add">
                Path resolver is removed because it is not imported properly {330}. (2008-12-06)
            </action>
            <action dev="py4fun" type="add">
                Constructor is overwritten completely. (2008-12-06)
            </action>
            <action dev="py4fun" type="add">
                Implement possibility to define a custom Representer. (2008-12-01)
            </action>
            <action dev="py4fun" type="update">
                Support arrays of reference types. Arrays of primitives are not supported
                because Arrays.asList() does not work. (2008-12-01)
            </action>
            <action dev="py4fun" type="update">
                Import change 300 for Emitter from PyYAML. (2008-12-01)
            </action>
            <action dev="py4fun" type="fix">
                Fix Node identity to avoid aliases for simple types - [1, 1]. (2008-11-28)
            </action>
            <action dev="py4fun" type="update">
                Recursive objects can be represented (but not yet constructed) (2008-11-28)
            </action>
            <action dev="py4fun" type="update">
                Binary is represented back as String (2008-11-28)
            </action>
            <action dev="py4fun" type="update">
                Re-write Representer classes from scratch (2008-11-28)
            </action>
            <action dev="py4fun" type="fix">
                'null' can be a key in a map (2008-11-21)
            </action>
            <action dev="py4fun" type="fix">
                !!set tag is parsed properly (2008-11-21)
            </action>
            <action dev="py4fun" type="update">
                Single characters 'Y', 'N', 'y' and 'n' are parsed as String opposed to boolean
                as it is defined in the specification. This is how it is done in PyYAML (2008-11-21)
            </action>
            <action dev="py4fun" type="remove">
                Constructor: because Java does not have generators 'deep' is not 
                imported from PyYAML (2008-11-19)
            </action>
            <action dev="py4fun" type="update">
                Composer imported from PyYAML (2008-11-17)
            </action>
            <action dev="py4fun" type="update">
                Resolver.resolve() is using simple boolean argument instead of array of booleans
                as in PyYAML. (2008-11-18)
            </action>
            <action dev="py4fun" type="fix">
                Fix: 'set' type works. (2008-11-18)
            </action>
            <action dev="py4fun" type="update">
                Rewrite Parser from scratch. (2008-11-17)
            </action>
        </release>
        <release version="0.4" date="2008-11-11" description="Fix issues in Scanner">
            <action dev="py4fun" type="update">
                Move constants from Yaml interface to appropriate classes (2008-11-10)
            </action>
            <action dev="py4fun" type="update">
                Interface change: Yaml dumpAll() methods accept Iterable (2008-11-10)
            </action>
            <action dev="py4fun" type="update">
                Interface change: Yaml loadAll() methods return Iterable (2008-11-10)
            </action>
            <action dev="py4fun" type="fix">
                Scanner: copy keys to avoid java.util.ConcurrentModificationException when removing
                possible simple key (2008-11-10)
            </action>
            <action dev="py4fun" type="update">
                Tag v0.3.1 (2008-11-08)
            </action>
            <action dev="py4fun" type="update">
                MappingNode requires Map as a value and SequenceNode requires
                List as a value (2008-11-08)
            </action>
            <action dev="py4fun" type="update">
                Marks in a Token are required (2008-11-08)
            </action>
            <action dev="py4fun" type="remove">
                Remove prefixForward() method from Reader because it is not present
                in PyYAML (2008-11-08)
            </action>
            <action dev="py4fun" type="fix">
                Fix a deviation with PyYAML in method scanBlockScalar().
                'chomping' can be null. Fix a bug in JvYaml that the trailing '\n' in a 
                block scalar was removed.(2008-11-07)
            </action>
            <action dev="py4fun" type="fix">
                Fix a deviation with PyYAML in method scanDirectiveIgnoredLine().
                Put '#' instead of '"'. (2008-11-07)
            </action>
            <action dev="py4fun" type="add">
                Restore from PyYAML the way the keys are parsed. (Restored methods are
                stalePossibleSimpleKeys() and removePossibleSimpleKey().)
                Fix issue http://code.google.com/p/jvyamlb/issues/detail?id=6. (2008-11-07)
            </action>
            <action dev="py4fun" type="update">
                Refactor: put changed classes to 'org.yaml.snakeyaml' package. (2008-11-05)
            </action>
            <action dev="py4fun" type="update">
                Move all the main() methods to the corresponding test classes. (2008-11-05)
            </action>
            <action dev="py4fun" type="update">
                Change public interface. Rename YAML to Yaml. Remove all static methods from Yaml.
                Factory and configuration must be injected at the constructor. This way is closer
                to PyYAML API. (2008-11-05)
            </action>
            <action dev="py4fun" type="add">
                Reader as in PyYAML is implemented. BOM is properly supported (2008-11-05)
            </action>
            <action dev="py4fun" type="add">
                Restore Mark in Token as it is in PyYAML. Mark is not defined yet (2008-10-30)
            </action>
            <action dev="py4fun" type="fix">
                Off-by-one in EmitterImpl.writeDoubleQuoted().
                Fix issue: https://jvyaml.dev.java.net/issues/show_bug.cgi?id=11 (2008-10-28)
            </action>
            <action dev="py4fun" type="fix">
                Respect Unicode characters.
                Fix issue: https://jvyaml.dev.java.net/issues/show_bug.cgi?id=10 (2008-10-28)
            </action>
            <action dev="py4fun" type="fix">
                Respect sign for float.
                Fix issue: https://jvyaml.dev.java.net/issues/show_bug.cgi?id=13 (2008-10-28)
            </action>
            <action dev="py4fun" type="add">
                Binary data is represented as ByteBuffer (2008-10-27)
            </action>
            <action dev="py4fun" type="fix">
                When parsed, a timestamp in the canonical form (i.e, 2001-12-15T02:59:43.1Z) is
                interpreted as if it is in the default time zone.
                Fix issue: https://jvyaml.dev.java.net/issues/show_bug.cgi?id=7 (2008-10-27)
            </action>
            <action dev="py4fun" type="add">
                Add Mark from PyYAML. It is not used yet. The JUnit test is migrated from PyYAML (2008-10-23)
            </action>
            <action dev="py4fun" type="update">
                Apply SnakeYAML as the name of the library (2008-10-22)
            </action>
            <action dev="py4fun" type="update">
                Reformat the source files (2008-10-22)
            </action>
            <action dev="py4fun" type="update">
                Apply LICENSE info to source files (2008-10-22)
            </action>
            <action dev="py4fun" type="update">
                Mavenize project. Apply standard Maven folder structure (2008-10-20)
            </action>
        </release>
        <release version="0.2.1" date="2008-10-20" description="Import JvYaml from CVS">
             <action dev="py4fun" type="add">
                Import project from https://jvyaml.dev.java.net/ (2008-10-20)
             </action>
        </release>
    </body>
</document>

