Hi,

On several occasions I suggested to work on a way to expose the flexibility of event filtering exposed by the classes in org.apache.jackrabbit.oak.plugins.observation.filter through an API. E.g. such that Sling could use more filtering mechanisms from Oak instead of filtering events after the fact. But such efforts so far didn't go anywhere.

In that sense +1 for trying again ;-)

Michael

On 7.9.16 2:09 , Stefan Egli wrote:
Hi,

1) Looking at typical use case patterns of the JackrabbitEventFilter (used
with EventListeners) it seems like the filtering options that it provides
(ie absPaths, excludedPaths, isDeep) could be generalized and made more
flexible, eg via a Filter that could look like something along the following
lines:

public interface Filter {



    enum FilterResult {

        INCLUDE, INCLUDE_SKIP_CHILDREN,

        EXCLUDE, EXCLUDE_SKIP_CHILDREN };



    FilterResult filter(String nodeOrPropertyPath);

}


The goal would be that listeners themselves could do arbitrary complex
filtering instead of being restricted by absPath,excludedPaths,isDeep. With
the goal that the number of events that are generated could be reduced as
much as possible (helps keeping the number of observation events in queues
small).

2) It also looks like sometimes listeners aren't really interested in the
event details but just in the fact that something changed. That could be
indicated to oak by something like

boolean ignoresEventInfo;


.. which could be used to throw away CommitInfos.

Has this been discussed before and/or what's your opinion on this?

Cheers,
Stefan



Reply via email to