-
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.
- 20-Feb-2019, tatu: Fixes, fixes, fixes
- 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)
- Annotations
-
https://github.com/FasterXML/jackson-annotations/pull/149: Use
@Repeatedon annotations likeJsonSubtypes.Type
-
https://github.com/FasterXML/jackson-annotations/pull/149: Use
- 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
- Formats
-
https://github.com/FasterXML/jackson-dataformats-text/pull/106 (YAML): update to
SnakeYAMLengine
-
https://github.com/FasterXML/jackson-dataformats-text/pull/106 (YAML): update to
- Streaming
-
https://github.com/FasterXML/jackson-core/issues/517: add
JsonGenerator.writeStartObject(Object, int)
-
https://github.com/FasterXML/jackson-core/issues/517: add
- Databind
-
https://github.com/FasterXML/jackson-databind/issues/2253: support multiple properties with
@JsonRootName, unwap;
-
https://github.com/FasterXML/jackson-databind/issues/2253: support multiple properties with
- 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: (
- Dataformats, text
- 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
- https://github.com/FasterXML/jackson-dataformats-text/issues/90: (YAML) base64 problems
None.
- Finish partial rewrite of
JsonFormat.Shapehandling to support ALL changes (POJO to/from non-POJO), for types AND properties -
https://github.com/FasterXML/jackson-databind/issues/2246: "Iterable"
JavaTypeforStream,Iteratoretc -
https://github.com/FasterXML/jackson-core/issues/485: Add
vanillaversion for generators, to optimize handling
Databind
- 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/2237: (XML)
JsonNodeimprovements. -
https://github.com/FasterXML/jackson-databind/issues/18: Make
JsonNodeJDK Serializable
Other
-
https://github.com/FasterXML/jackson-dataformats-text/issues/115: (CSV)
JsonProperty.indexis not honored byCsvSchemabuilder -
https://github.com/FasterXML/jackson-jr/issues/32: (Jackson-jr) Support subset of Jackson annotations (
@JsonPropertyet al) - https://github.com/FasterXML/jackson-dataformats-text/issues/100: (Properties) -- allow support for Prefixes
Note: many Big Ideas now included on JSTEP page.
But a scratchpad for stuff can be retained...
- Add new
JsonTokentype for "Native Object Id Reference", mostly for YAML?
(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-modules-base/pull/70: Afterburner,
MapperFeature.ALLOW_COERCION_OF_SCALARS(28-Jan-2019) - https://github.com/FasterXML/jackson-dataformats-text/issues/63 (yaml): Null Object Ids written.
-
https://github.com/FasterXML/jackson-core/issues/516:
_inputPtrOBO (13-Feb-2019) -
https://github.com/FasterXML/jackson-dataformats-text/issues/122: CSV.
readValues(null), infinite loop (18-Feb-2019) - https://github.com/FasterXML/jackson-modules-base/issues/49: (afterburner) Locking of class loading (16-Feb-2019)
- https://github.com/FasterXML/jackson-dataformats-text/issues/123: (YAML) Problem with ObjectId (20-Feb-2019)
- https://github.com/FasterXML/jackson-dataformat-xml/issues/333: (XML) no Decorator applied
-
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/2211: change in
ObjectMapper.readTree()for "no content" return value in 2.9 (24-Jan-2019) - (hibernate) https://github.com/FasterXML/jackson-datatype-hibernate/issues/125: Ignore missing entities when lazy loading is enabled, if (newly added)
Feature.WRITE_MISSING_ENTITIES_AS_NULLis enabled (24-Jan-2019) -
https://github.com/FasterXML/jackson-databind/issues/2220: avoid short-circuit for
ObjectMapper.convertValue()(25-Jan-2019) -
https://github.com/FasterXML/jackson-databind/pull/2241: Add
PropertyNamingStrategy.LOWER_DOT_CASE(04-Feb-2019) -
https://github.com/FasterXML/jackson-databind/issues/1675: Remove
IOExceptionfrom String/byte[]sourced parse methods (04-Feb-2019) -
https://github.com/FasterXML/jackson-databind/issues/2236:
Double.NaN, polymorphic type info due to serialization as String (08-Feb-2019) -
https://github.com/FasterXML/jackson-core/pull/518: Perf improvement for
int/longdecoding from `char-backed sources
-
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)