blob: 68d2115c364f30e251e5b16257574f11dfb70698 [file] [log] [blame]
Version: 2.2.0 (xx-xxx-xxxx)
New minor version.
Fixes:
* [Issue#118]: JsonTypeInfo.as.EXTERNAL_PROPERTY not working correctly
with missing type id, scalar types
* [Issue#144]: MissingNode.isValueNode() should return 'false'
(reported by 'fge@github')
* [Issue#146]: Creator properties were not being renamed as expected
(contributed by Christoper C)
Improvements:
* [Issue#116]: JavaType implements `java.lang.reflect.Type` (as does `TypeReference`)
* [Issue#147]: Defer reporting of problems with missing creator parameters
(contributed by Christoper C)
* [Issue#161]: Add deserializer for java.util.concurrent.ArrayBlockingQueue
New features:
* [Issue#120]: Extend BeanDeserializerModifier to work with non-POJO deserializers
* [Issue#121]: Extend BeanSerializerModifier to work with non-POJO serializers
* [Issue#140]: Add 'SerializationFeature.WRITE_BIGDECIMAL_AS_PLAIN' to allow forcing
of non-scientific notation when serializing BigDecimals.
(suggested by phedny@github)
* [Issue#148]: Add 'DeserializationFeature.FAIL_ON_INVALID_SUBTYPE`, which allows mapping
entries with missing or invalid type id into null references (instead of failing).
Also allows use of '@JsonTypeInfo.defaultImpl = NoClass.class' as alternative.
* [Issue#159]: Add more accessors in 'MappingIterator': getParser(), getParserSchema(),
readAll()
(suggested by Tom D)
Other:
* [Issue#126]: Update JDK baseline to 1.6
* API under 'com.fasterxml.jackson.databind.jsonFormatVisitors' changed significantly
based on experiences with external JSON Schema generator.
* Version information accessed via code-generated access class, instead of reading
VERSION.txt
------------------------------------------------------------------------
=== History: ===
------------------------------------------------------------------------
2.1.1 (11-Nov-2012)
Fixes:
* [JACKSON-875]: Enum values not found if Feature.USE_ANNOTATIONS disabled
(reported by Laurent P)
* [Issue#93]: ObjectNode.setAll() broken; would not add anything for
empty ObjectNodes.
(reported by Francis G)
* Making things implement java.io.Serializable:
- Issues: #94, #99, #100, #102
(reported by Sean B)
* [Issue#96]: Problem with JsonTypeInfo.As.EXTERNAL_PROPERTY, defaultImpl
(reported by Adva11@github)
2.1.0 (08-Oct-2012)
New minor version for 2.x series. Major improvements in multiple areas,
including:
- Dataformat auto-detection
- More `@JsonFormat.shape` variant to serialize Collections as
JSON Objects, POJOs as JSON Arrays (csv-like).
- Much more configuration accessible via ObjectReader, ObjectWriter
- New mechanism for JSON Schema generation, other uses (in future)
Fixes:
* [JACKSON-830]/[Issue#19]: Change OSGi bundle name to be fully-qualified
* ]JACKSON-847]: Make @JsonIdentityInfo work with property-based creator
* [JACKSON-851]: State corruption with ObjectWriter, DefaultPrettyPrinter
(reported by Duncan A)
* [Issue#75]: Too aggressive KeySerializer caching
* Minor fix wrt [Issue#11], coercion needed extra checks
Improvements:
* [JACKSON-758]: Remove 'IOException' from throws clauses of "writeValueAsString"
and "writeValueAsBytes" of ObjectMapper/ObjectWriter
(suggested by G-T Chen)
* [JACKSON-839]: Allow "upgrade" of integer number types for
UntypedObjectDeserializer, even with default typing enabled.
* [JACKSON-850]: Allow use of zero-arg factory methods as "default creator"
(suggested by Razvan D)
* [Issue#9]: Implement 'required' JSON Schema attribute for bean properties
* [Issue#20]: Add new exception type, InvalidFormatException (sub-type of
JsonMappingException) to indicate data format problems
(suggested by HolySamosa@github)
* [Issue#30]: ObjectReader and ObjectWriter now try to pre-fetch root
(de)serializer if possible; minor performance improvement (2% for small POJOs).
* [Issue#33]: Simplified/clarified definition of 'ObjectReader.readValues()';
minor change in behavior for JSON Array "wrapped" sequences
* [Issue#60]: Add 'JsonNode.hasNonNull(...)' method(s)
(suggested by Jeff S on mailing list)
* [Issue#64]: Add new "standard" PropertyNamingStrategy, PascalCaseStrategy
(PropertyNamingStrategy.PASCAL_CASE_TO_CAMEL_CASE)
(contributed by Sean B)
* [Issue#65]: Add getters to `ObjectMapper`, DeserializationContext/-Factory.
(contributed by Dmitry K)
* [Issue#69]: Add `PropertyName` abstraction, new methods in AnnotationIntrospector
* [Issue#80]: Make `DecimalNode` normalize input, to make "1.0" and "1.00"equal
(reported by fge@github)
New features:
* [Issue#15]: Support data format auto-detection via ObjectReader (added
'withFormatDetection(...)' fluent factories)
* [Issue#21]: Add 'ObjectNode.set(...)' method (and related) to improve
chaining, semantic consistency of Tree Model API
(suggested by fge@Github)
* [Issue#22]: Add 'ObjectMapper.setAnnotationIntrospectors()' which allows
defining different introspectors for serialization, deserialization
* [Issue#24]: Allow serialization of Enums as JSON Objects
(suggested by rveloso@github)
* [Issue#28]: Add 'ObjectMapper.copy()', to create non-linked copy of
mapper, with same configuration settings
* [Issue#29]: Allow serializing, deserializing POJOs as JSON Arrays
by using `@JsonFormat(shape=Shape.ARRAY)`
* [Issue#40]: Allow serialization of Collections as JSON Objects
(and deserialization from)
(suggested by 'rveloso@github')
* [Issue#42]: Allow specifying Base64 variant to use for Base64-encoded data
using ObjectReader.with(Base64Variant), ObjectWriter.with(Base64Variant).
(suggested by 'mpfau@github')
* [Issue#45]: Add '@JsonNaming' annotation to define per-class PropertyNamingStrategy
(suggested by Mark W)
* [Pull#58]: Make 'MappingIterator' implement 'Closable'
(contributed by Pascal G)
* [Issue#72]: Add 'MapperFeature.USE_WRAPPER_NAME_AS_PROPERTY_NAME' to use
wrapper name annotations for renaming properties
* [Issue#87]: Add 'StdDelegatingSerializer', 'StdDelegatingDeserializer' to
simplify writing of two-step handlers
* (issue #4 of jackson-annotations): Add `@JsonIdentityReference(alwaysAsId=true)`
to force ALL references to an object written as Object Id, even the first one.
* Added 'ObjectReader#withHandler' to allow for reconfiguring deserialization
problem handler
(suggested by 'electricmonk')
Other changes:
* New variant of AnnotationIntrospector.getFormat(), to support class
annotations
* It is now possible to serialize instances of plain old Object, iff
'FAIL_ON_EMPTY_BEANS' is disabled.
* Trying to remove reference to "JSON" in datatype conversion errors
(since databinding is format-agnostic)
INCOMPATIBILITIES: (rats!)
* Note that [Issue#33] (see above) is, technically speaking, backwards
imcompatible change. It is estimated that it should NOT affect most
users, as changes are to edge cases (and undocumented ones at that).
However, it can potentially cause problems with upgrade.
* Implementation of `JsonFormatVisitable` resulting in 2 new methods
being added in `BeanPropertyFilter` interface -- this is unfortunate,
but was required to support full traversability.
2.0.4 (26-Jun-2012)
* [Issue#6]: element count for PrettyPrinter, endObject wrong
(reported by "thebluemountain")
* [JACKSON-838]: Utf8StreamParser._reportInvalidToken() skips letters
from reported token name
(reported by Lóránt Pintér)
* [JACKSON-841] Data is doubled in SegmentedStringWriter output
(reported by Scott S)
* [JACKSON-842] ArrayIndexOutOfBoundsException when skipping C-style comments
(reported by Sebastien R)
2.0.3: no version 2.0.3 released -- only used for extension modules
2.0.2 [14-May-2012]
Fixes:
* [Issue#14]: Annotations were not included from parent classes of
mix-in classes
(reported by @guillaup)
* [JACKSON-824]: Combination of JSON Views, ObjectMapper.readerForUpdating()
was not working
(reported by Nir S)
(and all fixes from 1.9.7)
Improvements:
* [Issue#11]: Improve ObjectMapper.convertValue()/.treeToValue() to use
cast if possible
2.0.1 [23-Apr-2012]
Fixes:
* [JACKSON-827] Ensure core packages work on JDK 1.5
(reported by Pascal g)
* [JACKSON-829] Custom serializers not working for List<String> properties,
@JsonSerialize(contentUsing)
(reported by James R)
Improvements:
* [Issue#5]: Add support for maps with java.util.Locale keys to the set of
StdKeyDeserializers
(contributed by Ryan G)
2.0.0 [25-Mar-2012]
Fixes:
* [JACKSON-368]: Problems with managed references, abstract types
* [JACKSON-711]: Delegating @JsonCreator did not work with Injectable values
* [JACKSON-798]: Problem with external type id, creators
(reported by Casey L)
(and all fixes up until and including 1.9.6)
Improvements:
* [JACKSON-546]: Indicate end-of-input with JsonMappingException instead
of EOFException, when there is no parsing exception
* [JACKSON-664]: Reduce overhead of type resolution by adding caching
in TypeFactory
* [JACKSON-690]: Pass DeserializationContext through ValueInstantiator
* [JACKSON-695]: Add 'isEmpty(value)' in JsonSerializer to allow
customizing handling of serialization of empty values
* [JACKSON-710]: 'ObjectMapper.convertValue()' should ignore root value
wrapping/unwrapping settings
* [JACKSON-730] Split various features (JsonParser, JsonGenerator,
SerializationConfig, DeserializationConfig) into per-factory
features (MapperFeature, JsonFactory.Feature) an per
instance features (existing ones)
* [JACKSON-732]: Allow 'AnnotationIntrospector.findContentDeserializer()'
(and similar) to return instance, not just Class<?> for instance
(requested by James R)
* [JACKSON-736]: Add (more) access to array, container and map serializers
* [JACKSON-737]: Allow accessing of "creator properties" for BeanDeserializer
* [JACKSON-748]: Add 'registerSubtypes' to 'Module.setupContext' (and SimpleModule)
* [JACKSON-749]: Make @JsonValue work for Enum deserialization
* [JACKSON-769]: ObjectNode/ArrayNode: change 'put', 'insert', 'add' to return
'this node' (unless already returning something)
* [JACKSON-770]: Simplify method naming for JsonNode, drop unnecessary 'get' prefix
from methods like 'getTextValue()' (becomes 'textValue()')
* [JACKSON-777]: Rename 'SerializationConfig.Feature' as 'SerializationFeature',
'DeserializationConfig.Feature' as 'DeserializationFeature'
* [JACKSON-780]: MissingNode, NullNode should return 'defaultValue' from 'asXxx' methods,
(not 0 for numbers), as they are not numeric types
* [JACKSON-787]: Allow use of @JsonIgnoreProperties for properties (fields, getters, setters)
* [JACKSON-795]: @JsonValue was not working for Maps, Collections
* [JACKSON-800]: Add 'Module.SetupContext#addDeserializationProblemHandler'
(suggested by James R)
New features:
* [JACKSON-107]: Add support for Object Identity (to handled cycles, shared refs),
with @JsonIdentityInfo
* [JACKSON-435]: Allow per-property Date formatting using @JsonFormat.
* [JACKSON-437]: Allow injecting of type id as POJO property, by setting
new '@JsonTypeInfo.visible' property to true.
* [JACKSON-469]: Support "Builder pattern" for deserialiation; that is, allow
use of separate Builder object for data binding, creating actual value
* [JACKSON-608]: Allow use of JSON Views for deserialization
* [JACKSON-636]: Add 'SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS' to allow
forced sorting of Maps during serialization
(suggested by Joern H)
* [JACKSON-669]: Allow prefix/suffix for @JsonUnwrapped properties
(requested by Aner P)
* [JACKSON-707]: Add 'JsonNode.deepCopy()', to create safe deep copies
of ObjectNodes, ArrayNodes.
* [JACKSON-714]: Add general-purpose @JsonFormat annotation
* [JACKSON-718]: Added 'JsonNode.canConvertToInt()', 'JsonNode.canConvertToLong()'
* [JACKSON-747]: Allow changing of 'SerializationFeature' for ObjectWriter,
'DeserializationFeature' for ObjectReader.
* [JACKSON-752]: Add @JsonInclude (replacement of @JsonSerialize.include)
* [JACKSON-754]: Add @JacksonAnnotationsInside for creating "annotation
bundles" (also: AnnotationIntrospector.isAnnotationBundle())
* [JACKSON-762]: Allow using @JsonTypeId to specify property to use as
type id, instead of using separate type id resolver.
* [JACKSON-764]: Allow specifying "root name" to use for root wrapping
via ObjectReader, ObjectWriter.
* [JACKSON-772]: Add 'JsonNode.withArray()' to use for traversing Array nodes.
* [JACKSON-793]: Add support for configurable Locale, TimeZone to use
(via SerializationConfig, DeserializationConfig)
* [JACKSON-805]: Add 'SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED'
to improve interoperability with BadgerFish/Jettison
* [JACKSON-810]: Deserialization Feature: Allow unknown Enum values via
'DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL'
(suggested by Raymond R)
* [JACKSON-813]: Add '@JsonSerializableSchema.id' attribute, to indicate
'id' value to add to generated JSON Schemas.
[entries for versions 1.x and earlier not retained; refer to earlier releases)