in src/main/java/org/apache/sling/discovery/commons/providers/base/ViewStateManagerImpl.java [622:670]
protected boolean onlyDiffersInProperties(BaseTopologyView newView) {
if (previousView==null) {
return false;
}
if (newView==null) {
throw new IllegalArgumentException("newView must not be null");
}
String previousSyncTokenId = null;
String newSyncTokenId = null;
try{
previousSyncTokenId = previousView.getLocalClusterSyncTokenId();
} catch(IllegalStateException re) {
previousSyncTokenId = null;
}
try{
newSyncTokenId = newView.getLocalClusterSyncTokenId();
} catch(IllegalStateException re) {
newSyncTokenId = null;
}
if ((previousSyncTokenId == null && newSyncTokenId != null)
|| (newSyncTokenId == null && previousSyncTokenId != null)
|| (previousSyncTokenId!=null && !previousSyncTokenId.equals(newSyncTokenId))) {
return false;
}
if (previousView.getInstances().size()!=newView.getInstances().size()) {
return false;
}
if (previousView.equals(newView)) {
return false;
}
Set<String> newIds = new HashSet<String>();
for(InstanceDescription newInstance : newView.getInstances()) {
newIds.add(newInstance.getSlingId());
}
for(InstanceDescription oldInstance : previousView.getInstances()) {
InstanceDescription newInstance = newView.getInstance(oldInstance.getSlingId());
if (newInstance == null) {
return false;
}
if (oldInstance.isLeader() != newInstance.isLeader()) {
return false;
}
if (!oldInstance.getClusterView().getId().equals(newInstance.getClusterView().getId())) {
return false;
}
}
return true;
}