-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Jackson Release 2.6
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.
Branch is closed for all new releases: the last micro-patches will be released by end of 2020, after which no releases will be made.
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 was officially closed for full releases, 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_UNWRAPPEDon 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
@Documentedfor@JsonPropertyDescription
-
#137: Allow filtering content read via
JsonParserby 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
JsonGeneratorby 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
FormatFeatureextension, 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
ClassLoaderto use, viaTypeFactory -
#649: Make
BeanDeserializeruse newparser.nextFieldName()and.hasTokenId()methods -
#664: Add
DeserializationFeature.ACCEPT_FLOAT_AS_INTto prevent coercion of floating point numbers intint/long/Integer/Long -
#677: Specifying
Enumvalue 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
RawValuehelper 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.requiredfor 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_IDto 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 areStrings -
#811: Add new option,
JsonInclude.Include.NON_ABSENT(to support exclusion of JDK8/Guava Optionals) -
#813: Add support for new property of
@JsonProperty.accessto support read-only/write-only use cases -
#820: Add new method for
ObjectReader, to bind from JSON Pointer position -
#824: Contextual
TimeZonechanges don't take effect wrtjava.util.Date,java.util.Calendarserialization - #827: Fix for polymorphic custom map key serializer
-
#840: Change semantics of
@JsonPropertyOrder(alphabetic)to only counttruevalue -
#848: Custom serializer not used if POJO has
@JsonValue -
#849: Possible problem with
NON_EMPTYexclusion,ints,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,
@JsonPropertyOrderlosing alphabetic ordering - #83: Serializing List with null values leads to corrupt CSV
The very first official release!
-
#35: Add
YAMLGenerator.Feature.SPLIT_LINESto allow controlling whetherSnakeYAMLsplits longer text blocks with line breaks or not- Also: upgrade to SnakeYAML 1.15
-
#64:
@JsonUnwrappedannotation 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
ImmutableSetMultimaps -
#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
configureAbsentsAsNullsconfig 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
@JsonFormatforInstant -
#30: Make
ZonedDateTimeserializer 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/servicesmetadata 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
readonlyproperty 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-)configuredObjectWriterinstead ofObjectMapperwhich 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