-
Notifications
You must be signed in to change notification settings - Fork 3
Jackson Work in Progress
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 3 sections, of actionable (*) things:
- Urgent things -- security problems, correctness (corruption), reliability (threading/concurrency)
- Simple things -- low(er) hanging fruits that are likely easily fixable but also important (i.e. non-trivial)
- Important -- things that important strategically, or highly "voted", but that are more involved to fix/implement.
as well as one "Recently Completed" addendum.
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.
- 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
-
https://github.com/FasterXML/jackson-core/issues/479: rewrite
BufferRecyclerfix -
https://github.com/FasterXML/jackson-core/issues/498: better Java 9+ module name support with
moditectMaven plug-in (https://github.com/moditect/moditect)
- Streaming
- Remove mutability of
JsonGenerator: NOTE,CharacterEscapeshard (due to JSONP); pretty-printer easier, max-non-escaped easy too? Features? - https://github.com/FasterXML/jackson-core/issues/507: Escape forward slash in Strings by default (but also allow change)
- Remove mutability of
- Databind
-
https://github.com/FasterXML/jackson-databind/issues/2220: avoid short-circuit for
ObjectMapper.convertValue()
-
https://github.com/FasterXML/jackson-databind/issues/2220: avoid short-circuit for
- Streaming
- Databind
-
https://github.com/FasterXML/jackson-databind/issues/1675: Remove
IOExceptionfrom String/byte[]sourced parse methods
-
https://github.com/FasterXML/jackson-databind/issues/1675: Remove
- Dataformats, binary
-
https://github.com/FasterXML/jackson-dataformats-binary/issues/73: (
protobuf) References to nested types
-
https://github.com/FasterXML/jackson-dataformats-binary/issues/73: (
- Other
- (java 8 date/time) https://github.com/FasterXML/jackson-modules-java8/pull/92: (Java 8 date/time) format support for
Duration(maybe?) - https://github.com/FasterXML/jackson-dataformat-xml/issues/311: (XML) namespace binding issue
- https://github.com/FasterXML/jackson-dataformat-xml/issues/325: (XML) polymorphic ids
- (java 8 date/time) https://github.com/FasterXML/jackson-modules-java8/pull/92: (Java 8 date/time) format support for
- Databind
- Other:
-
https://github.com/FasterXML/jackson-modules-base/pull/70: Afterburner,
MapperFeature.ALLOW_COERCION_OF_SCALARS
-
https://github.com/FasterXML/jackson-modules-base/pull/70: Afterburner,
- Finish partial rewrite of
JsonFormat.Shapehandling to support ALL changes (POJO to/from non-POJO), for types AND properties
- https://github.com/FasterXML/jackson-core/issues/500: allow "optional padding" for base64 (not just required/not-allowed choices)
-
https://github.com/FasterXML/jackson-databind/issues/2195: Add abstraction for
ClassNameValidator, for default typing,@JsonTypeInfo -
https://github.com/FasterXML/jackson-databind/issues/2211: change in
ObjectMapper.readTree()for "no content" return value in 2.9 -
https://github.com/FasterXML/jackson-dataformats-text/issues/115: (CSV)
JsonProperty.indexis not honored byCsvSchemabuilder
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.
- Major version upgrade details: JSTEP-1
- Jackson 3 default setting changes: JSTEP-2
-
JsonNodechanges for Jackson 3: JSTEP-2 -
JacksonExceptionto replaceJsonProcessingException: JSTEP-2
(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-databindREADMEto make it plain that JSON is NOT the only supported format: add examples, links - Write blog entries about:
- How does property introspection COMPLETELY work
- Simple "untyped" serialization with Guava ImmutableMap/ImmutableList
Here are things since December 2018, after release of 2.9.8 (except for 3.0 some earlier too)
-
https://github.com/FasterXML/jackson-datatype-json-org/issues/15 (org.json): Misleading exception when trying to deserialize JSON String as
org.json.JSONArrayvalue (07-Jan-2019) -
https://github.com/FasterXML/jackson-databind/issues/1408: Sync on
getBounds()(15-Jan-2019) -
https://github.com/FasterXML/jackson-core/pull/510:
ArrayIndexOutOfBoundsfor unquoted names, reader-parser. (16-Jan-2019) -
https://github.com/FasterXML/jackson-databind/issues/2221:
DeserializationProblemHandler, typeVoid.class(17-Jan-2019) - https://github.com/FasterXML/jackson-databind/pull/2227: Enum exception typo (18-Jan-2019)
-
https://github.com/FasterXML/jackson-databind/issues/2223: Add
missingNode()method inJsonNodeFactory(11-Jan-2019) - https://github.com/FasterXML/jackson-dataformats-binary/issues/155: Only flush outputs when FLUSH_PASSED_TO_STREAM is allowed (14-Jan-2019)
-
https://github.com/FasterXML/jackson-core/issues/464: Add "maximum unescaped char" limit option in
JsonFactory.builder()(14-Jan-2019) -
https://github.com/FasterXML/jackson-databind/issues/2189: Bounds checks (
int,long) forTreeTraversingParser(and verifyTokenBuffer's too) (16-Jan-2019)
-
https://github.com/FasterXML/jackson-databind/issues/2176: add
JsonMapper.shared()(and ditto for other mappers) (10-Dec-2018) -
https://github.com/FasterXML/jackson-databind/pull/2196: Type safety wrt
TypeReference,ObjectMapper.readValue()(10-Jan-2019)