\u001B[1mSYNOPSIS\u001B[0m
    ${project.description}

    Original Maven URL:
        \u001B[33mmvn:${pkgGroupId}/${pkgArtifactId}/${pkgVersion}\u001B[0m

\u001B[1mDESCRIPTION\u001B[0m
    XStream is a simple library to serialize objects to XML and back again.

        * Ease of use. A high level facade is supplied that simplifies common use cases.
        * No mappings required. Most objects can be serialized without need for specifying mappings.
        * Performance. Speed and low memory footprint are a crucial part of the design, making it suitable for large
          object graphs or systems with high message throughput.
        * Clean XML. No information is duplicated that can be obtained via reflection. This results in XML that is
          easier to read for humans and more compact than native Java serialization.
        * Requires no modifications to objects. Serializes internal fields, including private and final. Supports
          non-public and inner classes. Classes are not required to have default constructor.
        * Full object graph support. Duplicate references encountered in the object-model will be maintained. Supports
          circular references.
        * Integrates with other XML APIs. By implementing an interface, XStream can serialize directly to/from any tree
          structure (not just XML).
        * Customizable conversion strategies. Strategies can be registered allowing customization of how particular
          types are represented as XML.
        * Error messages. When an exception occurs due to malformed XML, detailed diagnostics are provided to help
          isolate and fix the problem.
        * Alternative output format. The modular design allows other output formats. XStream ships currently with JSON
          support and morphing.

\u001B[1mSEE ALSO\u001B[0m
    \u001B[36mhttp://xstream.codehaus.org/\u001B[0m
