Skip to content

[OPTIONAL] Consider replacing JSONFormatter with a new PdxJsonObjectMapper #83

Open
@jxblum

Description

@jxblum

Currently, the Apache Geode JSONFormatter class (source) and PdxInstance types (e.g. PdxInstanceImpl) has the following problems:

  • JSONFormatter cannot handle (top-level) JSON arrays
  • JSONFormatter cannot handle JSON type metadata (when activating Jackson ObjectMapper default typing)
  • JSONFormatter with PdxInstance(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 by PdxInstanceImpl in the getObject() method, which is blocker issue for many JSON doc types).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions