[ 
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

        

Reply via email to