Project: jackson-core

Contains core streaming reader (`JsonParser`) and writer (`JsonGenerator`) abstractions,
factory for constructing readers/writers (JsonFactory). as well as a minimal set
of interfaces needed for streaming level to make callbacks and call-throughs,
via `ObjectCodec` and `TreeNode`.

Also includes implementation of abstractsion for JSON, 
Forms the base for other data formats as well, despite naming that suggests
json-specificity (naming due to historical reasons).

------------------------------------------------------------------------
=== Releases ===
------------------------------------------------------------------------

2.5.0 (01-Jan-2015)

#148: BytesToNameCanonicalizer can mishandle leading null byte(s).
 (reported by rjmac@github)
#164: Add `JsonGenerator.Feature.IGNORE_UNKNOWN` (but support via individual
  data format modules)
#166: Allow to configure line endings and indentation
 (contributed by Aaron D)
#167: `JsonGenerator` not catching problem of writing field name twice in a row
#168: Add methods in `JsonStreamContext` for keeping track of "current value"
#169: Add `JsonPointer.head()`
 (contributed by Alex S, lordofthejars@github)
- Added `ResolvedType.getParameterSource()` to support better resolution
 of generic types.
- Added `JsonGenerator.writeRawValue(SerializableString)`
- Added `JsonParser.hasExpectedStartObjectToken()` convenience method
- Added `JsonParser.hasTokenId(id)` convenience method
- Added `JsonParser.nextFieldName()` (no args)

2.4.4 (24-Nov-2014)

#157: ArrayIndexOutOfBoundsException: 200 on numbers with more than 200 digits.
 (reported by Lars P, larsp@github)
#173: An exception is thrown for a valid JsonPointer expression
 (reported by Alex S)
#176: `JsonPointer` should not consider "00" to be valid index
 (reported by fge@gitub)
- Fix `JsonGenerator.setFeatureMask()` to better handle dynamic changes.

2.4.3 (02-Oct-2014)

#152: Exception for property names longer than 256k
 (reported by CrendKing@github)

2.4.2 (13-Aug-2014)

#145: NPE at BytesToNameCanonicalizer
 (reported by Shay B)
#146: Error while parsing negative floats at the end of the input buffer
 (reported by rjmac@github)

2.4.1 (16-Jun-2014)

#143: Flaw in `BufferRecycler.allocByteBuffer(int,int)` that results in
 performance regression

2.4.0 (29-May-2014)

#121: Increase size of low-level byte[]/char[] input/output buffers
 (from 4k->8k for bytes, 2k->4k for chars)
#127: Add `JsonGenerator.writeStartArray(int size)` for binary formats
#138: Add support for using `char[]` as input source; optimize handling
  of `String` input as well.
- Refactor `BufferRecycler` to eliminate helper enums

2.3.3 (10-Apr-2014)

No changes since 2.3.2.

2.3.2 (01-Mar-2014)

#126: Revert some 1.6 back to make core lib work with Android 2.2 (FroYo)
 (contributed by Goncalo S)
#129: Missing delegation method, `JsonParserDelegate.isExpectedStartArrayToken()`
 (Pascal G)
#133: Prevent error on JsonPointer expressions for properties that have numeric
  ids above 32-bit range
 (reported by mrstlee@github)

2.3.1 (28-Dec-2013)

No functional changes.

2.3.0 (13-Nov-2013)

#8: Add methods in `JsonParser`/`JsonGenerator` for reading/writing Object Ids
#47: Support YAML-style comments with `JsonParser.Feature.ALLOW_YAML_COMMENTS`
#60: Add a feature (`JsonParser.Feature.STRICT_DUPLICATE_DETECTION`) to verify
  that input does not contain duplicate filed names
#77: Improve error reporting for unrecognized tokens
 (requested by cowwoc@github)
#85: Add `JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN`
#91: Add methods in `JsonGenerator` for writing native Type Ids
#92: Add methods in `JsonParser` for reading native Type Ids
#93: Add `getFeatureMask()`, `setFeatureMask()` in `JsonGenerator`/`JsonParser`
#94: Allow coercion of String value "null" (similar to handling of null token)
#96: Add `JsonFactory.requiresPropertyOrdering()` introspection method
#97: JsonGenerator's `JsonWriteContext` not maintained properly, loses
  current field name
 (reported by Sam R)
#98: Improve handling of failures for `BigDecimal`, for "NaN" (and infinity)
#102: Unquoted field names can not start with a digit
#103: Add `JsonFactory.canHandleBinaryNatively`, `JsonGenerator.canWriteBinaryNatively`
 to let databind module detect level of support for binary data.
#105: Parser parsers numbers eagerly; does not report error with missing space
#106: Add `JsonGenerator.Feature.STRICT_DUPLICATE_DETECTION` for preventing dup names
#110: Improve overridability of `JsonGeneratorDelegate`
 (suggested by qpliu@github)
#111: _currInputRowStart isn't initialized in UTF8StreamJsonParser() constructor
 (reported by dreamershl@github)
#115: JsonGenerator writeRawValue problem with surrogate UTF-8 characters
 (reported by Marcin Z)
#116: WriterBasedJsonGenerator produces truncated Unicode escape sequences
 (reported by Steve L-S)
- Improve `DefaultPrettyPrinter`, `Lf2SpacesIndenter` (from databind #276)
- Add `JsonGenerator.canOmitFields()` method to support discovery of
  positional formats, needed for handling of filtering for CSV
- Rewrite `InternCache` to use `ConcurrentHashMap`, to work more efficiently both
  for common case of few misses (no block on access), and slowest cases (lots of
  misses).
- Add `JsonPointer` implementation, to be used by tree model, streaming
- Make `UTF8StreamJsonParser` non-final, for potential sub-classing

2.2.3 (23-Aug-2013)

#78: ArrayIndexOutOfBoundsException for very long numbers (>500 digits)
 (reported by boothen@github)
#81: CharTypes.appendQuoted misencodes first 32 Unicode values as '\0000'
 (reported by githubaff0@github)
#84: Support for parsing 'Infinity' when feature ALLOW_NON_NUMERIC_NUMBERS is on
 (contributed by ebrevdo@github)
- Add `Base64Variant.decode()` convenience methods

2.2.2 (26-May-2013)

No changes since previous version.

2.2.1 (03-May-2013)

#72: JsonFactory.copy() was not copying settings properly
 (reported by Christian S (squiddle@github))
- Moved VERSION/LICENSE contained in jars under META-INF/, to resolve
  Android packaging (APK) issues

2.2.0 (22-Apr-2013)

Fixes:

#51: JsonLocation had non-serializable field, mark as transient

Improvements

#46, #49: Improve VersionUtil to generate PackageVersion, instead of
  reading VERSION.txt from jar -- improves startup perf on Android significantly
 (contributed by Ben G)
#59: Add more functionality in `TreeNode` interface, to allow some
 level of traversal over any and all Tree Model implementations
#69: Add support for writing `short` values in JsonGenerator

2.1.3 (19-Jan-2013)

* [JACKSON-884]: JsonStringEncoder.quoteAsStringValue() fails to encode 
  ctrl chars correctly.
* [Issue#48] Problems with spaces in URLs
 (reported by KlausBrunner)

2.1.2 (04-Dec-2012)

* [Issue#42] Problems with UTF32Reader
 (reported by James R [jroper@github])
* Added missing methods (like 'setPrettyPrinter()' in JsonGeneratorDelegate

2.1.1 (11-Nov-2012)

* [Issue#34] `JsonParser.nextFieldName()` fails on buffer boundary
 (reported by gsson@github)
* [Issue#38] `JsonParser.nextFieldName()` problems when handling
 names with trailing spaces
 (reported by matjazs@github)

2.1.0 (08-Oct-2012)

A new minor version for 2.x.

New features:

* [Issue#14]: add 'readBinaryValue(...)' method in JsonParser
* [Issue#16]: add 'writeBinary(InputStream, int)' method in JsonGenerator
  (and implement for JSON backend)
* [Issue#26]: Allow overriding "root value separator"
 (suggested by Henning S)

Improvements:

* [JACKSON-837]: Made JsonGenerator implement Flushable.
 (suggested by Matt G)
* [Issue#10]: add 'JsonProcessingException.getOriginalMessage()' for accessing
  message without location info
* [Issue#31]: make `JsonFactory` java.io.Serializable (via JDK)

Other:

* [Issue-25]: Add 'createParser' and 'createGenerator' (as eventual replacements
  for 'createJsonParser'/'createJsonGenerator') in 'JsonFactory'
* Try to improve locking aspects of symbol tables, by reducing scope of
  synchronized sections when creating, merging table contents.
* Added 'JsonFactory.copy()' method to support databinding's 'ObjectMapper.copy()'
* Added method 'requiresCustomCodec()' for JsonFactory and JsonParser
* Added 'JsonParser.getValueAsString()' method (to support flexible conversions)
* Added META-INF/services/com.fasterxml.jackson.core.JsonFactory SPI to register
  `JsonFactory` for even more automatic format discovery in future.

2.0.4 (26-Jun-2012)

Fixes:

* [Issue-6] PrettyPrinter, count wrong for end-object case
* 1.9.x fixes up to 1.9.8

2.0.3: skipped;	 only some modules use this version

2.0.2 (14-May-2012)

* 1.9.x fixes up to 1.9.7

2.0.1 (22-Apr-2012)

Fixes:

* [JACKSON-827] Fix incompatibilities with JDK 1.5 (2.0.0 accidentally
  required 1.6)
 (reported Pascal G)

2.0.0 (25-Mar-2012)

Fixes:

(all fixes up until 1.9.6)

Improvements

* [JACKSON-730]: Add checks to ensure that Features are applicable for
  instances (parsers, generators), or if not, throw IllegalArgumentException
* [JACKSON-742]: Add append-methods in SerializableString

New features:

* [JACKSON-782]: Add 'JsonParser.overrideCurrentName()', needed as a workaround
  for some exotic data binding cases (and/or formats)

[entries for versions 1.x and earlier not retained; refer to earlier releases)
