Tatu Saloranta | 688cbc1 | 2013-04-23 22:58:26 -0700 | [diff] [blame] | 1 | Project: jackson-databind |
Tatu Saloranta | df7fb3d | 2013-06-06 14:29:52 -0700 | [diff] [blame] | 2 | Version: 2.3.0 (xx-xxx-2013) |
Tatu Saloranta | 703bf4a | 2012-01-11 22:14:37 -0800 | [diff] [blame] | 3 | |
Tatu Saloranta | df7fb3d | 2013-06-06 14:29:52 -0700 | [diff] [blame] | 4 | New minor version. |
| 5 | |
Tatu Saloranta | a9f447a | 2013-07-05 10:10:47 -0700 | [diff] [blame] | 6 | #48: Add support for `InetSocketAddress` |
| 7 | (contributed by Nick T) |
Tatu Saloranta | efdc0d4 | 2013-07-10 19:48:39 -0700 | [diff] [blame] | 8 | #208: Accept "fromString()" as an implicit Creator (factory) method (alias for "valueOf()") |
| 9 | (requested by David P) |
Tatu Saloranta | 21a81e1 | 2013-06-06 17:31:07 -0700 | [diff] [blame] | 10 | #215: Allow registering custom `CharacterEscapes` to use for serialization, |
| 11 | via `ObjectWriter.with(CharacterEscapes)` (and `ObjectMapper.writer(CharacterEscapes)`) |
Tatu Saloranta | e4708eb | 2013-06-06 17:07:10 -0700 | [diff] [blame] | 12 | #227: Allow "generic" Enum serializers, deserializers, via `SimpleModule` |
Tatu Saloranta | 6f4306b | 2013-08-12 20:25:37 -0700 | [diff] [blame] | 13 | #234: Incorrect type information for deeply nested Maps |
| 14 | (reported by Andrei P) |
Tatu Saloranta | 3955abb | 2013-06-06 15:29:58 -0700 | [diff] [blame] | 15 | #237: Add `DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY` to optionally |
| 16 | throw `JsonMappingException` on duplicate keys, tree model (`JsonNode`) |
Tatu Saloranta | 833680a | 2013-07-10 19:37:14 -0700 | [diff] [blame] | 17 | #238: Allow existence of overlapping getter, is-getter (choose 'regular' getter) |
Tatu Saloranta | f0af8c1 | 2013-07-11 10:20:22 -0700 | [diff] [blame] | 18 | #239: Support `ByteBuffer` |
| 19 | (suggested by mckamey@github) |
Tatu Saloranta | 0a42b40 | 2013-08-06 20:39:12 -0700 | [diff] [blame] | 20 | #240: Make sure `@JsonSerialize.include` does not accidentally override |
| 21 | class inclusion settings |
| 22 | (requested by thierryhenrio@github) |
Tatu Saloranta | c6eaf4b | 2013-07-04 20:25:17 -0700 | [diff] [blame] | 23 | #253: `DelegatingDeserializer` causes problems for Managed/BackReferences |
| 24 | (reported by bfelaco@github) |
Tatu Saloranta | 105c58a | 2013-07-26 16:33:43 -0700 | [diff] [blame] | 25 | #269: Add support for new `@JsonPropertyDescription` via `AnnotationIntrospector` |
| 26 | as well as `BeanProperty.getMedata().getDescription()` |
Tatu Saloranta | cded3a2 | 2013-08-06 20:29:18 -0700 | [diff] [blame] | 27 | #270: Add `SerializationFeature.USE_EQUALITY_FOR_OBJECT_ID` to allow use of equality |
| 28 | (instead of identity) for figuring out when to use Object Id |
| 29 | (requested by beku8@github) |
Tatu Saloranta | bb0e2b5 | 2013-09-12 21:07:31 -0700 | [diff] [blame] | 30 | #277: Make `TokenBuffer` support new native type and object ids |
| 31 | #306: Allow use of `@JsonFilter` for properties, not just classes |
Tatu Saloranta | fae643b | 2013-09-13 23:34:31 -0700 | [diff] [blame^] | 32 | #308: Improve serialization and deserialization speed of `java.util.UUID` by 4x |
| 33 | (suggested by David P) |
Tatu Saloranta | b4b5903 | 2013-07-16 14:34:53 -0700 | [diff] [blame] | 34 | [JACKSON-890]: Support managed/back-references for polymorphic (abstract) types |
Tatu Saloranta | eb68099 | 2013-06-24 19:58:32 -0700 | [diff] [blame] | 35 | - Add 'BeanPropertyWriter.isUnwrapping()' for future needs (by Afterburner) |
Tatu Saloranta | 955d1f9 | 2013-08-10 19:41:47 -0700 | [diff] [blame] | 36 | - Add coercions from String "null" (as if null token was parsed) for primitives/Wrappers. |
Tatu Saloranta | 47ac6bd | 2013-09-05 20:55:00 -0700 | [diff] [blame] | 37 | - Add `JsonDeserializer.handledType()` |
Tatu Saloranta | 3955abb | 2013-06-06 15:29:58 -0700 | [diff] [blame] | 38 | |
Tatu Saloranta | df7fb3d | 2013-06-06 14:29:52 -0700 | [diff] [blame] | 39 | ------------------------------------------------------------------------ |
| 40 | === History: === |
| 41 | ------------------------------------------------------------------------ |
| 42 | |
| 43 | 2.2.2 (26-May-2013) |
Tatu Saloranta | 688cbc1 | 2013-04-23 22:58:26 -0700 | [diff] [blame] | 44 | |
Tatu Saloranta | b7d896f | 2013-05-17 21:54:11 -0700 | [diff] [blame] | 45 | #216: Problems with Android, 1.6-only types |
Tatu Saloranta | ded6b8a | 2013-05-17 21:07:40 -0700 | [diff] [blame] | 46 | #217: JsonProcessingExceptions not all wrapped as expected |
| 47 | (reported by karldmoore@github) |
Tatu Saloranta | 29552ca | 2013-05-17 20:36:07 -0700 | [diff] [blame] | 48 | #220: ContainerNode missing 'createNumber(BigInteger)' |
| 49 | (reported by Pascal G) |
Tatu Saloranta | 88f44d8 | 2013-05-17 20:05:18 -0700 | [diff] [blame] | 50 | #223: Duplicated nulls with @JsonFormat(shape=Shape.ARRAY) |
| 51 | (reported by lukegh@github) |
Tatu Saloranta | d12a42f | 2013-05-25 21:04:52 -0700 | [diff] [blame] | 52 | #226: Field mapping fail on deserialization to common referenced object when |
| 53 | @JsonUnwrapped is used |
| 54 | (reported by ikvia@github) |
Tatu Saloranta | d2ec7c3 | 2013-05-25 17:02:32 -0700 | [diff] [blame] | 55 | #232: Converting bound BigDecimal value to tree fails with WRITE_BIGDECIMAL_AS_PLAIN |
| 56 | (reported by celkings@github) |
Tatu Saloranta | 688cbc1 | 2013-04-23 22:58:26 -0700 | [diff] [blame] | 57 | - Minor fix to handle primitive types for key deserializer lookups |
Tatu Saloranta | 580b85f | 2013-05-01 21:37:09 -0700 | [diff] [blame] | 58 | - Add convenience method `MappingIterator.getCurrentLocation()` |
| 59 | (suggested by Tomdz@github) |
Tatu Saloranta | 688cbc1 | 2013-04-23 22:58:26 -0700 | [diff] [blame] | 60 | |
Tatu Saloranta | ef9e64f | 2013-05-26 22:18:44 -0700 | [diff] [blame] | 61 | 2.2.1 (03-May-2013) |
| 62 | |
| 63 | #214: Problem with LICENSE, NOTICE, Android packaging |
| 64 | (reported by thierryd@github) |
| 65 | |
Tatu Saloranta | 688cbc1 | 2013-04-23 22:58:26 -0700 | [diff] [blame] | 66 | 2.2.0 (22-Apr-2013) |
Tatu Saloranta | 703bf4a | 2012-01-11 22:14:37 -0800 | [diff] [blame] | 67 | |
Tatu Saloranta | 6426e04 | 2012-11-12 14:31:50 -0800 | [diff] [blame] | 68 | Fixes: |
| 69 | |
Tatu Saloranta | 43307b4 | 2013-03-15 15:37:45 -0700 | [diff] [blame] | 70 | #23: Fixing typing of root-level collections |
Tatu Saloranta | 20d53b0 | 2013-03-10 22:56:23 -0700 | [diff] [blame] | 71 | #118: JsonTypeInfo.as.EXTERNAL_PROPERTY not working correctly |
Tatu Saloranta | a795fa2 | 2013-01-18 20:05:11 -0800 | [diff] [blame] | 72 | with missing type id, scalar types |
Tatu Saloranta | 20d53b0 | 2013-03-10 22:56:23 -0700 | [diff] [blame] | 73 | #130: TimeZone not set for GregorianCalendar, even if configured |
| 74 | #144: MissingNode.isValueNode() should return 'false' |
Tatu Saloranta | 99d9d18 | 2013-01-11 11:47:38 -0800 | [diff] [blame] | 75 | (reported by 'fge@github') |
Tatu Saloranta | 20d53b0 | 2013-03-10 22:56:23 -0700 | [diff] [blame] | 76 | #146: Creator properties were not being renamed as expected |
Tatu Saloranta | f6ce07d | 2013-01-12 11:29:46 -0800 | [diff] [blame] | 77 | (contributed by Christoper C) |
Tatu Saloranta | 20d53b0 | 2013-03-10 22:56:23 -0700 | [diff] [blame] | 78 | #188: Problem with ObjectId serialization, 'alwaysAsId' references |
Tatu Saloranta | 99d9d18 | 2013-01-11 11:47:38 -0800 | [diff] [blame] | 79 | |
Tatu Saloranta | d8b4071 | 2012-11-20 19:01:14 -0800 | [diff] [blame] | 80 | Improvements: |
| 81 | |
Tatu Saloranta | 20d53b0 | 2013-03-10 22:56:23 -0700 | [diff] [blame] | 82 | #116: JavaType implements `java.lang.reflect.Type` (as does `TypeReference`) |
| 83 | #147: Defer reporting of problems with missing creator parameters |
Tatu Saloranta | 6f93156 | 2013-01-12 14:13:42 -0800 | [diff] [blame] | 84 | (contributed by Christoper C) |
Tatu Saloranta | 20d53b0 | 2013-03-10 22:56:23 -0700 | [diff] [blame] | 85 | #155: Make `ObjectNode` and `ArrayNode` final (other node types already were) |
Tatu Saloranta | 8640b59 | 2013-02-08 11:04:22 -0800 | [diff] [blame] | 86 | (requested by fge@github) |
Tatu Saloranta | 20d53b0 | 2013-03-10 22:56:23 -0700 | [diff] [blame] | 87 | #161: Add deserializer for java.util.concurrent.ArrayBlockingQueue |
| 88 | #173: Add 'JsonNode.traverse(ObjectCodec)' for convenience |
Tatu Saloranta | 1e0a766 | 2013-04-08 15:34:02 -0700 | [diff] [blame] | 89 | #181: Improve error reporting for missing '_valueDeserializer' |
Tatu Saloranta | dfb697a | 2013-03-28 15:11:48 -0700 | [diff] [blame] | 90 | #194: Add `FloatNode` type in tree model (JsonNode) |
| 91 | (requested by msteiger@github) |
Tatu Saloranta | 10dc5c9 | 2013-04-07 16:11:10 -0700 | [diff] [blame] | 92 | #199: Allow deserializing `Iterable` instances (as basic `Collection`s) |
| 93 | (requested by electrum@github) |
Tatu Saloranta | 9adb08e | 2013-04-11 16:29:59 -0700 | [diff] [blame] | 94 | #206: Make 'ObjectMapper.createDeserializationContext()' overridable |
| 95 | (requested by noter@github) |
Tatu Saloranta | 0a4a031 | 2013-04-16 20:02:37 -0700 | [diff] [blame] | 96 | #207: Add explicit support for `short` datatypes, for tree model |
| 97 | (contributed by msteiger@github) |
Tatu Saloranta | d8b4071 | 2012-11-20 19:01:14 -0800 | [diff] [blame] | 98 | |
Tatu Saloranta | 6426e04 | 2012-11-12 14:31:50 -0800 | [diff] [blame] | 99 | New features: |
| 100 | |
Tatu Saloranta | 20d53b0 | 2013-03-10 22:56:23 -0700 | [diff] [blame] | 101 | #120: Extend BeanDeserializerModifier to work with non-POJO deserializers |
| 102 | #121: Extend BeanSerializerModifier to work with non-POJO serializers |
| 103 | #124: Add support for serialization converters (@JsonSerializer(converter=...)) |
| 104 | #124: Add support for deserialization converters (@JsonDeserializer(converter=...)) |
| 105 | #140: Add 'SerializationFeature.WRITE_BIGDECIMAL_AS_PLAIN' to allow forcing |
Tatu Saloranta | ac5edb8 | 2013-01-06 08:27:50 -0800 | [diff] [blame] | 106 | of non-scientific notation when serializing BigDecimals. |
| 107 | (suggested by phedny@github) |
Tatu Saloranta | 20d53b0 | 2013-03-10 22:56:23 -0700 | [diff] [blame] | 108 | #148: Add 'DeserializationFeature.FAIL_ON_INVALID_SUBTYPE`, which allows mapping |
Tatu Saloranta | 192c1dc | 2013-02-06 22:28:58 -0800 | [diff] [blame] | 109 | entries with missing or invalid type id into null references (instead of failing). |
| 110 | Also allows use of '@JsonTypeInfo.defaultImpl = NoClass.class' as alternative. |
Tatu Saloranta | 20d53b0 | 2013-03-10 22:56:23 -0700 | [diff] [blame] | 111 | #159: Add more accessors in 'MappingIterator': getParser(), getParserSchema(), |
Tatu Saloranta | de7e924 | 2013-02-04 16:24:40 -0800 | [diff] [blame] | 112 | readAll() |
| 113 | (suggested by Tom D) |
Tatu Saloranta | 8f2ea6c | 2013-03-28 15:46:06 -0700 | [diff] [blame] | 114 | #190: Add 'MapperFeature.ALLOW_FINAL_FIELDS_AS_MUTATORS' (default: true) for |
| 115 | pruning out final fields (to avoid using as mutators) |
| 116 | (requested by Eric T) |
Tatu Saloranta | 21d8357 | 2013-03-28 14:18:48 -0700 | [diff] [blame] | 117 | #195: Add 'MapperFeature.INFER_PROPERTY_MUTATORS' (default: enabled) for finer |
| 118 | control of what mutators are auto-detected. |
| 119 | (requested by Dain S) |
Tatu Saloranta | 4208653 | 2013-04-11 16:42:08 -0700 | [diff] [blame] | 120 | #198: Add SPI metadata, handling in ObjectMapper (findModules()), for |
| 121 | automatic registration of auto-detected extension modules |
| 122 | (suggested by 'beamerblvd@github') |
Tatu Saloranta | c7112ff | 2013-04-09 15:47:23 -0700 | [diff] [blame] | 123 | #203: Added new features to support advanced date/time handling: |
| 124 | - SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS |
| 125 | - DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS |
| 126 | - DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE |
Tatu Saloranta | d8b4071 | 2012-11-20 19:01:14 -0800 | [diff] [blame] | 127 | |
Tatu Saloranta | 4f62fed | 2013-01-11 19:43:26 -0800 | [diff] [blame] | 128 | Other: |
| 129 | |
Tatu Saloranta | 20d53b0 | 2013-03-10 22:56:23 -0700 | [diff] [blame] | 130 | #126: Update JDK baseline to 1.6 |
Tatu Saloranta | a795fa2 | 2013-01-18 20:05:11 -0800 | [diff] [blame] | 131 | * API under 'com.fasterxml.jackson.databind.jsonFormatVisitors' changed significantly |
| 132 | based on experiences with external JSON Schema generator. |
| 133 | * Version information accessed via code-generated access class, instead of reading |
| 134 | VERSION.txt |
Tatu Saloranta | cc73752 | 2013-03-03 13:11:25 -0800 | [diff] [blame] | 135 | * Added 2 methods in Converter interface: getInputType(), getOutputType(), |
| 136 | to allow programmatic overrides (needed by JAXB annotation module) |
Tatu Saloranta | 4f62fed | 2013-01-11 19:43:26 -0800 | [diff] [blame] | 137 | |
Tatu Saloranta | 7126f55 | 2013-03-10 20:14:41 -0700 | [diff] [blame] | 138 | 2.1.4 (26-Feb-2013) |
| 139 | |
| 140 | * [JACKSON-887]: StackOverflow with parameterized sub-class field |
| 141 | (reported by Alexander M) |
| 142 | * [#130]: TimeZone not set for GregorianCalendar, when deserializing |
| 143 | * [#157]: NPE when registering module twice |
| 144 | * [#162]: JsonNodeFactory: work around an old bug with BigDecimal and zero |
| 145 | (submitted by fge@github) |
| 146 | * [#166]: Incorrect optimization for `ObjectMapper.convertValue(Class)` |
| 147 | (reported by Eric T) |
| 148 | * [#167]: Problems with @JsonValue, polymorphic types (regression from 1.x) |
| 149 | (reported by Eric T) |
| 150 | * [#170]: Problems deserializing `java.io.File` if creator auto-discovery disabled |
| 151 | (reported by Eric T) |
| 152 | * [#175]: NPE for JsonMappingException, if no path is specified |
| 153 | (reported by bramp@github) |
| 154 | |
| 155 | 2.1.3 (19-Jan-2013) |
| 156 | |
| 157 | * [Issue#141]: ACCEPT_EMPTY_STRING_AS_NULL_OBJECT not working for enums |
| 158 | * [Issue#142]: Serialization of class containing EnumMap with polymorphic enum |
| 159 | fails to generate class type data |
| 160 | (reported by kidavis4@github) |
| 161 | |
| 162 | 2.1.2 (04-Dec-2012) |
| 163 | |
| 164 | * [Issue#106]: NPE in ObjectArraySerializer.createContextual(...) |
| 165 | * [Issue#117]: HandlerInstantiator defaulting not working |
| 166 | (reported by Alexander B) |
| 167 | * [Issue#118]: Problems with JsonTypeInfo.As.EXTERNAL_PROPERTY, scalar values |
| 168 | (reported by Adva11@github) |
| 169 | * [Issue#119]: Problems with @JsonValue, JsonTypeInfo.As.EXTERNAL_PROPERTY |
| 170 | (reported by Adva11@github) |
| 171 | * [Issue#122]: ObjectMapper.copy() was not copying underlying mix-in map |
| 172 | (reported by rzlo@github) |
| 173 | |
Tatu Saloranta | 6426e04 | 2012-11-12 14:31:50 -0800 | [diff] [blame] | 174 | 2.1.1 (11-Nov-2012) |
Tatu Saloranta | 41a152a | 2012-10-20 11:18:03 -0700 | [diff] [blame] | 175 | |
| 176 | Fixes: |
| 177 | |
Tatu Saloranta | 002b54f | 2012-11-08 13:21:50 -0800 | [diff] [blame] | 178 | * [JACKSON-875]: Enum values not found if Feature.USE_ANNOTATIONS disabled |
| 179 | (reported by Laurent P) |
Tatu Saloranta | 41a152a | 2012-10-20 11:18:03 -0700 | [diff] [blame] | 180 | * [Issue#93]: ObjectNode.setAll() broken; would not add anything for |
| 181 | empty ObjectNodes. |
| 182 | (reported by Francis G) |
Tatu Saloranta | a50e76b | 2012-11-01 19:34:49 -0700 | [diff] [blame] | 183 | * Making things implement java.io.Serializable: |
Tatu Saloranta | 9252171 | 2012-11-06 16:59:51 -0800 | [diff] [blame] | 184 | - Issues: #94, #99, #100, #102 |
| 185 | (reported by Sean B) |
Tatu Saloranta | 231be53 | 2012-10-26 18:19:42 -0700 | [diff] [blame] | 186 | * [Issue#96]: Problem with JsonTypeInfo.As.EXTERNAL_PROPERTY, defaultImpl |
| 187 | (reported by Adva11@github) |
Tatu Saloranta | 41a152a | 2012-10-20 11:18:03 -0700 | [diff] [blame] | 188 | |
Tatu Saloranta | a50e76b | 2012-11-01 19:34:49 -0700 | [diff] [blame] | 189 | 2.1.0 (08-Oct-2012) |
Tatu Saloranta | 41a152a | 2012-10-20 11:18:03 -0700 | [diff] [blame] | 190 | |
Tatu Saloranta | 3e96cf6 | 2012-10-05 21:38:16 -0700 | [diff] [blame] | 191 | New minor version for 2.x series. Major improvements in multiple areas, |
| 192 | including: |
| 193 | |
| 194 | - Dataformat auto-detection |
| 195 | - More `@JsonFormat.shape` variant to serialize Collections as |
| 196 | JSON Objects, POJOs as JSON Arrays (csv-like). |
| 197 | - Much more configuration accessible via ObjectReader, ObjectWriter |
| 198 | - New mechanism for JSON Schema generation, other uses (in future) |
Tatu Saloranta | c277641 | 2012-05-14 19:40:57 -0700 | [diff] [blame] | 199 | |
| 200 | Fixes: |
| 201 | |
Tatu Saloranta | 01006e3 | 2012-08-24 14:35:55 -0700 | [diff] [blame] | 202 | * [JACKSON-830]/[Issue#19]: Change OSGi bundle name to be fully-qualified |
Tatu Saloranta | e8c1b53 | 2012-08-29 11:49:21 -0700 | [diff] [blame] | 203 | * ]JACKSON-847]: Make @JsonIdentityInfo work with property-based creator |
Tatu Saloranta | bc483d1 | 2012-08-01 23:35:59 -0700 | [diff] [blame] | 204 | * [JACKSON-851]: State corruption with ObjectWriter, DefaultPrettyPrinter |
| 205 | (reported by Duncan A) |
Tatu Saloranta | 8075bfa | 2012-09-29 22:55:20 -0700 | [diff] [blame] | 206 | * [Issue#75]: Too aggressive KeySerializer caching |
Tatu Saloranta | 01006e3 | 2012-08-24 14:35:55 -0700 | [diff] [blame] | 207 | * Minor fix wrt [Issue#11], coercion needed extra checks |
Tatu Saloranta | fcbce11 | 2012-06-28 14:43:43 -0700 | [diff] [blame] | 208 | |
Tatu Saloranta | ce7398c | 2012-05-30 20:45:03 -0700 | [diff] [blame] | 209 | Improvements: |
| 210 | |
Tatu Saloranta | ac1f2ab | 2012-08-01 19:49:20 -0700 | [diff] [blame] | 211 | * [JACKSON-758]: Remove 'IOException' from throws clauses of "writeValueAsString" |
| 212 | and "writeValueAsBytes" of ObjectMapper/ObjectWriter |
| 213 | (suggested by G-T Chen) |
Tatu Saloranta | ce7398c | 2012-05-30 20:45:03 -0700 | [diff] [blame] | 214 | * [JACKSON-839]: Allow "upgrade" of integer number types for |
| 215 | UntypedObjectDeserializer, even with default typing enabled. |
Tatu Saloranta | 11cec4d | 2012-07-22 22:33:20 -0700 | [diff] [blame] | 216 | * [JACKSON-850]: Allow use of zero-arg factory methods as "default creator" |
| 217 | (suggested by Razvan D) |
Tatu Saloranta | 7ccce01 | 2012-08-04 16:17:54 -0700 | [diff] [blame] | 218 | * [Issue#9]: Implement 'required' JSON Schema attribute for bean properties |
| 219 | * [Issue#20]: Add new exception type, InvalidFormatException (sub-type of |
Tatu Saloranta | dd34856 | 2012-07-18 17:25:02 -0700 | [diff] [blame] | 220 | JsonMappingException) to indicate data format problems |
| 221 | (suggested by HolySamosa@github) |
Tatu Saloranta | 2aa6dc8 | 2012-08-29 23:06:06 -0700 | [diff] [blame] | 222 | * [Issue#30]: ObjectReader and ObjectWriter now try to pre-fetch root |
Tatu Saloranta | 15d6ea2 | 2012-08-03 18:29:23 -0700 | [diff] [blame] | 223 | (de)serializer if possible; minor performance improvement (2% for small POJOs). |
Tatu Saloranta | 2aa6dc8 | 2012-08-29 23:06:06 -0700 | [diff] [blame] | 224 | * [Issue#33]: Simplified/clarified definition of 'ObjectReader.readValues()'; |
Tatu Saloranta | a12061f | 2012-07-20 21:42:26 -0700 | [diff] [blame] | 225 | minor change in behavior for JSON Array "wrapped" sequences |
Tatu Saloranta | 2aa6dc8 | 2012-08-29 23:06:06 -0700 | [diff] [blame] | 226 | * [Issue#60]: Add 'JsonNode.hasNonNull(...)' method(s) |
| 227 | (suggested by Jeff S on mailing list) |
Tatu Saloranta | eb4e6b1 | 2012-08-30 19:02:17 -0700 | [diff] [blame] | 228 | * [Issue#64]: Add new "standard" PropertyNamingStrategy, PascalCaseStrategy |
| 229 | (PropertyNamingStrategy.PASCAL_CASE_TO_CAMEL_CASE) |
| 230 | (contributed by Sean B) |
Tatu Saloranta | 0dc8dec | 2012-09-06 17:08:29 -0700 | [diff] [blame] | 231 | * [Issue#65]: Add getters to `ObjectMapper`, DeserializationContext/-Factory. |
| 232 | (contributed by Dmitry K) |
Tatu Saloranta | ab374c7 | 2012-09-04 22:10:52 -0700 | [diff] [blame] | 233 | * [Issue#69]: Add `PropertyName` abstraction, new methods in AnnotationIntrospector |
Tatu Saloranta | 4984d59 | 2012-09-30 18:04:39 -0700 | [diff] [blame] | 234 | * [Issue#80]: Make `DecimalNode` normalize input, to make "1.0" and "1.00"equal |
| 235 | (reported by fge@github) |
Tatu Saloranta | ce7398c | 2012-05-30 20:45:03 -0700 | [diff] [blame] | 236 | |
Tatu Saloranta | 6cada0a | 2012-07-31 22:24:03 -0700 | [diff] [blame] | 237 | New features: |
| 238 | |
Tatu Saloranta | d163f5e | 2012-08-20 16:49:15 -0700 | [diff] [blame] | 239 | * [Issue#15]: Support data format auto-detection via ObjectReader (added |
| 240 | 'withFormatDetection(...)' fluent factories) |
Tatu Saloranta | 767cead | 2012-08-13 16:27:45 -0700 | [diff] [blame] | 241 | * [Issue#21]: Add 'ObjectNode.set(...)' method (and related) to improve |
| 242 | chaining, semantic consistency of Tree Model API |
| 243 | (suggested by fge@Github) |
Tatu Saloranta | 7ccce01 | 2012-08-04 16:17:54 -0700 | [diff] [blame] | 244 | * [Issue#22]: Add 'ObjectMapper.setAnnotationIntrospectors()' which allows |
Tatu Saloranta | 15d6ea2 | 2012-08-03 18:29:23 -0700 | [diff] [blame] | 245 | defining different introspectors for serialization, deserialization |
Tatu Saloranta | 7ccce01 | 2012-08-04 16:17:54 -0700 | [diff] [blame] | 246 | * [Issue#24]: Allow serialization of Enums as JSON Objects |
Tatu Saloranta | 15d6ea2 | 2012-08-03 18:29:23 -0700 | [diff] [blame] | 247 | (suggested by rveloso@github) |
Tatu Saloranta | 7ccce01 | 2012-08-04 16:17:54 -0700 | [diff] [blame] | 248 | * [Issue#28]: Add 'ObjectMapper.copy()', to create non-linked copy of |
| 249 | mapper, with same configuration settings |
| 250 | * [Issue#29]: Allow serializing, deserializing POJOs as JSON Arrays |
Tatu Saloranta | 6cada0a | 2012-07-31 22:24:03 -0700 | [diff] [blame] | 251 | by using `@JsonFormat(shape=Shape.ARRAY)` |
Tatu Saloranta | 7ccce01 | 2012-08-04 16:17:54 -0700 | [diff] [blame] | 252 | * [Issue#40]: Allow serialization of Collections as JSON Objects |
Tatu Saloranta | 15d6ea2 | 2012-08-03 18:29:23 -0700 | [diff] [blame] | 253 | (and deserialization from) |
Tatu Saloranta | 8d2cdd7 | 2012-08-13 23:10:51 -0700 | [diff] [blame] | 254 | (suggested by 'rveloso@github') |
| 255 | * [Issue#42]: Allow specifying Base64 variant to use for Base64-encoded data |
| 256 | using ObjectReader.with(Base64Variant), ObjectWriter.with(Base64Variant). |
| 257 | (suggested by 'mpfau@github') |
Tatu Saloranta | 023d8bd | 2012-08-13 22:17:28 -0700 | [diff] [blame] | 258 | * [Issue#45]: Add '@JsonNaming' annotation to define per-class PropertyNamingStrategy |
| 259 | (suggested by Mark W) |
Tatu Saloranta | 4526796 | 2012-08-28 10:10:43 -0700 | [diff] [blame] | 260 | * [Pull#58]: Make 'MappingIterator' implement 'Closable' |
| 261 | (contributed by Pascal G) |
Tatu Saloranta | f412e85 | 2012-09-11 22:05:51 -0700 | [diff] [blame] | 262 | * [Issue#72]: Add 'MapperFeature.USE_WRAPPER_NAME_AS_PROPERTY_NAME' to use |
| 263 | wrapper name annotations for renaming properties |
Tatu Saloranta | 06a23ce | 2012-10-03 17:18:47 -0700 | [diff] [blame] | 264 | * [Issue#87]: Add 'StdDelegatingSerializer', 'StdDelegatingDeserializer' to |
| 265 | simplify writing of two-step handlers |
Tatu Saloranta | 88040e2 | 2012-08-24 13:33:00 -0700 | [diff] [blame] | 266 | * (issue #4 of jackson-annotations): Add `@JsonIdentityReference(alwaysAsId=true)` |
Tatu Saloranta | 6cada0a | 2012-07-31 22:24:03 -0700 | [diff] [blame] | 267 | to force ALL references to an object written as Object Id, even the first one. |
Tatu Saloranta | 15d6ea2 | 2012-08-03 18:29:23 -0700 | [diff] [blame] | 268 | * Added 'ObjectReader#withHandler' to allow for reconfiguring deserialization |
| 269 | problem handler |
| 270 | (suggested by 'electricmonk') |
Tatu Saloranta | 6cada0a | 2012-07-31 22:24:03 -0700 | [diff] [blame] | 271 | |
Tatu Saloranta | 2b4086a | 2012-06-29 20:27:24 -0700 | [diff] [blame] | 272 | Other changes: |
| 273 | |
| 274 | * New variant of AnnotationIntrospector.getFormat(), to support class |
| 275 | annotations |
Tatu Saloranta | 134d356 | 2012-07-05 21:38:46 -0700 | [diff] [blame] | 276 | * It is now possible to serialize instances of plain old Object, iff |
| 277 | 'FAIL_ON_EMPTY_BEANS' is disabled. |
Tatu Saloranta | 9b84796 | 2012-09-11 15:16:41 -0700 | [diff] [blame] | 278 | * Trying to remove reference to "JSON" in datatype conversion errors |
| 279 | (since databinding is format-agnostic) |
Tatu Saloranta | 2b4086a | 2012-06-29 20:27:24 -0700 | [diff] [blame] | 280 | |
Tatu Saloranta | a12061f | 2012-07-20 21:42:26 -0700 | [diff] [blame] | 281 | INCOMPATIBILITIES: (rats!) |
| 282 | |
Tatu Saloranta | 7ccce01 | 2012-08-04 16:17:54 -0700 | [diff] [blame] | 283 | * Note that [Issue#33] (see above) is, technically speaking, backwards |
Tatu Saloranta | a12061f | 2012-07-20 21:42:26 -0700 | [diff] [blame] | 284 | imcompatible change. It is estimated that it should NOT affect most |
| 285 | users, as changes are to edge cases (and undocumented ones at that). |
| 286 | However, it can potentially cause problems with upgrade. |
Tatu Saloranta | 45c7f24 | 2012-10-03 22:36:17 -0700 | [diff] [blame] | 287 | * Implementation of `JsonFormatVisitable` resulting in 2 new methods |
| 288 | being added in `BeanPropertyFilter` interface -- this is unfortunate, |
| 289 | but was required to support full traversability. |
Tatu Saloranta | a12061f | 2012-07-20 21:42:26 -0700 | [diff] [blame] | 290 | |
Tatu Saloranta | a12061f | 2012-07-20 21:42:26 -0700 | [diff] [blame] | 291 | 2.0.4 (26-Jun-2012) |
| 292 | |
Tatu Saloranta | 7ccce01 | 2012-08-04 16:17:54 -0700 | [diff] [blame] | 293 | * [Issue#6]: element count for PrettyPrinter, endObject wrong |
Tatu Saloranta | a12061f | 2012-07-20 21:42:26 -0700 | [diff] [blame] | 294 | (reported by "thebluemountain") |
| 295 | * [JACKSON-838]: Utf8StreamParser._reportInvalidToken() skips letters |
| 296 | from reported token name |
Tatu Saloranta | 023d8bd | 2012-08-13 22:17:28 -0700 | [diff] [blame] | 297 | (reported by Lóránt Pintér) |
Tatu Saloranta | a12061f | 2012-07-20 21:42:26 -0700 | [diff] [blame] | 298 | * [JACKSON-841] Data is doubled in SegmentedStringWriter output |
| 299 | (reported by Scott S) |
| 300 | * [JACKSON-842] ArrayIndexOutOfBoundsException when skipping C-style comments |
| 301 | (reported by Sebastien R) |
| 302 | |
| 303 | 2.0.3: no version 2.0.3 released -- only used for extension modules |
| 304 | |
Tatu Saloranta | c277641 | 2012-05-14 19:40:57 -0700 | [diff] [blame] | 305 | 2.0.2 [14-May-2012] |
Tatu Saloranta | 23e267c | 2012-04-23 19:22:04 -0700 | [diff] [blame] | 306 | |
| 307 | Fixes: |
| 308 | |
Tatu Saloranta | 7ccce01 | 2012-08-04 16:17:54 -0700 | [diff] [blame] | 309 | * [Issue#14]: Annotations were not included from parent classes of |
Tatu Saloranta | 1b30b1a | 2012-04-28 00:43:34 -0700 | [diff] [blame] | 310 | mix-in classes |
| 311 | (reported by @guillaup) |
Tatu Saloranta | e16034e | 2012-04-30 22:51:36 -0700 | [diff] [blame] | 312 | * [JACKSON-824]: Combination of JSON Views, ObjectMapper.readerForUpdating() |
| 313 | was not working |
| 314 | (reported by Nir S) |
Tatu Saloranta | b8f79ed | 2012-05-14 19:04:53 -0700 | [diff] [blame] | 315 | (and all fixes from 1.9.7) |
Tatu Saloranta | 1b30b1a | 2012-04-28 00:43:34 -0700 | [diff] [blame] | 316 | |
Tatu Saloranta | cfa2fc1 | 2012-04-27 19:31:28 -0700 | [diff] [blame] | 317 | Improvements: |
| 318 | |
Tatu Saloranta | 7ccce01 | 2012-08-04 16:17:54 -0700 | [diff] [blame] | 319 | * [Issue#11]: Improve ObjectMapper.convertValue()/.treeToValue() to use |
Tatu Saloranta | cfa2fc1 | 2012-04-27 19:31:28 -0700 | [diff] [blame] | 320 | cast if possible |
| 321 | |
Tatu Saloranta | 23e267c | 2012-04-23 19:22:04 -0700 | [diff] [blame] | 322 | 2.0.1 [23-Apr-2012] |
Tatu Saloranta | 737ad05 | 2012-04-02 21:04:47 -0700 | [diff] [blame] | 323 | |
| 324 | Fixes: |
| 325 | |
Tatu Saloranta | fc3db39 | 2012-04-23 18:49:08 -0700 | [diff] [blame] | 326 | * [JACKSON-827] Ensure core packages work on JDK 1.5 |
| 327 | (reported by Pascal g) |
Tatu Saloranta | ae4ea6e | 2012-04-19 19:47:53 -0700 | [diff] [blame] | 328 | * [JACKSON-829] Custom serializers not working for List<String> properties, |
| 329 | @JsonSerialize(contentUsing) |
| 330 | (reported by James R) |
| 331 | |
Tatu Saloranta | 737ad05 | 2012-04-02 21:04:47 -0700 | [diff] [blame] | 332 | Improvements: |
| 333 | |
Tatu Saloranta | 7ccce01 | 2012-08-04 16:17:54 -0700 | [diff] [blame] | 334 | * [Issue#5]: Add support for maps with java.util.Locale keys to the set of |
Tatu Saloranta | 737ad05 | 2012-04-02 21:04:47 -0700 | [diff] [blame] | 335 | StdKeyDeserializers |
| 336 | (contributed by Ryan G) |
| 337 | |
Tatu Saloranta | fc3db39 | 2012-04-23 18:49:08 -0700 | [diff] [blame] | 338 | 2.0.0 [25-Mar-2012] |
Tatu Saloranta | 703bf4a | 2012-01-11 22:14:37 -0800 | [diff] [blame] | 339 | |
| 340 | Fixes: |
| 341 | |
Tatu Saloranta | 337feca | 2012-03-19 19:11:21 -0700 | [diff] [blame] | 342 | * [JACKSON-368]: Problems with managed references, abstract types |
Tatu | 3af61ff | 2012-01-19 15:58:41 -0800 | [diff] [blame] | 343 | * [JACKSON-711]: Delegating @JsonCreator did not work with Injectable values |
Tatu Saloranta | e1ceccd | 2012-03-04 19:52:36 -0800 | [diff] [blame] | 344 | * [JACKSON-798]: Problem with external type id, creators |
| 345 | (reported by Casey L) |
Tatu Saloranta | deaee9c | 2012-03-25 12:01:34 -0700 | [diff] [blame] | 346 | (and all fixes up until and including 1.9.6) |
Tatu | 9e6c28f | 2012-01-19 15:58:08 -0800 | [diff] [blame] | 347 | |
Tatu Saloranta | e1ceccd | 2012-03-04 19:52:36 -0800 | [diff] [blame] | 348 | Improvements: |
Tatu Saloranta | 703bf4a | 2012-01-11 22:14:37 -0800 | [diff] [blame] | 349 | |
Tatu Saloranta | 28ff1a9 | 2012-01-17 17:54:51 -0800 | [diff] [blame] | 350 | * [JACKSON-546]: Indicate end-of-input with JsonMappingException instead |
| 351 | of EOFException, when there is no parsing exception |
Tatu Saloranta | ee6e3d1 | 2012-01-17 17:28:39 -0800 | [diff] [blame] | 352 | * [JACKSON-664]: Reduce overhead of type resolution by adding caching |
| 353 | in TypeFactory |
Tatu Saloranta | 7555fa2 | 2012-01-14 23:03:04 -0800 | [diff] [blame] | 354 | * [JACKSON-690]: Pass DeserializationContext through ValueInstantiator |
Tatu | 418a239 | 2012-01-12 21:52:07 -0800 | [diff] [blame] | 355 | * [JACKSON-695]: Add 'isEmpty(value)' in JsonSerializer to allow |
| 356 | customizing handling of serialization of empty values |
Tatu Saloranta | 15fb6ff | 2012-01-14 10:31:35 -0800 | [diff] [blame] | 357 | * [JACKSON-710]: 'ObjectMapper.convertValue()' should ignore root value |
| 358 | wrapping/unwrapping settings |
Tatu | 6066826 | 2012-01-19 14:21:12 -0800 | [diff] [blame] | 359 | * [JACKSON-730] Split various features (JsonParser, JsonGenerator, |
| 360 | SerializationConfig, DeserializationConfig) into per-factory |
Tatu Saloranta | 048832d | 2012-03-09 21:48:40 -0800 | [diff] [blame] | 361 | features (MapperFeature, JsonFactory.Feature) an per |
Tatu | 6066826 | 2012-01-19 14:21:12 -0800 | [diff] [blame] | 362 | instance features (existing ones) |
Tatu Saloranta | a03e0eb | 2012-01-14 14:01:39 -0800 | [diff] [blame] | 363 | * [JACKSON-732]: Allow 'AnnotationIntrospector.findContentDeserializer()' |
| 364 | (and similar) to return instance, not just Class<?> for instance |
| 365 | (requested by James R) |
Tatu Saloranta | 4b02e9e | 2012-02-03 18:41:29 -0800 | [diff] [blame] | 366 | * [JACKSON-736]: Add (more) access to array, container and map serializers |
Tatu Saloranta | c166fa3 | 2012-02-03 19:42:41 -0800 | [diff] [blame] | 367 | * [JACKSON-737]: Allow accessing of "creator properties" for BeanDeserializer |
Tatu | cbbfbd3 | 2012-01-20 16:07:51 -0800 | [diff] [blame] | 368 | * [JACKSON-748]: Add 'registerSubtypes' to 'Module.setupContext' (and SimpleModule) |
Tatu Saloranta | 703bf4a | 2012-01-11 22:14:37 -0800 | [diff] [blame] | 369 | * [JACKSON-749]: Make @JsonValue work for Enum deserialization |
Tatu | b471a04 | 2012-01-27 11:51:39 -0800 | [diff] [blame] | 370 | * [JACKSON-769]: ObjectNode/ArrayNode: change 'put', 'insert', 'add' to return |
| 371 | 'this node' (unless already returning something) |
Tatu Saloranta | e5d7769 | 2012-01-29 11:20:26 -0800 | [diff] [blame] | 372 | * [JACKSON-770]: Simplify method naming for JsonNode, drop unnecessary 'get' prefix |
| 373 | from methods like 'getTextValue()' (becomes 'textValue()') |
Tatu | 9610aff | 2012-02-02 11:30:08 -0800 | [diff] [blame] | 374 | * [JACKSON-777]: Rename 'SerializationConfig.Feature' as 'SerializationFeature', |
Tatu Saloranta | 2880872 | 2012-02-24 18:35:50 -0800 | [diff] [blame] | 375 | 'DeserializationConfig.Feature' as 'DeserializationFeature' |
Tatu Saloranta | dfc4c88 | 2012-02-11 13:54:27 -0800 | [diff] [blame] | 376 | * [JACKSON-780]: MissingNode, NullNode should return 'defaultValue' from 'asXxx' methods, |
Tatu Saloranta | 2880872 | 2012-02-24 18:35:50 -0800 | [diff] [blame] | 377 | (not 0 for numbers), as they are not numeric types |
Tatu Saloranta | 3ae9c39 | 2012-05-18 16:45:47 -0700 | [diff] [blame] | 378 | * [JACKSON-787]: Allow use of @JsonIgnoreProperties for properties (fields, getters, setters) |
Tatu Saloranta | 2880872 | 2012-02-24 18:35:50 -0800 | [diff] [blame] | 379 | * [JACKSON-795]: @JsonValue was not working for Maps, Collections |
Tatu Saloranta | cf5d547 | 2012-03-03 11:47:51 -0800 | [diff] [blame] | 380 | * [JACKSON-800]: Add 'Module.SetupContext#addDeserializationProblemHandler' |
| 381 | (suggested by James R) |
Tatu Saloranta | 703bf4a | 2012-01-11 22:14:37 -0800 | [diff] [blame] | 382 | |
| 383 | New features: |
| 384 | |
Tatu Saloranta | c99a784 | 2012-02-22 18:09:00 -0800 | [diff] [blame] | 385 | * [JACKSON-107]: Add support for Object Identity (to handled cycles, shared refs), |
Tatu Saloranta | deaee9c | 2012-03-25 12:01:34 -0700 | [diff] [blame] | 386 | with @JsonIdentityInfo |
Tatu Saloranta | 26b2e1b | 2012-02-22 22:50:21 -0800 | [diff] [blame] | 387 | * [JACKSON-435]: Allow per-property Date formatting using @JsonFormat. |
Tatu Saloranta | 8958048 | 2012-01-20 22:08:56 -0800 | [diff] [blame] | 388 | * [JACKSON-437]: Allow injecting of type id as POJO property, by setting |
| 389 | new '@JsonTypeInfo.visible' property to true. |
Tatu Saloranta | 17ad21f | 2012-02-19 10:01:31 -0800 | [diff] [blame] | 390 | * [JACKSON-469]: Support "Builder pattern" for deserialiation; that is, allow |
| 391 | use of separate Builder object for data binding, creating actual value |
Tatu Saloranta | 7324b9b | 2012-02-02 21:51:16 -0800 | [diff] [blame] | 392 | * [JACKSON-608]: Allow use of JSON Views for deserialization |
Tatu Saloranta | 49117e0 | 2012-03-03 16:01:12 -0800 | [diff] [blame] | 393 | * [JACKSON-636]: Add 'SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS' to allow |
| 394 | forced sorting of Maps during serialization |
| 395 | (suggested by Joern H) |
Tatu Saloranta | 2aa6484 | 2012-01-14 22:25:08 -0800 | [diff] [blame] | 396 | * [JACKSON-669]: Allow prefix/suffix for @JsonUnwrapped properties |
| 397 | (requested by Aner P) |
Tatu Saloranta | f0e232d | 2012-01-29 16:44:28 -0800 | [diff] [blame] | 398 | * [JACKSON-707]: Add 'JsonNode.deepCopy()', to create safe deep copies |
| 399 | of ObjectNodes, ArrayNodes. |
Tatu Saloranta | ff8c08c | 2012-02-21 22:21:21 -0800 | [diff] [blame] | 400 | * [JACKSON-714]: Add general-purpose @JsonFormat annotation |
Tatu | bc4153e | 2012-01-18 15:05:44 -0800 | [diff] [blame] | 401 | * [JACKSON-718]: Added 'JsonNode.canConvertToInt()', 'JsonNode.canConvertToLong()' |
Tatu Saloranta | 048832d | 2012-03-09 21:48:40 -0800 | [diff] [blame] | 402 | * [JACKSON-747]: Allow changing of 'SerializationFeature' for ObjectWriter, |
| 403 | 'DeserializationFeature' for ObjectReader. |
Tatu Saloranta | 2aa6484 | 2012-01-14 22:25:08 -0800 | [diff] [blame] | 404 | * [JACKSON-752]: Add @JsonInclude (replacement of @JsonSerialize.include) |
Tatu Saloranta | f7c45bf | 2012-01-16 18:26:47 -0800 | [diff] [blame] | 405 | * [JACKSON-754]: Add @JacksonAnnotationsInside for creating "annotation |
| 406 | bundles" (also: AnnotationIntrospector.isAnnotationBundle()) |
Tatu | bbebf46 | 2012-02-03 17:44:31 -0800 | [diff] [blame] | 407 | * [JACKSON-762]: Allow using @JsonTypeId to specify property to use as |
| 408 | type id, instead of using separate type id resolver. |
Tatu Saloranta | e196174 | 2012-01-22 16:03:47 -0800 | [diff] [blame] | 409 | * [JACKSON-764]: Allow specifying "root name" to use for root wrapping |
| 410 | via ObjectReader, ObjectWriter. |
Tatu Saloranta | 361c0a8 | 2012-02-24 18:16:29 -0800 | [diff] [blame] | 411 | * [JACKSON-772]: Add 'JsonNode.withArray()' to use for traversing Array nodes. |
| 412 | * [JACKSON-793]: Add support for configurable Locale, TimeZone to use |
| 413 | (via SerializationConfig, DeserializationConfig) |
Tatu Saloranta | 048832d | 2012-03-09 21:48:40 -0800 | [diff] [blame] | 414 | * [JACKSON-805]: Add 'SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED' |
| 415 | to improve interoperability with BadgerFish/Jettison |
Tatu Saloranta | f293cc4 | 2012-03-24 21:10:18 -0700 | [diff] [blame] | 416 | * [JACKSON-810]: Deserialization Feature: Allow unknown Enum values via |
| 417 | 'DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL' |
| 418 | (suggested by Raymond R) |
Tatu Saloranta | 33a9a93 | 2012-03-21 18:12:14 -0700 | [diff] [blame] | 419 | * [JACKSON-813]: Add '@JsonSerializableSchema.id' attribute, to indicate |
| 420 | 'id' value to add to generated JSON Schemas. |
Tatu Saloranta | 2aa6484 | 2012-01-14 22:25:08 -0800 | [diff] [blame] | 421 | |
Tatu Saloranta | 703bf4a | 2012-01-11 22:14:37 -0800 | [diff] [blame] | 422 | [entries for versions 1.x and earlier not retained; refer to earlier releases) |