Skip to content

Jackson Work in Progress

Tatu Saloranta edited this page Sep 9, 2019 · 2080 revisions

Jackson & Friends W-I-P

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 multiple sections, first in a few kinds of actionable (*) things:

  • Things to evaluate -- haven't yet had a chance to fully grok
  • Next up -- items to start work on (or being worked on)
  • Urgent to fix -- security problems, correctness (corruption), reliability (threading/concurrency)
  • Simple to fix -- low(er) hanging fruits that are likely relatively easily fixable (and important enough to include here)
  • Important to fix -- things that important strategically, or highly "voted", but that are more involved to fix/implement.

and then one other theoretically-actionable category:

  • Things to contemplate (not easy to fix and not even sure if behavior should change and/or if attempting to fix is worth the hassle or even possible), divided into
    1. May revisit
    2. Unlikely to revisit

as finally the "Recently Completed" addendum. Plus, I try to give "safe harbor" style guesstimate 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.

Last updates

  • 31-Aug-2019, tatu: 2.10.0.pr2 released, possibly last pre-release, 2.10.0 is nigh
  • 19-Jul-2019, tatu: 2.10.0.pr1 released, work towards 2.10.0 continues
  • 30-May-2019, tatu: Reorder "important" before "simple" (because, yeah...)
  • 16-May-2019, tatu: Move now obsolete "recently completed" after 2.9.9 release, to make room
  • 29-Oct-2018, tatu: Create the initial version

When will 2.10 and 3.0 be out?

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:

  • First pre-release candidate (2.10.0.pr1) was released mid-July 2019, with 2.10.0.pr2 likely by end of August; final 2.10.0 thereby possible by end of September
  • 3.0 is UNLIKELY to be released BEFORE end of 2019: work is mostly on hold until 2.10 is out, but should pick up after that gets released.

To evaluate

3.0?

2.10

Next up: for 2.10 inclusion

Next up: not necessarily 2.10 (but would be nice)

Important Things

3.0

2.10

Databind

Other

Simple Things

3.0

2.10

Deferred

These entries have been evaluated but not solved (either worked without full solution, or deemed unlikely to be solved and no attempt made)

Deferred - waiting for test-case/CLA/more information

Deferred - hope to revisit (when time permits)

Deferred - for now

Deferred - unlikely to revisit

Big Ideas

Note: many Big Ideas now included on JSTEP page.

But a scratchpad for stuff can be retained...

  • Add new JsonToken type for "Native Object Id Reference", mostly for YAML?

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.

  • https://github.com/FasterXML/jackson-dataformats-text/issues/133: (YAML) Document multi-doc use case, differences
  • 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
    3. Using "Config Overrides"
    4. 2.10 features pre-sneak

Recently completed

Here are things since August 31, 2019 (after 2.10.0.pr2)

2.9

2.10

3.0

Clone this wiki locally