[ 
https://issues.apache.org/cayenne/browse/CAY-879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vasil Tarasevich updated CAY-879:
---------------------------------

    Attachment: CAY-879_4.patch

Added support for "exclude-superclass-listeners" and 
"exclude-default-listeners" attributes

> Storing lifecycle listebers and callbacks in the *.map.xml and loading them 
> back
> --------------------------------------------------------------------------------
>
>                 Key: CAY-879
>                 URL: https://issues.apache.org/cayenne/browse/CAY-879
>             Project: Cayenne
>          Issue Type: Task
>          Components: Cayenne Core Library
>    Affects Versions: 3.0
>            Reporter: Andrus Adamchik
>            Assignee: Andrus Adamchik
>             Fix For: 3.0
>
>         Attachments: CAY-879_3.patch, CAY-879_4.patch
>
>
> DataMap and ObjEntity classes support mapping lifecycle callbacks, however 
> there is no support for loading them from XML and storing them back to XML. 
> Here is what needs to be done to achieve that:
> 1. XML Format Additions (applicable for DataMap XML files - *.map.xml)
> * new "entity-listener" tag as a child of "obj-entity", describing callbacks 
> on listener classes separate from the entity class. The tag itself is 
> compatible with JPA spec. Here is an example:
> <obj-entity ...>
>   ... 
>   <entity-listener class="mylistenerclass">
>         <pre-persist method-name="abc"/>
>         <post-update method-name="xyz"/>
>   </entity-listener>
> </obj-entity>
> * new callback tags - children of "obj-entity", describing callbacks on the 
> entity class itself. The tags are compatible with JPA spec. Here is an 
> example:
> <obj-entity ...>
>   ... 
>   <pre-persist method-name="abc"/>
>   <post-update method-name="xyz"/>
> </obj-entity>
> * new "obj-entity" tag attributes: "exclude-superclass-listeners", 
> "exclude-default-listeners".
> * new "entity-listener" tag as a child of "data-map", describing default 
> callbacks on all entities. Format is the same as for the "obj-entity":
> <data-map ...>
>   ... 
>   <entity-listener class="mylistenerclass">
>         <pre-persist method-name="abc"/>
>         <post-update method-name="xyz"/>
>   </entity-listener>
> </data-map>
> * Implement listener saving in DataMap.encodeAsXML(..)
> * Implement listener and callback saving in ObjEntity.encodeAsXML
> * Implement listener and callback loading in MapLoader.
> * Write unit tests

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to