-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Jackson Release 2.10
Version 2.10 is under development, as of late-October 2018. It will potentially be the last 2.x minor release.
No changes planned so far.
First official version of the jackson-datatype-eclipse-collections (for Eclipse Collections was introduced in 2.10 (preview version included since 2.9.5)
None
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.
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 WRITTENAnother change geared towards 3.0 compatibility is the creation of 4 new format feature types, to replace 2 existing features (JsonParser.Feature, JsonGenerator.Feature):
-
StreamReadFeature: format-agnostic (general) features for stream readers (parsers) -
StreamWriteFeature: format-agnostic (general) features for stream writers (generators) -
JsonReadFeature: JSON-specific stream reader (parser) features -
JsonWriteFeature: JSON-specific stream writer (generator) features
For 2.10 these features will act as aliases to matching JsonParser.Features and JsonGenerator.Features: in 3.0 they will be the only stream-level features (JsonParser.Features, JsonGenerator.Feature being removed)
Example of using new configuration features:
// TO BE WRITTEN- core#433: Add Builder pattern for creating configured Stream factories
-
core#467: Create
JsonReadFeatureto move JSON-specificJsonParser.Features to -
core#480:
SerializableStringvalue can not directly render to Writer (requested by Philippe M) -
core#481: Create
JsonWriteFeatureto move JSON-specificJsonGenerator.Features to -
core#484: Implement
UTF8JsonGenerator.writeRawValue(SerializableString)(andwriteRaw(..)) more efficiently -
core#495: Create
StreamReadFeatureto move non-json specificJsonParser.Features to -
core#496: Create
StreamWriteFeatureto take over non-json-specificJsonGenerator.Features
-
#1954: Add Builder pattern for creating configured
ObjectMapperinstances- also add
JsonMapperas explicit type, through which builders are created and that exposes json-specific configuration
- also add
-
#2059 Remove
finalmodifier forTypeFactory(requested by Thibaut R) -
#2115: Support naive deserialization of
Serializablevalues as "untyped", same asjava.lang.Object - #2116: Make NumberSerializers.Base public and its inherited classes not final
-
#2126:
DeserializationContext.instantiationException()throwsInvalidDefinitionException -
#2153: Add
JsonMapperto replace genericObjectMapperusage -
#2187: Make
JsonNode.toString()use sharedObjectMapperto produce valid json -
#2204: Add
JsonNode.isEmpty()as convenience alias -
#2211: Change of behavior (2.8 -> 2.9) with
ObjectMapper.readTree(input)with no content -
#2220: Force serialization always for
convertValue(); avoid short-cuts -
#2223: Add
missingNode()method inJsonNodeFactory -
#2230:
WRITE_BIGDECIMAL_AS_PLAINis ignored if@JsonFormatis used -
#2236: Type id not provided on
Double.NaN,Infinitywith@JsonTypeInfo -
#2241: Add
JsonPropertyNamingStrategy.LOWER_DOT_CASEfor dot-delimited names
- #34: (guava) Allow use of Guava versions up to 25 (from 22)
- #37: (eclipse-collections) Implement pair deserialization
-
#125: Ignore missing entities when lazy loading is enabled, if newly added
Feature.WRITE_MISSING_ENTITIES_AS_NULLis enabled