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) {


Reply via email to