blob: 170fed25b54b194b79f9cc232380aadbb7010509 [file] [log] [blame]
Tatu Saloranta637b73c2013-02-13 10:17:51 -08001Project: jackson-core
Tatu Saloranta1c9e1452014-11-24 18:08:01 -08002
3Contains core streaming reader (`JsonParser`) and writer (`JsonGenerator`) abstractions,
Tatu Saloranta3dcedd22015-01-10 20:15:06 -08004factory for constructing readers/writers (JsonFactory), as well as a minimal set
Tatu Saloranta1c9e1452014-11-24 18:08:01 -08005of interfaces needed for streaming level to make callbacks and call-throughs,
6via `ObjectCodec` and `TreeNode`.
7
Tatu Saloranta3dcedd22015-01-10 20:15:06 -08008Also includes implementation of this API for JSON.
Tatu Saloranta1c9e1452014-11-24 18:08:01 -08009Forms the base for other data formats as well, despite naming that suggests
Tatu Saloranta3dcedd22015-01-10 20:15:06 -080010JSON-specificity: naming is due to history, as Jackson started out as pure
11JSON library.
Tatu Saloranta1c9e1452014-11-24 18:08:01 -080012
13------------------------------------------------------------------------
14=== Releases ===
15------------------------------------------------------------------------
16
Tatu Saloranta1a5c3652016-08-31 21:16:06 -0700172.9.0 (not yet released)
18
19#304: Optimize `NumberOutput.outputLong()` method
20
212.8.3 (not yet released)
22
Tatu Salorantafa643902016-09-01 15:32:46 -070023#318: Add support for writing `byte[]` via `JsonGenerator.writeEmbeddedObject()`
24
Tatu Salorantaaf873e32016-08-29 17:35:51 -0700252.8.2 (30-Aug-2016)
Tatu Saloranta630997d2016-07-19 15:57:32 -0700262.8.1 (20-Jul-2016)
Tatu Saloranta0e2dbc82016-07-18 22:15:28 -070027
28No changes since 2.8.0
29
Tatu Saloranta397fc052016-07-03 22:17:57 -0700302.8.0 (04-Jul-2016)
Tatu Saloranta4bace842016-03-21 21:35:39 -070031
Tatu Saloranta456ff3c2016-07-01 21:20:53 -070032#86: Allow inclusion of request body for `JsonParseException`
33 (contributed by LokeshN)
34#117: Add `JsonParser.Feature.ALLOW_MISSING_VALUES` to support for missing values
Tatu Saloranta6e3999e2016-04-14 18:42:19 -070035 (contributed by LokeshN)
Tatu Salorantafd5ca3b2016-05-28 20:17:14 -070036#136: Add `JsonpCharacterEscapes` for easier handling of potential problems
37 with JSONP and rare but technically allowed \u2028 and \u2029 linefeed characters
Tatu Saloranta4bace842016-03-21 21:35:39 -070038#253: Add `JsonGenerator. writeEmbeddedObject()` to allow writes of opaque native types
39 (suggested by Gregoire C)
40#255: Relax ownership checks for buffers not to require increase in size
41#257: Add `writeStartObject(Object pojo)` to streamline assignment of current value
Tatu Salorantac53f3162016-03-29 17:35:15 -070042#265: `JsonStringEncoder` should allow passing `CharSequence`
43 (contributed by Mikael S)
Tatu Saloranta38b3ef12016-05-03 18:08:31 -070044#276: Add support for serializing using `java.io.DataOutput`
Tatu Saloranta5f175922016-05-22 22:46:42 -070045#277: Add new scalar-array write methods for `int`/`long`/`double` cases
Tatu Salorantacfb08662016-05-24 18:03:17 -070046#279: Support `DataInput` for parsing
Tatu Salorantabf9a4902016-03-21 22:01:53 -070047#280: Add `JsonParser.finishToken()` to force full, non-lazy reading of current token
Tatu Saloranta98f84442016-05-26 18:00:14 -070048#281: Add `JsonEOFException` as sub-class of `JsonParseException`
Tatu Salorantae0b105f2016-05-12 20:13:14 -070049#282: Fail to report error for trying to write field name outside Object (root level)
Tatu Salorantab13bde62016-05-18 08:47:04 -070050#285: Add `JsonParser.getText(Writer)`
51 (contributed by LokesN)
Tatu Salorantae5ded102016-05-24 18:56:21 -070052#290: Add `JsonGenerator.canWriteFormattedNumbers()` for introspection
Tatu Saloranta792de082016-06-28 22:50:04 -070053#294: Add `JsonGenerator.writeFieldId(long)` method to support binary formats
54 with non-String keys
Tatu Saloranta0d8b14d2016-07-03 22:02:12 -070055#296: `JsonParserSequence` skips a token on a switched Parser
Tatu Salorantae052c312016-07-01 21:11:25 -070056 (reported by Kevin G)
Tatu Saloranta93994e32016-05-14 18:21:47 -070057- Add `JsonParser.currentToken()` and `JsonParser.currentTokenId()` as replacements
58 for `getCurrentToken()` and `getCurrentTokenId()`, respectively. Existing methods
59 will likely be deprecated in 2.9.
Tatu Saloranta4bace842016-03-21 21:35:39 -070060
Tatu Saloranta345cad52016-08-31 21:09:22 -0700612.7.8 (not yet released)
62
63#317: ArrayIndexOutOfBoundsException: 200 on floating point number with exactly
64 200-length decimal part
65 (reported by Allar H)
66
Tatu Saloranta930edea2016-08-26 14:50:58 -0700672.7.7 (27-Aug-2016)
Tatu Saloranta554f8db2016-08-18 23:09:52 -070068
69#307: JsonGenerationException: Split surrogate on writeRaw() input thrown for
70 input of a certain size
71 (reported by Mike N)
Tatu Saloranta96642972016-08-24 22:53:20 -070072#315: `OutOfMemoryError` when writing BigDecimal
73 (reported by gmethwin@github)
Tatu Saloranta554f8db2016-08-18 23:09:52 -070074
Tatu Saloranta5f1f2952016-07-22 19:23:49 -0700752.7.6 (23-Jul-2016)
Tatu Salorantae962fb92016-07-21 14:14:26 -070076
77- Clean up of FindBugs reported possible issues.
78
Tatu Saloranta0ea06aa2016-06-10 19:02:06 -0700792.7.5 (11-Jun-2016)
Tatu Saloranta88db6b72016-05-06 10:06:59 -070080
Tatu Saloranta00a29c82016-05-06 10:03:36 -070081#280: FilteringGeneratorDelegate.writeUTF8String() should delegate to writeUTF8String()
82 (reported by Tanguy L)
83
Tatu Saloranta3f368b42016-04-28 17:21:43 -0700842.7.4 (29-Apr-2016)
Tatu Saloranta91965b22016-02-22 20:17:21 -080085
Tatu Salorantaecf088c2016-03-21 21:27:04 -070086#209: Make use of `_allowMultipleMatches` in `FilteringParserDelegate`
87 (contributed by Lokesh N)
Tatu Salorantae3292f52016-04-14 19:16:45 -070088- Make `processor` transient in `JsonParseException`, `JsonGenerationException`
89 to keep both Serializable
Tatu Salorantaecf088c2016-03-21 21:27:04 -070090
Tatu Saloranta9118d6b2016-03-15 18:14:51 -0700912.7.3 (16-Mar-2016)
92
93No changes since 2.7.2.
94
Tatu Saloranta63245462016-02-26 18:09:09 -0800952.7.2 (26-Feb-2016)
Tatu Salorantad58d4202016-02-22 20:11:12 -080096
97#246: Fix UTF8JsonGenerator to allow QUOTE_FIELD_NAMES to be toggled
98 (suggested by philipa@github)
99
Tatu Saloranta58088f42016-02-01 22:08:22 -08001002.7.1 (02-Feb-2016)
101
102No changes since 2.7.0.
103
Tatu Saloranta4d97ba92016-01-09 21:51:10 -08001042.7.0 (10-Jun-2016)
Cowtowncoder9a9b52f2015-08-11 15:56:22 -0700105
Tatu Salorantafede6c92015-11-25 21:02:31 -0800106#37: JsonParser.getTokenLocation() doesn't update after field names
107 (reported by Michael L)
Tatu Saloranta77be53c2015-08-17 22:52:56 -0700108#198: Add back-references to `JsonParser` / `JsonGenerator` for low-level parsing issues
109 (via `JsonParseException`, `JsonGenerationException`)
Cowtowncoder22465412015-08-18 12:25:05 -0700110#211: Typo of function name com.fasterxml.jackson.core.Version.isUknownVersion()
111 (reported by timray@github)
Tatu Saloranta4195e6e2015-11-16 22:58:39 -0800112#229: Array element and field token spans include previous comma.
Cowtowncoder8dc12842015-08-12 13:35:37 -0700113- Implemented `ReaderBasedJsonParser.nextFieldName(SerializableString)`
114 (to improved Afterburner performance over String/char[] sources)
Cowtowncoder9a9b52f2015-08-11 15:56:22 -0700115
Tatu Salorantaf73c59d2016-04-04 18:13:54 -07001162.6.6 (05-Apr-2016)
Tatu Saloranta1fb1e272016-01-25 20:00:10 -0800117
118#248: VersionUtil.versionFor() unexpectedly return null instead of Version.unknownVersion()
119 (reported by sammyhk@github)
120
Ben Jefferiesb246ce82016-01-26 14:46:39 +00001212.6.5 (19-Jan-2016)
Tatu Salorantaaf5f1462015-12-07 18:25:30 -08001222.6.4 (07-Dec-2015)
123
124No changes since 2.6.3.
125
Cowtowncoder273ef302015-10-12 09:49:41 -07001262.6.3 (12-Oct-2015)
Cowtowncoder186a6392015-09-30 14:43:24 -0700127
128#220: Problem with `JsonParser.nextFieldName(SerializableString)` for byte-backed parser
129
Tatu Saloranta9d0f0aa2015-09-14 19:43:20 -07001302.6.2 (14-Sep-2015)
Cowtowncodercfeaed02015-09-08 15:49:09 -0700131
132#213: Parser is sometimes wrong when using CANONICALIZE_FIELD_NAMES
133 (reported by ichernev@github)
Cowtowncoderbe438672015-09-09 10:59:56 -0700134#216: ArrayIndexOutOfBoundsException: 128 when repeatedly serializing to a byte array
135 (reported by geekbeast@github)
Cowtowncodercfeaed02015-09-08 15:49:09 -0700136
Tatu Saloranta7fd29162015-08-09 22:22:14 -07001372.6.1 (09-Aug-2015)
Cowtowncoderc2823b42015-07-31 19:43:48 -0700138
139#207: `ArrayIndexOutOfBoundsException` in `ByteQuadsCanonicalizer`
140 (reported by Florian S, fschopp@github)
141
Cowtowncoder80b83192015-07-16 17:12:09 -07001422.6.0 (17-Jul-2015)
Cowtowncoder5cddffa2015-01-15 16:10:26 -0800143
Tatu Saloranta66e604f2015-05-25 20:02:40 -0700144#137: Allow filtering content read via `JsonParser` by specifying `JsonPointer`;
145 uses new class `com.fasterxml.jackson.core.filter.FilteringParserDelegate`
146 (and related, `TokenFilter`)
Cowtowncoder5cddffa2015-01-15 16:10:26 -0800147#177: Add a check so `JsonGenerator.writeString()` won't work if `writeFieldName()` expected.
Cowtowncoder7f5065a2015-02-23 15:51:38 -0800148#182: Inconsistent TextBuffer#getTextBuffer behavior
149 (contributed by Masaru H)
Tatu Salorantab895aaf2015-04-23 22:15:48 -0700150#185: Allow filtering content written via `JsonGenerator` by specifying `JsonPointer`;
151 uses new class `com.fasterxml.jackson.core.filter.FilteringGeneratorDelegate`
152 (and related, `TokenFilter`)
Cowtowncoder698f3a72015-03-30 17:26:08 -0700153#188: `JsonParser.getValueAsString()` should return field name for `JsonToken.FIELD_NAME`, not `null`
Tatu Saloranta8891c0c2015-04-23 22:47:05 -0700154#189: Add `JsonFactory.Feature.USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING` (default: true), which may
155 be disabled to prevent use of ThreadLocal-based buffer recyling.
156 (suggested by soldierkam@github)
Cowtowncoderff2a73a2015-05-27 10:01:22 -0700157#195: Add `JsonGenerator.getOutputBuffered()` to find out amount of content buffered,
158 not yet flushed.
159 (requested by Ruediger M)
Cowtowncoder97345f72015-06-09 11:33:42 -0700160#196: Add support for `FormatFeature` extension, for format-specifc Enum-backed
161 parser/generator options
Cowtowncoderefc42952015-02-05 10:18:04 -0800162- Minor improvement to construction of "default PrettyPrinter": now overridable by data format
163 modules
Tatu Saloranta2967c232015-02-05 20:46:53 -0800164- Implement a new yet more optimized symbol table for byte-backed parsers
Cowtowncoder4eeba792015-02-13 16:17:17 -0800165- Add `JsonParser.Feature.IGNORE_UNDEFINED`, useful for data formats like protobuf
Tatu Salorantaad3a43e2015-03-30 19:29:05 -0700166- Optimize writing of String names (remove intermediate copy; with JDK7 no speed benefit)
Cowtowncoder5cddffa2015-01-15 16:10:26 -0800167
Tatu Saloranta29c98072015-12-07 18:35:55 -08001682.5.5 (07-Dec-2015)
Tatu Saloranta98df1822015-10-01 08:08:41 -0700169
170#220: Problem with `JsonParser.nextFieldName(SerializableString)` for byte-backed parser
Cowtowncoder5f04c202015-10-06 14:25:20 -0700171#221: Fixed ArrayIndexOutOfBounds exception for character-based `JsonGenerator`
172 (reported by a-lerion@github)
Tatu Saloranta98df1822015-10-01 08:08:41 -0700173
Tatu Saloranta7cac58b2015-06-09 18:24:02 -07001742.5.4 (09-Jun-2015)
175
176No changes.
177
Cowtowncodercec04792015-04-24 10:08:26 -07001782.5.3 (24-Apr-2015)
Tatu Saloranta6a637522015-04-22 21:33:47 -0700179
180#191: Longest collision chain in symbol table now exceeds maximum -- suspect a DoS attack
181 (reported by Paul D)
182
Tatu Saloranta8f64a152015-03-29 16:46:40 -07001832.5.2 (29-Mar-2015)
Cowtowncoder29a364a2015-02-16 13:55:24 -0800184
185#181: Failure parsing -Infinity on buffer boundary
186 (reported by brharrington@github)
Tatu Salorantae0a02272015-03-26 21:05:39 -0700187#187: Longest collision chain in symbol table exceeds maximum length routinely
188 in non-malicious code
189 (reported by mazzaferri@github)
Cowtowncoder29a364a2015-02-16 13:55:24 -0800190
Tatu Saloranta725b7972015-02-06 16:03:50 -08001912.5.1 (06-Feb-2015)
Tatu Saloranta3dcedd22015-01-10 20:15:06 -0800192
193#178: Add `Lf2SpacesIndenter.withLinefeed` back to keep binary-compatibility with 2.4.x
194 (reported by ansell@github)
Tatu Saloranta9bdda3f2015-02-02 21:35:52 -0800195- Minor fix to alignment of null bytes in the last 4 bytes of name, in case where name
196 may cross the input boundary
Tatu Saloranta3dcedd22015-01-10 20:15:06 -0800197
Tatu Saloranta41ee3042015-01-01 15:34:50 -08001982.5.0 (01-Jan-2015)
Tatu Salorantaca94baf2014-08-07 20:44:41 -0700199
Tatue9972872014-08-13 13:00:57 -0700200#148: BytesToNameCanonicalizer can mishandle leading null byte(s).
201 (reported by rjmac@github)
Cowtowncoder27eb3c12014-11-07 15:16:45 -0800202#164: Add `JsonGenerator.Feature.IGNORE_UNKNOWN` (but support via individual
203 data format modules)
Tatu Saloranta55cfa312014-11-28 20:54:50 -0800204#166: Allow to configure line endings and indentation
205 (contributed by Aaron D)
Cowtowncoder7b1d4112014-11-24 11:41:16 -0800206#167: `JsonGenerator` not catching problem of writing field name twice in a row
Tatu Saloranta44f42e82014-11-26 20:38:27 -0800207#168: Add methods in `JsonStreamContext` for keeping track of "current value"
Cowtowncoderd2c60232014-12-09 14:39:17 -0800208#169: Add `JsonPointer.head()`
Cowtowncoderfa0b5232014-12-05 14:01:27 -0800209 (contributed by Alex S, lordofthejars@github)
Cowtowncoderf4087952014-09-29 14:23:37 -0700210- Added `ResolvedType.getParameterSource()` to support better resolution
211 of generic types.
Cowtowncoder7df7c572014-11-07 17:06:29 -0800212- Added `JsonGenerator.writeRawValue(SerializableString)`
Tatu Saloranta39170c02014-12-12 20:17:13 -0800213- Added `JsonParser.hasExpectedStartObjectToken()` convenience method
Tatu Salorantaaae53972014-12-09 20:05:04 -0800214- Added `JsonParser.hasTokenId(id)` convenience method
Cowtowncoder2ec34032014-12-11 10:50:57 -0800215- Added `JsonParser.nextFieldName()` (no args)
Tatue9972872014-08-13 13:00:57 -0700216
Cowtowncoder44dc4292015-09-11 10:05:02 -07002172.4.6 (23-Apr-2015)
Cowtowncoderfca10e32015-02-19 16:39:04 -0800218
219#184: WRITE_NUMBERS_AS_STRINGS disables WRITE_BIGDECIMAL_AS_PLAIN
220 (reported by Derek C)
221
Tatu Saloranta36c91eb2015-01-13 20:20:08 -08002222.4.5 (13-Jan-2015)
223
224No changes since 2.4.4.
225
Tatu Saloranta1c9e1452014-11-24 18:08:01 -08002262.4.4 (24-Nov-2014)
Tatu Salorantad533f292014-09-24 20:14:39 -0700227
Cowtowncoder290799a2014-10-08 16:06:40 -0700228#157: ArrayIndexOutOfBoundsException: 200 on numbers with more than 200 digits.
229 (reported by Lars P, larsp@github)
Tatu Saloranta0d9cd9f2014-12-07 10:16:55 -0800230#173: An exception is thrown for a valid JsonPointer expression
231 (reported by Alex S)
Cowtowncoderd9995142014-12-30 17:09:51 -0800232#176: `JsonPointer` should not consider "00" to be valid index
233 (reported by fge@gitub)
Tatu Salorantaffd16b72014-11-09 12:48:32 -0800234- Fix `JsonGenerator.setFeatureMask()` to better handle dynamic changes.
Tatu Salorantad533f292014-09-24 20:14:39 -0700235
Cowtowncoderd860a8c2014-10-09 11:35:33 -07002362.4.3 (02-Oct-2014)
Tatu544904d2014-08-13 12:31:11 -0700237
Cowtowncoderd860a8c2014-10-09 11:35:33 -0700238#152: Exception for property names longer than 256k
239 (reported by CrendKing@github)
Tatu544904d2014-08-13 12:31:11 -0700240
Tatu Salorantad533f292014-09-24 20:14:39 -07002412.4.2 (13-Aug-2014)
Tatu4ceaba82014-06-06 13:44:41 -0700242
Tatu Saloranta5027dc52014-07-08 20:27:00 -0700243#145: NPE at BytesToNameCanonicalizer
244 (reported by Shay B)
Tatu Saloranta1f6e1fb2012-01-17 22:29:27 -0800245#146: Error while parsing negative floats at the end of the input buffer
246 (reported by rjmac@github)
Tatu4ceaba82014-06-06 13:44:41 -0700247
Tatu Saloranta5027dc52014-07-08 20:27:00 -07002482.4.1 (16-Jun-2014)
249
250#143: Flaw in `BufferRecycler.allocByteBuffer(int,int)` that results in
251 performance regression
252
2532.4.0 (29-May-2014)
Tatu Saloranta1f6e1fb2012-01-17 22:29:27 -0800254
Tatu Saloranta175a97b2014-01-09 21:49:24 -0800255#121: Increase size of low-level byte[]/char[] input/output buffers
256 (from 4k->8k for bytes, 2k->4k for chars)
Tatu Saloranta1d076012014-03-24 18:29:33 -0700257#127: Add `JsonGenerator.writeStartArray(int size)` for binary formats
Tatu64aa9d22014-04-18 14:07:38 -0700258#138: Add support for using `char[]` as input source; optimize handling
259 of `String` input as well.
Tatu Salorantaf633f102013-12-13 21:15:24 -0800260- Refactor `BufferRecycler` to eliminate helper enums
Tatu Saloranta6f91dcf2013-12-01 13:16:45 -0800261
Cowtowncoder44dc4292015-09-11 10:05:02 -07002622.3.5 (13-Jan-2015)
263
264#152: Exception for property names longer than 256k
265#173: An exception is thrown for a valid JsonPointer expression
266#176: `JsonPointer` should not consider "00" to be valid index
267
2682.3.4 (17-Jul-2014)
Tatu Saloranta9e2d7372014-05-07 08:23:32 -07002692.3.3 (10-Apr-2014)
270
271No changes since 2.3.2.
272
2732.3.2 (01-Mar-2014)
Tatu Salorantaa50f62c2014-03-06 20:24:04 -0800274
275#126: Revert some 1.6 back to make core lib work with Android 2.2 (FroYo)
276 (contributed by Goncalo S)
277#129: Missing delegation method, `JsonParserDelegate.isExpectedStartArrayToken()`
278 (Pascal G)
Tatu Saloranta9e2d7372014-05-07 08:23:32 -0700279#133: Prevent error on JsonPointer expressions for properties that have numeric
280 ids above 32-bit range
281 (reported by mrstlee@github)
Tatu Salorantaa50f62c2014-03-06 20:24:04 -0800282
Tatu141c08b2014-02-28 14:04:39 -08002832.3.1 (28-Dec-2013)
284
285No functional changes.
286
Tatu Salorantaf633f102013-12-13 21:15:24 -08002872.3.0 (13-Nov-2013)
288
Tatu Salorantaf9593612013-08-07 19:24:25 -0700289#8: Add methods in `JsonParser`/`JsonGenerator` for reading/writing Object Ids
Tatu Saloranta098ece82013-09-19 12:12:22 -0700290#47: Support YAML-style comments with `JsonParser.Feature.ALLOW_YAML_COMMENTS`
Tatu Saloranta880ba762013-09-24 21:32:15 -0700291#60: Add a feature (`JsonParser.Feature.STRICT_DUPLICATE_DETECTION`) to verify
292 that input does not contain duplicate filed names
Tatu Salorantaad28e352013-07-04 16:40:18 -0700293#77: Improve error reporting for unrecognized tokens
294 (requested by cowwoc@github)
Tatu Saloranta0dba7142013-07-04 21:17:31 -0700295#85: Add `JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN`
Tatu Saloranta08f918c2013-07-27 19:26:51 -0700296#91: Add methods in `JsonGenerator` for writing native Type Ids
Tatu Saloranta567257f2013-08-02 22:20:17 -0700297#92: Add methods in `JsonParser` for reading native Type Ids
Tatu Salorantacaefc682013-08-07 19:20:50 -0700298#93: Add `getFeatureMask()`, `setFeatureMask()` in `JsonGenerator`/`JsonParser`
Tatu Saloranta98c86a92013-08-10 19:25:43 -0700299#94: Allow coercion of String value "null" (similar to handling of null token)
Tatu Saloranta1734a3a2013-08-28 19:06:20 -0700300#96: Add `JsonFactory.requiresPropertyOrdering()` introspection method
Tatu Saloranta7dc9de62013-08-30 19:01:20 -0700301#97: JsonGenerator's `JsonWriteContext` not maintained properly, loses
302 current field name
303 (reported by Sam R)
Tatu Salorantab40ac812013-08-28 21:04:32 -0700304#98: Improve handling of failures for `BigDecimal`, for "NaN" (and infinity)
Tatu Salorantaeaa2b0c2013-09-21 11:39:53 -0700305#102: Unquoted field names can not start with a digit
Tatu Salorantab8835442013-09-14 12:12:57 -0700306#103: Add `JsonFactory.canHandleBinaryNatively`, `JsonGenerator.canWriteBinaryNatively`
307 to let databind module detect level of support for binary data.
Tatu Saloranta38d6e352013-09-21 11:26:42 -0700308#105: Parser parsers numbers eagerly; does not report error with missing space
Tatu Salorantaf9ad80f2013-09-24 21:31:16 -0700309#106: Add `JsonGenerator.Feature.STRICT_DUPLICATE_DETECTION` for preventing dup names
Tatu Saloranta0e10fd52013-11-02 21:12:49 -0700310#110: Improve overridability of `JsonGeneratorDelegate`
311 (suggested by qpliu@github)
Tatu Saloranta911cca02013-10-08 10:03:44 -0700312#111: _currInputRowStart isn't initialized in UTF8StreamJsonParser() constructor
313 (reported by dreamershl@github)
Tatu Saloranta5e14c462013-11-08 19:30:54 -0800314#115: JsonGenerator writeRawValue problem with surrogate UTF-8 characters
315 (reported by Marcin Z)
Tatu Salorantabc540622013-11-11 16:08:15 -0800316#116: WriterBasedJsonGenerator produces truncated Unicode escape sequences
317 (reported by Steve L-S)
Tatu Saloranta45cc26c2013-08-07 23:24:04 -0700318- Improve `DefaultPrettyPrinter`, `Lf2SpacesIndenter` (from databind #276)
Tatu Saloranta98cb9a72013-08-10 15:05:33 -0700319- Add `JsonGenerator.canOmitFields()` method to support discovery of
320 positional formats, needed for handling of filtering for CSV
Tatu Saloranta8475c8b2013-09-18 16:21:22 -0700321- Rewrite `InternCache` to use `ConcurrentHashMap`, to work more efficiently both
322 for common case of few misses (no block on access), and slowest cases (lots of
323 misses).
Tatu879b7cd2013-09-24 11:51:37 -0700324- Add `JsonPointer` implementation, to be used by tree model, streaming
Tatu Saloranta7ee38782013-10-03 10:51:06 -0700325- Make `UTF8StreamJsonParser` non-final, for potential sub-classing
Tatu Salorantaad28e352013-07-04 16:40:18 -0700326
Tatu Saloranta3da5c042013-10-08 10:08:24 -07003272.2.3 (23-Aug-2013)
328
329#78: ArrayIndexOutOfBoundsException for very long numbers (>500 digits)
330 (reported by boothen@github)
331#81: CharTypes.appendQuoted misencodes first 32 Unicode values as '\0000'
332 (reported by githubaff0@github)
333#84: Support for parsing 'Infinity' when feature ALLOW_NON_NUMERIC_NUMBERS is on
334 (contributed by ebrevdo@github)
335- Add `Base64Variant.decode()` convenience methods
336
Tatu Saloranta0ec6bac2013-06-06 13:26:26 -07003372.2.2 (26-May-2013)
338
339No changes since previous version.
340
Tatu Salorantad940b452013-05-26 22:16:00 -07003412.2.1 (03-May-2013)
Tatu Saloranta7a9d1d32013-04-26 16:42:40 -0700342
Tatu Saloranta7b796a82013-04-27 10:18:30 -0700343#72: JsonFactory.copy() was not copying settings properly
344 (reported by Christian S (squiddle@github))
Tatu Saloranta7a9d1d32013-04-26 16:42:40 -0700345- Moved VERSION/LICENSE contained in jars under META-INF/, to resolve
346 Android packaging (APK) issues
347
Tatu Saloranta7a9d1d32013-04-26 16:42:40 -07003482.2.0 (22-Apr-2013)
Tatu Saloranta306524f2012-11-12 14:33:10 -0800349
350Fixes:
351
Tatu Saloranta5b7bbe12013-04-16 19:08:21 -0700352#51: JsonLocation had non-serializable field, mark as transient
Tatu Saloranta61d5bdd2013-01-11 19:02:01 -0800353
Tatu Saloranta45466132013-01-11 10:20:48 -0800354Improvements
355
Tatu Saloranta5b7bbe12013-04-16 19:08:21 -0700356#46, #49: Improve VersionUtil to generate PackageVersion, instead of
Tatu Saloranta45466132013-01-11 10:20:48 -0800357 reading VERSION.txt from jar -- improves startup perf on Android significantly
358 (contributed by Ben G)
Tatu Saloranta5b7bbe12013-04-16 19:08:21 -0700359#59: Add more functionality in `TreeNode` interface, to allow some
Tatu Saloranta12525982013-02-12 22:56:57 -0800360 level of traversal over any and all Tree Model implementations
Tatu Saloranta5b7bbe12013-04-16 19:08:21 -0700361#69: Add support for writing `short` values in JsonGenerator
Tatu Saloranta45466132013-01-11 10:20:48 -0800362
Tatu Salorantac3ef9f32013-02-04 20:35:22 -08003632.1.3 (19-Jan-2013)
Tatu Saloranta1e1bfb62012-11-15 17:39:03 -0800364
Tatu Salorantac3ef9f32013-02-04 20:35:22 -0800365* [JACKSON-884]: JsonStringEncoder.quoteAsStringValue() fails to encode
366 ctrl chars correctly.
367* [Issue#48] Problems with spaces in URLs
368 (reported by KlausBrunner)
369
3702.1.2 (04-Dec-2012)
371
372* [Issue#42] Problems with UTF32Reader
373 (reported by James R [jroper@github])
374* Added missing methods (like 'setPrettyPrinter()' in JsonGeneratorDelegate
375
3762.1.1 (11-Nov-2012)
Tatu Salorantadc2e72f2012-10-05 13:04:07 -0700377
Tatu Salorantaab0269c2012-10-20 13:19:10 -0700378* [Issue#34] `JsonParser.nextFieldName()` fails on buffer boundary
379 (reported by gsson@github)
Tatu Saloranta9c386442012-11-08 14:40:26 -0800380* [Issue#38] `JsonParser.nextFieldName()` problems when handling
381 names with trailing spaces
382 (reported by matjazs@github)
Tatu Salorantadc2e72f2012-10-05 13:04:07 -0700383
Tatu Salorantaab0269c2012-10-20 13:19:10 -07003842.1.0 (08-Oct-2012)
385
386A new minor version for 2.x.
Tatu Saloranta1adc8982012-03-30 16:47:59 -0700387
Tatu Saloranta84101d72012-05-14 22:16:28 -0700388New features:
389
Tatu Salorantae6dfc692012-09-28 15:34:05 -0700390* [Issue#14]: add 'readBinaryValue(...)' method in JsonParser
391* [Issue#16]: add 'writeBinary(InputStream, int)' method in JsonGenerator
Tatu Salorantad80a2d02012-06-11 20:37:35 -0700392 (and implement for JSON backend)
Tatu Salorantae6dfc692012-09-28 15:34:05 -0700393* [Issue#26]: Allow overriding "root value separator"
394 (suggested by Henning S)
Tatu Salorantae53c3a92012-05-23 20:07:23 -0700395
Tatu Salorantadc2e72f2012-10-05 13:04:07 -0700396Improvements:
397
398* [JACKSON-837]: Made JsonGenerator implement Flushable.
399 (suggested by Matt G)
400* [Issue#10]: add 'JsonProcessingException.getOriginalMessage()' for accessing
401 message without location info
402* [Issue#31]: make `JsonFactory` java.io.Serializable (via JDK)
403
Tatu Salorantaeeb2fbd2012-05-28 22:00:08 -0700404Other:
405
Tatu Salorantafeaabd12012-07-22 23:03:41 -0700406* [Issue-25]: Add 'createParser' and 'createGenerator' (as eventual replacements
Tatu Salorantaeeb2fbd2012-05-28 22:00:08 -0700407 for 'createJsonParser'/'createJsonGenerator') in 'JsonFactory'
Tatu Saloranta9c9622d2012-07-24 18:37:03 -0700408* Try to improve locking aspects of symbol tables, by reducing scope of
409 synchronized sections when creating, merging table contents.
Tatu Saloranta378ecdc2012-08-04 16:27:27 -0700410* Added 'JsonFactory.copy()' method to support databinding's 'ObjectMapper.copy()'
Tatu Salorantaad2df5f2012-08-22 20:55:49 -0700411* Added method 'requiresCustomCodec()' for JsonFactory and JsonParser
Tatu Saloranta5ad18ff2012-09-22 16:00:57 -0700412* Added 'JsonParser.getValueAsString()' method (to support flexible conversions)
Tatu Saloranta1344de92012-10-05 21:13:21 -0700413* Added META-INF/services/com.fasterxml.jackson.core.JsonFactory SPI to register
414 `JsonFactory` for even more automatic format discovery in future.
Tatu Salorantaeeb2fbd2012-05-28 22:00:08 -0700415
Tatu Saloranta34098342012-07-15 11:02:23 -07004162.0.4 (26-Jun-2012)
417
418Fixes:
419
420* [Issue-6] PrettyPrinter, count wrong for end-object case
421* 1.9.x fixes up to 1.9.8
422
4232.0.3: skipped; only some modules use this version
424
Tatu Saloranta9a362442012-05-14 19:42:15 -07004252.0.2 (14-May-2012)
426
Tatu Saloranta34098342012-07-15 11:02:23 -0700427* 1.9.x fixes up to 1.9.7
Tatu Saloranta9a362442012-05-14 19:42:15 -0700428
Tatu Saloranta93402042012-04-30 18:41:17 -07004292.0.1 (22-Apr-2012)
430
431Fixes:
432
433* [JACKSON-827] Fix incompatibilities with JDK 1.5 (2.0.0 accidentally
434 required 1.6)
435 (reported Pascal G)
436
Tatu Saloranta1adc8982012-03-30 16:47:59 -07004372.0.0 (25-Mar-2012)
Tatu Saloranta1f6e1fb2012-01-17 22:29:27 -0800438
439Fixes:
440
Tatu Saloranta5e69eec2012-03-25 11:52:34 -0700441(all fixes up until 1.9.6)
442
Tatu Saloranta1f6e1fb2012-01-17 22:29:27 -0800443Improvements
444
Tatu Saloranta9fc55aa2012-01-18 17:26:28 -0800445* [JACKSON-730]: Add checks to ensure that Features are applicable for
446 instances (parsers, generators), or if not, throw IllegalArgumentException
Tatu Saloranta1f6e1fb2012-01-17 22:29:27 -0800447* [JACKSON-742]: Add append-methods in SerializableString
448
449New features:
450
Tatu Saloranta487fe102012-02-20 17:53:26 -0800451* [JACKSON-782]: Add 'JsonParser.overrideCurrentName()', needed as a workaround
452 for some exotic data binding cases (and/or formats)
453
Tatu Saloranta1f6e1fb2012-01-17 22:29:27 -0800454[entries for versions 1.x and earlier not retained; refer to earlier releases)