[ https://issues.apache.org/jira/browse/OAK-5430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15817232#comment-15817232 ]
Julian Reschke edited comment on OAK-5430 at 7/11/18 9:44 AM: -------------------------------------------------------------- Thanks Marcel and Vikas for the review. Done the suggested changes (pom, JournalPropertyServiceTracker -> JournalPropertyServiceTracker, check for duplicate builders bq. Also, I just noticed a minor difference JournalEntry#fillExternalChanges. Earlier change set wasn't being utilized outside of paritial result loop. It does now. I think it's correct behavior in the patch - but just wanted to bring it up to be noticed. Yes this was missed out in changes done for ChangeSet support. So refactored the code to have consistent reading from a given JournalEntry was (Author: chetanm): Thanks Marcel and Vikas for the review. Done the suggested changes (pom, JournalPropertyServiceTracker -> JournalPropertyServiceTracker, check for duplicate builders bq. Also, I just noticed a minor difference JournalEntry#fillExternalChanges. Earlier change set wasn't being utilized outside of paritial result loop. It does now. I think it's correct behavior in the patch - but just wanted to bring it up to be noticed. Yes this was missed out in changes done for ChangeSet support. So reafactored the code to have consistent reading from a given JournalEntry > Provide an extension point in DocumentNodeStore Journal support > --------------------------------------------------------------- > > Key: OAK-5430 > URL: https://issues.apache.org/jira/browse/OAK-5430 > Project: Jackrabbit Oak > Issue Type: Technical task > Components: documentmk > Reporter: Chetan Mehrotra > Assignee: Chetan Mehrotra > Priority: Major > Fix For: 1.5.18, 1.6.0 > > Attachments: OAK-5430-v1.diff > > > As discussed in OAK-4808 B1 I would like to expose an extension point in form > of SPI in DocumentNodeStore Journal handling. > Each component which needs to add a custom property to {{JournalEntry}} would > provide a {{JournalPropertyService}}. This service would provide a > {{JournalPropertyBuilder}} which would be used to accumulate the > {{JournalProperty}} > # For background write - {{JournalProperty}} would be read from > {{CommitInfo}} and would be added to the builder. Upon background write cycle > the builder would provide a string representation of the builder state which > would be save as a property in {{JournalEntry}} > # For background read - {{DocumentNodeStore}} would create builder for each > service and would update them from string property value which are read from > the JournalEntry > {{DocumentNodeStore}} would lookup all {{JournalPropertyService}} via > {{JournalPropertyServiceTracker}} and construct a {{JournalPropertyHandler}} > which would manage the builder state -- This message was sent by Atlassian JIRA (v7.6.3#76005)