Skip to content

Jackson Work in Progress

Tatu Saloranta edited this page Jun 16, 2023 · 2079 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.

Note that there is also a complementary set of things core developers may eventually work on but that may be better tackled by other contributors: New Contributor Friendly Issues

Contents are divided in multiple sections, first in a few kinds of actionable (*) things. Specific breakdown varies but is along lines of:

  • Things to evaluate -- haven't yet had a chance to fully grok
  • Actively worked on -- 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

(updated on daily basis so only some of major updates mentioned)

  • 13-FEb-2023, tatu: Minor clean up; haven't been updating recently
  • 04-Oct-2022, tatu: Had a quick look after 2.14.0-rc1 release (no changes)
  • 01-Oct-2021, tatu: Clean up after 2.13.0 release
  • 01-Dec-2020, tatu: Clean up after 2.12.0 release
  • 26-Apr-2020, tatu: Clean up after 2.11.0 release
  • 26-Sep-2019, tatu: 2.10.0 (final) released: clear up "recently completed" entries
  • 29-Oct-2018, tatu: Create the initial version

When will 2.15 and 3.0 be out?

Jackson 2.14.0 was released in November 2021. After this focus has continued on 2.15 development, to tackle 2 main issues:

  1. Security issues (DoS), adding processing limits
  2. Prepare for (and ideally, do!) the Major Property Introspection rewrite (also important for Record support)

Question of priority between 3.0 and 2.x beyond 2.15 is still open:

  • For 3.0, Java/Maven package renaming was completed to allow "2.x vs 3.x" co-existence (com.fasterxml.jackson -> tools.jackson)
  • For 2.x there are a few focus areas:
    • Specialized Feature sets for to replace use of DeserializationFeature/SerializationFeature for "too-specific" (not cross-cutting) features
      • Initially added in 2.14, continuing to make use
    • Rewrite Property introspection (esp. to help with Creator properties) -- did not get into 2.13
    • (if time permits) Processing limits for Streaming API

But, currently I think that:

  • 2.15: Release candidate (at least) in March 2023
  • 3.0: limited progress during mid-2023, similarly, unlikely to proceed before 2023/Q2

Immediate tasks to be scheduled

Waiting:

To Evaluate

Possible work for 2.15, evaluate

On-going 3.0 work

Possible 2.15.x work still

2.14 that did not make it

2.15, Misc/non-Jackson

To work on

2.15 / databind

2.15, XML

Important

Other

Other/Misc

Important Things

3.0

Simple Things

3.0

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 - hope to revisit (when time permits)

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.


Recently completed

Moved to: https://github.com/cowtowncoder/MyOpenSourceDiary/wiki

Clone this wiki locally