I have an event listener in which I am listening to a path as in the below screenshot using Observation Manger . How can I add multiple paths here , so that I can listen to multiple paths. I cannot add the root path, since I don't want to listen to the root path due to other project requirement constraints.
Solved! Go to Solution.
Views
Replies
Total Likes
As @Kishore_Kumar_ already pointed out, use the ResourceChangeListener.
if that's not possible:
JackrabbitObservationManager mgr = (JackrabbitObservationManager) session.getWorkspace().getObservationManager; JackrabbitEventFilter filter = new JackrabbitEventFilter() .setAbsPath(PATH1) .setAdditionalPaths(PATH2,PATH3, ...) ... mgr.addEventListener(listener, filter);
This allows to you specify more constraints than the JCR compliant JCR ObservationManager. In Oak the ObservationManager implements the JackrabbitObservationManager.
See
https://jackrabbit.apache.org/api/2.12/org/apache/jackrabbit/api/observation/JackrabbitEventFilter.h... https://jackrabbit.apache.org/api/2.12/org/apache/jackrabbit/api/observation/JackrabbitObservationMa...
In my case adding multiple paths worked with below syntax
@component(service = EventHandler.class,
immediate = true,
property = {
EventConstants.EVENT_TOPIC + "=" + ReplicationAction.EVENT_TOPIC,
EventConstants.EVENT_FILTER + "=(|(paths=/content/projectname/*)(paths=/content/dam/projectname/*))"
})
@ServiceDescription("Listener to listen on replication action in the resource tree")
@Designate(ocd = ReplicationListener.SolrSearchPropertiesConfiguration.class)
public class ReplicationListener implements EventHandler {
Specially when we are working on Sling events like Activate or deactivate, the above piece of code will be really handy because you have to listen to activate or deactivate specific paths under your project related folders only in dam and sites.
Views
Likes
Replies
Views
Likes
Replies