Author: cziegeler
Date: Thu Oct 13 08:58:21 2016
New Revision: 1764630

URL: http://svn.apache.org/viewvc?rev=1764630&view=rev
Log:
SLING-6056 : achieve 1:1 mapping between observation and resource change 
listener

Modified:
    
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/package-info.java

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=1764630&r1=1764629&r2=1764630&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
 Thu Oct 13 08:58:21 2016
@@ -23,7 +23,6 @@ import java.util.List;
 import javax.annotation.Nonnull;
 
 import org.apache.sling.api.resource.observation.ResourceChange;
-
 import org.osgi.annotation.versioning.ProviderType;
 
 /**
@@ -52,8 +51,37 @@ public interface ObservationReporter {
      * Due to performance reasons, the observation reporter might not verify 
if the
      * reported change matches the observer configurations.
      *
+     * If the resource provider part which is reporting the changes is using 
just a single
+     * mechanism reporting changes, this method must be used to report changes 
across
+     * all observer configurations. However, if the implementation is using a 
mechanism
+     * per observation configuration {@link 
#reportChanges(ObserverConfiguration, Iterable, boolean)}
+     * must be used instead.
+     *
      * @param changes The list of changes.
      * @param distribute Whether the changes should be distributed to other 
instances.
      */
     void reportChanges(@Nonnull Iterable<ResourceChange> changes, boolean 
distribute);
+
+    /**
+     * A resource provider can inform about a list of changes.
+     * If the resource provider is not able to report external events on other 
instances,
+     * 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.
+     *
+     * If the resource provider part which is reporting the changes is using 
just a single
+     * mechanism reporting changes, {@link #reportChanges(Iterable, boolean)} 
must be used to
+     * report changes across all observer configurations. However, if the 
implementation is
+     * using a mechanism per observation configuration this method must be 
used instead.
+     *
+     * @param config The configuration the change belongs to
+     * @param changes The list of changes.
+     * @param distribute Whether the changes should be distributed to other 
instances.
+     * @since 1.1.0 (Sling API Bundle 2.15.0)
+     */
+    void reportChanges(@Nonnull ObserverConfiguration config,
+            @Nonnull Iterable<ResourceChange> changes,
+            boolean distribute);
 }

Modified: 
sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/package-info.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/package-info.java?rev=1764630&r1=1764629&r2=1764630&view=diff
==============================================================================
--- 
sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/package-info.java
 (original)
+++ 
sling/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/package-info.java
 Thu Oct 13 08:58:21 2016
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@Version("1.0.2")
+@Version("1.1.0")
 package org.apache.sling.spi.resource.provider;
 
 import org.osgi.annotation.versioning.Version;


Reply via email to