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;
}
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"));
}
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"));
}
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"));
}
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);
}
Aggregations