Search in sources :

Example 1 with Type

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;
}
Also used : Type(org.apache.sling.discovery.TopologyEvent.Type)

Example 2 with Type

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());
    }
}
Also used : Type(org.apache.sling.discovery.TopologyEvent.Type) TopologyEvent(org.apache.sling.discovery.TopologyEvent) TopologyView(org.apache.sling.discovery.TopologyView)

Example 3 with Type

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;
}
Also used : Type(org.apache.sling.discovery.TopologyEvent.Type) TopologyEvent(org.apache.sling.discovery.TopologyEvent) InstanceDescription(org.apache.sling.discovery.InstanceDescription) TopologyView(org.apache.sling.discovery.TopologyView)

Example 4 with Type

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);
    }
}
Also used : Type(org.apache.sling.discovery.TopologyEvent.Type) TopologyEvent(org.apache.sling.discovery.TopologyEvent)

Aggregations

Type (org.apache.sling.discovery.TopologyEvent.Type)4 TopologyEvent (org.apache.sling.discovery.TopologyEvent)3 TopologyView (org.apache.sling.discovery.TopologyView)2 InstanceDescription (org.apache.sling.discovery.InstanceDescription)1