Change the List<Modification> from a list of what occurred to a list of what needs to be done. This would have the Post Operation iterate through the Post Processors and then, as a final step, take the list of modifications and execute those steps to the ResourceProvider.
- modification of the repository occurs after all processes have had their say
- Simplifies SlingPostProcessor as it just needs to focus on logic
- Allow for guard rails that can occur as the list would be a true reflection of will be changed
- Improved separation of ResourceProvider and JCR