You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by st...@apache.org on 2016/10/17 11:36:15 UTC
svn commit: r1765246 - in /sling/trunk/bundles:
api/src/main/java/org/apache/sling/api/resource/observation/
api/src/main/java/org/apache/sling/spi/resource/provider/
jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/
resourceresolver/s...
Author: stefanegli
Date: Mon Oct 17 11:36:15 2016
New Revision: 1765246
URL: http://svn.apache.org/viewvc?rev=1765246&view=rev
Log:
SLING-6164 : Introduce support for an optional property names hint to ResourceChangeListener
Modified:
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/ObserverConfiguration.java
sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/AbstractListenerTest.java
sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceListenerScalabilityTest.java
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObserverConfiguration.java
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=1765246&r1=1765245&r2=1765246&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 Mon Oct 17 11:36:15 2016
@@ -93,6 +93,16 @@ public interface ResourceChangeListener
* {@link ResourceChange.ChangeType}.
*/
String CHANGES = "resource.change.types";
+
+ /**
+ * An optional hint indicating to the underlying that for
+ * changes regarding properties (added/removed/changed) the listener
+ * is only interested in those property names listed inhere.
+ * If the underlying supports this, events for property names that
+ * are not enlisted here will not be delivered, however events
+ * concerning nodes are not affected by this hint.
+ */
+ String PROPERTY_NAMES_HINT = "resource.property.names.hint";
/**
* Report resource changes based on the filter properties of this listener.
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=1765246&r1=1765245&r2=1765246&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 Mon Oct 17 11:36:15 2016
@@ -61,6 +61,15 @@ public interface ObserverConfiguration {
@Nonnull Set<ResourceChange.ChangeType> getChangeTypes();
/**
+ * Set containing the set of property names which
+ * serves as an optional hint for the underlying to
+ * only report property changes enlisted, ie the
+ * underlying might ignore this.
+ * @return set containing the set of property names
+ */
+ @Nonnull Set<String> getPropertyNamesHint();
+
+ /**
* Checks whether a path matches one of the paths of this configuration
* but is not in the excluded paths set.
* @param path The path to check
Modified: sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/AbstractListenerTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/AbstractListenerTest.java?rev=1765246&r1=1765245&r2=1765246&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/AbstractListenerTest.java (original)
+++ sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/AbstractListenerTest.java Mon Oct 17 11:36:15 2016
@@ -164,6 +164,11 @@ public abstract class AbstractListenerTe
public boolean matches(String path) {
return true;
}
+
+ @Override
+ public Set<String> getPropertyNamesHint() {
+ return new HashSet<String>();
+ }
};
return Collections.singletonList(config);
}
Modified: sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceListenerScalabilityTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceListenerScalabilityTest.java?rev=1765246&r1=1765245&r2=1765246&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceListenerScalabilityTest.java (original)
+++ sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceListenerScalabilityTest.java Mon Oct 17 11:36:15 2016
@@ -21,6 +21,7 @@ import static org.mockito.Mockito.when;
import java.util.Collections;
import java.util.EnumSet;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -138,6 +139,11 @@ public class JcrResourceListenerScalabil
public boolean matches(String path) {
return true;
}
+
+ @Override
+ public Set<String> getPropertyNamesHint() {
+ return new HashSet<String>();
+ }
};
return Collections.singletonList(config);
}
Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObserverConfiguration.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObserverConfiguration.java?rev=1765246&r1=1765245&r2=1765246&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObserverConfiguration.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObserverConfiguration.java Mon Oct 17 11:36:15 2016
@@ -33,6 +33,8 @@ public class BasicObserverConfiguration
private final PathSet paths;
private final PathSet excludedPaths;
+
+ private final Set<String> propertyNamesHint = new HashSet<String>();
private final Set<ChangeType> changeTypes;
@@ -81,4 +83,9 @@ public class BasicObserverConfiguration
}
return false;
}
+
+ @Override
+ public Set<String> getPropertyNamesHint() {
+ return propertyNamesHint;
+ }
}