[JIRA] Created: (CAY-879) Storing lifecycle listebers and callbacks in the *.map.xml and loading them back

From: Andrus Adamchik (JIRA) ("Andrus)
Date: Thu Oct 18 2007 - 07:06:51 EDT

  • Next message: Andrus Adamchik: "Re: [JIRA] Created: (CAY-877) ROR ActiveRecord like interface for Apache Cayenne"

    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

    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.
    



    This archive was generated by hypermail 2.0.0 : Thu Oct 18 2007 - 07:07:14 EDT