xref: /aosp_15_r20/external/snakeyaml/src/changes/changes.xml (revision ac2a7c1bf4e14d82f3bd566dcc2d76d5b42faf34)
1<document xmlns="http://maven.apache.org/changes/1.0.0"
2    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3    xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/plugins/maven-changes-plugin/xsd/changes-1.0.0.xsd">
4    <properties>
5        <title>YAML 1.1 parser and emitter</title>
6    </properties>
7    <body>
8        <release version="1.32" date="2022-09-12" description="Maintenance">
9            <action dev="asomov" type="fix" issue="543">
10                Add a test for issue 543 (thanks to Henry Lin)
11            </action>
12            <action dev="asomov" type="fix" issue="547">
13                Set the limit for incoming data to prevent a CVE report in NIST
14                By default it is 3 MB
15            </action>
16            <action dev="asomov" type="update">
17                Format the source with Google style.
18                Info: https://stackoverflow.com/questions/49712148/maven-plugin-for-auto-formatting-code-to-match-google-checkstyle
19                Format: https://raw.githubusercontent.com/google/styleguide/gh-pages/eclipse-java-google-style.xml
20                Activation: ./mvnw clean install site -Preformat
21            </action>
22            <action dev="maslovalex" type="fix" issue="544">
23                Support unescaped unicode characters for double-quoted scalars (thanks to Florian Waltenberger)
24            </action>
25        </release>
26        <release version="1.31" date="2022-08-27" description="Maintenance">
27            <action dev="maslovalex" type="update">
28                JDK 8 is required for tests
29            </action>
30            <action dev="asomov" type="update" issue="539">
31                Fix false positive CVE-2020-13936 (thanks to Gaétan Collaud)
32            </action>
33            <action dev="asomov" type="fix" issue="537">
34                Improved RE for integers (thanks to Petr Pucil)
35            </action>
36            <action dev="asomov" type="fix" issue="530">
37                Add an opportunity to restrict data matched with Regular Expressions
38                to avoid possible attack when RE takes too many resources (detected by OSS-Fuzz)
39            </action>
40            <action dev="asomov" type="fix" issue="529">
41                Show proper error message for invalid !!float and !!int scalar (detected by OSS-Fuzz)
42            </action>
43            <action dev="asomov" type="fix" issue="525">
44                Restrict nested depth for collections to avoid DoS attacks (detected by OSS-Fuzz)
45            </action>
46            <action dev="asomov" type="add" issue="525">
47                Add test for stackoverflow
48            </action>
49            <action dev="maslovalex" type="fix" issue="522">
50                Deserializing key "on" fails with Exception
51            </action>
52            <action dev="asomov" type="update">
53                Merged PR #7: https://bitbucket.org/snakeyaml/snakeyaml/pull-requests/7 (2022-04-04)
54            </action>
55            <action dev="asomov" type="update">
56                Do not emit global TAGs by not keeping them in Parser
57                (breaks https://code.google.com/archive/p/snakeyaml/issues/149)
58            </action>
59            <action dev="asomov" type="add">
60                Add an example with Lombok and ENV variable substitution (2021-12-29)
61            </action>
62            <action dev="asomov" type="update">
63                Fix issues with comments
64            </action>
65            <action dev="asomov" type="update" issue="517">
66                Recognise issue with trailing TAB
67            </action>
68        </release>
69        <release version="1.30" date="2021-12-14" description="Maintenance">
70            <action dev="asomov" type="fix" issue="516">
71                Remove snakeyaml.org
72            </action>
73            <action dev="asomov" type="update">
74                Migrate to https://bitbucket.org/snakeyaml/snakeyaml (2021-10-23)
75            </action>
76            <action dev="asomov" type="update">
77                Fix issues with comments
78            </action>
79            <action dev="asomov" type="fix" issue="506">
80                Improve parsing a number starting with 0x (2021-06-28)
81                Take the Float pattern from ruamel: https://pypi.org/project/ruamel.yaml
82            </action>
83        </release>
84        <release version="1.29" date="2021-06-08" description="Maintenance">
85            <action dev="Wolf2323" type="fix">
86                Fix Events ordering and improve Node-Comment association (2021-05-13)
87            </action>
88            <action dev="asomov" type="fix">
89                Fix corner case for comments where blank lines after plain token  (2021-03-02)
90            </action>
91            <action dev="asomov" type="add">
92                Add a test for issue 500 (2021-03-14)
93            </action>
94            <action dev="asomov" type="remove">
95                Remove unused variable (2021-02-28)
96            </action>
97        </release>
98        <release version="1.28" date="2021-02-22" description="Maintenance">
99            <action dev="maslovalex" type="fix">
100                Fix tests to work on Windows (2021-02-19)
101            </action>
102            <action dev="asomov" type="add">
103                Add enumCaseSensitive property to LoaderOptions to control constructing enum with case sensitivity (2021-01-05)
104            </action>
105            <action dev="asomov" type="fix" issue="493">
106                ENV substitution default can contain special characters (2021-01-03)
107            </action>
108            <action dev="asomov" type="add">
109                Allow for read and write YAML with Comments (2020-11-01)
110            </action>
111            <action dev="asomov" type="fix" issue="485">
112                Alias names are too permissive compared to libyaml and future spec.
113                Follow https://github.com/yaml/yaml-spec/blob/master/rfc/RFC-0003.md (2020-10-06)
114            </action>
115        </release>
116        <release version="1.27" date="2020-08-31" description="Maintenance">
117            <action dev="asomov" type="fix" issue="481">
118                Serialize anchors that are not used by any alias (2020-08-14)
119            </action>
120            <action dev="asomov" type="fix" issue="416">
121                Add indentWithIndicator option to improve dumping sequences (2020-07-14)
122            </action>
123            <action dev="asomov" type="fix" issue="480">
124                Anchor should allow non ascii characters while dumping (2020-06-29)
125            </action>
126            <action dev="asomov" type="update" issue="remove">
127                Remove Spring related tests because they are outdated and upgrading to Spring 5
128                makes the tests fail under JDK 7 (2020-05-02)
129            </action>
130            <action dev="asomov" type="update" issue="476">
131                Make constructor of EnvScalarConstructor public (2020-04-24)
132            </action>
133            <action dev="asomov" type="fix" issue="474">
134                Parse the value of byte and short after a narrowing primitive conversion (2020-04-16)
135            </action>
136            <action dev="asomov" type="add">
137                Add test for different Line Break Characters in the error message (2020-03-09)
138            </action>
139            <action dev="asomov" type="update">
140                Fix yet another OWASP false positive. It complains that the Spring controller makes SnakeYAML insecure
141                even though SnakeYAML does not use Spring controller and does not depend on Spring (but the tests do).
142                Bump spring.version from 3.2.17.RELEASE to 5.2.4.RELEASE (2020-03-08)
143            </action>
144            <action dev="asomov" type="update">
145                Migrated to GIT (2020-02-29)
146            </action>
147        </release>
148        <release version="1.26" date="2020-02-28" description="Maintenance">
149            <action dev="asomov" type="fix" issue="377">
150                Allow configuration for preventing billion laughs attack (2020-02-24)
151            </action>
152            <action dev="asomov" type="update">
153                Update Maven wrapper (2020-01-18)
154            </action>
155            <action dev="asomov" type="fix" issue="468">
156                Parse ENV variables similar to how it works in docker-compose (2019-12-25)
157            </action>
158            <action dev="asomov" type="fix" issue="468">
159                Allow non ASCII characters in the anchor names (2019-12-23)
160            </action>
161            <action dev="asomov" type="update" issue="462">
162                Clean up composer internal maps after construction. Should not have any impact but
163                it does not harm (2019-10-25)
164            </action>
165            <action dev="asomov" type="update" issue="459">
166                The '!' tag now works the same way as for PyYAML. (12 is parsed as int instead of string)
167                The spec files are modified (spec-08-07.canonical spec-08-07.data)
168            </action>
169            <action dev="asomov" type="add">
170                Add test for not implemented "!" tag (2019-10-11)
171            </action>
172            <action dev="asomov" type="update">
173                Refactor Events: expose Event.ID via a getter (2019-10-05)
174            </action>
175            <action dev="asomov" type="update">
176                Refactor ScalarAnalysis: make it immutable (2019-09-28)
177            </action>
178            <action dev="asomov" type="add" issue="454">
179                Add example for integer without time pattern (2019-08-22)
180            </action>
181        </release>
182        <release version="1.25" date="2019-08-13" description="Maintenance">
183            <action dev="asomov" type="update">
184                Deprecate setting tags in TypeDescription (2019-06-23)
185            </action>
186            <action dev="asomov" type="fix" issue="449">
187                Add test for issue 449 (2019-06-19)
188            </action>
189            <action dev="asomov" type="add" issue="441">
190                Restore the way to get anchor for a Node (2019-04-13)
191            </action>
192            <action dev="asomov" type="fix" issue="437">
193                Introduce setting to keep !!str tag for String even when it contains non-printable chars (2019-03-24)
194            </action>
195            <action dev="asomov" type="update">
196                Update plugin versions (2019-03-04)
197            </action>
198        </release>
199        <release version="1.24" date="2019-02-28" description="Maintenance">
200            <action dev="asomov" type="update">
201                Refactor BaseConstructor: Factored out postponed mapping logic so subclasses can effectively
202                override constructMapping2ndStep() and delegate to the postponed mapping logic.
203                This is backported from SnakeYAML engine (2019-01-26)
204            </action>
205            <action dev="asomov" type="fix" issue="431">
206                Customize simple key length when dumping (2019-01-17)
207            </action>
208            <action dev="asomov" type="fix" issue="430">
209                Wrap runtime exceptions into YAMLException (2019-01-14)
210            </action>
211            <action dev="asomov" type="fix">
212                Fix: Null tag constructor not called when parsing top-level null value (2019-01-13)
213                (issue reported for snakeyaml-engine)
214            </action>
215            <action dev="asomov" type="fix" issue="429">
216                Provide "Automatic-Module-Name" entry in MANIFEST (2018-12-16)
217            </action>
218            <action dev="asomov" type="fix" issue="426">
219                Fix NPE when duplicate keys are not allowed and the key is null (2018-12-02)
220            </action>
221            <action dev="asomov" type="update">
222                Support java.sql classes without the need to depend on java.sql module in java9+ (2018-11-06)
223            </action>
224            <action dev="asomov" type="update">
225                Require Java 7  (2018-11-06)
226            </action>
227            <action dev="asomov" type="fix" issue="423">
228                Date Serialization Fails for TimeZones on Daylight Savings Time (2018-11-06)
229            </action>
230        </release>
231        <release version="1.23" date="2018-08-27" description="Maintenance">
232            <action dev="asomov" type="fix" issue="412">
233                Add another getter for ScalarStyle to support backwards compatibility (2018-08-27)
234            </action>
235        </release>
236        <release version="1.22" date="2018-08-25" description="Maintenance">
237            <action dev="asomov" type="update">
238                Run tests under Java 11  (2018-08-19)
239            </action>
240            <action dev="asomov" type="update">
241                Use Maven 3.5.4 (2018-08-19)
242            </action>
243            <action dev="asomov" type="fix"  issue="412">
244                Restore the Boolean constructors for Events and Nodes for binary compatibility
245                of dependent projects (2018-08-17)
246            </action>
247            <action dev="asomov" type="fix"  issue="411">
248                System Property "java.runtime.name" is not required to be defined (2018-08-12)
249                Ensure Compatibility with Graal
250            </action>
251            <action dev="asomov" type="fix"  issue="409">
252                Dumping Enum breaks when Enum value is Anonymous inner class (2018-08-07)
253                Solution: refactor the way to detect if the full tag can be omitted (and !!str is used instead).
254                Instead of checking whether the class for property and the class for the actual value is the same
255                we can just check that the property class is not java.lang.Enum
256            </action>
257        </release>
258        <release version="1.21" date="2018-04-13" description="Maintenance">
259            <action dev="asomov" type="update">
260                Scanner throws IndexOutOfBoundsException if no more token left but getToken()
261                or peekToken() called (2018-04-10)
262            </action>
263            <action dev="asomov" type="update">
264                Enhance output of token IDs (2018-04-06)
265            </action>
266            <action dev="asomov" type="add">
267                Mark: expose buffer and pointer  (2018-04-06)
268            </action>
269            <action dev="asomov" type="fix" issue="401">
270                Restore index in Mark - it is used in JRuby (2018-03-26)
271            </action>
272            <action dev="asomov" type="fix"  issue="397">
273                Plain scalars with colons in flow sequences/mappings are valid YAML (2018-03-03)
274            </action>
275        </release>
276        <release version="1.20" date="2018-02-28" description="Maintenance">
277            <action dev="maslovalex" type="fix"  issue="393">
278                Improve reflective access operation to avoid warning under Java 9 (2018-02-24)
279            </action>
280            <action dev="asomov" type="update">
281                Refactor collection node - flow style must not be null (2018-02-16)
282            </action>
283            <action dev="asomov" type="remove">
284                Refactor: remove unused method isResolved in Node (2018-02-15)
285            </action>
286            <action dev="asomov" type="remove">
287                Refactor: remove unused code in Tag (2018-02-15)
288            </action>
289            <action dev="asomov" type="update">
290                Refactor nodes and events - use enum FlowStyle instead of Boolean (2018-02-10)
291            </action>
292            <action dev="asomov" type="update">
293                Refactor ScalarToken, ScalarNode and ScalarEvent - use enum ScalarStyle instead of Character (2018-02-10)
294            </action>
295            <action dev="asomov" type="update">
296                Refactor Token - remove unused code (2018-02-08)
297            </action>
298            <action dev="asomov" type="update">
299                Refactor Mark - remove unused code (2018-02-06)
300            </action>
301            <action dev="asomov" type="fix" issue="395">
302                Introduce DuplicateKeyException and report line number for duplicate keys
303                when creating non-Javabeans (2017-12-15)
304            </action>
305        </release>
306        <release version="1.19" date="2017-10-14" description="Maintenance">
307            <action dev="maslovalex" type="update">
308                Only use FIELD access for Android in PropertyUtils (2017-08-20)
309            </action>
310            <action dev="maslovalex" type="update">
311                Add getAnnotations() and getAnnotation() methods to Property (2017-08-20)
312            </action>
313            <action dev="maslovalex" type="fix" issue="383">
314                Some configuration properties of Representer are ignored.
315            </action>
316            <action dev="maslovalex" type="fix" issue="386">
317                Fix order of duplicate keys indices to prevent wrong removals.
318            </action>
319            <action dev="maslovalex" type="fix" issue="382">
320                Fix 382: same as 322
321            </action>
322            <action dev="maslovalex" type="fix" issue="322">
323                Fix 322: if there is no getter try to get type information from a setter
324            </action>
325            <action dev="asomov" type="fix" issue="377">
326                Add test for 'billion laughs attack'
327            </action>
328            <action dev="asomov" type="fix" issue="368">
329                Relax final restriction on TypeDescription (2017-05-05)
330            </action>
331            <action dev="asomov" type="fix" issue="375">
332                Empty yaml file must return null instead of throwing an exception when loading a JavaBean (2017-05-03)
333            </action>
334            <action dev="asomov" type="fix" issue="374">
335                Fix Number when it is used as a JavaBean property with a custom Locale (2017-04-30)
336            </action>
337            <action dev="asomov" type="add" issue="373">
338                Add redundant test (2017-04-06)
339            </action>
340            <action dev="asomov" type="update">
341                Provide access to node's anchor, pull request#20 (2017-03-30)
342            </action>
343            <action dev="asomov" type="fix" issue="370">
344                Remove redundant "Bundle-RequiredExecutionEnvironment: J2SE-1.5" (2017-03-16)
345            </action>
346            <action dev="asomov" type="fix" issue="364">
347                Serializing Calendar objects with certain timezone offsets renders invalid YAML (2017-02-28)
348            </action>
349        </release>
350        <release version="1.18" date="2017-02-22" description="Maintenance">
351            <action dev="asomov" type="fix" issue="358">
352                Validate DumperOptions to prevent invalid YAML to be dumped (2017-01-12)
353            </action>
354            <action dev="asomov" type="fix" issue="355">
355                Fix for emitter to split long plain string scalars over multiple lines (2017-01-10)
356            </action>
357            <action dev="asomov" type="update">
358                Let Mark implement Serializable so that ParserException can be serialized (2016-12-15)
359            </action>
360            <action dev="asomov" type="update" issue="354">
361                Add tests for issue 354 (2016-12-12)
362            </action>
363            <action dev="maslovalex" type="fix" issue="337">
364                Throw exception in case of duplicate keys in MappingNode and
365                LoaderOptions.allowDuplicateKeys is false. (2016-11-25)
366            </action>
367            <action dev="maslovalex" type="fix" issue="351">
368                Keep same nodes order on merge (preprocess keys for MappingNode
369                and remove duplicates keeping the last one). (2016-11-22)
370            </action>
371            <action dev="asomov" type="fix" issue="349">
372                Ignore white spaces for base64 encoded scalar (2016-11-17)
373            </action>
374            <action dev="maslovalex" type="fix" issue="348">
375                Not removing parent object when composed object is an anchor. (2016-10-13)
376            </action>
377            <action dev="asomov" type="fix" issue="323">
378                Support "Miscellaneous Symbols and Pictographs" (2016-09-05)
379            </action>
380            <action dev="asomov" type="fix" issue="341">
381                Fix NPE in BaseRepresenter.multiRepresenters if it contains 'null' as value (2016-05-03)
382            </action>
383            <action dev="asomov" type="update" issue="335">
384                Add example for issue 335 - the same tag for different node kinds (2016-03-19)
385            </action>
386            <action dev="asomov" type="update" issue="332">
387                Add example for issue 332 (2016-02-24)
388            </action>
389            <action dev="asomov" type="update">
390                Build SnakeYAML for different JDKs with docker without building images (2016-02-22)
391            </action>
392            <action dev="asomov" type="update">
393                Update plugin versions (2016-02-19)
394            </action>
395        </release>
396        <release version="1.17" date="2016-02-19" description="Maintenance">
397            <action dev="maslovalex" type="fix" issue="318" due-to="Rog Sigal">
398                Use Thread.currentThread.getContextClassLoader in Class.forName instead of default one (2016-02-15)
399            </action>
400            <action dev="asomov" type="update" issue="329">
401                Add parameters to POM to change distribution server (2016-02-03)
402            </action>
403            <action dev="asomov" type="update" issue="326">
404                Relax some of the modifiers to make integration easier (2016-02-02)
405            </action>
406            <action dev="maslovalex" type="update" issue="310">
407                Make use of private/protected constructors for Scalars and 'immutable' objects.
408                Added 'src/test/java8' for Java8 specific tests (requires -Pwith-java8-tests) (2016-01-07)
409            </action>
410            <action dev="asomov" type="update" issue="320">
411                Better support to customise BaseConstructor. Make 'composer' field and constructDocument()
412                method protected (2015-10-03)
413            </action>
414            <action dev="asomov" type="fix" issue="306">
415                Better UUID support (2015-09-23)
416            </action>
417            <action dev="asomov" type="add">
418                Use Polyglot Maven: add support for YAML POM (2015-09-10)
419            </action>
420            <action dev="asomov" type="fix" issue="314">
421                Provide ability to customize anchor names (2015-08-25)
422            </action>
423        </release>
424        <release version="1.16" date="2015-08-18" description="Maintenance">
425            <action dev="asomov" type="fix" issue="308">
426                Provide Docker image for testing under different Java 8 (2015-06-19)
427            </action>
428            <action dev="asomov" type="fix" issue="302">
429                Convert binary byte[] to String when it matches the JavaBean property (2015-05-26)
430            </action>
431            <action dev="asomov" type="update">
432                The source code migrated to Bitbucket. Old commits (older then 6 years) have
433                been removed. (2015-05-20)
434            </action>
435            <action dev="asomov" type="fix"  issue="212">
436                Fix a typo in an error message in ScannerImpl (2015-05-19)
437            </action>
438            <action dev="asomov" type="fix"  issue="209">
439                Do not print special characters in the error message (2015-04-16)
440            </action>
441            <action dev="asomov" type="fix"  issue="199">
442                Evaluate implementations for duplicate mapping keys.
443            </action>
444        </release>
445        <release version="1.15" date="2015-02-19" description="Maintenance">
446            <action dev="asomov" type="update">
447                Apply FindBugs and PMD recommendations (2015-02-16)
448            </action>
449            <action dev="asomov" type="update">
450                Added split lines option to DumperOptions to allow line splitting to be disabled. (2015-02-08)
451            </action>
452            <action dev="asomov" type="update">
453                Use Maven 3 and update plugin versions (2015-02-05)
454            </action>
455            <action dev="asomov" type="update"  issue="205">
456                Add test to clarify iOS emoji character in the surrogate range (2015-02-03)
457            </action>
458            <action dev="asomov" type="fix"  issue="201">
459                Fix grammar error in exception message (2014-11-18)
460            </action>
461        </release>
462        <release version="1.14" date="2014-08-29" description="Maintenance">
463            <action dev="maslovalex" type="fix"  issue="197">
464                Load JavaBean with fields using custom constructors (2014-08-18)
465            </action>
466            <action dev="asomov" type="fix"  issue="192">
467                Drop support for "Value Key Language-Independent Type" and '=' a standard character (2014-05-22)
468            </action>
469            <action dev="maslovalex" type="fix"  issue="191">
470                Improve error message for invalid YAML document (2014-05-21)
471            </action>
472            <action dev="asomov" type="fix"  issue="188">
473                Improve error message for invalid YAML document (2014-03-26)
474            </action>
475            <action dev="asomov" type="fix"  issue="183">
476                Support Number class (2013-11-07)
477            </action>
478             <action dev="asomov" type="fix"  issue="182">
479                Double.POSITIVE_INFINITY applied to float fields (2013-11-07)
480             </action>
481        </release>
482        <release version="1.13" date="2013-08-29" description="Maintenance">
483             <action dev="asomov" type="fix"  issue="178">
484                OSGi: Specify version for exported packages (2013-06-27)
485             </action>
486             <action dev="asomov" type="fix"  issue="177">
487                Improve error report while parsing a JavaBean (2013-05-14)
488             </action>
489              <action dev="Jordan" type="fix"  issue="135">
490                Arrays of primitives are now fully supported (2013-04-16)
491             </action>
492             <action dev="asomov" type="fix"  issue="174">
493                Duplicate anchors in an input document should not be an error (2013-04-03)
494             </action>
495             <action dev="asomov" type="fix"  issue="172">
496                Using a locale with minimum number fraction digits breaks anchor generation (2013-03-30)
497             </action>
498             <action dev="asomov" type="fix"  issue="171">
499                Use more generic generics in BaseRepresenter (2013-03-30)
500             </action>
501        </release>
502        <release version="1.12" date="2013-03-02" description="Maintenance">
503             <action dev="asomov" type="update">
504                The build is using JDK 1.6 (2013-03-02)
505             </action>
506             <action dev="asomov" type="fix"  issue="169">
507                Make Constructor.typeDefinitions protected to be more flexible (2013-02-18)
508             </action>
509             <action dev="asomov" type="remove">
510                Remove file AUTHORS because it does not reflect the actual situation (2012-11-09)
511             </action>
512             <action dev="asomov" type="update">
513                Improve the error message when a TAB character starts a token (2012-11-06)
514             </action>
515        </release>
516        <release version="1.11" date="2012-09-29" description="Maintenance">
517             <action dev="asomov" type="fix"  issue="158">
518                Fix issue 158: improve support for 32-bit characters (UTF-16 surrogate pairs) (2012-09-29)
519             </action>
520             <action dev="asomov" type="fix"  issue="146">
521                Fix issue 146: empty tags should not force explicit document start (2012-09-29)
522             </action>
523             <action dev="asomov" type="fix"  issue="156">
524                Fix issue 156: setSkipMissingProperties fails for non-scalar values (2012-09-05)
525             </action>
526             <action dev="asomov" type="fix"  issue="155">
527                Fix issue 155: SnakeYAML must always eat its own food - a YAML document created by itself must
528                be read without exceptions (2012-09-04)
529             </action>
530             <action dev="asomov" type="update"  issue="154">
531                Fix issue 154: Add option to skip missing properties when deserializing YAML into Java object (2012-07-25)
532             </action>
533             <action dev="asomov" type="update">
534                Add a test for issue 150 (2012-06-17)
535             </action>
536             <action dev="asomov" type="update">
537                Add a test for issue 151 (2012-06-14)
538             </action>
539             <action dev="asomov" type="fix">
540                Fix issue 149: Directives are no longer lost between documents (2012-06-10)
541             </action>
542             <action dev="asomov" type="update">
543                Refactor: use Version enum instead of Array of Integers.
544                This is done to simplify fixing issue 149 (2012-06-09)
545             </action>
546             <action dev="asomov" type="fix">
547                Add tests for issue 148  (2012-06-07)
548             </action>
549             <action dev="asomov" type="fix">
550                Fix issue 147: Serialized representation of character U+FFFD causes exception on deserialization  (2012-06-05)
551             </action>
552             <action dev="asomov" type="fix">
553                Fix issue 145: exception.getMessage() must show the line number as exception.toString() does (2012-04-03)
554             </action>
555             <action dev="maslovalex" type="fix">
556                Fix issue 144: improve type inference for Compact Object Notation (2012-03-16)
557             </action>
558             <action dev="maslovalex" type="add">
559                Improve Android support
560             </action>
561        </release>
562        <release version="1.10" date="2012-02-08" description="Maintenance">
563             <action dev="asomov" type="update">
564                Fix issue 141: TimeZone is configurable in DumperOptions (2012-02-03)
565             </action>
566             <action dev="asomov" type="update">
567                Refactor with PMD: minor non-functional improvements (2012-01-28)
568             </action>
569             <action dev="asomov" type="update">
570                Refactor with PMD: Avoid unused method parameter 'index' in
571                Serializer and Emitter (2012-01-28)
572             </action>
573             <action dev="asomov" type="update">
574                Refactor with PMD: Composer - Avoid unused method parameter 'index' in
575                'Composer.composeNode(Node parent, Object index)''. It was used
576                in PyYAML for kind of XPath for YAML, but it was not imported from PyYAML (2012-01-28)
577             </action>
578             <action dev="asomov" type="update">
579                Refactor Emitter: the SPACE mutable static field could be changed by malicious code or by accident.
580                Boxed value is unboxed and then immediately reboxed (2012-01-28)
581             </action>
582             <action dev="asomov" type="remove">
583                Refactor with FindBugs: remove unused ScalarAnalysis.allowDoubleQuoted (2012-01-28)
584             </action>
585             <action dev="asomov" type="update">
586                Refactor with FindBugs: do not rely on default encoding (2012-01-28)
587             </action>
588             <action dev="asomov" type="update">
589                Refactor: apply FindBugs recommendations (2012-01-28)
590             </action>
591             <action dev="maslovalex" type="fix">
592                Fix issue 139: merge should use last key in map (2012-01-24)
593             </action>
594             <action dev="asomov" type="fix">
595                Fix issue 136: tabs are allowed in plain scalars. This is a deviation from PyYAML (2012-01-11)
596             </action>
597             <action dev="asomov" type="add" issue="138">
598                Expose internal data of ReaderException (2012-01-06)
599             </action>
600             <action dev="asomov" type="fix" issue="137">
601                Respect supplementary characters (2012-01-06)
602             </action>
603             <action dev="asomov" type="add">
604                Use http://mercurial.selenic.com/wiki/EolExtension to force LF  as line separator
605                for all operating systems (2011-12-20)
606             </action>
607             <action dev="asomov" type="add">
608                Add a test for issue 136 (2011-12-14)
609             </action>
610              <action dev="asomov" type="remove">
611                Deprecate the DumperOptions.calculateScalarStyle() method because it was introduced as a quick
612                fix for issue 29. Now it should not be required at all (because of the fix for issue 66),
613                or it should be implemented in the Representer (in RepresentString) (2011-10-10)
614             </action>
615             <action dev="asomov" type="fix">
616                Fix issue 66: literal scalar style is used by default for multiline scalars (2011-10-10)
617             </action>
618             <action dev="asomov" type="add">
619                An example added: how to dump multiline literal scalars (2011-10-04)
620             </action>
621             <action dev="asomov" type="add">
622                An example added: how to dump recursive object for issue 133 (2011-09-14)
623             </action>
624             <action dev="asomov" type="add">
625                A test added for issue 132 (2011-09-13)
626             </action>
627             <action dev="asomov" type="update">
628                Finish 1.9 release (2011-08-15)
629             </action>
630        </release>
631        <release version="1.9" date="2011-08-15" description="Introduce Yaml.loadAs() and Yaml.dumpAs() methods">
632            <action dev="asomov" type="update">
633                Add a test to prove that SnakeYAML is not affected by the problem reported for libyaml
634                at http://pyyaml.org/ticket/196 (2011-07-28)
635            </action>
636            <action dev="asomov" type="fix" issue="128">
637                Since timestamp contains ':' characters it is dumped with single quoted scalar style
638                in the flow context. The single quoted scalar style causes to dump the explicit tag.
639                In the block context the plain scalar can be used and the tag is not required. It may cause
640                unpredictable behaviour if the tag is required. See the comments in JodaTimeExampleTest (2011-07-25)
641            </action>
642            <action dev="asomov" type="fix" issue="130">
643                Fix scientific notation inconsistency in the YAML 1.1 specification:
644                scalar '8e-06' should be parsed as a Double (2011-07-24)
645            </action>
646            <action dev="asomov" type="remove" issue="127">
647                Do not allow to override BaseRepresenter.representData(Object data) because
648                users should instead implement Represent interface (2011-07-21)
649            </action>
650            <action dev="asomov" type="remove" issue="124">
651                Deprecate DumperOptions.explicitRoot (2011-07-20)
652            </action>
653            <action dev="asomov" type="add" issue="124">
654                Add Yaml.dumpAs(Object, Tag.MAP, FlowStyle) and Yaml.dumpAsMap(Object) methods. JavaBeanDumper is marked as deprecated (2011-07-16)
655            </action>
656            <action dev="asomov" type="add" issue="127">
657                Add example to show how to dump a custom class (2011-07-12)
658            </action>
659            <action dev="asomov" type="add" issue="129">
660                Add Yaml.serialize(Node) low level method to the public API (2011-07-14)
661            </action>
662            <action dev="asomov" type="add" issue="129">
663                Add Yaml.represent(Object) low level method to the public API (2011-07-14)
664            </action>
665            <action dev="asomov" type="add" issue="125">
666                Add support for Maven 3 via 'm3' profile (2011-07-10)
667            </action>
668            <action dev="asomov" type="remove" issue="124">
669                Remove deprecated JavaBeanParser (2011-07-05)
670            </action>
671            <action dev="asomov" type="remove" issue="124">
672                Remove redundant JavaBeanDumper.classTags set (2011-07-03)
673            </action>
674            <action dev="asomov" type="add" issue="124">
675                Add Yaml.loadAs() methods. JavaBeanLoader is marked as deprecated (2011-07-03)
676            </action>
677            <action dev="asomov" type="remove" issue="124">
678                Remove TypeDescription.root property to prepare issue 124. This is a minor backwards incompatible change.
679                Now instead of setting as root, the TypeDescription must be passed to the Contructor's constructor
680                to be taken as the root definition (2011-07-03)
681            </action>
682            <action dev="asomov" type="fix" issue="121" due-to="Jaromir">
683                Fix: close files in tests to avoid a possible file handle limit (2011-06-09)
684            </action>
685            <action dev="asomov" type="fix" issue="116" due-to="Jim Peterson">
686                Fix: Improved support for empty JavaBeans (2011-06-09)
687            </action>
688            <action dev="asomov" type="fix" issue="112" due-to="Lethargish">
689                Fix: Improved support for parameterised types in collections (2011-05-25)
690            </action>
691            <action dev="asomov" type="fix" issue="115" due-to="elkniwt">
692                Fix: parameterised JavaBeans fail to load and dump because they are treated as Maps (2011-05-16)
693            </action>
694            <action dev="asomov" type="fix" issue="114" due-to="gileadis">
695                Fix: Do not remove root tags of JavaBeans when it is not explicitly requested (2011-04-20)
696            </action>
697            <action dev="asomov" type="fix" issue="111" due-to="JordanAngold">
698                Fix: Long escaped tag URI sequences throw BufferOverflowException (2011-03-03)
699            </action>
700            <action dev="asomov" type="fix" issue="110" due-to="dmitry.s.mamonov">
701                Fix: introduce a package for external libraries and move there the 64Coder
702                and the Google's URL encoder (2011-02-24)
703            </action>
704            <action dev="asomov" type="fix" issue="109" due-to="cjalmeida">
705                Fix: ancient years must be dumped with leading zeros (2011-02-19)
706            </action>
707            <action dev="asomov" type="remove" due-to="JordanAngold">
708                Remove unused code in Constructor: Modifier.isAbstract() is not needed any more (2011-02-18)
709            </action>
710            <action dev="JordanAngold" type="fix" issue="108">
711                Enum's name property shall be dumped instead of the 'toString()' output (2011-02-16)
712            </action>
713        </release>
714        <release version="1.8" date="2011-02-15" description="Performance improvement">
715            <action dev="asomov" type="add">
716                Add example to howto Wiki:
717                How_to_substitute_object_in_YAML_document_with_a_custom_object (2011-01-27)
718            </action>
719            <action dev="asomov" type="update">
720                When the YAML document to be loaded is provided as String parse it directly
721                without making a Reader first (2011-01-23)
722            </action>
723            <action dev="asomov" type="fix" issue="106">
724                Immutable data structures in StreamReader allow to share the same buffer for all
725                the Mark instances. It makes 'withMarkContext' setting redundant (2011-01-19)
726            </action>
727            <action dev="maslovalex" type="update" issue="100">
728                Merge JavaBean properties when an explicit tag is provided (2011-01-11)
729            </action>
730            <action dev="asomov" type="update" issue="99">
731                Add an example for escaping line breaks in binary content (2011-01-03)
732            </action>
733            <action dev="asomov" type="update" issue="97">
734                Propose a solution for JavaBeans to support SortedSet property when it is encoded
735                as a sequence (2010-11-24)
736            </action>
737            <action dev="asomov" type="update" issue="59">
738                Simplify the way how the order of JavaBean properties is specified. Introduce
739                PropertyUtils.createPropertySet() method to be overridden when a specific order
740                is expected (2010-11-23)
741            </action>
742            <action dev="maslovalex" type="fix" issue="95">
743                Fix: Loading of generic collections with Array parameter(s). (2010-11-16)
744            </action>
745            <action dev="asomov" type="update" issue="94">
746                Add ChangeRuntimeClassTest as an example how to change a class for a global tag (2010-11-05)
747            </action>
748            <action dev="asomov" type="update">
749                Inner objects in Constructor become protected to be more flexible when Constructor
750                is expended (2010-10-03)
751            </action>
752            <action dev="asomov" type="update" issue="91">
753                Apply www.snakeyaml.org domain name (2010-09-20)
754            </action>
755            <action dev="asomov" type="fix" issue="90">
756                Move Base64Coder into another package to keep a separate copyright statement.
757                Base64Coder is left unchanged (2010-09-19)
758            </action>
759            <action dev="asomov" type="fix" issue="69">
760                Iterable should not be serialised as sequence (2010-09-16)
761            </action>
762            <action dev="asomov" type="update">
763                Introduce 'fast' Maven profile to quickly build cobertura reports (2010-09-16)
764            </action>
765            <action dev="asomov" type="update" issue="89">
766                Fix: Specify plugin versions in POM (2010-09-15)
767            </action>
768            <action dev="maslovalex" type="fix" issue="88">
769                Fix: Custom tag erased when referenced from generic collection (2010-09-15)
770            </action>
771            <action dev="asomov" type="update">
772                Minor refactoring in Emitter to improve performance: save calls to Constant.has() (2010-09-13)
773            </action>
774            <action dev="maslovalex" type="update">
775                Minor refactorings in Emitter to improve performance: create less Strings [r9185e0b3] (2010-09-10)
776            </action>
777            <action dev="asomov" type="update" issue="79">
778                Introduce LoaderOptions to be able to specify configuration while loading (2010-09-03)
779            </action>
780            <action dev="asomov" type="fix" issue="81">
781                Representer.representJavaBeanProperty() is given the wrong tag. Instead of the property tag,
782                the tag for the JavaBean itself is provided. (2010-09-01)
783            </action>
784            <action dev="asomov" type="update">
785                Rename JvmDetector into GenericsBugDetector (2010-08-31)
786            </action>
787            <action dev="asomov" type="fix" issue="80" due-to="SebastienRainville">
788                Fix: Timestamp is not parsed properly when milliseconds start with 0 (2010-08-24)
789            </action>
790            <action dev="maslovalex" type="update" issue="79">
791                Context for error reporting consumes a lot of resources (2010-08-21)
792            </action>
793            <action dev="asomov" type="remove">
794                Cleanup unused code in deprecated Loader and Dumper (2010-08-13)
795            </action>
796        </release>
797        <release version="1.7" date="2010-08-12" description="Simplify public API (drop Loader and Dumper)">
798            <action dev="asomov" type="update">
799                Eclipse does not run JUnit 4 tests when they are launched for the whole project (2010-08-11)
800            </action>
801            <action dev="maslovalex" type="update" issue="55">
802                Share PropertyUtils if not explicitly set in Constructor or Representer
803                (BeanAccess.FIELD works properly when JavaBean is identified by a root tag) (2010-08-11)
804            </action>
805            <action dev="asomov" type="update">
806                Create 1.7 Release Candidate 1 (2010-08-11)
807            </action>
808            <action dev="asomov" type="update" issue="77">
809                Simplify public API: Drop Dumper (2010-08-06)
810            </action>
811            <action dev="asomov" type="update" issue="77">
812                Simplify public API: Drop Loader (2010-08-05)
813            </action>
814            <action dev="asomov" type="update" issue="75" due-to="jon.p.hermes">
815                Add examples to create scalars that match custom regular expression:
816                CustomImplicitResolverTest, CustomBeanResolverTest (2010-08-03)
817            </action>
818            <action dev="asomov" type="fix" issue="74" due-to="Kevin Menard">
819                Do not use redundant tags for arrays which are JavaBean properties. (2010-07-21)
820            </action>
821            <action dev="asomov" type="update">
822                RecursiveSetTest proves that it is possible to construct a recursive set (2010-07-20)
823            </action>
824            <action dev="asomov" type="add" issue="73" due-to="birnbuazn">
825                Provide sequence support for loading java.util.Set. Also provide an example
826                to serialise a java.util.Set as a sequence. (2010-07-19)
827            </action>
828            <action dev="asomov" type="add" issue="72" due-to="birnbuazn">
829                Support java.util.Collection as a parent for List and Set (2010-07-09)
830            </action>
831            <action dev="maslovalex" type="add" issue="55" due-to="birnbuazn">
832                Allow direct field access bypassing setters and getters. Empty constructor
833                is required to support 2-step construction (2010-07-02)
834            </action>
835            <action dev="asomov" type="update" issue="69">
836                Serialise Iterator and Iterable as sequences (2010-06-25)
837            </action>
838            <action dev="asomov" type="update" due-to="maslovalex">
839                Change error message when 'No suitable constructor with N arguments found for class' (2010-06-23)
840            </action>
841            <action dev="asomov" type="add" due-to="Antony Stubbs">
842                Add JodaTime example (2010-06-04)
843            </action>
844            <action dev="asomov" type="add" issue="67" due-to="Manuel Sugawara">
845                Add possibility to create a Tag out of an URI (2010-05-31)
846            </action>
847            <action dev="asomov" type="update">
848                URLDecoder.decode() does not fail when UTF-8 is invalid. Use
849                CodingErrorAction.REPORT to implement the failure (2010-05-21)
850            </action>
851            <action dev="maslovalex" type="update">
852                Fix generic collections which contain other collections (2010-05-18)
853            </action>
854            <action dev="asomov" type="fix" issue="67" due-to="Manuel Sugawara">
855                Fix: java classes containing non-ASCII characters in names are
856                incorrectly encoded (2010-05-14)
857            </action>
858            <action dev="asomov" type="fix" issue="65" due-to="lerch.johannes">
859                Fix: add checks for null arguments for JavaBeanDumper (2010-04-27)
860            </action>
861            <action dev="asomov" type="add">
862                Add a test to see how stack trace is serialised (2010-04-27)
863            </action>
864            <action dev="asomov" type="fix" issue="64" due-to="maxim.moschko">
865                ClassCastException in Representer when working with ParameterizedType (2010-04-25)
866            </action>
867            <action dev="asomov" type="update">
868                Improve toString() method for Node. Since scalars cannot be recursive
869                they can be printed (2010-04-15)
870            </action>
871            <action dev="maslovalex" type="fix" issue="63" due-to="Udo">
872                Refactor the way arrays are constructed (2010-04-15)
873            </action>
874            <action dev="asomov" type="fix" issue="62">
875                Add examples for dumping custom values for !!bool and !!null (2010-04-13)
876            </action>
877            <action dev="asomov" type="fix" issue="61">
878                Fix: ClassCastException when dumping generic bean (2010-04-11)
879            </action>
880            <action dev="asomov" type="fix" issue="59">
881                Provide an example for changing JavaBean properties order (2010-04-01)
882            </action>
883            <action dev="asomov" type="fix" issue="60">
884                Provide example for skipping null and empty collections (2010-03-29)
885            </action>
886            <action dev="asomov" type="fix" issue="58" due-to="jeff.caulfield">
887                JavaBeanDumper.dump throws NullPointerException on list property
888                with null element (2010-03-23)
889            </action>
890            <action dev="asomov" type="fix" issue="56" due-to="DZeiss">
891                Make constructors in SafeConstructor public (2010-03-16)
892            </action>
893            <action dev="asomov" type="update" due-to="David Bernard">
894                Releases and snapshots are available in the Sonatype Maven repository.
895                https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide
896            </action>
897            <action dev="obastard" type="fix" issue="53" due-to="obastard">
898                Enhancement for a pretty format that combines BLOCK and FLOW (2010-03-03)
899            </action>
900            <action dev="asomov" type="fix" issue="50" due-to="sualeh.fatehi">
901                Unable to dump JavaBean that inherits from a protected base class (2010-03-02)
902            </action>
903            <action dev="asomov" type="update">
904                Format source (2010-03-01)
905            </action>
906            <action dev="asomov" type="update">
907                Use Token.ID and Event.ID instead of just ID (2010-03-01)
908            </action>
909            <action dev="asomov" type="update">
910                Issue 50 fails in Eclipse but works with Maven (2010-03-01)
911            </action>
912        </release>
913        <release version="1.6" date="2010-02-26" description="introduce Tag class">
914            <action dev="asomov" type="update">
915                Release Candidate 2 is available (2010-02-24)
916            </action>
917            <action dev="asomov" type="fix" issue="47" due-to="obastard">
918                Don't dump read-only properties by default. DumperOptions gets a setting to
919                include read-only JavaBean properties.
920                This is no backwards compatible change (2010-02-19)
921            </action>
922            <action dev="asomov" type="fix" issue="49" due-to="obastard">
923                Support GregorianCalendar. Due to Daylight Saving Time parsing the timestamp with
924                a TimeZone cannot determine the exact time (2010-02-19)
925            </action>
926            <action dev="asomov" type="fix" issue="51" due-to="johann.Werner">
927                Some Unicode characters are wrongly replaced by \x{fffd} during
928                double quoted style dump (2010-02-15)
929            </action>
930            <action dev="asomov" type="fix" issue="48" due-to="obastard">
931                Introduce representJavaBeanProperty() method in Representer. The method
932                can be overridden to simplify custom JavaBean representation (2010-02-12)
933            </action>
934            <action dev="asomov" type="update">
935                Release Candidate 1 is available (2010-02-01)
936            </action>
937            <action dev="asomov" type="add">
938                Representer.representJavaBean() returns MappingNode (2010-01-26)
939            </action>
940            <action dev="asomov" type="add">
941                Add example of serialising static fields  (2010-01-26)
942            </action>
943            <action dev="asomov" type="add">
944                Add example of serialising java.io.File as scalar node for issue 46  (2010-01-25)
945            </action>
946            <action dev="asomov" type="update">
947                Refactor: introduce Chomping to avoid using null as value for Boolean.
948                Stay in line with Scala port where null is not allowed (2010-01-19)
949            </action>
950            <action dev="asomov" type="update">
951                Refactor: use Event.ID enum instead of classes (2010-01-15)
952            </action>
953            <action dev="asomov" type="update">
954                Refactor: use Token.ID enum instead of classes (2010-01-15)
955            </action>
956            <action dev="asomov" type="update">
957                Refactor: use generic classes for DirectiveToken (2010-01-14)
958            </action>
959            <action dev="asomov" type="update">
960                Refactor: rename Reader to StreamReader to avoid name conflict with java.io.Reader (2010-01-13)
961            </action>
962            <action dev="asomov" type="update">
963                Refactor: use StringBuilder instead of StringBuffer (2010-01-12)
964            </action>
965            <action dev="asomov" type="update">
966                Refactor: introduce Constant class to share String constants (2010-01-12)
967            </action>
968            <action dev="asomov" type="update">
969                Keep Tag.equals(String) to simplify transition to Tag class (2010-01-08)
970            </action>
971            <action dev="asomov" type="update">
972                Refactor: introduce Tag instead of Tags. Nodes use Tag class instead of String (2010-01-05)
973            </action>
974            <action dev="asomov" type="fix" issue="42" due-to="Artem">
975                BaseConstructor shall give more flexibility to choose a constructor at runtime (2010-01-08)
976            </action>
977            <action dev="asomov" type="update">
978                Refactor: introduce TagTuple instead of String[] (2010-01-04)
979            </action>
980            <action dev="asomov" type="fix" issue="40" due-to="sitrious">
981                Ignore tags when they are compatible with the runtime class (2010-01-04)
982            </action>
983            <action dev="asomov" type="add">
984                Add example to ignore unknown tags (2009-12-08)
985            </action>
986            <action dev="asomov" type="add">
987                Add Ruby example (2009-12-08)
988            </action>
989            <action dev="asomov" type="update">
990                Do not omit the tag for JavaBean properties when the tag is explicitly defined (2009-12-08)
991            </action>
992            <action dev="asomov" type="fix" issue="38" due-to="gchpaco">
993                Fix ID format for numbers over 999 (2009-12-05)
994            </action>
995            <action dev="asomov" type="fix" issue="29" due-to="grignaak">
996                Allow separate option in DumperOptions for long strings (2009-11-16)
997            </action>
998            <action dev="asomov" type="add">
999                JavaBeanDumper: add possibility to define a custom Representer (2009-11-25)
1000            </action>
1001            <action dev="asomov" type="fix" issue="36">
1002                Introduce multi contructors (tag prefix). A family of tags may be processed
1003                by a single constructor (2009-11-25)
1004            </action>
1005            <action dev="asomov" type="update">
1006                Refactor BaseConstructor: simplify second step for recursive structures (2009-11-25)
1007            </action>
1008            <action dev="asomov" type="add">
1009                Add FilterPropertyToDumpTest to show how to filter JavaBean properties (2009-11-24)
1010            </action>
1011            <action dev="asomov" type="add">
1012                Add FilterClassesConstructorTest to show how to filter created classes (2009-11-16)
1013            </action>
1014            <action dev="asomov" type="update" due-to="Stefan">
1015                Improve JavaDoc (2009-11-12)
1016            </action>
1017            <action dev="asomov" type="add">
1018                Add Velocity example (2009-11-03)
1019            </action>
1020            <action dev="asomov" type="update">
1021                Refactor: rename Tuple to RecursiveTuple and hide it inside BaseConstructor (2009-11-03)
1022            </action>
1023        </release>
1024        <release version="1.5" date="2009-10-30" description="Improve usage of generic collections in JavaBeans">
1025            <action dev="asomov" type="fix" issue="27" due-to="Polyglot Maven team">
1026                Extend Resolver to support custom implicit types (2009-10-27)
1027            </action>
1028            <action dev="asomov" type="update">
1029                Performance improvement: use ArrayStack instead of Stack which extends Vector (2009-10-20)
1030            </action>
1031            <action dev="asomov" type="fix" issue="25" due-to="Benjamin Bentmann">
1032                Improve usage of generic collections: while type erase makes no difference between
1033                Class&lt; Foo&gt; and Class&lt; Bar&gt; at runtime, the information about generics is still
1034                accessible via reflection from Method/Field. (2009-10-19)
1035            </action>
1036            <action dev="asomov" type="update">
1037                Fix ConstructYamlObject: support recursive objects. Introduce 'resolved'
1038                property for Nodes. This property supposed to help to distinguish explicit tag
1039                from the resolved tag (2009-10-19)
1040            </action>
1041            <action dev="asomov" type="update">
1042                Refactor: use rootTag instead of rootType (for Class) in BaseConstructor. This is done to
1043                solve the priority problem: normally explicit tag has more priority then runtime class but
1044                for the root tag it is the other way around (2009-10-19)
1045            </action>
1046            <action dev="asomov" type="fix" issue="24" due-to="shrode">
1047                Line numbers reported in Exceptions are Zero based, should be 1 based (2009-10-12)
1048            </action>
1049            <action dev="asomov" type="fix" issue="21" due-to="ashwin.jayaprakash">
1050                Support arrays of reference types as JavaBean properties (2009-09-22)
1051            </action>
1052            <action dev="asomov" type="fix" issue="17" due-to="jcucurull">
1053                Respect root tag for sequences (2009-09-04)
1054            </action>
1055            <action dev="asomov" type="fix" issue="18" due-to="creiniger">
1056                SafeRepresenter respects custom tags for standard Java classes where standard tag has
1057                more then one Java implementation available (Long, List, Map, Date etc) (2009-09-03)
1058            </action>
1059            <action dev="asomov" type="add">
1060                Add possibility to define a custom Class Loader. (2009-09-01)
1061            </action>
1062            <action dev="asomov" type="fix">
1063                Fixed an obscure scanner error not reported when there is no line break at the end
1064                of the stream. The fix is imported from PyYAML 3.09 {ticket 118} (2009-08-31)
1065            </action>
1066            <action dev="asomov" type="fix" issue="16" due-to="infinity0x">
1067                Cache JavaBean class properties. Tests show that the loading has become a few percents faster (2009-08-31)
1068            </action>
1069            <action dev="asomov" type="add">
1070                Introduce ArrayStack to use push() and pop() instead of standard (and too verbose)
1071                'remove(size()-1)'  (2009-08-27)
1072            </action>
1073            <action dev="asomov" type="fix" issue="14" due-to="infinity0x">
1074                Fix: ArrayList is more efficient than LinkedList  (2009-08-26)
1075            </action>
1076        </release>
1077        <release version="1.4" date="2009-08-26" description="better support for loading immutable objects">
1078            <action dev="asomov" type="update">
1079                Apply Apache License Version 2.0 (2009-08-14)
1080            </action>
1081            <action dev="asomov" type="fix" issue="13" due-to="infinity0x">
1082                Provide javadocs link to Sun Java API (2009-08-10)
1083            </action>
1084            <action dev="asomov" type="add">
1085                Build 1.4 Release Candidate 1 (2009-08-07)
1086            </action>
1087            <action dev="asomov" type="add">
1088                Introduce Tags.getGlobalTagForClass() to simplify tag generation in custom constructors (2009-08-06)
1089            </action>
1090            <action dev="asomov" type="update">
1091                Refactor: introduce ImplicitTuple (2009-08-06)
1092            </action>
1093            <action dev="asomov" type="fix" issue="11" due-to="infinity0x">
1094                Fix: create a Java instance with the following priority to choose the class:
1095                Explicit tag -> Runtime class (defined in JavaBean) -> implicit tag  (2009-08-06)
1096            </action>
1097            <action dev="asomov" type="fix" issue="9" due-to="wwagner4">
1098                Fix: Bean with no property cannot be instantiated. This is implemented via better
1099                support for immutable objects. Custom Constructor may be used when there are more
1100                then 1 way to create an instance (2009-08-04)
1101            </action>
1102            <action dev="asomov" type="add">
1103                Deliver possibility to load immutable instances with no global tags. Reflection for
1104                constructor arguments is used to get the runtime classes (2009-08-04)
1105            </action>
1106            <action dev="asomov" type="update">
1107                Use more informative error message when a JavaBean property cannot
1108                be created (2009-08-02)
1109            </action>
1110            <action dev="asomov" type="update">
1111                Refactor: Constructor is rewritten. Do not overwrite methods from BaseConstructor.
1112                Instead introduce ConstructScalar, ConstructSequence, ConstructMapping (2009-07-31)
1113            </action>
1114            <action dev="asomov" type="update">
1115                Change Maven repository path: groupId='org.yaml', artifactId='snakeyaml' (2009-07-31)
1116            </action>
1117            <action dev="asomov" type="fix" issue="10" due-to="derrick.rice">
1118                Fix: dump omits JavaBean class name when used with an alias (2009-07-28)
1119            </action>
1120            <action dev="asomov" type="add">
1121                Generate sources and Javadoc (2009-07-27)
1122            </action>
1123            <action dev="asomov" type="update">
1124                Node does not have the value. It is delegated to the non-abstract classes (2009-07-27)
1125            </action>
1126            <action dev="asomov" type="add">
1127                Extends JavaBeanDumper to allow skipping global tags inside type-safe collections.
1128                Introduce method setMapTagForBean() (2009-07-22)
1129            </action>
1130            <action dev="asomov" type="add">
1131                Add ConstructEmptyBeanTest to test JavaBean construction with no
1132                properties in the YAML document(2009-07-22)
1133            </action>
1134            <action dev="asomov" type="remove">
1135                Refactor: redesign tag management for JavaBeans in Representer.
1136                Drop dynamic root tag concept (2009-07-22)
1137            </action>
1138            <action dev="asomov" type="remove">
1139                Remove unused TypeDescription in Representer (2009-07-21)
1140            </action>
1141            <action dev="asomov" type="update">
1142                Use NodeTuple instead of Node[] for mappings (2009-07-21)
1143            </action>
1144            <action dev="asomov" type="add">
1145                Introduce JavaBeanLoader and JavaBeanDumper. Deprecate JavaBeanParser (2009-07-21)
1146            </action>
1147            <action dev="asomov" type="fix" issue="8" due-to="Alan Gutierrez">
1148                Fix: Representer was keeping state between invocations (2009-07-21)
1149            </action>
1150        </release>
1151        <release version="1.3" date="2009-07-20" description="complete support for recursive objects">
1152            <action dev="asomov" type="fix" issue="6" due-to="infinity0x">
1153                Fix: values returned by System.identityHashCode() are not guaranteed to be unique (2009-07-14)
1154            </action>
1155            <action dev="asomov" type="add">
1156                Add a simple test for Java Generics (BirdTest). Unfortunately it shows that some JVM
1157                implementations do not recognise classes for JavaBean properties at runtime.
1158                It leads to unnecessary global tags. See http://code.google.com/p/snakeyaml/wiki/Documentation#Generics
1159                for details (2009-07-13)
1160            </action>
1161            <action dev="asomov" type="fix" issue="5" due-to="infinity0x">
1162                Fix: set the "cause" field for MarkedYAMLException (2009-07-10)
1163            </action>
1164            <action dev="maslovalex" type="fix" issue="1">
1165                Fix: Recursive objects are now fully supported (2009-07-09)
1166            </action>
1167            <action dev="asomov" type="add">
1168                Add support for BigDecimal as a JavaBean property (2009-07-07)
1169            </action>
1170            <action dev="asomov" type="update">
1171                Improve test coverage for Constructor. Allow construction of JavaBeans
1172                with only setter without the corresponding getter (2009-07-07)
1173            </action>
1174            <action dev="asomov" type="add">
1175                Add a test to check the proper report for IOException (2009-07-03)
1176            </action>
1177            <action dev="asomov" type="fix" issue="3" due-to="infinity0x">
1178                Fix: represent proper tags for JavaBeans when they are not the root of the YAML
1179                document but a member of a collection (2009-07-03)
1180            </action>
1181            <action dev="asomov" type="update">
1182                Refactor: run PMD and apply some of the recommendations (2009-06-18)
1183            </action>
1184            <action dev="asomov" type="add" issue="1">
1185                Create an issue for Recursive objects to be remembered (2009-06-08)
1186            </action>
1187            <action dev="asomov" type="update">
1188                Migrate project hosting from Assembla to Google code (2009-06-08)
1189            </action>
1190            <action dev="asomov" type="fix" due-to="Magne">
1191                Fix: null as a JavaBean property was not handled properly (2009-06-04)
1192            </action>
1193            <action dev="asomov" type="update">
1194                Validate changes.xml file (2009-05-25)
1195            </action>
1196            <action dev="asomov" type="fix" due-to="Magne">
1197                Fix ticket 40 in Assembla: getting an error when javabean contains java.sql.Timestamp fields (2009-05-25)
1198            </action>
1199        </release>
1200        <release version="1.2" date="2009-04-27" description="expose low-level API">
1201            <action dev="asomov" type="add">
1202                Add 'Yaml.parse()' method which return Events to support low level YAML processing (2009-04-20)
1203            </action>
1204            <action dev="asomov" type="add" due-to="Bob Jalex">
1205                Introduce LineBreak.getPlatformLineBreak (ticket 5 in Assembla) (2009-04-18)
1206            </action>
1207            <action dev="asomov" type="update" due-to="Bob Jalex">
1208                 Rename LineBreak.LINUX to LineBreak.UNIX (ticket 5 in Assembla) (2009-04-18)
1209            </action>
1210            <action dev="asomov" type="add">
1211                Add 'Yaml.compose()' methods which return Nodes to support YEdit (2009-04-17)
1212            </action>
1213            <action dev="asomov" type="update">
1214                Refactor: rename enums in DumperOptions to make the names consistent (2009-04-07)
1215            </action>
1216            <action dev="asomov" type="update">
1217                Refactor: use Character instead of char primitive for style in Emitter (2009-04-07)
1218            </action>
1219            <action dev="asomov" type="add">
1220                Add possibility to parse all scalars as Strings (2009-03-30)
1221            </action>
1222            <action dev="asomov" type="update">
1223                Merge changeset 347 from PyYAML (2009-03-30)
1224            </action>
1225            <action dev="asomov" type="fix">
1226                Respect DumperOptions with a custom Representer (2009-03-18)
1227            </action>
1228            <action dev="asomov" type="fix">
1229                Represent TAB as '\t' instead of '(9' in the error message (2009-03-17)
1230            </action>
1231        </release>
1232        <release version="1.1" date="2009-03-14" description="improve performance and test coverage">
1233            <action dev="asomov" type="add">
1234                Introduce JavaBeanParser (2009-03-14)
1235            </action>
1236            <action dev="asomov" type="add">
1237                Introduce DumperOptions.Version enum (2009-03-13)
1238            </action>
1239            <action dev="asomov" type="add">
1240                Introduce DumperOptions.LineBreak enum (2009-03-10)
1241            </action>
1242            <action dev="asomov" type="update">
1243                Use byte[] for binary type. (2009-03-09)
1244            </action>
1245            <action dev="asomov" type="update">
1246                Restore Regular Expressions in Resolver. Ragel gives only 5% performance increase.
1247                Fix a bug in Resolver with expanded regular expressions which caused the
1248                performance problem. (2009-03-06)
1249            </action>
1250            <action dev="asomov" type="add">
1251                Better Spring support: it is now possible to create a constructor with a String
1252                as the class name. (2009-03-05)
1253            </action>
1254            <action dev="asomov" type="update">
1255                Throw an exception when the same Loader or Dumper instance is shared between
1256                different Yaml instances. Because they are statefull it is not Thread-safe. (2009-03-05)
1257            </action>
1258            <action dev="asomov" type="add">
1259                Add possibility to set a meaningful name for Yaml instance to be shown in toString(). (2009-03-05)
1260            </action>
1261            <action dev="asomov" type="update">
1262                Refactor: declare classes which are not expected to be extended as final. (2009-03-04)
1263            </action>
1264            <action dev="asomov" type="update">
1265                Refactor: use 'final' keyword to identify immutable fields. (2009-03-04)
1266            </action>
1267            <action dev="asomov" type="update">
1268                Refactor: do not use 'final' keyword for local variables. (2009-03-04)
1269            </action>
1270            <action dev="asomov" type="fix">
1271                Fix: respect implicit resolvers with 'null' as a first character. (2009-03-02)
1272            </action>
1273            <action dev="asomov" type="update">
1274                Refactor: use Character instead of String as a key for implicit resolvers. (2009-03-02)
1275            </action>
1276            <action dev="asomov" type="add">
1277                Use Ragel instead of Regular Expressions for implicit types. (2009-03-02)
1278            </action>
1279            <action dev="asomov" type="fix" due-to="Christophe Desguez">
1280                Fix ticket #4 (in Assembla): java.sql.Date not handled. (2009-02-28)
1281            </action>
1282             <action dev="asomov" type="add">
1283                Introduce DumperOptions.DefaultFlowStyle enum (2009-02-24)
1284            </action>
1285            <action dev="asomov" type="add">
1286                Introduce DumperOptions.DefaultScalarStyle enum (2009-02-24)
1287            </action>
1288            <action dev="asomov" type="update">
1289                Refactor: use 'switch' with Enum instead of multiple 'if' statements to distinguish nodes (2009-02-19)
1290            </action>
1291            <action dev="asomov" type="update">
1292                Refactor: use Enum instead of String as NodeId (2009-02-19)
1293            </action>
1294        </release>
1295        <release version="1.0.1" date="2009-02-18" description="implement Enum support">
1296            <action dev="asomov" type="fix">
1297                Do not emit anchors for Enum (2009-02-18)
1298            </action>
1299            <action dev="asomov" type="fix">
1300                Enum as a JavaBean property (when the Enum class is implicitly defined) does
1301                not need tags for both loading and dumping (2009-02-17)
1302            </action>
1303            <action dev="asomov" type="fix">
1304                Enum is emitted as a scalar node (2009-02-17)
1305            </action>
1306            <action dev="asomov" type="fix" due-to="James Nissel">
1307                Enum is parsed as a scalar node or as a JavaBean property (2009-02-17)
1308            </action>
1309            <action dev="asomov" type="update">
1310                Refactor: for performance ScannerImpl.stalePossibleSimpleKeys() does not copy key Set (2009-02-10)
1311            </action>
1312            <action dev="asomov" type="update">
1313                By default allowUnicode=true. If it is necessary to escape Unicode use
1314                DumperOptions.setAllowUnicode(false) (2009-02-09)
1315            </action>
1316            <action dev="asomov" type="add">
1317                Implement allowUnicode setting (to escape Unicode characters on non UTF-8 terminals) (2009-02-09)
1318            </action>
1319            <action dev="asomov" type="add">
1320                Add possibility to specify tags for dumping (2009-02-09)
1321            </action>
1322            <action dev="asomov" type="update">
1323                Rename getExpRoot to getExplicitRoot to conform with
1324                standard JavaBean naming convention (2009-02-09)
1325            </action>
1326            <action dev="asomov" type="update">
1327                Rename explictStart and explicitEnd to standard setters to conform with
1328                standard JavaBean naming convention (2009-02-09)
1329            </action>
1330            <action dev="asomov" type="fix">
1331                Add possibility to specify a line break (2009-02-09)
1332            </action>
1333        </release>
1334        <release version="1.0" date="2009-02-06" description="final 1.0 release">
1335            <action dev="asomov" type="add">
1336                Deliver first release (2009-02-06)
1337            </action>
1338        </release>
1339    </body>
1340</document>
1341