Example usage for org.apache.zookeeper.server.quorum.flexible QuorumVerifier getVersion

List of usage examples for org.apache.zookeeper.server.quorum.flexible QuorumVerifier getVersion

Introduction

In this page you can find the example usage for org.apache.zookeeper.server.quorum.flexible QuorumVerifier getVersion.

Prototype

long getVersion();

Source Link

Usage

From source file:org.apache.curator.framework.imps.TestReconfiguration.java

License:Apache License

@Test
public void testAdd() throws Exception {
    try (CuratorFramework client = newClient()) {
        client.start();//from  w  ww  . j ava  2s .c  o m

        QuorumVerifier oldConfig = toQuorumVerifier(client.getConfig().forEnsemble());
        assertConfig(oldConfig, cluster.getInstances());

        CountDownLatch latch = setChangeWaiter(client);
        try (TestingCluster newCluster = new TestingCluster(TestingCluster.makeSpecs(1, false))) {
            newCluster.start();

            client.reconfig().joining(toReconfigSpec(newCluster.getInstances()))
                    .fromConfig(oldConfig.getVersion()).forEnsemble();

            Assert.assertTrue(timing.awaitLatch(latch));

            byte[] newConfigData = client.getConfig().forEnsemble();
            QuorumVerifier newConfig = toQuorumVerifier(newConfigData);
            List<InstanceSpec> newInstances = Lists.newArrayList(cluster.getInstances());
            newInstances.addAll(newCluster.getInstances());
            assertConfig(newConfig, newInstances);
            Assert.assertEquals(EnsembleTracker.configToConnectionString(newConfig),
                    ensembleProvider.getConnectionString());
        }
    }
}

From source file:org.apache.curator.framework.imps.TestReconfiguration.java

License:Apache License

@Test
public void testAddAsync() throws Exception {
    try (CuratorFramework client = newClient()) {
        client.start();//from   w  w  w.j  a  v  a2s.  c  om

        QuorumVerifier oldConfig = toQuorumVerifier(client.getConfig().forEnsemble());
        assertConfig(oldConfig, cluster.getInstances());

        CountDownLatch latch = setChangeWaiter(client);
        try (TestingCluster newCluster = new TestingCluster(TestingCluster.makeSpecs(1, false))) {
            newCluster.start();

            final CountDownLatch callbackLatch = new CountDownLatch(1);
            BackgroundCallback callback = new BackgroundCallback() {
                @Override
                public void processResult(CuratorFramework client, CuratorEvent event) throws Exception {
                    if (event.getType() == CuratorEventType.RECONFIG) {
                        callbackLatch.countDown();
                    }
                }
            };
            client.reconfig().inBackground(callback).joining(toReconfigSpec(newCluster.getInstances()))
                    .fromConfig(oldConfig.getVersion()).forEnsemble();

            Assert.assertTrue(timing.awaitLatch(callbackLatch));
            Assert.assertTrue(timing.awaitLatch(latch));

            byte[] newConfigData = client.getConfig().forEnsemble();
            QuorumVerifier newConfig = toQuorumVerifier(newConfigData);
            List<InstanceSpec> newInstances = Lists.newArrayList(cluster.getInstances());
            newInstances.addAll(newCluster.getInstances());
            assertConfig(newConfig, newInstances);
            Assert.assertEquals(EnsembleTracker.configToConnectionString(newConfig),
                    ensembleProvider.getConnectionString());
        }
    }
}

From source file:org.apache.curator.framework.imps.TestReconfiguration.java

License:Apache License

@Test
public void testAddAndRemove() throws Exception {
    try (CuratorFramework client = newClient()) {
        client.start();/*from  www .j a v a2s .  co m*/

        QuorumVerifier oldConfig = toQuorumVerifier(client.getConfig().forEnsemble());
        assertConfig(oldConfig, cluster.getInstances());

        CountDownLatch latch = setChangeWaiter(client);

        try (TestingCluster newCluster = new TestingCluster(TestingCluster.makeSpecs(1, false))) {
            newCluster.start();

            Collection<InstanceSpec> oldInstances = cluster.getInstances();
            InstanceSpec us = cluster.findConnectionInstance(client.getZookeeperClient().getZooKeeper());
            InstanceSpec removeSpec = oldInstances.iterator().next();
            if (us.equals(removeSpec)) {
                Iterator<InstanceSpec> iterator = oldInstances.iterator();
                iterator.next();
                removeSpec = iterator.next();
            }

            Collection<InstanceSpec> instances = newCluster.getInstances();
            client.reconfig().leaving(Integer.toString(removeSpec.getServerId()))
                    .joining(toReconfigSpec(instances)).fromConfig(oldConfig.getVersion()).forEnsemble();

            Assert.assertTrue(timing.awaitLatch(latch));

            byte[] newConfigData = client.getConfig().forEnsemble();
            QuorumVerifier newConfig = toQuorumVerifier(newConfigData);
            ArrayList<InstanceSpec> newInstances = Lists.newArrayList(oldInstances);
            newInstances.addAll(instances);
            newInstances.remove(removeSpec);
            assertConfig(newConfig, newInstances);
            Assert.assertEquals(EnsembleTracker.configToConnectionString(newConfig),
                    ensembleProvider.getConnectionString());
        }
    }
}