-
Notifications
You must be signed in to change notification settings - Fork 3
Jackson Work in Progress
This page is a "living document" of on-going work, mostly by @cowtowncoder (Tatu), although other committers are welcome to update it as well.
Contents are divided in 3 sections, of actionable (*) things:
- Urgent things -- security problems, correctness (corruption), reliability (threading/concurrency)
- Simple things -- low(er) hanging fruits that are likely easily fixable but also important (i.e. non-trivial)
- Important -- things that important strategically, or highly "voted", but that are more involved to fix/implement.
as well as one "Recently Completed" addendum. Plus, I try to give "safe harbor" style guestimate on timing of next minor (and in case of 3.0, major) releases.
Note that this page does NOT contain "Big Ideas" for Jackson 3.0: these are covered on separate JSTEP page.
(*) actionable meaning, in general, that progress is only/mostly limited by time available and not by inherent difficulty, or lack of design or ideas of how to tackle the need.
- 29-Mar-2019, tatu: Add guestimates for 2.10, 3.0 release timing
- 15-Dec-2018, tatu: With release
2.9.8, trim down "recently completed" - 29-Oct-2018, tatu: Create the initial version
While patch releases occur somewhat frequently -- after initial minor version, usually once per month for 2 or 3, then 2-3 months after that -- minor versions have gone from "every 3 months" (with 1.x) to "every 6 months" (later 2.x) to "I don't quite know". And with 2.x -> 3.0 work being ambitious, that is even less predictable.
But, currently I think that:
- 2.10 MAY be released by end of April 2019 but IS LIKELY to be released by end of May 2019. Release may well mean "the first release candidate"
- 3.0 is UNLIKELY to be released BEFORE end of 2019: work is mostly on hold until
2.10is out, but should pick up after that gets released.
- (important/2.10) https://github.com/FasterXML/jackson-databind/issues/18: Make
JsonNodeJDK Serializable
-
https://github.com/FasterXML/jackson-core/issues/479: rewrite
BufferRecyclerfix
- Annotations
-
https://github.com/FasterXML/jackson-annotations/pull/149: Use
@Repeatedon annotations likeJsonSubtypes.Type
-
https://github.com/FasterXML/jackson-annotations/pull/149: Use
- Streaming
- Remove mutability of
JsonGenerator: NOTE,CharacterEscapeshard (due to JSONP); pretty-printer easier, max-non-escaped easy too? Features? - https://github.com/FasterXML/jackson-core/issues/507: Escape forward slash in Strings by default (but also allow change)
- Remove mutability of
- Databind
- Formats
- Streaming
-
https://github.com/FasterXML/jackson-core/issues/517: add
JsonGenerator.writeStartObject(Object, int)
-
https://github.com/FasterXML/jackson-core/issues/517: add
- Databind
-
https://github.com/FasterXML/jackson-databind/issues/2253: support multiple properties with
@JsonRootName, unwap;
-
https://github.com/FasterXML/jackson-databind/issues/2253: support multiple properties with
- Dataformats, binary
-
https://github.com/FasterXML/jackson-dataformats-binary/issues/73: (
protobuf) References to nested types
-
https://github.com/FasterXML/jackson-dataformats-binary/issues/73: (
- Dataformats, text
- https://github.com/FasterXML/jackson-dataformat-xml/issues/311: (XML) namespace binding issue
- https://github.com/FasterXML/jackson-dataformat-xml/issues/325: (XML) polymorphic ids
- Other
-
https://github.com/FasterXML/jackson-datatypes-collections/issues/45 (Guava):
HostAndPort - https://github.com/FasterXML/jackson-modules-base/pull/52 (MrBean): allow overrides
-
https://github.com/FasterXML/jackson-datatypes-collections/issues/45 (Guava):
-
https://github.com/FasterXML/jackson-databind/issues/2283: problem with
READ_ONLY,Lists
- Finish partial rewrite of
JsonFormat.Shapehandling to support ALL changes (POJO to/from non-POJO), for types AND properties -
https://github.com/FasterXML/jackson-databind/issues/2246: "Iterable"
JavaTypeforStream,Iteratoretc -
https://github.com/FasterXML/jackson-core/issues/485: Add
vanillaversion for generators, to optimize handling
Databind
- https://github.com/FasterXML/jackson-core/issues/500: allow "optional padding" for base64 (not just required/not-allowed choices)
-
https://github.com/FasterXML/jackson-databind/issues/2195: Add abstraction for
ClassNameValidator, for default typing,@JsonTypeInfo -
https://github.com/FasterXML/jackson-databind/issues/2237: (XML)
JsonNodeimprovements. -
https://github.com/FasterXML/jackson-databind/issues/1114:
@JsonFormat, number formatting -- needsupportsTextualNumbers()inJsonParser?
Module info with Moditect:
- Annotations: https://github.com/FasterXML/jackson-annotations/pull/151
- Streaming: https://github.com/FasterXML/jackson-core/pull/527
Other
-
https://github.com/FasterXML/jackson-dataformats-text/issues/115: (CSV)
JsonProperty.indexis not honored byCsvSchemabuilder -
https://github.com/FasterXML/jackson-jr/issues/32: (Jackson-jr) Support subset of Jackson annotations (
@JsonPropertyet al) - https://github.com/FasterXML/jackson-dataformats-text/issues/100: (Properties) -- allow support for Prefixes
Note: many Big Ideas now included on JSTEP page.
But a scratchpad for stuff can be retained...
- Add new
JsonTokentype for "Native Object Id Reference", mostly for YAML?
(NOTE: need to include in some better way, but for now just need a place to add ideas)
Another dimension of things to work is... documentation.
- Rewrite
jackson-databindREADMEto make it plain that JSON is NOT the only supported format: add examples, links - Write blog entries about:
- How does property introspection COMPLETELY work
- Simple "untyped" serialization with Guava ImmutableMap/ImmutableList
Here are things since December 2018, after release of 2.9.8 (except for 3.0 some earlier too)
-
https://github.com/FasterXML/jackson-datatype-json-org/issues/15 (org.json): Misleading exception when trying to deserialize JSON String as
org.json.JSONArrayvalue (07-Jan-2019) -
https://github.com/FasterXML/jackson-databind/issues/1408: Sync on
getBounds()(15-Jan-2019) -
https://github.com/FasterXML/jackson-core/pull/510:
ArrayIndexOutOfBoundsfor unquoted names, reader-parser. (16-Jan-2019) -
https://github.com/FasterXML/jackson-databind/issues/2221:
DeserializationProblemHandler, typeVoid.class(17-Jan-2019) - https://github.com/FasterXML/jackson-databind/pull/2227: Enum exception typo (18-Jan-2019)
-
https://github.com/FasterXML/jackson-modules-base/pull/70: Afterburner,
MapperFeature.ALLOW_COERCION_OF_SCALARS(28-Jan-2019) - https://github.com/FasterXML/jackson-dataformats-text/issues/63 (yaml): Null Object Ids written.
-
https://github.com/FasterXML/jackson-core/issues/516:
_inputPtrOBO (13-Feb-2019) -
https://github.com/FasterXML/jackson-dataformats-text/issues/122: CSV.
readValues(null), infinite loop (18-Feb-2019) - https://github.com/FasterXML/jackson-modules-base/issues/49: (afterburner) Locking of class loading (16-Feb-2019)
- https://github.com/FasterXML/jackson-dataformats-text/issues/123: (YAML) Problem with ObjectId (20-Feb-2019)
- https://github.com/FasterXML/jackson-dataformat-xml/issues/333: (XML) no Decorator applied
- https://github.com/FasterXML/jackson-dataformats-text/issues/90: (YAML) base64 encoding problem (26-Feb-2019)
- https://github.com/FasterXML/jackson-dataformats-text/issues/68: (YAML) escaping of reserved names (27-Feb-2019)
- https://github.com/FasterXML/jackson-databind/issues/2265 -- Unmodifiable List, polymorphic (02-Mar-2019)
-
https://github.com/FasterXML/jackson-dataformats-text/issues/91: (textformat/Properties) Should not escape when writing
Propertiesobject
-
https://github.com/FasterXML/jackson-databind/issues/2223: Add
missingNode()method inJsonNodeFactory(11-Jan-2019) - https://github.com/FasterXML/jackson-dataformats-binary/issues/155: Only flush outputs when FLUSH_PASSED_TO_STREAM is allowed (14-Jan-2019)
-
https://github.com/FasterXML/jackson-core/issues/464: Add "maximum unescaped char" limit option in
JsonFactory.builder()(14-Jan-2019) -
https://github.com/FasterXML/jackson-databind/issues/2189: Bounds checks (
int,long) forTreeTraversingParser(and verifyTokenBuffer's too) (16-Jan-2019) -
https://github.com/FasterXML/jackson-databind/issues/2211: change in
ObjectMapper.readTree()for "no content" return value in 2.9 (24-Jan-2019) - (hibernate) https://github.com/FasterXML/jackson-datatype-hibernate/issues/125: Ignore missing entities when lazy loading is enabled, if (newly added)
Feature.WRITE_MISSING_ENTITIES_AS_NULLis enabled (24-Jan-2019) -
https://github.com/FasterXML/jackson-databind/issues/2220: avoid short-circuit for
ObjectMapper.convertValue()(25-Jan-2019) -
https://github.com/FasterXML/jackson-databind/pull/2241: Add
PropertyNamingStrategy.LOWER_DOT_CASE(04-Feb-2019) -
https://github.com/FasterXML/jackson-databind/issues/1675: Remove
IOExceptionfrom String/byte[]sourced parse methods (04-Feb-2019) -
https://github.com/FasterXML/jackson-databind/issues/2236:
Double.NaN, polymorphic type info due to serialization as String (08-Feb-2019) -
https://github.com/FasterXML/jackson-core/pull/518: Perf improvement for
int/longdecoding from `char-backed sources
-
https://github.com/FasterXML/jackson-databind/issues/2176: add
JsonMapper.shared()(and ditto for other mappers) (10-Dec-2018) -
https://github.com/FasterXML/jackson-databind/pull/2196: Type safety wrt
TypeReference,ObjectMapper.readValue()(10-Jan-2019) -
https://github.com/FasterXML/jackson-dataformats-text/pull/106 (YAML): update to
SnakeYAMLengine (27-Feb-2019)