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 2013/05/15 14:20:02 UTC

svn commit: r1482785 - in /sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs: JobManagerImpl.java MaintenanceTask.java TopologyCapabilities.java

Author: cziegeler
Date: Wed May 15 12:20:02 2013
New Revision: 1482785

URL: http://svn.apache.org/r1482785
Log:
SLING-2867 Improve implementation : Use improved change detection for earlier detection of cluster changes

Modified:
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/MaintenanceTask.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/TopologyCapabilities.java

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java?rev=1482785&r1=1482784&r2=1482785&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java Wed May 15 12:20:02 2013
@@ -529,7 +529,7 @@ public class JobManagerImpl
         return job;
     }
 
-    private long stopProcessing() {
+    private void stopProcessing() {
         this.backgroundLoader.stop();
 
         // let's rename/close all queues and clear them
@@ -542,18 +542,15 @@ public class JobManagerImpl
         }
 
         // deactivate old capabilities - this stops all background processes
-        long changeCount = 0;
         if ( this.topologyCapabilities != null ) {
-            changeCount = this.topologyCapabilities.getChangeCount() + 1;
             this.topologyCapabilities.deactivate();
         }
         this.topologyCapabilities = null;
-        return changeCount;
     }
 
-    private void startProcessing(final long changeCount, final TopologyView view) {
+    private void startProcessing(final TopologyView view) {
         // create new capabilities and update view
-        this.topologyCapabilities = new TopologyCapabilities(view, this.configuration.disableDistribution(), changeCount);
+        this.topologyCapabilities = new TopologyCapabilities(view, this.configuration.disableDistribution());
 
         this.backgroundLoader.start();
     }
@@ -581,10 +578,9 @@ public class JobManagerImpl
             || event.getType() == Type.TOPOLOGY_CHANGED
             || event.getType() == Type.PROPERTIES_CHANGED ) {
 
-            // change count for new capabilities
-            final long changeCount = this.stopProcessing();
+            this.stopProcessing();
 
-            this.startProcessing(changeCount, event.getNewView());
+            this.startProcessing(event.getNewView());
         }
     }
 

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/MaintenanceTask.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/MaintenanceTask.java?rev=1482785&r1=1482784&r2=1482785&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/MaintenanceTask.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/MaintenanceTask.java Wed May 15 12:20:02 2013
@@ -279,7 +279,7 @@ public class MaintenanceTask {
     private boolean topologyHasChanged(final TopologyCapabilities topologyCapabilities) {
         boolean topologyChanged = false;
         if ( topologyCapabilities != null ) {
-            if ( this.topologyChangeCount < topologyCapabilities.getChangeCount() ) {
+            if ( this.topologyChangeCount != topologyCapabilities.getChangeCount() ) {
                 this.topologyChangeCount = topologyCapabilities.getChangeCount();
                 topologyChanged = true;
             }

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/TopologyCapabilities.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/TopologyCapabilities.java?rev=1482785&r1=1482784&r2=1482785&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/TopologyCapabilities.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/TopologyCapabilities.java Wed May 15 12:20:02 2013
@@ -60,7 +60,7 @@ public class TopologyCapabilities {
     private volatile boolean active = true;
 
     /** Change count. */
-    private final long changeCount;
+    private final long changeCount = System.currentTimeMillis();
 
     /** All instances. */
     private final Map<String, String> allInstances;
@@ -118,10 +118,9 @@ public class TopologyCapabilities {
         return allInstances;
     }
 
-    public TopologyCapabilities(final TopologyView view, final boolean disableDistribution, final long changeCount) {
+    public TopologyCapabilities(final TopologyView view, final boolean disableDistribution) {
         this.disableDistribution = disableDistribution;
         this.instanceComparator = new InstanceDescriptionComparator(view.getLocalInstance().getClusterView().getId());
-        this.changeCount = changeCount;
         this.isLeader = view.getLocalInstance().isLeader();
         this.allInstances = getAllInstancesMap(view);
         final Map<String, List<InstanceDescription>> newCaps = new HashMap<String, List<InstanceDescription>>();