-
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 relatively easily fixable (and important enough to include here)
- 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 May 2019 but IS LIKELY to be released by end of June 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.
- Java 8 date/time: https://github.com/FasterXML/jackson-modules-java8/issues/112 -- JDK 8 vs JDK 10,
Instant - Databind: https://github.com/FasterXML/jackson-databind/issues/2331 --
TypeFactoryresolving complex self-referentialListsubtype
-
https://github.com/FasterXML/jackson-core/issues/479: rewrite
BufferRecyclerfix - Java 9 Modules work:
- Class name validator, a MUST-HAVE for 2.10
-
https://github.com/FasterXML/jackson-databind/issues/2195: Add abstraction for
ClassNameValidator, for default typing,@JsonTypeInfo
-
https://github.com/FasterXML/jackson-databind/issues/2195: Add abstraction for
- 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
- https://github.com/FasterXML/jackson-databind/issues/1687: JsonView with JsonNode (convenience method)
- Formats
- Streaming
-
https://github.com/FasterXML/jackson-core/issues/517: add
JsonGenerator.writeStartObject(Object, int) -
https://github.com/FasterXML/jackson-core/issues/533: BOM unaccounted for wrt
Location
-
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/1986:
Throwable, self-reference (NOTE: probably not really simple to solve, but need to evaluate) -
https://github.com/FasterXML/jackson-databind/issues/2283: problem with
READ_ONLY,Lists- PR: https://github.com/FasterXML/jackson-databind/pull/2284 -- sizable changes, not sure what to think
- https://github.com/FasterXML/jackson-databind/issues/2323: BigDecimal As-plain + As-String combination not working.
-
https://github.com/FasterXML/jackson-databind/issues/2305: problem with
@JsonCreator, single string argument- Due to "all implicit" vs "all explicit": not sure if should change
-
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-dataformats-text/issues/116: (YAML) handle "null" String by quoting
- 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
- https://github.com/FasterXML/jackson-dataformats-text/issues/133: (YAML) Document multi-doc use case, differences
- Java 8 date/time:
-
https://github.com/FasterXML/jackson-modules-java8/issues/107:
MonthDaySerializerserialization - (PR) https://github.com/FasterXML/jackson-modules-java8/pull/110: Java 8 date/time -- nanoseconds
-
https://github.com/FasterXML/jackson-modules-java8/issues/105: LocalTime should be
time, notdatetimein schema -
https://github.com/FasterXML/jackson-modules-java8/issues/111: Java8 module(s), serializability
- Unfortunately, while fixed for 3.0, difficult to fix for
2.10due tojava.time.format.DateTimeFormatterNOT beingjava.io.Serializable. Failing test added.
- Unfortunately, while fixed for 3.0, difficult to fix for
-
https://github.com/FasterXML/jackson-modules-java8/issues/107:
- Other
- (PR) https://github.com/FasterXML/jackson-datatypes-collections/pull/50: Guava,
RangeSethandling
- (PR) https://github.com/FasterXML/jackson-datatypes-collections/pull/50: Guava,
- 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 - important
-
https://github.com/FasterXML/jackson-databind/issues/18: Make
JsonNodeJDK Serializable - 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/2237:
JsonNodeimprovements. -
https://github.com/FasterXML/jackson-databind/issues/1114:
@JsonFormat, number formatting -- can useJsonGenerator.canWriteFormattedNumbers()(added in 2.8) -
https://github.com/FasterXML/jackson-databind/issues/2087: Performance improvement for
BigDecimal(see the end of comment section) - https://github.com/FasterXML/jackson-databind/issues/1196: Collect multiple errors
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 May 25, after release of 2.9.9 (except for 3.0 some earlier too)
-
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) - https://github.com/FasterXML/jackson-modules-base/pull/52 (MrBean): allow overrides (04-Apr-2019)
- https://github.com/FasterXML/jackson-databind/pull/2297 -- NPE for unknown properties (11-Apr-2019)