spring-boot-data-geode
spring-boot-data-geode copied to clipboard
[OPTIONAL] Consider replacing JSONFormatter with a new PdxJsonObjectMapper
Currently, the Apache Geode JSONFormatter class (source) and PdxInstance types (e.g. PdxInstanceImpl) has the following problems:
-
JSONFormattercannot handle (top-level) JSON arrays -
JSONFormattercannot 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).