[
https://issues.apache.org/jira/browse/SLING-4564?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Carsten Ziegeler updated SLING-4564:
------------------------------------
Fix Version/s: JCR Installer 3.1.16
> Use a single listener registered for multiple path in JCR installer
> -------------------------------------------------------------------
>
> Key: SLING-4564
> URL: https://issues.apache.org/jira/browse/SLING-4564
> Project: Sling
> Issue Type: Improvement
> Components: Installer
> Affects Versions: JCR Installer 3.1.8
> Reporter: Chetan Mehrotra
> Assignee: Carsten Ziegeler
> Fix For: JCR Installer 3.1.16
>
>
> Sling Jcr installer currently registers one listener per watched folder. On
> an application like AEM this results in ~150 listeners out of total 210 to
> belong to Jcr installer.
> Recently Jackrabbit introduced support for adding [additional
> path|https://github.com/apache/jackrabbit/blob/trunk/jackrabbit-api/src/main/java/org/apache/jackrabbit/api/observation/JackrabbitEventFilter.java#L232]
> to listen to as part of JCR-3745. This can be leveraged by the Jcr installer
> to avoid registering multiple listeners and instead use one listener.
> The above feature can be used in following form
> {code}
> String[] paths = searchPaths.toArray(new String[]{});
> JackrabbitEventFilter eventFilter = new JackrabbitEventFilter()
> .setAbsPath(paths[0])
> .setEventTypes(Event.NODE_ADDED |
> Event.NODE_REMOVED |
> Event.NODE_MOVED |
> Event.PROPERTY_ADDED |
> Event.PROPERTY_CHANGED |
> Event.PROPERTY_REMOVED )
> .setIsDeep(true)
> .setNoLocal(false)
> .setNoExternal(true);
> if (paths.length > 1) {
> eventFilter.setAdditionalPaths(paths);
> }
> JackrabbitObservationManager observationManager =
> (JackrabbitObservationManager)
> adminSession.getWorkspace().getObservationManager();
> observationManager.addEventListener(this, eventFilter);
> {code}
> This would allow more efficient observation processing and avoid putting load
> on system as Oak currently maintains one queue per listener.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)