Details
-
Task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.0
-
None
Description
JPA implies POJO persistence, so to hook up pojos to Cayenne we need an enhancer.
However it looks like the enhancer itself doesn't have to know anything about JPA - it can be built on top of Cayenne. I prototyped an ASM-based enhancer [1] that turns a POJO into a Persistent instance and also does property interception. It is much cleaner and intuitive than our current CGLIB JPA enhancer, and (again) - it does not depend on anything JPA.
The next steps I am going to take:
- move it to Cayenne core,
- create more tests
- switch JPA to the new enhancer
- add support for relationships interception
So we will support POJO's without JPA! (and without spending any extra time in addition to what was planned for JPA work).
[1] https://svn.apache.org/repos/asf/incubator/cayenne/sandbox/asm-enhancer/
Attachments
Issue Links
- relates to
-
CAY-694 Support for serialization of enhanced serializable POJO's that do not declare 'serialVersionUID'
- Closed
-
CAY-684 Turn cayenne-jpa-agent into cayenne-agent
- Closed
-
CAY-686 Weed out DataObject references from the access stack classes, replacing them with Persistent and ClassDescriptor
- Closed
-
CAY-689 DataObjectUtils must return "Object" instead of "DataObject" from all pk lookup methods
- Closed
-
CAY-692 Extra argument needed in ObjectContext.prepareForAccess - whether the property is a fault or not.
- Closed
-
CAY-688 Change signatures of ObjectContext.deleteObject/registerNewObject/localObject to take Object instead of Persistent as an argument
- Closed