Hi Team, As part of OAK-4796 the observation handling is being improved. Focus here is to make use of pre filtering to avoid expensive diff operation depending on what all changes the listener is interested in.
So if listener can tell Oak precisely what all changes it is interested in (filtering criteria) then Oak can determine wether given change is relevant for the listener or not. With OAK-4907 following filter criteria can be supported. Note some of them are yet to be exposed via Jackrabbit API [1] - Name of properties which got changed - Node names which got changed - NodeType of nodes which got changed. This includes the nodetype of ancestor nodes also - Set of paths which got changed Given in Sling we recently modified quite a few EventListener to ResourceChangeListener API can you provide some inputs on what all those listeners were interested in and can above set of filtering criteria cover them. Basically looking for observation pattern - What is the resource change listener interested in (path/property or anything else) - Is it interested only in cluster local changes or its interested in all changed Chetan Mehrotra [1] https://docs.adobe.com/docs/en/aem/6-0/develop/ref/javadoc/org/apache/jackrabbit/api/observation/JackrabbitEventFilter.html