Since I am going for a brief vacation, I thought I might send a quick
update on my plan for getting Jackson 2.12 ready for release.
My todo wiki page:
https://github.com/FasterXML/jackson-future-ideas/wiki/Jackson-Work-in-Progress
should be quite up-to-date and show specific things I plan to tackle.
The goal for 2.12 minor version was to combine the shorter development
cycle of 2.11 (about 6 months) with more ambitious features of 2.10
(took 2 years), specifically targeting "most wanted" features.
No changes are planned for JDK baseline or dependencies.
The Big features I think should be included in 2.12 include:
1. Ability to configure datatype coercions (implicit conversions in
case where JSON type does not have obvious natural mapping)
(
https://github.com/FasterXML/jackson-databind/issues/2113)
2. Much improved XML module (duplicate-preserving `JsonNode`, mixed
content, fix most existing bugs) (multiple issues)
3. `@JsonIncludeProperties`!
(
https://github.com/FasterXML/jackson-databind/issues/1296)
4. Improved 1-argument Creator detection
(
https://github.com/FasterXML/jackson-databind/issues/1498)
5. Java 14 Record support
Of these, first three are complete: "CoercionConfig" and much improved
`jackson-dataformat-xml` were rather large undertakings (and former
requires more work to support by datatype modules); fortunately
Baptiste send an impressive PR to implement `@JsonIncludeProperties`.
This leaves last two items: for #5 there is a PR and I just need time
to think through smaller details, but the basic idea is sound.
And then I have to focus on getting #4 done: after
`@JsonIncludeProperties` it is probably the oldest "most wanted" issue
around, and while the "big introspection rewrite" is still planned for
Jackson 3.0, this should help with one specific edge case.
Now: my original stretch goal was to get 2.12.0 released some time in
September; this would require the release candidate(s) to be released
in late August or so. This may be bit tight scheduled, so more likely
release will not occur before October, but we'll see.
In the meantime, I have struggled mightily with:
https://github.com/FasterXML/jackson-databind/issues/2803
which is a rather gnarly fundamental problem with handling of cyclic
types with contextual deserializers. I think I now know how it is to
be addressed, but it will be tricky to implement.
There are also a few smaller likely must-have or
really-should-get-it-in features on Jackson W-I-P list.
Anyway, I hope above is of interest to some of you. Take care!
-+ Tatu +-