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