Skip to content

Jackson Work in Progress

Tatu Saloranta edited this page May 11, 2021 · 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.

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)

  • 23-Apr-2021, tatu: Clean up after 2.12.3 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.13 and 3.0 be out?

Development of 2.x will slow down a bit after 2.12, as focus shifts back to 3.0.

But, currently I think that:

  • 2.13 should be released towards end of Q2/2021 (or early Q3), so June/July 2021
  • 3.0 could get close to release candidates during mid 2021 as well (July/August)

On-going 3.0 work

On-going/planned 2.12 work

On-going/planned 2.13 work

Actively looked at:

Planned

Misc other in 2.12/2.13 timeframe?

Missed 2.12, re-evaluate

Work-in-progress

Misc non-Jackson:

To evaluate

To work on

2.13

2.13 / streaming

2.13 / databind

2.13, XML

Next:

Important

Other

Deferred:

2.13, other dataformats

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)

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
  • Write blog entries about:
    • How does property introspection COMPLETELY work
    • Simple "untyped" serialization with Guava ImmutableMap/ImmutableList
    • Using "Config Overrides"
    • How are JsonSerializers located, initialized
    • How are JsonDeserializers located, initialized
    • Null handling with XML (esp. String, List/Map)
    • Writing complete
      • Scalar serializer
      • Scalar deserializer
      • Converting serializer
      • Converting deserializer

Recently completed

Here are things since ~March, 2021

pre-2.12

2.12 (since 2.12.3, 12-Apr-2021)

2.13 (since 12-Apr-2021)

3.0 (since 12-Apr-2021)

Other

Clone this wiki locally