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