-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Jackson Release 2.6
Tatu Saloranta edited this page Oct 16, 2019
·
40 revisions
Version 2.6.0 was released July 17th, 2015. It is a "minor" release following 2.5, meaning that it adds new functionality but be backwards compatible with earlier 2.x releases.
This version introduced 2 new FasterXML-maintained standard modules:
- Protobuf data format module for handling Protocol Buffers encoded data
-
OSGi module for injecting helper objects (via
@JacksonInject
) using OSGi registry
Beyond initial 2.6.0 (described here), following patch releases have been made or are planned:
- 2.6.1 (09-Aug-2015)
- 2.6.2 (15-Sep-2015)
- 2.6.3 (12-Oct-2015)
- 2.6.4 (07-Dec-2015)
- 2.6.5 (19-Jan-2016)
- 2.6.6 (05-Apr-2016)
- 2.6.7 (05-Jun-2016)
At this point, branch is officially closed, but there are further micro-patches of
No changes to JDK requirements or baseline requirements/supports for external platforms (like Android or Scala versions)
-
#43: Add
@JsonFormat(with=Feature.xxx)
to support things likeDeserializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED
on per-property basis. -
#58: Add new properties for
@JsonIgnoreProperties
, "allowGetters", "allowSetters" -
#60: Add new value type,
OptBoolean
, for "optional booleans", to support proper handling and usage of default values, not just explicit true/false. -
#61: Add new property,
@JsonProperty.access
(and matching enum) to support read-only/write-only properties -
#64: Add
@Documented
for@JsonPropertyDescription
-
#137: Allow filtering content read via
JsonParser
by specifyingJsonPointer
; uses new classcom.fasterxml.jackson.core.filter.FilteringParserDelegate
(and related,TokenFilter
) -
#177: Add a check so
JsonGenerator.writeString()
won't work ifwriteFieldName()
expected. -
#182: Inconsistent
TextBuffer.getTextBuffer()
behavior -
#185: Allow filtering content written via
JsonGenerator
by specifyingJsonPointer
; uses new classcom.fasterxml.jackson.core.filter.FilteringGeneratorDelegate
(and related,TokenFilter
) -
#188:
JsonParser.getValueAsString()
should return field name forJsonToken.FIELD_NAME
, notnull
-
#189: Add
JsonFactory.Feature.USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING
(default: true), which may be disabled to prevent use of ThreadLocal-based buffer recyling. -
#195: Add
JsonGenerator.getOutputBuffered()
to find out amount of content buffered, not yet flushed. -
#196: Add support for
FormatFeature
extension, for format-specifc Enum-backed parser/generator options - Other:
- Minor improvement to construction of "default PrettyPrinter": now overridable by data format modules
- Implement a new yet more optimized symbol table for byte-backed parsers
- Add
JsonParser.Feature.IGNORE_UNDEFINED
, useful for data formats like protobuf
- #77: Allow injection of 'transient' fields
-
#95: Allow read-only properties with
@JsonIgnoreProperties(allowGetters=true)
-
#296: Serialization of transient fields with public getters (add
MapperFeature.PROPAGATE_TRANSIENT_MARKER
) - #312: Support Type Id mappings where two ids map to same Class
-
#348:
ObjectMapper.valueToTree()
does not work with@JsonRawValue
-
#504: Add
DeserializationFeature.USE_LONG_FOR_INTS
-
#624: Allow setting external
ClassLoader
to use, viaTypeFactory
-
#649: Make
BeanDeserializer
use newparser.nextFieldName()
and.hasTokenId()
methods -
#664: Add
DeserializationFeature.ACCEPT_FLOAT_AS_INT
to prevent coercion of floating point numbers intint
/long
/Integer
/Long
-
#677: Specifying
Enum
value serialization using@JsonProperty
- #688: Provide a means for an ObjectMapper to discover mixin annotation classes on demand
-
#689: Add
ObjectMapper.setDefaultPrettyPrinter(PrettyPrinter)
-
#696: Copy constructor does not preserve
_injectableValues
-
#698: Add support for referential types (
ReferenceType
) - #700: Cannot Change Default Abstract Type Mapper from LinkedHashMap
- #725: Auto-detect multi-argument constructor with implicit names if it is the only visible creator
-
#727: Improve
ObjectWriter.forType()
to avoid forcing base type for container types -
#734: Add basic error-recovery for
ObjectReader.readValues()
-
#737: Add support for writing raw values in
TokenBuffer
-
#740: Ensure proper
null
(as empty) handling forAtomicReference
-
#743: Add
RawValue
helper type, for piping raw values throughTokenBuffer
-
#756: Disabling SerializationFeature.FAIL_ON_EMPTY_BEANS does not affect
canSerialize()
-
#762: Add
ObjectWriter.withoutRootName()
,ObjectReader.withoutRootName()
- #777: Allow missing build method if its name is empty ("")
-
#781: Support handling of
@JsonProperty.required
for Creator methods -
#787: Add
ObjectMapper setFilterProvider(FilterProvider)
to allow chaining -
#790: Add
JsonNode.equals(Comparator<JsonNode>, JsonNode)
to support configurable/external equality comparison -
#794: Add
SerializationFeature.WRITE_DATES_WITH_ZONE_ID
to allow inclusion/exclusion of timezone id for date/time values (as opposed to timezone offset) - #795: Converter annotation not honored for abstract types
-
#810: Force value coercion for
java.util.Properties
, so that values areString
s -
#811: Add new option,
JsonInclude.Include.NON_ABSENT
(to support exclusion of JDK8/Guava Optionals) -
#813: Add support for new property of
@JsonProperty.access
to support read-only/write-only use cases -
#820: Add new method for
ObjectReader
, to bind from JSON Pointer position -
#824: Contextual
TimeZone
changes don't take effect wrtjava.util.Date
,java.util.Calendar
serialization - #827: Fix for polymorphic custom map key serializer
-
#840: Change semantics of
@JsonPropertyOrder(alphabetic)
to only counttrue
value -
#848: Custom serializer not used if POJO has
@JsonValue
-
#849: Possible problem with
NON_EMPTY
exclusion,int
s,Strings
- #868: Annotations are lost in the case of duplicate methods
- #72: Recognize the configured "null value" (String) also in reader-infrastructure.
-
#74: Problems with ordering,
@JsonPropertyOrder
losing alphabetic ordering - #83: Serializing List with null values leads to corrupt CSV
The very first official release!
-
#35: Add
YAMLGenerator.Feature.SPLIT_LINES
to allow controlling whetherSnakeYAML
splits longer text blocks with line breaks or not- Also: upgrade to SnakeYAML 1.15
-
#64:
@JsonUnwrapped
annotation is ignored when a field is anOptional
-
#66: Add
GuavaModule.configureAbsentsAsNulls(boolean)
to change whetherOptional.absent()
is to be handled same as Java null during serialization (default: true) or not. -
#67: Support deserializing
ImmutableSetMultimap
s -
#68: Add support for
JsonInclude.Include.NON_ABSENT
, to compensate for #66 - #70: Change OSGi manifest entries to import guava 15.0 or greater
-
#74: Multimap serializer ignores
_valueTypeSerializer
- #67: Provide support for Hibernate 5.x (hibernate5 maven sub-module; Hibernate5Module Jackson module)
- Update hppc dependency to 0.7.1
- NOTE! Due to HPPC API incompatibilities, this means that module can NOT be used with HPPC versions earlier than 0.7.0.
- Minimum JDK version now 1.7, as per minimum by HPPC
- #8: JDK8 module should respect JsonInclude.Include.NON_ABSENT
-
#11: Add
configureAbsentsAsNulls
config setting, for better compatibility with Guava module
- #49: testDateMidnightSerWithTypeInfo test dependent on $TZ
- #58: Support timezone configuration for Interval deserializer
- #62: Allow use of numbers-as-Strings for LocalDate (in array)
-
#64: Support
@JsonFormat(pattern=...)
for deserialization -
#66: Support
SerializationFeature.WRITE_DATES_WITH_ZONE_ID
-
#68: TimeZone in DeserializationContext is ignored with
SerializationFeature.WRITE_DATES_WITH_ZONE_ID
JSR-310 (aka Java8 Dates)
- #18: Support serializing and deserializing Maps with jsr310 types as keys
- #26: ISO strings with time-component cause exception when deserializing to LocalDate
-
#29: Add support for
@JsonFormat
forInstant
-
#30: Make
ZonedDateTime
serializer supportSerializationFeature.WRITE_DATES_WITH_ZONE_ID
-
#24:
String
/byte[]
composers can not write POJOs (ObjectCodec not linked) - Other
- Minor performance optimizations (+10-20% throughput), using new jackson-core 2.6 methods for reading, writing
-
#39: Build alternate jars with qualifier "no-metainf-services", which do NOT include
META-INF/services
metadata for auto-registration
- #46: Log-warning "Disabling Afterburner deserialization for type" using wrong logger-name
- #53: Include checksum in generated class names (to resolve #52)
- #53: Add support to oneOf
- #57: Enum types should generate a schema that includes the possible enum values
-
#60: Add
readonly
property toJsonSchema
- #67: Unable to deserialize (extended/custom) Schema
- #69: Add support for @Pattern annotations in String schemas
- Added
JsonSchemaGenerator(ObjectWriter)
to allow use of (re-)configuredObjectWriter
instead ofObjectMapper
which can not be configured.
- #21: Change default package used for materialized classes to reflect Jackson 2.x
The very first official release!
Parameter Names (Java 8 parameter names)
- #21: Unable to associate parameter name with single non-annotated constructor argument