Jackson Release: 2.1
Version 2.1 was released in October 2012. It is a "minor" relese following 2.0, meaning that it adds new functionality but be backwards compatible with earlier 2.0 release.
Patches
Here are links to patch updates made after initial release:
Implemented, major
- Incremental/Streaming reading/writing of binary values:
Issue-15: Add readBinaryValue() method in JsonParser
Issue-16: add writeBinary(InputStream, int) method in JsonGenerator
and same for Smile
- note: not implemented for other data formats -- for XML, the issue is that streaming API is not fully usable outside of data-binding, so although technically access could be added, it would not be very useful.
Serialization "styles" via extended support for @JsonFormat.shape annotations:
Issue-24: Enum values can be serialized as JSON Object; or configure on per-field basis as number (index) or String (name)
Issue-29: POJOs may be serialized as @JsonFormat.format=ARRAY (and deserialized back): this can significantly reduce JSON size, reduce processing time (faster, smaller!)
Issue-40: java.util.Collections can be serialized to (and deserialized from) JSON Object.
Issue-15: Format auto-detection via ObjectReader, added withFormatDetection(...) methods
Implemented, minor
- Convenience:
JACKSON-758: Remove IOException from 'throws' clause of ObjectMapper.writeValueAsString() and .writeValueAsBytes() (ditto for ObjectWriter)
- Configurability:
Issue-28: Add ObjectMapper.copy(), to create non-linked mapper with same configuration settings
Issue-42: Allow specifying default Base64Variant to use with Base64-encoded data
Issue-45: Add @JsonNaming annotation to override naming strategy on per-POJO basis.
Issue-26 (core): Make it possible to suppress the "separating space" when writing multiple objects with the same json generator
- Common use case: separate root values by linefeed, not space.
- Performance:
Issue-30: ObjectReader and ObjectWriter pre-fetch root (de)serializer if possible, reuse for further use.
- Other:
Issue-32: Add new Exception type, IllegalFormatException, to pass more information on errors caused by invalid or incompatible serialized values (usually Scalar)
JACKSON-850: Allow use of zero-arg factory methods as "default creator"
- Extensibility
Issue-87: New serializer/deserializer base classes -- StdDelegatingSerializer, StdDelegatingDeserializer -- to simplify creation of two-phase (or "delegating") handlers, in which a user-defined Converter is used to convert between main Java type and delegate type, and let Jackson use default handlers for "delegate" type.
Related features
In addition to changes in core modules, following add-on modules were significantly improved:
XML dataformat module: Support for "unwrapped" Lists, extensive testing with large(r) JAXB documents, associated fixes
JAXB annotations module: Improvements to handling of identity annotations, renaming, wrapping
New module JAX-RS Smile provider: to make use of Smile format easier, there is now specific provider for it along with JSON and XML.
Deferred
Original plans were to included additional functionality in following areas:
Support for simple 'required' validation (as post-processing). Due to complexity of BeanDeserializer, this was postponed to a later release.
- Better support for overloaded methods
- Fixes to generic types for root value handling
