Search in sources :

Example 1 with NodeState

use of org.apache.camel.component.zookeepermaster.group.NodeState in project camel by apache.

the class ZooKeeperMultiGroup method isMaster.

@Override
public boolean isMaster(String name) {
    List<ChildData<T>> children = getActiveChildren();
    Collections.sort(children, getSequenceComparator());
    for (ChildData child : children) {
        NodeState node = (NodeState) child.getNode();
        if (node.id.equals(name)) {
            return child.getPath().equals(getId());
        }
    }
    return false;
}
Also used : NodeState(org.apache.camel.component.zookeepermaster.group.NodeState)

Example 2 with NodeState

use of org.apache.camel.component.zookeepermaster.group.NodeState in project camel by apache.

the class ZooKeeperGroupTest method testMaster.

@Test
public void testMaster() throws Exception {
    putChildData(group, PATH + "/001", "container1");
    putChildData(group, PATH + "/002", "container2");
    putChildData(group, PATH + "/003", "container3");
    NodeState master = group.master();
    assertThat(master, notNullValue());
    assertThat(master.getContainer(), equalTo("container1"));
}
Also used : NodeState(org.apache.camel.component.zookeepermaster.group.NodeState) Test(org.junit.Test)

Example 3 with NodeState

use of org.apache.camel.component.zookeepermaster.group.NodeState in project camel by apache.

the class ZooKeeperGroupTest method testMasterWithStaleNodes2.

@Test
public void testMasterWithStaleNodes2() throws Exception {
    // stale
    putChildData(group, PATH + "/001", "container1");
    putChildData(group, PATH + "/002", "container2");
    putChildData(group, PATH + "/003", "container1");
    // stale
    putChildData(group, PATH + "/004", "container3");
    putChildData(group, PATH + "/005", "container3");
    NodeState master = group.master();
    assertThat(master, notNullValue());
    assertThat(master.getContainer(), equalTo("container2"));
}
Also used : NodeState(org.apache.camel.component.zookeepermaster.group.NodeState) Test(org.junit.Test)

Example 4 with NodeState

use of org.apache.camel.component.zookeepermaster.group.NodeState in project camel by apache.

the class ZooKeeperGroupTest method testMasterWithStaleNodes1.

@Test
public void testMasterWithStaleNodes1() throws Exception {
    // stale
    putChildData(group, PATH + "/001", "container1");
    putChildData(group, PATH + "/002", "container1");
    // stale
    putChildData(group, PATH + "/003", "container2");
    // stale
    putChildData(group, PATH + "/004", "container3");
    putChildData(group, PATH + "/005", "container2");
    putChildData(group, PATH + "/006", "container3");
    NodeState master = group.master();
    assertThat(master, notNullValue());
    assertThat(master.getContainer(), equalTo("container1"));
}
Also used : NodeState(org.apache.camel.component.zookeepermaster.group.NodeState) Test(org.junit.Test)

Example 5 with NodeState

use of org.apache.camel.component.zookeepermaster.group.NodeState in project camel by apache.

the class ZooKeeperGroupTest method putChildData.

private static void putChildData(ZooKeeperGroup<NodeState> group, String path, String container) throws Exception {
    NodeState node = new NodeState("test", container);
    ByteArrayOutputStream data = new ByteArrayOutputStream();
    new ObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES).writeValue(data, node);
    ChildData<NodeState> child = new ChildData<>(path, new Stat(), data.toByteArray(), node);
    group.putCurrentData(path, child);
}
Also used : NodeState(org.apache.camel.component.zookeepermaster.group.NodeState) Stat(org.apache.zookeeper.data.Stat) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper)

Aggregations

NodeState (org.apache.camel.component.zookeepermaster.group.NodeState)5 Test (org.junit.Test)3 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 Stat (org.apache.zookeeper.data.Stat)1