You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2015/10/28 16:21:00 UTC

svn commit: r1711030 - in /sling/trunk/bundles/api/src/main/java/org/apache/sling: api/resource/observation/ spi/resource/provider/

Author: cziegeler
Date: Wed Oct 28 15:21:00 2015
New Revision: 1711030

URL: http://svn.apache.org/viewvc?rev=1711030&view=rev
Log:
SLING-5162 : Support for the new observation API in the resource resolver

Added:
    sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ExternalResourceChangeListener.java
      - copied, changed from r1710960, sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ExternalResourceListener.java
Removed:
    sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ExternalResourceListener.java
Modified:
    sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ResourceChange.java
    sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ResourceChangeListener.java
    sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/ObservationReporter.java
    sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/ObserverConfiguration.java

Copied: sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ExternalResourceChangeListener.java (from r1710960, sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ExternalResourceListener.java)
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ExternalResourceChangeListener.java?p2=sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ExternalResourceChangeListener.java&p1=sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ExternalResourceListener.java&r1=1710960&r2=1711030&rev=1711030&view=diff
==============================================================================
--- sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ExternalResourceListener.java (original)
+++ sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ExternalResourceChangeListener.java Wed Oct 28 15:21:00 2015
@@ -24,7 +24,7 @@ import aQute.bnd.annotation.ConsumerType
  * This is a marker interface to receive external events.
  */
 @ConsumerType
-public interface ExternalResourceListener {
+public interface ExternalResourceChangeListener {
 
     // marker interface
 }

Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ResourceChange.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ResourceChange.java?rev=1711030&r1=1711029&r2=1711030&view=diff
==============================================================================
--- sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ResourceChange.java (original)
+++ sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ResourceChange.java Wed Oct 28 15:21:00 2015
@@ -33,7 +33,7 @@ import aQute.bnd.annotation.ConsumerType
  * instance.
  *
  * Resource listeners only receive external changes if they mark themselves
- * as a {@link ExternalResourceListener}.
+ * as a {@link ExternalResourceChangeListener}.
  *
  * For all events (local and external), the path and the type of change is
  * set.

Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ResourceChangeListener.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ResourceChangeListener.java?rev=1711030&r1=1711029&r2=1711030&view=diff
==============================================================================
--- sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ResourceChangeListener.java (original)
+++ sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ResourceChangeListener.java Wed Oct 28 15:21:00 2015
@@ -44,7 +44,7 @@ import aQute.bnd.annotation.ConsumerType
  * By default a resource listener gets only local events which means events
  * caused by changes persisted on the same instance as this listener is registered.
  * If the resource listener is interested in external events, the implementation
- * should implement the {@link ExternalResourceListener} interface, but still register
+ * should implement the {@link ExternalResourceChangeListener} interface, but still register
  * the service as a {@code ResourceChangeListener} service.
  */
 @ConsumerType

Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/ObservationReporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/ObservationReporter.java?rev=1711030&r1=1711029&r2=1711030&view=diff
==============================================================================
--- sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/ObservationReporter.java (original)
+++ sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/ObservationReporter.java Wed Oct 28 15:21:00 2015
@@ -47,6 +47,9 @@ public interface ObservationReporter {
      * it should set the distribute flag. In this case the resource resolver implementation
      * will distribute the events to all other instances.
      *
+     * Due to performance reasons, the observation reporter might not verify if the
+     * reported change matches the observer configurations.
+     *
      * @param changes The list of changes.
      * @param distribute Whether the changes should be distributed to other instances.
      */

Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/ObserverConfiguration.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/ObserverConfiguration.java?rev=1711030&r1=1711029&r2=1711030&view=diff
==============================================================================
--- sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/ObserverConfiguration.java (original)
+++ sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/ObserverConfiguration.java Wed Oct 28 15:21:00 2015
@@ -55,4 +55,12 @@ public interface ObserverConfiguration {
      * @return Non empty set of types
      */
     @Nonnull Set<ResourceChange.ChangeType> getChangeTypes();
+
+    /**
+     * Checks whether a path matches one of the paths of this configuration
+     * but is not in the excluded paths list.
+     * @param path The path to check
+     * @return {@code true} if the path matches the configuration.
+     */
+    boolean matches(String path);
 }