Lifecycle Callback API Refactoring
----------------------------------

                 Key: CAY-753
                 URL: https://issues.apache.org/cayenne/browse/CAY-753
             Project: Cayenne
          Issue Type: Task
          Components: Cayenne Core Library
    Affects Versions: 3.0
            Reporter: Andrus Adamchik
         Assigned To: Andrus Adamchik
             Fix For: 3.0


This issue is about refactoring of the lifecycle callback classes. The goal is 
API consistency and ease of use. Technically callback API hasn't been 
officially released as of the date the issue is created, so API changing is not 
a big deal, however since the API was advertised on the user list for more than 
a few months already, documenting all the changes is a  courtesy to the early 
adopters.

* Moving callback type constants (PRE_PERSIST, POST_PERSIST, ...) from 
LifecycleEventCallback to org.apache.cayenne.map.CallbackMethod, as this 
information is used in the raw mapping as well as in compiled descriptors.

* Introducing org.apache.cayenne.LifecycleListener as an optional callback 
interface to simplify manual callback registration.

* Moving all runtime callback handling classes to "reflect" package from "map".

* Making LifecycleEventCallback a non-public class instead of a public 
interface - it is used internally, and shouldn't be invoked by the users.

* Introducing org.apache.cayenne.reflect.LifecycleCallbackRegistry class . It 
keeps a collection of handlers for all event types. This is the public class 
that deals with callbacks in runtime.

* Renaming LifecycleEventCallbackMap to LifecycleCallbackEventHandler and 
making most methods non-public (accessed via LifecycleCallbackRegistry).


Will need to document the new API in the User Guide:
http://cayenne.apache.org/doc/lifecycle-callbacks.html


-- 
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