Open
Description
Currently, the Apache Geode JSONFormatter
class (source) and PdxInstance
types (e.g. PdxInstanceImpl
) has the following problems:
JSONFormatter
cannot handle (top-level) JSON arraysJSONFormatter
cannot handle JSON type metadata (when activating JacksonObjectMapper
default typing)JSONFormatter
withPdxInstance(Impl)
loses type metadata, id, among other things:Object (using PDX serializer) -> PDX (using JSONFormatter.toJSON(:PdxInstance)) -> JSON (using JSONFormatter.fromJSON(..)) -> PDX (using PdxInstance.getObject()) -> PdxInstance (expect Object here)
PdxInstance.getObject()
cannot handle Java 8 types in general (e.g.Optional
), JSR-310 (Time) types in particular, and parameter names even though Jackson does- I suspect Apache Geode will not work with Jackson 3, which is based on Java 8 by default, due to serialization issues
- PDX is not properly extensible (e.g. you cannot "configure" the static
ObjectMapper
used byPdxInstanceImpl
in thegetObject()
method, which is blocker issue for many JSON doc types).