use of org.apache.sling.discovery.TopologyEvent.Type in project sling by apache.
the class DefaultTopologyView method equals.
@Override
public boolean equals(final Object obj) {
if (obj == null || !(obj instanceof DefaultTopologyView)) {
return false;
}
DefaultTopologyView other = (DefaultTopologyView) obj;
if (this.isCurrent() != other.isCurrent()) {
return false;
}
Type diff = compareTopology(other);
return diff == null;
}
use of org.apache.sling.discovery.TopologyEvent.Type in project sling by apache.
the class AbstractDiscoveryServiceTest method assertStableTopology.
private void assertStableTopology(Tester... instances) {
for (Tester tester : instances) {
logger.info("asserting tester: " + tester.instance.getDebugName());
TopologyEvent lastEvent = tester.previousEvent;
Type type = lastEvent.getType();
if (type == Type.TOPOLOGY_CHANGED || type == Type.TOPOLOGY_INIT) {
// fine
} else {
fail("wrong type, expected CHANGED or INIT, got: " + type);
}
assertNotNull(lastEvent.getNewView());
assertEquals(instances.length, lastEvent.getNewView().getInstances().size());
TopologyView t = tester.instance.getDiscoveryService().getTopology();
assertTrue(t.isCurrent());
assertEquals(instances.length, t.getInstances().size());
}
}
use of org.apache.sling.discovery.TopologyEvent.Type in project sling by apache.
the class AbstractDiscoveryServiceTest method isStableTopology.
private boolean isStableTopology(Tester... instances) {
for (Tester tester : instances) {
TopologyEvent lastEvent = tester.previousEvent;
if (lastEvent == null) {
return false;
}
Type type = lastEvent.getType();
if (type == Type.TOPOLOGY_CHANGED || type == Type.TOPOLOGY_INIT) {
// fine
} else {
return false;
}
TopologyView newView = lastEvent.getNewView();
if (newView == null) {
return false;
}
if (instances.length != newView.getInstances().size()) {
return false;
}
TopologyView t = tester.instance.getDiscoveryService().getTopology();
if (!t.isCurrent()) {
return false;
}
if (instances.length != t.getInstances().size()) {
return false;
}
for (Tester t2 : instances) {
boolean foundMatch = false;
for (InstanceDescription id : t.getInstances()) {
if (t2.instance.getSlingId().equals(id.getSlingId())) {
foundMatch = true;
break;
}
}
if (!foundMatch) {
return false;
}
}
}
return true;
}
use of org.apache.sling.discovery.TopologyEvent.Type in project sling by apache.
the class ClusterTest method assertCountEvents.
private void assertCountEvents(ViewStateManagerImpl mgr, DummyListener l, TopologyEvent.Type... types) throws InterruptedException {
waitForInflightEvents(mgr);
assertEquals(types.length, l.countEvents());
Iterator<TopologyEvent> it = l.getEvents().iterator();
int i = 0;
while (it.hasNext() && (i < types.length)) {
TopologyEvent expectedEvent = it.next();
Type gotType = types[i++];
assertEquals(expectedEvent.getType(), gotType);
}
if (it.hasNext()) {
StringBuffer additionalTypes = new StringBuffer();
while (it.hasNext()) {
additionalTypes.append(",");
additionalTypes.append(it.next().getType());
}
fail("got more events than expected : " + additionalTypes);
}
if (i < types.length) {
StringBuffer additionalTypes = new StringBuffer();
while (i < types.length) {
additionalTypes.append(",");
additionalTypes.append(types[i++]);
}
fail("did not get all events, also expected : " + additionalTypes);
}
}
Aggregations