You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2015/10/09 21:27:05 UTC

[jira] [Commented] (CAY-2030) Capturing a stream of commit changes

    [ https://issues.apache.org/jira/browse/CAY-2030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14951058#comment-14951058 ] 

ASF GitHub Bot commented on CAY-2030:
-------------------------------------

Github user andrus closed the pull request at:

    https://github.com/apache/cayenne/pull/75


> Capturing a stream of commit changes
> ------------------------------------
>
>                 Key: CAY-2030
>                 URL: https://issues.apache.org/jira/browse/CAY-2030
>             Project: Cayenne
>          Issue Type: Task
>            Reporter: Andrus Adamchik
>            Assignee: Andrus Adamchik
>
> Per http://www.mail-archive.com/dev@cayenne.apache.org/msg07968.html 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
(v6.3.4#6332)