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/01/28 13:44:41 UTC
svn commit: r1727323 - in
/sling/trunk/bundles/extensions/discovery/commons/src:
main/java/org/apache/sling/discovery/commons/providers/base/ViewStateManagerImpl.java
test/java/org/apache/sling/discovery/commons/providers/base/TestViewStateManager.java
Author: stefanegli
Date: Thu Jan 28 12:44:40 2016
New Revision: 1727323
URL: http://svn.apache.org/viewvc?rev=1727323&view=rev
Log:
SLING-5464 : fixed regression introduced in onlyDiffersInProperties - and added a proper JUnit test which would have avoided the problem in the first place
Modified:
sling/trunk/bundles/extensions/discovery/commons/src/main/java/org/apache/sling/discovery/commons/providers/base/ViewStateManagerImpl.java
sling/trunk/bundles/extensions/discovery/commons/src/test/java/org/apache/sling/discovery/commons/providers/base/TestViewStateManager.java
Modified: sling/trunk/bundles/extensions/discovery/commons/src/main/java/org/apache/sling/discovery/commons/providers/base/ViewStateManagerImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/commons/src/main/java/org/apache/sling/discovery/commons/providers/base/ViewStateManagerImpl.java?rev=1727323&r1=1727322&r2=1727323&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/commons/src/main/java/org/apache/sling/discovery/commons/providers/base/ViewStateManagerImpl.java (original)
+++ sling/trunk/bundles/extensions/discovery/commons/src/main/java/org/apache/sling/discovery/commons/providers/base/ViewStateManagerImpl.java Thu Jan 28 12:44:40 2016
@@ -633,7 +633,7 @@ public class ViewStateManagerImpl implem
if (oldInstance.isLeader() != newInstance.isLeader()) {
return false;
}
- if (oldInstance.getClusterView().getId() != newInstance.getClusterView().getId()) {
+ if (!oldInstance.getClusterView().getId().equals(newInstance.getClusterView().getId())) {
return false;
}
}
Modified: sling/trunk/bundles/extensions/discovery/commons/src/test/java/org/apache/sling/discovery/commons/providers/base/TestViewStateManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/commons/src/test/java/org/apache/sling/discovery/commons/providers/base/TestViewStateManager.java?rev=1727323&r1=1727322&r2=1727323&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/commons/src/test/java/org/apache/sling/discovery/commons/providers/base/TestViewStateManager.java (original)
+++ sling/trunk/bundles/extensions/discovery/commons/src/test/java/org/apache/sling/discovery/commons/providers/base/TestViewStateManager.java Thu Jan 28 12:44:40 2016
@@ -32,7 +32,11 @@ import java.util.concurrent.locks.Reentr
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
+import org.apache.sling.discovery.ClusterView;
+import org.apache.sling.discovery.DiscoveryService;
+import org.apache.sling.discovery.InstanceDescription;
import org.apache.sling.discovery.TopologyEvent;
+import org.apache.sling.discovery.TopologyView;
import org.apache.sling.discovery.commons.providers.BaseTopologyView;
import org.apache.sling.discovery.commons.providers.DefaultClusterView;
import org.apache.sling.discovery.commons.providers.DefaultInstanceDescription;
@@ -131,6 +135,35 @@ public class TestViewStateManager {
}
@Test
+ public void testChangedPropertiesChanged() throws Exception {
+ final DummyListener listener = new DummyListener();
+ mgr.installMinEventDelayHandler(new DiscoveryService() {
+
+ @Override
+ public TopologyView getTopology() {
+ throw new IllegalStateException("not yet impl");
+ }
+ }, new DummyScheduler(), 1);
+ mgr.handleActivated();
+ TestHelper.assertNoEvents(listener);
+ mgr.bind(listener);
+ TestHelper.assertNoEvents(listener);
+ mgr.handleChanging();
+ TestHelper.assertNoEvents(listener);
+ final BaseTopologyView view1 = new DummyTopologyView().addInstance();
+ InstanceDescription instance1 = view1.getInstances().iterator().next();
+ ClusterView cluster1 = instance1.getClusterView();
+ mgr.handleNewView(view1);
+ assertEvents(listener, EventHelper.newInitEvent(view1));
+ DefaultClusterView cluster2 = new DefaultClusterView(new String(cluster1.getId()));
+ final BaseTopologyView view2 = new DummyTopologyView(view1.getLocalClusterSyncTokenId()).addInstance(instance1.getSlingId(), cluster2, instance1.isLeader(), instance1.isLocal());
+ DefaultInstanceDescription instance2 = (DefaultInstanceDescription) view2.getLocalInstance();
+ instance2.setProperty("foo", "bar");
+ mgr.handleNewView(view2);
+ assertEvents(listener, EventHelper.newPropertiesChangedEvent(view1, view2));
+ }
+
+ @Test
public void testDuplicateListeners() throws Exception {
final DummyListener listener = new DummyListener();
mgr.bind(listener);