Reworks the DJsonService (the SpiJsonService SPI behind io.ebean.text.json.EJson) to use avaje JsonMapper instead of the bespoke EJsonReader/EJsonWriter, consolidating all read/write logic into a single JsonAdapter.
Changes
- New EbeanJsonAdapter — a JsonAdapter<Object> that materializes JSON into plain or modify-aware Map/List/Set, with two shared singletons (PLAIN, MODIFY_AWARE). Preserves existing EJson semantics: - Integral numbers → Long, decimals → BigDecimal
- Write coverage for String/Integer/Long/Double/Float/BigDecimal/Boolean/Map/Collection with a toString() fallback for other types (UUID, enum, etc.)
- Modify-aware loads share a single ModifyAwareFlag owner per root, reset to non-dirty once after the load completes
- DJsonService now builds one JsonMapper + two JsonMapper.Type<Object> and routes parse/write through them. Null serialization is retained via a serializeNulls(true) writer; null/blank-input guards, token-honoring entry points, and parseSet (modify-aware asSet()) are preserved.
- EJsonReader/EJsonWriter are now unused and should be deleted (couldn't remove them in this environment).
Why
Simplifies Ebean's JSON handling by reusing avaje-json-core's JsonMapper rather than maintaining a parallel reader/writer, while keeping behavior identical.
* fix jackson NCDF error
split jackson SPI impl into it's own module
* Restore format
* Restore format
* Trim up dependencies
* Rename module to ebean-core-json
---------
Co-authored-by: Rob Bygrave <robin.bygrave@gmail.com>