cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <>
Subject Re: Contextual callbacks
Date Sun, 14 Nov 2010 03:58:19 GMT

On Nov 11, 2010, at 7:46 PM, Andrus Adamchik wrote:

> * extend the scope of the Transaction object, and add post-callbacks hook to it. Also
add a property map to transaction that would allow user apps to attach arbitrary stuff to
it. I wanted to do it some time back. Now is a good occasion.
> * create a special callbacks context spanning either POST_<commit> or POST_LOAD,
so it would allow to look at all objects processed in a given transaction. It will have its
own callback events.

Ultimately I came up with this solution:

I have a local patch already, and combined with CAY-1509, I think annotated DataChannelFilters
are going to be a powerful new abstraction allowing to optimize object lifecycle tracking.
A few operations are not wrapped by the filter (POST_ADD, PRE_REMOVE, and POST_LOAD when called
on rollback), but I think we can go pretty far by wrapping just query and commit ops.

To be sure something similar to channel filters was already achievable since like 1.2 via
DataChannel decoration. I know personally I haven't been comfortable with decoration, and
I am still reluctant to use it in my apps, so I wanted something that won't interfere with
channel/context parent/child relationships. Moreover filters are much more flexible, as they
can be installed at runtime without breaking the existing channel/context structure.


View raw message