List of usage examples for org.apache.zookeeper.server.quorum.flexible QuorumVerifier getVersion
long getVersion();
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()); } } }