As promised, here is the module that I wrote [1] integrating Wkt, GeoJSON and TimestampRange types [2] with Cayenne 4.2. The integration is done via a custom adapter [3] that installs extended types and a custom SQLTreeProcessor [4]. Whatever effort happens on Cayenne site, it can freely borrow any of this code.
The project itself is a Bootique module. It is not relevant for the topic of this discussion, but still wanted to plug it here :) It contains the new 2.0 JUnit5 test API that makes it easy to manage complex integration test environments [5, 6]. Andrus [1] https://github.com/andrus/cayenne-pg <https://github.com/andrus/cayenne-pg> [2] https://github.com/andrus/cayenne-pg/tree/master/src/main/java/org/example/cayenne/pg/type [3] https://github.com/andrus/cayenne-pg/blob/master/src/main/java/org/example/cayenne/pg/adapter/ExtPgAdapter.java <https://github.com/andrus/cayenne-pg/blob/master/src/main/java/org/example/cayenne/pg/adapter/ExtPgAdapter.java> [4] https://github.com/andrus/cayenne-pg/blob/master/src/main/java/org/example/cayenne/pg/adapter/sqtree/ExtPgSqlTreeProcessor.java <https://github.com/andrus/cayenne-pg/blob/master/src/main/java/org/example/cayenne/pg/adapter/ExtPgAdapter.java> [5] https://github.com/andrus/cayenne-pg/blob/master/src/test/java/org/example/cayenne/pg/WktIT.java <https://github.com/andrus/cayenne-pg/blob/master/src/test/java/org/example/cayenne/pg/WktIT.java> [6] https://github.com/andrus/cayenne-pg/blob/master/src/test/java/org/example/cayenne/pg/BaseDbTest.java