blob: d15165a99378d6e5e9b84e123cb199afbe964238 [file] [log] [blame]
<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.10-SNAPSHOT" date="in Mercurial" description="Development">
<action dev="py4fun" type="update">
Refactor with PMD: Composer - Avoid unused method parameter 'index' in
'Composer.composeNode(Node parent, Object index)''. It was used
in PyYAML for kind of XPath for YAML, but it was not imported from PyYAML (2012-01-28)
</action>
<action dev="py4fun" type="update">
Refactor Emitter: the SPACE mutable static field could be changed by malicious code or by accident.
Boxed value is unboxed and then immediately reboxed (2012-01-28)
</action>
<action dev="py4fun" type="remove">
Refactor with FindBugs: remove unused ScalarAnalysis.allowDoubleQuoted (2012-01-28)
</action>
<action dev="py4fun" type="update">
Refactor with FindBugs: do not rely on default encoding (2012-01-28)
</action>
<action dev="py4fun" type="update">
Refactor: apply FindBugs recommendations (2012-01-28)
</action>
<action dev="maslovalex" type="fix">
Fix issue 139: merge should use last key in map (2012-01-24)
</action>
<action dev="py4fun" type="fix">
Fix issue 136: tabs are allowed in plain scalars. This is a deviation from PyYAML (2012-01-11)
</action>
<action dev="py4fun" type="add" issue="138">
Expose internal data of ReaderException (2012-01-06)
</action>
<action dev="py4fun" type="fix" issue="137">
Respect supplementary characters (2012-01-06)
</action>
<action dev="py4fun" type="add">
Use http://mercurial.selenic.com/wiki/EolExtension to force LF as line separator
for all operating systems (2011-12-20)
</action>
<action dev="py4fun" type="add">
Add a test for issue 136 (2011-12-14)
</action>
<action dev="py4fun" type="remove">
Deprecate the DumperOptions.calculateScalarStyle() method because it was introduced as a quick
fix for issue 29. Now it should not be required at all (because of the fix for issue 66),
or it should be implemented in the Representer (in RepresentString) (2011-10-10)
</action>
<action dev="py4fun" type="fix">
Fix issue 66: literal scalar style is used by default for multiline scalars (2011-10-10)
</action>
<action dev="py4fun" type="add">
An example added: how to dump multiline literal scalars (2011-10-04)
</action>
<action dev="py4fun" type="add">
An example added: how to dump recursive object for issue 133 (2011-09-14)
</action>
<action dev="py4fun" type="add">
A test added for issue 132 (2011-09-13)
</action>
<action dev="py4fun" type="update">
Finish 1.9 release (2011-08-15)
</action>
</release>
<release version="1.9" date="2011-08-15" description="Introduce Yaml.loadAs() and Yaml.dumpAs() methods">
<action dev="py4fun" type="update">
Add a test to prove that SnakeYAML is not affected by the problem reported for libyaml
at http://pyyaml.org/ticket/196 (2011-07-28)
</action>
<action dev="py4fun" type="fix" issue="128">
Since timestamp contains ':' characters it is dumped with single quoted scalar style
in the flow context. The single quoted scalar style causes to dump the explicit tag.
In the block context the plain scalar can be used and the tag is not required. It may cause
unpredictable behaviour if the tag is required. See the comments in JodaTimeExampleTest (2011-07-25)
</action>
<action dev="py4fun" type="fix" issue="130">
Fix scientific notation inconsistency in the YAML 1.1 specification:
scalar '8e-06' should be parsed as a Double (2011-07-24)
</action>
<action dev="py4fun" type="remove" issue="127">
Do not allow to override BaseRepresenter.representData(Object data) because
users should instead implement Represent interface (2011-07-21)
</action>
<action dev="py4fun" type="remove" issue="124">
Deprecate DumperOptions.explicitRoot (2011-07-20)
</action>
<action dev="py4fun" type="add" issue="124">
Add Yaml.dumpAs(Object, Tag.MAP, FlowStyle) and Yaml.dumpAsMap(Object) methods. JavaBeanDumper is marked as deprecated (2011-07-16)
</action>
<action dev="py4fun" type="add" issue="127">
Add example to show how to dump a custom class (2011-07-12)
</action>
<action dev="py4fun" type="add" issue="129">
Add Yaml.serialize(Node) low level method to the public API (2011-07-14)
</action>
<action dev="py4fun" type="add" issue="129">
Add Yaml.represent(Object) low level method to the public API (2011-07-14)
</action>
<action dev="py4fun" type="add" issue="125">
Add support for Maven 3 via 'm3' profile (2011-07-10)
</action>
<action dev="py4fun" type="remove" issue="124">
Remove deprecated JavaBeanParser (2011-07-05)
</action>
<action dev="py4fun" type="remove" issue="124">
Remove redundant JavaBeanDumper.classTags set (2011-07-03)
</action>
<action dev="py4fun" type="add" issue="124">
Add Yaml.loadAs() methods. JavaBeanLoader is marked as deprecated (2011-07-03)
</action>
<action dev="py4fun" type="remove" issue="124">
Remove TypeDescription.root property to prepare issue 124. This is a minor backwards incompatible change.
Now instead of setting as root, the TypeDescription must be passed to the Contructor's constructor
to be taken as the root definition (2011-07-03)
</action>
<action dev="py4fun" type="fix" issue="121" due-to="Jaromir">
Fix: close files in tests to avoid a possible file handle limit (2011-06-09)
</action>
<action dev="py4fun" type="fix" issue="116" due-to="Jim Peterson">
Fix: Improved support for empty JavaBeans (2011-06-09)
</action>
<action dev="py4fun" type="fix" issue="112" due-to="Lethargish">
Fix: Improved support for parameterised types in collections (2011-05-25)
</action>
<action dev="py4fun" type="fix" issue="115" due-to="elkniwt">
Fix: parameterised JavaBeans fail to load and dump because they are treated as Maps (2011-05-16)
</action>
<action dev="py4fun" type="fix" issue="114" due-to="gileadis">
Fix: Do not remove root tags of JavaBeans when it is not explicitly requested (2011-04-20)
</action>
<action dev="py4fun" type="fix" issue="111" due-to="JordanAngold">
Fix: Long escaped tag URI sequences throw BufferOverflowException (2011-03-03)
</action>
<action dev="py4fun" type="fix" issue="110" due-to="dmitry.s.mamonov">
Fix: introduce a package for external libraries and move there the 64Coder
and the Google's URL encoder (2011-02-24)
</action>
<action dev="py4fun" type="fix" issue="109" due-to="cjalmeida">
Fix: ancient years must be dumped with leading zeros (2011-02-19)
</action>
<action dev="py4fun" type="remove" due-to="JordanAngold">
Remove unused code in Constructor: Modifier.isAbstract() is not needed any more (2011-02-18)
</action>
<action dev="JordanAngold" type="fix" issue="108">
Enum's name property shall be dumped instead of the 'toString()' output (2011-02-16)
</action>
</release>
<release version="1.8" date="2011-02-15" description="Performance improvement">
<action dev="py4fun" type="add">
Add example to howto Wiki:
How_to_substitute_object_in_YAML_document_with_a_custom_object (2011-01-27)
</action>
<action dev="py4fun" type="update">
When the YAML document to be loaded is provided as String parse it directly
without making a Reader first (2011-01-23)
</action>
<action dev="py4fun" type="fix" issue="106">
Immutable data structures in StreamReader allow to share the same buffer for all
the Mark instances. It makes 'withMarkContext' setting redundant (2011-01-19)
</action>
<action dev="maslovalex" type="update" issue="100">
Merge JavaBean properties when an explicit tag is provided (2011-01-11)
</action>
<action dev="py4fun" type="update" issue="99">
Add an example for escaping line breaks in binary content (2011-01-03)
</action>
<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>