Author: mpetria
Date: Tue Feb 17 09:08:35 2015
New Revision: 1660327
URL: http://svn.apache.org/r1660327
Log:
SLING-4426: making distribution triggers cluster aware
Modified:
sling/trunk/contrib/extensions/distribution/core/pom.xml
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/RemoteEventDistributionTrigger.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ResourceEventDistributionTrigger.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ScheduledDistributionTrigger.java
Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/pom.xml?rev=1660327&r1=1660326&r2=1660327&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/pom.xml (original)
+++ sling/trunk/contrib/extensions/distribution/core/pom.xml Tue Feb 17
09:08:35 2015
@@ -154,6 +154,12 @@
<version>2.0.8</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.event.dea</artifactId>
+ <version>1.0.0</version>
+ <scope>provided</scope>
+ </dependency>
<!-- LOGGING -->
<dependency>
<groupId>org.slf4j</groupId>
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java?rev=1660327&r1=1660326&r2=1660327&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java
Tue Feb 17 09:08:35 2015
@@ -149,10 +149,10 @@ public abstract class AbstractJcrEventTr
/**
* get the binary int event types to be handled by this JCR event listener
*
- * @return a <code>int</code> as generated by e.g. <code>Event.NODE_ADDED
| Event.NODE_MOVED</code>
+ * @return a <code>int</code> as generated by e.g. <code>Event.NODE_ADDED
| Event.NODE_REMOVED</code>
*/
int getEventTypes() {
- return Event.NODE_ADDED | Event.NODE_MOVED | Event.NODE_REMOVED |
Event.PROPERTY_CHANGED |
+ return Event.NODE_ADDED | Event.NODE_REMOVED | Event.PROPERTY_CHANGED |
Event.PROPERTY_ADDED | Event.PROPERTY_REMOVED;
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/RemoteEventDistributionTrigger.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/RemoteEventDistributionTrigger.java?rev=1660327&r1=1660326&r2=1660327&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/RemoteEventDistributionTrigger.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/RemoteEventDistributionTrigger.java
Tue Feb 17 09:08:35 2015
@@ -89,6 +89,8 @@ public class RemoteEventDistributionTrig
ScheduleOptions options = scheduler.NOW();
options.name(getJobName(requestHandler));
+ options.canRunConcurrently(false);
+ options.onLeaderOnly(true);
scheduler.schedule(new EventBasedDistribution(requestHandler),
options);
} catch (Exception e) {
throw new DistributionTriggerException("unable to register handler
" + requestHandler, e);
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ResourceEventDistributionTrigger.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ResourceEventDistributionTrigger.java?rev=1660327&r1=1660326&r2=1660327&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ResourceEventDistributionTrigger.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ResourceEventDistributionTrigger.java
Tue Feb 17 09:08:35 2015
@@ -30,6 +30,7 @@ import org.apache.sling.distribution.Sim
import org.apache.sling.distribution.trigger.DistributionRequestHandler;
import org.apache.sling.distribution.trigger.DistributionTrigger;
import org.apache.sling.distribution.trigger.DistributionTriggerException;
+import org.apache.sling.event.dea.DEAConstants;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.event.Event;
@@ -85,6 +86,8 @@ public class ResourceEventDistributionTr
log.info("trigger agent {} on path '{}'", requestHandler, path);
properties.put(EventConstants.EVENT_FILTER, "(path=" + path + "/*)");
+ properties.put(EventConstants.EVENT_FILTER, "(!(" +
DEAConstants.PROPERTY_APPLICATION + "=*))");
+
ServiceRegistration triggerPathEventRegistration =
bundleContext.registerService(EventHandler.class.getName(),
new TriggerAgentEventListener(requestHandler), properties);
if (triggerPathEventRegistration != null) {
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ScheduledDistributionTrigger.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ScheduledDistributionTrigger.java?rev=1660327&r1=1660326&r2=1660327&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ScheduledDistributionTrigger.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/ScheduledDistributionTrigger.java
Tue Feb 17 09:08:35 2015
@@ -79,6 +79,7 @@ public class ScheduledDistributionTrigge
options.name(jobName);
options.canRunConcurrently(false);
+ options.onLeaderOnly(true);
boolean success = scheduler.schedule(new
ScheduledDistribution(requestHandler), options);
if (success) {