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>>();