jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Felix Meschberger (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-153) Split the CommitHook interface
Date Tue, 26 Jun 2012 14:08:44 GMT

    [ https://issues.apache.org/jira/browse/OAK-153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13401406#comment-13401406

Felix Meschberger commented on OAK-153:

What is the intended lifecycle of these hooks ? Created on call or created on Repository/Oak/MK
start ? What if a class implements both interfaces ?

Background: I could imagine an implementation where beforeCommit and afterCommit cooperate
in that the final afterCommit might be interested in stuff done for beforeCommit. Depending
on how the classes are instantiated this might be simple or not.
> Split the CommitHook interface
> ------------------------------
>                 Key: OAK-153
>                 URL: https://issues.apache.org/jira/browse/OAK-153
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core
>            Reporter: Jukka Zitting
>            Assignee: Jukka Zitting
> The {{CommitHook}} interface has two methods, {{beforeCommit()}} and {{afterCommit()}},
since the symmetry originally seemed like a good idea. However, in practice these methods
are not really so symmetric after all.
> For example, unlike {{afterCommit()}} the {{beforeCommit()}} method may end up being
called multiple times for a given changeset if it needs to be repeatedly rebased or otherwise
revised before it can be committed. There isn't even any guarantee that a particular changeset
on which {{beforeCommit()}} has been called ever gets committed. And on the other hand there
are good reasons to avoid calling {{afterCommit()}} on each and every commit that has been
made. Instead it could be called only every now and then to cover larger sets of changes.
> Thus I'd like to split the {{CommitHook}} interface to two parts that I'd tentatively
call {{CommitEditor}} and {{Observer}}.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message