-
Notifications
You must be signed in to change notification settings - Fork 6
JSTEP
With Jackson 3, we want to start experimenting with something like "Jackson Big Ideas", maybe similar to Kafka KIPs. Not unlike IETF RFCs, but bit smaller documents.
Name chosen (back in 2017) is "JSTEP" (Jackson STrategic Enhancement Proposal") and seems to work.
- JSTEP-1: Major Version 3.x High-level Upgrade Compatibility -- Maven, Java package renaming decided, implemented (Jackson 3.0)
-
JSTEP-4: Replace checked
JsonProcessingException
with uncheckedJacksonException
(Jackson 3.0) - JSTEP-8: Jackson 3 renaming of format-specific Read/Write features (Jackson 3.0)
Some of JSTEPs are probably completed, but there is small chance changes or follow-up work might be needed
- JSTEP-2: Jackson 3 default setting, behavior changes -- a lot has been done, some work may remain (Jackson 3.0)
- JSTEP-6: Jackson 3 Big Renaming of Core Entities
- JSTEP-7: More modular on/off "Feature"s beyond existing mapper/ser/deser (Jackson 2.x)
- -- mostly completed --
- -- mostly completed --
-
JsonNode
improvements JSTEP-3 - -- completed --
- Unify Date/Time handling, formats, defaults across JDK Classic, Joda and Java 8 date/time: JSTEP-5
- -- mostly completed --
- -- completed --
- -- completed --
- JSTEP-9: Jackson 3.0 Removal of Deprecated 2.x Modules
Add some kind of processing limits for accepted input (max depth of nesting, number of keys per Object), to protected against DoS attacks. Similar to (for example), Woodstox' limits.
This was actually implemented without writing separate JSTEP entry; initial work for Jackson 2.15. Relevant initial issues include:
- Main issue for streaming: jackson-core#637
- jackson-core#815: Maximum Number Token length for parsing
- jackson-core#863: Maximum String Token length for parsing
- jackson-core#943: Maximum Input nesting depth
- Related issue(s) for databind: jackson-databind#2816
Add proper Tree Model for jackson-dataformat-xml
(instead, minor improvements to existing JsonNode
, like auto-conversion of ObjectNode
to ArrayNode
- Made bit less necessary by 2.12 work to support implicit coercion of sequences into
ArrayNode
(dataformat-xml#403) - Other reasons still exist so this may yet be added
Although any improvement idea can become a JSTEP, one good source is Major Design/Implementation Issues, which lists areas where current design limits implementation improvements.
Also, "most-wanted" labeled issues are a potential source:
- "Most Wanted"
jackson-databind
issues: https://github.com/FasterXML/jackson-databind/issues?q=is%3Aissue+is%3Aopen+label%3Amost-wanted- Previously implemented Most-Wanted: https://github.com/FasterXML/jackson-databind/issues?q=is%3Aissue+label%3Amost-wanted+is%3Aclosed