From: Andrey Somov <py4fun@gmail.com>
To: yaml-core@lists.sourceforge.net
Subject: [ANN] SnakeYAML-1.4: better support for immutable objects

=============================
 Announcing SnakeYAML-1.4
=============================

A new release of SnakeYAML is now available:

    http://code.google.com/p/snakeyaml/

This release delivers better support for immutable objects, a minor improvement to process JavaBeans 
as well as other minor changes and bug fixes.

Changes
=======
 * Apply Apache License Version 2.0
 * better support for immutable objects
 * Introduce JavaBeanLoader and JavaBeanDumper. Deprecate JavaBeanParser
 * Change Maven repository path: groupId=org.yaml, artifactId=snakeyaml

Resources
=========

SnakeYAML homepage: http://code.google.com/p/snakeyaml/
SnakeYAML documentation: http://code.google.com/p/snakeyaml/wiki/Documentation

JAR package: http://snakeyamlrepo.appspot.com/repository/org/yaml/snakeyaml/1.4/snakeyaml-1.4.jar
Reports: http://snakeyamlrepo.appspot.com/

SnakeYAML Mercurial repository: http://snakeyaml.googlecode.com/hg/
Submit a bug report: http://code.google.com/p/snakeyaml/issues/entry

YAML homepage: http://yaml.org/
YAML-core mailing list: http://lists.sourceforge.net/lists/listinfo/yaml-core


About SnakeYAML
============

YAML is a data serialization format designed for human readability and
interaction with scripting languages.  SnakeYAML is a YAML parser and
emitter for Java 5.

SnakeYAML features a complete YAML 1.1 parser.
SnakeYAML is applicable for a broad range of tasks from complex
configuration files to object serialization and persistence.


Copyright
=========

SnakeYAML is developed by Andrey Somov <py4fun@gmail.com>.

SnakeYAML is released under the MIT license.
