Skip to content

Jackson Work in Progress

Tatu Saloranta edited this page Jan 20, 2019 · 2080 revisions

Jackson WIP

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 4 sections, of actionable (*) things:

  1. Urgent things -- security problems, correctness (corruption), reliability (threading/concurrency)
  2. Simple things -- low(er) hanging fruits that are likely easily fixable but also important (i.e. non-trivial)
  3. Important -- things that important strategically, or highly "voted", but that are more involved to fix/implement.
  4. Big Ideas

as well as one "Recently Completed" addendum.

(*) 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.

Last updates

  • 16-Jan-2019, tatu: Incremental progress with simple/urgent stuff, mostly for 2.10
  • 15-Dec-2018, tatu: With release 2.9.8, trim down "recently completed"
  • 29-Oct-2018, tatu: Create the initial version

Urgent things

3.0: test failures for jackson-modules-base?

2.10

2.9

Simple Things

3.0

2.10

2.9

Important Things

3.0

  • Finish partial rewrite of JsonFormat.Shape handling to support ALL changes (POJO to/from non-POJO), for types AND properties

2.10

2.9

Big Ideas

We should have something like "Jackson Big Ideas", maybe similar to Kafka KIPs. Not unlike IETF RFCs, but bit smaller documents. Name tentatively chosen is "JSTEP" (Jackson STrategic Enhancement Proposal").

Ideas are listed on Jackson3 Changes page.

  1. Major version upgrade details: JSTEP-1
  2. Jackson 3.x default setting changes (Features esp)
  3. JsonNode revamp
  4. JacksonException to replace JsonProcessingException; unchecked not checked
    • https://github.com/FasterXML/jackson-databind/issues/2177 (Change parent type of JsonProcessingException to be RuntimeException)
    • JsonMappingException -> DatabindException (and other renaming)
    • How to unify location handling between "streaming"/"databind" (former JsonProcessingException vs JsonMappingException)

Documentation

(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-databind README to make it plain that JSON is NOT the only supported format: add examples, links
  • Write blog entries about:
    1. How does property introspection COMPLETELY work
    2. Simple "untyped" serialization with Guava ImmutableMap/ImmutableList

Recently completed

Here are things since December 2018, after release of 2.9.8 (except for 3.0 some earlier too)

2.9

2.10

3.0

Clone this wiki locally