== Jackson Json-processor ==

This is the Jackson Json-processor package. Project home page can be found
from:

http://jackson.codehaus.org/

which also has links to support forums such as mailing lists, as well
as links to obtain source code and binary artifacts.

=== Functionality ===

Jackson implements functionality for:

* Reading (parsing) and writing (generation) of Json content
* Data-binding (data-mapping, [de-]serialization) support to
  allow for converting between Json and Java objects
* Support for converting to/from other data formats and access APIs,
  to improve interoperability.

=== Requirements ===

Jackson can be used on standard J2SE 1.5 platform. Some effort is made
to support other non-standard platforms as well.

=== Licensing ===

Jackson can be used for any purpose, but to (re)distribute it,  distributors
(such as libraries and frameworks that use Jackson) will need to
choose which License they want to apply to distribution, and to use appropriate
jars that enclose license documentation.
No work needed beyond choosing the appropriate jar(s).

Currently two Open Source licenses are available for use:

* Apache License 2.0 (AL 2.0)
* Lesser/Library General Public License (LGPL 2.1)

These licenses have proven adequate to cover all current use cases.

=== Contributing ===

All code contributions are to be made according the
Contributor Agreement document found from under DEV/ directory within source
repository and downloadable source archives.

CA is needed to allow Jackson project to publish under different Licenses,
and to indicate good faith effort to comply with copyright rules governing
use and distribution of the source code (and its equivalents as outlined
in the agreement) involved. This is also useful for (re)distributors to
reduce their need to independently verify origin of source code.
