cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (CAY-2030) Capturing a stream of commit changes
Date Fri, 09 Oct 2015 19:27:05 GMT


ASF GitHub Bot commented on CAY-2030:

Github user andrus closed the pull request at:

> Capturing a stream of commit changes
> ------------------------------------
>                 Key: CAY-2030
>                 URL:
>             Project: Cayenne
>          Issue Type: Task
>            Reporter: Andrus Adamchik
>            Assignee: Andrus Adamchik
> Per trying to implement
a proper transaction audit. After some thought, I think it should work as follows:
> 0. A new object design for change tracking: ChangeMap/ ObjectChange / ObjectPropertyChange
> 1. PostCommitFilter : A filter that captures all changes before and after the commit
(including generated PKs returned from DB) and generates a ChangeMap. Will notify the listeners
after the commit. 
> 2. A Module that registers the filter (once  CAY-2028 is done, the module should also
take care of ordering the filter to go inside transaction).
> 3. Listener interface (TODO: eventually switch to annotations?)
> {noformat}public interface PostCommitListener {
> 	void onPostCommit(ObjectContext originatingContext, ChangeMap changes);
> }
> {noformat}
> 4. PostCommitModuleBuilder  to add post commit extensions.
> 5. Listeners will be added via PostCommitModuleBuilder. TODO: combine with our normal
 listeners and switch to annotations.
> 6. For per-entity filtering and further customization reuse @Auditable annotation . Add
"confidential" property to @Auditable to allow to securely log changes for properties like
passwords, etc.
> (since most people would want to run this filter within a TX, an effective usage of this
is dependent on CAY-2028; however the implementation is not)

This message was sent by Atlassian JIRA

View raw message