cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrus Adamchik (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CAY-2030) Capturing a stream of commit changes
Date Tue, 29 Sep 2015 13:47:04 GMT

     [ https://issues.apache.org/jira/browse/CAY-2030?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Andrus Adamchik updated CAY-2030:
---------------------------------
    Summary: Capturing a stream of commit changes  (was: @PostCommit and capturing a stream
of commit changes)

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

Mime
View raw message