<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">
                Introduce 'nostress' Maven profile to quickly build cobertura reports (2010-09-15)
            </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>

