-
Notifications
You must be signed in to change notification settings - Fork 50
Open
Labels
Description
Currently, the Apache Geode JSONFormatter class (source) and PdxInstance types (e.g. PdxInstanceImpl) has the following problems:
JSONFormattercannot handle (top-level) JSON arraysJSONFormattercannot handle JSON type metadata (when activating JacksonObjectMapperdefault typing)JSONFormatterwithPdxInstance(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
ObjectMapperused byPdxInstanceImplin thegetObject()method, which is blocker issue for many JSON doc types).