xref: /aosp_15_r20/external/jackson-annotations/release-notes/VERSION-2.x (revision 2bf6642460ffb10303bd46207a4555f36d9e5945)
1*2bf66424SCole Faust Project: jackson-annotations
2*2bf66424SCole Faust 
3*2bf66424SCole Faust NOTE: Annotations module will never contain changes in patch versions,
4*2bf66424SCole Faust  only .0 releases can have changes. We may still release patch versions, but
5*2bf66424SCole Faust  they will be identical to .0 versions, and only released for convenience
6*2bf66424SCole Faust  (developers can line up all Jackson components with same patch version number).
7*2bf66424SCole Faust  Main components will typically depend on .0 versions: please do NOT file
8*2bf66424SCole Faust  issues against this being a bug; it is intentional.
9*2bf66424SCole Faust 
10*2bf66424SCole Faust ------------------------------------------------------------------------
11*2bf66424SCole Faust === Releases ===
12*2bf66424SCole Faust ------------------------------------------------------------------------
13*2bf66424SCole Faust 
14*2bf66424SCole Faust 2.12.0 (not yet released)
15*2bf66424SCole Faust 
16*2bf66424SCole Faust #171: `JsonSubType.Type` should accept array of names
17*2bf66424SCole Faust  (contributed by Swayam R)
18*2bf66424SCole Faust #173: Jackson version alignment with Gradle 6
19*2bf66424SCole Faust #174: Add `@JsonIncludeProperties`
20*2bf66424SCole Faust  (contributed by Baptiste P)
21*2bf66424SCole Faust 
22*2bf66424SCole Faust 2.11.0 (26-Apr-2020)
23*2bf66424SCole Faust 
24*2bf66424SCole Faust - `JsonPattern.Value.pattern` retained as "", never (accidentally) exposed
25*2bf66424SCole Faust   as `null`
26*2bf66424SCole Faust 
27*2bf66424SCole Faust 2.10.0 (26-Sep-2019)
28*2bf66424SCole Faust 
29*2bf66424SCole Faust #138: Add basic Java 9+ module info
30*2bf66424SCole Faust #141: Add `JsonFormat.Feature.ACCEPT_CASE_INSENSITIVE_PROPERTIES`
31*2bf66424SCole Faust  (suggested by Craig P)
32*2bf66424SCole Faust #159: Add `JsonFormat.Shape.BINARY`
33*2bf66424SCole Faust 
34*2bf66424SCole Faust 2.9.1 (07-Sep-2017)
35*2bf66424SCole Faust 
36*2bf66424SCole Faust #123: Add Automatic-Module-Name (`com.fasterxml.jackson.annotation`) for JDK9 interoperability
37*2bf66424SCole Faust 
38*2bf66424SCole Faust 2.9.0 (30-Jul-2017)
39*2bf66424SCole Faust 
40*2bf66424SCole Faust #103: Add `JsonInclude.Include.CUSTOM`, properties for specifying filter(s) to use
41*2bf66424SCole Faust #104: Add `JsonSetter.nulls`, `JsonSetter.contentNulls` for configurable null handling
42*2bf66424SCole Faust #105: Add `JsonFormat.lenient` to allow configuring lenience of date/time deserializers
43*2bf66424SCole Faust #108: Allow `@JsonValue` on fields
44*2bf66424SCole Faust #109: Add `enabled` for `@JsonAnyGetter`, `@JsonAnySetter`, to allow disabling via mix-ins
45*2bf66424SCole Faust #113: Add `@JsonMerge` to support (deep) merging of properties
46*2bf66424SCole Faust #116: Add `@JsonAlias` annotation to allow specifying alternate names for a property
47*2bf66424SCole Faust #120: Add new properties for `@JacksonInject`
48*2bf66424SCole Faust - Allow use of `@JsonView` on classes, to specify Default View to use on non-annotated
49*2bf66424SCole Faust   properties.
50*2bf66424SCole Faust 
51*2bf66424SCole Faust 2.8.0 (04-Jul-2016)
52*2bf66424SCole Faust 
53*2bf66424SCole Faust #65: Add new choice for `JsonFormat.Shape`, `NATURAL`
54*2bf66424SCole Faust #79: Change `@JsonTypeInfo.defaultImpl` default value to deprecate `JsonTypeInfo.None.class`
55*2bf66424SCole Faust #83: Add `@JsonEnumDefaultValue` for indicating default enum choice if no real match found
56*2bf66424SCole Faust  (suggested by Alejandro R)
57*2bf66424SCole Faust #87: Add `@JsonIgnoreProperties.Value` to support merging of settings
58*2bf66424SCole Faust #89: Add `JsonFormat.Feature.ACCEPT_CASE_INSENSITIVE_PROPERTIES`
59*2bf66424SCole Faust #95: Add `JsonFormat.Feature#ADJUST_DATES_TO_CONTEXT_TIME_ZONE`
60*2bf66424SCole Faust  (suggested by Alexey B)
61*2bf66424SCole Faust 
62*2bf66424SCole Faust 2.7.0 (10-Jan-2016)
63*2bf66424SCole Faust 
64*2bf66424SCole Faust #73: Add `@JsonClassDescription`
65*2bf66424SCole Faust  (suggested by ufoscout@github)
66*2bf66424SCole Faust #77: Add a new `ObjectIdGenerator`, `StringIdGenerator`, to allow arbitrary
67*2bf66424SCole Faust   `String` Object Id usage
68*2bf66424SCole Faust - Major rewrite of merging of `JsonFormat.Value` and `JsonInclude.Value`, to allow
69*2bf66424SCole Faust   for better multi-level defaults (global, per-type, property)
70*2bf66424SCole Faust 
71*2bf66424SCole Faust 2.6.0 (17-Jul-2015)
72*2bf66424SCole Faust 
73*2bf66424SCole Faust #43: Add `@JsonFormat(with=Feature.xxx)` to support things like
74*2bf66424SCole Faust  `DeserializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED` on per-property basis.
75*2bf66424SCole Faust #56: Improve `ObjectIdGenerators.key()` to handle `null` appropriately by returning `null`
76*2bf66424SCole Faust #58: Add new properties for `@JsonIgnoreProperties`, "allowGetters", "allowSetters"
77*2bf66424SCole Faust #60: Add new value type, `OptBoolean`, for "optional booleans", to support proper handling
78*2bf66424SCole Faust   and usage of default values, not just explicit true/false.
79*2bf66424SCole Faust #61: Add new property, `@JsonProperty.access` (and matching enum) to support read-only/write-only properties
80*2bf66424SCole Faust #64: Add `@Documented` for `@JsonPropertyDescription`
81*2bf66424SCole Faust  (suggested by Zoltan S)
82*2bf66424SCole Faust - Add `JsonInclude.Include.NON_ABSENT` value, for excluding "absent" Optional values.
83*2bf66424SCole Faust - Add tag interface `JacksonAnnotationValue` for helper types used for encapsulating information
84*2bf66424SCole Faust   for "complex" annotations (multi-property ones)
85*2bf66424SCole Faust 
86*2bf66424SCole Faust 2.5.0 (01-Jan-2015)
87*2bf66424SCole Faust 
88*2bf66424SCole Faust #47: Add `@JsonCreator.mode` property to explicitly choose between delegating-
89*2bf66424SCole Faust  and property-based creators, or to disable specific creator (Mode.DISABLED)
90*2bf66424SCole Faust #48: Allow `@JsonView` for (method) parameters too
91*2bf66424SCole Faust #49: Add `@JsonTypeInfo.skipWritingDefault`
92*2bf66424SCole Faust #50: Add `ObjectIdGenerator.maySerializeAsObject()`,
93*2bf66424SCole Faust   `ObjectIdGenerator.ObjectIdGenerator.maySerializeAsObject()` to support JSOG
94*2bf66424SCole Faust - Added `@JsonInclude.content` to allow specifying inclusion criteria
95*2bf66424SCole Faust   for `java.util.Map` entries separate from inclusion of `Map` values
96*2bf66424SCole Faust   themselves
97*2bf66424SCole Faust - Finalize fix for [databind#490], by ensuring new mapping initialized for new context
98*2bf66424SCole Faust - Added `@JsonProperty.defaultValue()` (related to [databind#596])
99*2bf66424SCole Faust 
100*2bf66424SCole Faust 2.4.0 (29-May-2014)
101*2bf66424SCole Faust 
102*2bf66424SCole Faust #31: Allow use of `@JsonPropertyOrder` for properties (not just classes)
103*2bf66424SCole Faust #32: Add `@JsonProperty.index`
104*2bf66424SCole Faust - Add `JsonFormat.Value#timeZoneAsString` (needed by Joda module)
105*2bf66424SCole Faust - Add `@JsonRootName.namespace` to allow specifying of namespace with
106*2bf66424SCole Faust   standard Jackson annotations (not just XML-specific ones that dataformat-xml
107*2bf66424SCole Faust   provides)
108*2bf66424SCole Faust 
109*2bf66424SCole Faust 2.3.0 (13-Nov-2013)
110*2bf66424SCole Faust 
111*2bf66424SCole Faust #13: Add `@JsonPropertyDescription`
112*2bf66424SCole Faust  (suggested by Net-A-Porter@github)
113*2bf66424SCole Faust #20: Allow use of `@JsonFilter` for properties (via fields, methods,
114*2bf66424SCole Faust   constructor parameters)
115*2bf66424SCole Faust (note: although #15 -- Add `JsonTypeInfo.As.EXISTING` property to support new
116*2bf66424SCole Faust  variation for including Type Id was included, jackson-databind does not
117*2bf66424SCole Faust  yet support it as of 2.3.0)
118*2bf66424SCole Faust 
119*2bf66424SCole Faust 2.2.0 (22-Apr-2013)
120*2bf66424SCole Faust 
121*2bf66424SCole Faust No changes since 2.1.1
122*2bf66424SCole Faust 
123*2bf66424SCole Faust 2.1.1 (11-Nov-2012)
124*2bf66424SCole Faust 
125*2bf66424SCole Faust Fixes:
126*2bf66424SCole Faust 
127*2bf66424SCole Faust * Make ObjectIdGenerator java.io.Serializable (needed when serializing
128*2bf66424SCole Faust   ObjectMappers/-Writers/-Readers)
129*2bf66424SCole Faust 
130*2bf66424SCole Faust 2.1.0 (08-Oct-2012)
131*2bf66424SCole Faust 
132*2bf66424SCole Faust New features:
133*2bf66424SCole Faust 
134*2bf66424SCole Faust * [Issue#4]: Add '@JsonIdentityReference', to support use case where values of
135*2bf66424SCole Faust   a specific reference property are always serialized as ids, never as full POJO
136*2bf66424SCole Faust 
137*2bf66424SCole Faust Improvements:
138*2bf66424SCole Faust 
139*2bf66424SCole Faust * Added '@JsonIdentityInfo.firstAsID' property, to allow forcing all references
140*2bf66424SCole Faust   to an Object to be serialized as id, including first one.
141*2bf66424SCole Faust * Fix OSGi artifact name to be fully-qualified
142*2bf66424SCole Faust 
143*2bf66424SCole Faust 
144*2bf66424SCole Faust 2.0.2 (14-May-2012)
145*2bf66424SCole Faust 
146*2bf66424SCole Faust Fixes:
147*2bf66424SCole Faust 
148*2bf66424SCole Faust * OSGi bundle name was accidentally changed in 2.0.1; reverted back to one
149*2bf66424SCole Faust   used in 2.0.0, earlier
150*2bf66424SCole Faust  (reported Pascal G)
151*2bf66424SCole Faust 
152*2bf66424SCole Faust 2.0.1 (22-Apr-2012)
153*2bf66424SCole Faust 
154*2bf66424SCole Faust Fixes:
155*2bf66424SCole Faust 
156*2bf66424SCole Faust * [JACKSON-827] Fix incompatibilities with JDK 1.5 (2.0.0 accidentally
157*2bf66424SCole Faust   required 1.6)
158*2bf66424SCole Faust  (reported Pascal G)
159*2bf66424SCole Faust 
160*2bf66424SCole Faust 2.0.0 (25-Mar-2012)
161*2bf66424SCole Faust 
162*2bf66424SCole Faust Improvements:
163*2bf66424SCole Faust 
164*2bf66424SCole Faust * [JACKSON-437]: Allow injecting of type id as POJO property, by setting
165*2bf66424SCole Faust   new '@JsonTypeInfo.visible' property to true.
166*2bf66424SCole Faust * [JACKSON-669]: Allow prefix/suffix for @JsonUnwrapped properties
167*2bf66424SCole Faust   (requested by Aner P)
168*2bf66424SCole Faust * [JACKSON-787]: @JsonIgnoredProperties can be used on properties too
169*2bf66424SCole Faust 
170*2bf66424SCole Faust New features:
171*2bf66424SCole Faust 
172*2bf66424SCole Faust * [JACKSON-107]: Add support for Object Identity (to handled cycles, shared refs),
173*2bf66424SCole Faust   with @JsonIdentityInfo
174*2bf66424SCole Faust * [JACKSON-714] Add general-purpose '@JsonFormat' annotation
175*2bf66424SCole Faust * [JACKSON-752]: Add @JsonInclude (replacement of @JsonSerialize.include)
176*2bf66424SCole Faust * [JACKSON-754]: Add @JacksonAnnotationsInside for creating "annotation
177*2bf66424SCole Faust   bundles" (also: AnnotationIntrospector.isAnnotationBundle())
178*2bf66424SCole Faust 
179*2bf66424SCole Faust Other:
180*2bf66424SCole Faust 
181*2bf66424SCole Faust * Lots of miscellaneous refactoring; moving most annotations from
182*2bf66424SCole Faust   databind into this package; only leaving ones that depend on
183*2bf66424SCole Faust   databind package types
184*2bf66424SCole Faust 
185*2bf66424SCole Faust ------------------------------------------------------------------------
186*2bf66424SCole Faust === History: ===
187*2bf66424SCole Faust ------------------------------------------------------------------------
188*2bf66424SCole Faust 
189*2bf66424SCole Faust [entries for versions 1.x and earlier not retained; refer to earlier releases)
190