You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Robert Munteanu (JIRA)" <ji...@apache.org> on 2014/03/12 21:30:44 UTC
[jira] [Commented] (JCR-3745) Add JackrabbitObservationManager with
additional methods for registering event listeners
[ https://issues.apache.org/jira/browse/JCR-3745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13932312#comment-13932312 ]
Robert Munteanu commented on JCR-3745:
--------------------------------------
As a suggestion, would it be possible to model this new API after the ones which would be introduced by JSR-333? That would look something like
{code:java}
public interface JackrabbitEventFilter extends javax.jcr.observation.EventFilter {
void setAdditionalAbsPaths(String[] absPaths);
String[] getAdditionalAbsPaths();
void setNoExternal(boolean noExternal);
boolean getNoExternal();
}
{code}
{code:java}
public class ObservationManagerImpl implements ObservationManager, EventStateCollectionFactory {
// skipping existing code
public JackrabbitEventFilter createEventFilter();
/** Knows how to handle instances of JackrabbitEventFilter in addition to the spec-compliant behaviour */
public void addEventListener(EventListener listener, EventFilter filter) throws RepositoryException;
}
{code}
The advantage would be that it minimizes the discrepancies with the proposed JSR-333 API and that it is a bit more future-proof, in case we decide to introduce additional fields to the EventFilter.
> Add JackrabbitObservationManager with additional methods for registering event listeners
> ----------------------------------------------------------------------------------------
>
> Key: JCR-3745
> URL: https://issues.apache.org/jira/browse/JCR-3745
> Project: Jackrabbit Content Repository
> Issue Type: New Feature
> Components: jackrabbit-api
> Reporter: Michael Dürig
> Assignee: Michael Dürig
>
> I'd like to add an additional method for adding event listeners to the Jackrabbit API:
> void addEventListener(EventListener listener, int eventTypes, String[] absPaths, boolean isDeep, String[] uuid, String[] nodeTypeName, boolean noLocal, boolean noExternal) throws RepositoryException;
> Compared to the JCR method of the same name, this method takes an array of absPath and additional boolean argument:
> Only events whose associated parent node is at one of the paths in <code>absPaths</code> (or within its subgraph, if <code>isDeep</code> is <code>true</code>) will be received.
> and
> Additionally, if <code>noExternal</code> is <code>true</code>, then events from external cluster nodes are ignored. Otherwise, they are not ignored.
--
This message was sent by Atlassian JIRA
(v6.2#6252)