Skip to content

Jackson Release 2.10

Tatu Saloranta edited this page Dec 8, 2018 · 83 revisions

Version 2.10 is under development, as of late-October 2018. It will potentially be the last 2.x minor release.

Changes, compatibility

No changes planned so far.

New Modules, status changes

Datatype: Eclipse-collection

First official version of the jackson-datatype-eclipse-collections (for Eclipse Collections was introduced in 2.10 (preview version included since 2.9.5)

Changes: compatibility

None

Major features of 2.10

Much of additional functionality mirrors changes that 3.0 developments are making, in form that will get some of the benefits, and should ease migration to 3.0.

Builder-based construction of streaming factories and ObjectMapper

Although full moved to immutable factories, mappers, by (only) using builder-style construction will only be included in 3.0, 2.10 does introduce builder-pattern itself (but does not force strict immutability beyond what 2.x API supports). The main benefits of this addition are:

  • Easier migration to 3.0 since change to builder-based construction can be made in 2.10 already
  • More convenient configurability; ability to expose format-specific configuration beyond simple on/off features

Example of builder style:

// TO BE WRITTEN

Separate of general / JSON-specific features


Change list

Changes, core

  • core#433: Add Builder pattern for creating configured Stream factories

  • core#467: Create JsonReadFeature to move JSON-specific JsonParser.Features to

  • core#480: SerializableString value can not directly render to Writer (requested by Philippe M)

  • core#481: Create JsonWriteFeature to move JSON-specific JsonGenerator.Features to

  • core#484: Implement UTF8JsonGenerator.writeRawValue(SerializableString) (and writeRaw(..)) more efficiently

  • core#495: Create StreamReadFeature to move non-json specific JsonParser.Features to

  • core#496: Create StreamWriteFeature to take over non-json-specific JsonGenerator.Features

  • databind/#1954: Add Builder pattern for creating configured ObjectMapper instances
    • also add JsonMapper as explicit type, through which builders are created and that exposes json-specific configuration
  • databind/#2059 Remove final modifier for TypeFactory (requested by Thibaut R)
  • databind/#2115: Support naive deserialization of Serializable values as "untyped", same as java.lang.Object
  • databind/#2116: Make NumberSerializers.Base public and its inherited classes not final (requested by Édouard M)
  • databind/#2126: DeserializationContext.instantiationException() throws InvalidDefinitionException
  • databind/#2153: Add JsonMapper to replace generic ObjectMapper usage

Changes, data formats

Changes, datatypes

  • #34: (guava) Allow use of Guava versions up to 25 (from 22)
  • #37: (eclipse-collections) Implement pair deserialization

Changes, other modules

Clone this wiki locally