Repository: ignite Updated Branches: refs/heads/master 625e26107 -> dfaffe2af
IGNITE-9448 Updated ZooKeeper version to 3.4.13 - Fixes #4671. Signed-off-by: Alexey Goncharuk <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/dfaffe2a Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/dfaffe2a Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/dfaffe2a Branch: refs/heads/master Commit: dfaffe2af8f5e3b51eff3cfe426733311c2c100f Parents: 625e261 Author: vd-pyatkov <[email protected]> Authored: Tue Sep 4 15:55:41 2018 +0300 Committer: Alexey Goncharuk <[email protected]> Committed: Tue Sep 4 15:55:41 2018 +0300 ---------------------------------------------------------------------- .../tcp/ipfinder/zk/ZookeeperIpFinderTest.java | 3 +- .../zk/curator/FixedTestingQuorumPeerMain.java | 87 +++++++ .../tcp/ipfinder/zk/curator/TestingCluster.java | 237 +++++++++++++++++++ .../zk/curator/TestingZooKeeperServer.java | 169 +++++++++++++ .../ZookeeperDiscoverySpiAbstractTestSuite.java | 2 +- .../zk/ZookeeperDiscoverySpiTestSuite2.java | 2 +- .../zk/internal/ZookeeperClientTest.java | 2 +- .../zk/internal/ZookeeperDiscoverySpiTest.java | 4 +- parent/pom.xml | 2 +- 9 files changed, 501 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/dfaffe2a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/ZookeeperIpFinderTest.java ---------------------------------------------------------------------- diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/ZookeeperIpFinderTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/ZookeeperIpFinderTest.java index f85c6a3c..ec5630f 100644 --- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/ZookeeperIpFinderTest.java +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/ZookeeperIpFinderTest.java @@ -26,7 +26,6 @@ import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.curator.retry.RetryNTimes; import org.apache.curator.test.InstanceSpec; -import org.apache.curator.test.TestingCluster; import org.apache.curator.utils.CloseableUtils; import org.apache.ignite.Ignite; import org.apache.ignite.configuration.IgniteConfiguration; @@ -34,6 +33,7 @@ import org.apache.ignite.events.Event; import org.apache.ignite.events.EventType; import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; +import org.apache.ignite.spi.discovery.tcp.ipfinder.zk.curator.TestingCluster; import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; import org.junit.Rule; @@ -85,6 +85,7 @@ public class ZookeeperIpFinderTest extends GridCommonAbstractTest { // start the ZK cluster zkCluster = new TestingCluster(ZK_CLUSTER_SIZE); + zkCluster.start(); // start the Curator client so we can perform assertions on the ZK state later http://git-wip-us.apache.org/repos/asf/ignite/blob/dfaffe2a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/curator/FixedTestingQuorumPeerMain.java ---------------------------------------------------------------------- diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/curator/FixedTestingQuorumPeerMain.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/curator/FixedTestingQuorumPeerMain.java new file mode 100644 index 0000000..e0a416e --- /dev/null +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/curator/FixedTestingQuorumPeerMain.java @@ -0,0 +1,87 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.spi.discovery.tcp.ipfinder.zk.curator; + +import org.apache.curator.test.ZooKeeperMainFace; +import org.apache.zookeeper.server.ServerCnxnFactory; +import org.apache.zookeeper.server.quorum.QuorumPeer; +import org.apache.zookeeper.server.quorum.QuorumPeerConfig; +import org.apache.zookeeper.server.quorum.QuorumPeerMain; +import java.io.IOException; +import java.lang.reflect.Field; +import java.nio.channels.ServerSocketChannel; + +/** + */ +public class FixedTestingQuorumPeerMain extends QuorumPeerMain implements ZooKeeperMainFace { + @Override public void runFromConfig(QuorumPeerConfig config) throws IOException { + quorumPeer = QuorumPeer.testingQuorumPeer(); + super.runFromConfig(config); + } + + /** {@inheritDoc} */ + @Override public void kill() { + try { + if (quorumPeer != null) { + Field cnxnFactoryField = QuorumPeer.class.getDeclaredField("cnxnFactory"); + + cnxnFactoryField.setAccessible(true); + + ServerCnxnFactory cnxnFactory = (ServerCnxnFactory)cnxnFactoryField.get(quorumPeer); + + cnxnFactory.closeAll(); + + Field ssField = cnxnFactory.getClass().getDeclaredField("ss"); + + ssField.setAccessible(true); + + ServerSocketChannel ss = (ServerSocketChannel)ssField.get(cnxnFactory); + + ss.close(); + } + close(); + } + catch (Exception e) { + e.printStackTrace(); + } + } + + /** {@inheritDoc} */ + @Override public QuorumPeer getQuorumPeer() { + return quorumPeer; + } + + /** {@inheritDoc} */ + @Override public void close() throws IOException { + if (quorumPeer != null) + quorumPeer.shutdown(); + } + + /** {@inheritDoc} */ + @Override public void blockUntilStarted() throws Exception { + while (quorumPeer == null) { + try { + Thread.sleep(100); + } + catch (InterruptedException e) { + Thread.currentThread().interrupt(); + break; + } + } + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/dfaffe2a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/curator/TestingCluster.java ---------------------------------------------------------------------- diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/curator/TestingCluster.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/curator/TestingCluster.java new file mode 100644 index 0000000..c6e8d72 --- /dev/null +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/curator/TestingCluster.java @@ -0,0 +1,237 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.spi.discovery.tcp.ipfinder.zk.curator; + +import com.google.common.base.Function; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import org.apache.curator.test.ByteCodeRewrite; +import org.apache.curator.test.InstanceSpec; +import org.apache.curator.test.QuorumConfigBuilder; +import org.apache.zookeeper.ZooKeeper; +import java.io.Closeable; +import java.io.IOException; +import java.lang.reflect.Method; +import java.net.InetSocketAddress; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * Manages an internally running ensemble of ZooKeeper servers. FOR TESTING PURPOSES ONLY. + * This class is a copy of {{org.apache.curator.test.TestingCluster}}, + * but have very small change, that allow to run testing cluster with ZooKeeper 2.4.13 ver. + */ +public class TestingCluster implements Closeable { + static { + ByteCodeRewrite.apply(); + } + + /** Servers. */ + private final List<TestingZooKeeperServer> servers; + + /** + * Creates an ensemble comprised of <code>n</code> servers. Each server will use + * a temp directory and random ports + * + * @param instanceQty number of servers to create in the ensemble + */ + public TestingCluster(int instanceQty) { + this(makeSpecs(instanceQty)); + } + + /** + * Creates an ensemble using the given server specs + * + * @param specs the server specs + */ + public TestingCluster(InstanceSpec... specs) { + this(listToMap(ImmutableList.copyOf(specs))); + } + + /** + * Creates an ensemble using the given server specs + * + * @param specs the server specs + */ + public TestingCluster(Collection<InstanceSpec> specs) { + this(listToMap(specs)); + } + + /** + * Creates an ensemble using the given server specs + * + * @param specs map of an instance spec to its set of quorum instances. Allows simulation of an ensemble with + * instances having different config peers + */ + public TestingCluster(Map<InstanceSpec, Collection<InstanceSpec>> specs) { + ImmutableList.Builder<TestingZooKeeperServer> serverBuilder = ImmutableList.builder(); + for (Map.Entry<InstanceSpec, Collection<InstanceSpec>> entry : specs.entrySet()) { + List<InstanceSpec> instanceSpecs = Lists.newArrayList(entry.getValue()); + int index = instanceSpecs.indexOf(entry.getKey()); + Preconditions.checkState(index >= 0, entry.getKey() + " not found in specs"); + QuorumConfigBuilder builder = new QuorumConfigBuilder(instanceSpecs); + serverBuilder.add(new TestingZooKeeperServer(builder, index)); + } + servers = serverBuilder.build(); + } + + /** + * Returns the set of servers in the ensemble + * + * @return set of servers + */ + public Collection<InstanceSpec> getInstances() { + Iterable<InstanceSpec> transformed = Iterables.transform + ( + servers, + new Function<TestingZooKeeperServer, InstanceSpec>() { + @Override + public InstanceSpec apply(TestingZooKeeperServer server) { + return server.getInstanceSpec(); + } + } + ); + return Lists.newArrayList(transformed); + } + + public List<TestingZooKeeperServer> getServers() { + return Lists.newArrayList(servers); + } + + /** + * Returns the connection string to pass to the ZooKeeper constructor + * + * @return connection string + */ + public String getConnectString() { + StringBuilder str = new StringBuilder(); + for (InstanceSpec spec : getInstances()) { + if (str.length() > 0) + str.append(","); + + str.append(spec.getConnectString()); + } + return str.toString(); + } + + /** + * Start the ensemble. The cluster must be started before use. + * + * @throws Exception errors + */ + public void start() throws Exception { + for (TestingZooKeeperServer server : servers) + server.start(); + + } + + /** + * Shutdown the ensemble WITHOUT freeing resources, etc. + */ + public void stop() throws IOException { + for (TestingZooKeeperServer server : servers) + server.stop(); + + } + + /** + * Shutdown the ensemble, free resources, etc. If temp directories were used, they + * are deleted. You should call this in a <code>finally</code> block. + * + * @throws IOException errors + */ + @Override public void close() throws IOException { + for (TestingZooKeeperServer server : servers) + server.close(); + } + + /** + * Kills the given server. This simulates the server unexpectedly crashing + * + * @param instance server to kill + * @return true if the instance was found + * @throws Exception errors + */ + public boolean killServer(InstanceSpec instance) throws Exception { + for (TestingZooKeeperServer server : servers) { + if (server.getInstanceSpec().equals(instance)) { + server.kill(); + return true; + } + } + return false; + } + + /** + * Restart the given server of the cluster + * + * @param instance server instance + * @return true of the server was found + * @throws Exception errors + */ + public boolean restartServer(InstanceSpec instance) throws Exception { + for (TestingZooKeeperServer server : servers) { + if (server.getInstanceSpec().equals(instance)) { + server.restart(); + return true; + } + } + return false; + } + + /** + * Given a ZooKeeper instance, returns which server it is connected to + * + * @param client ZK instance + * @return the server + * @throws Exception errors + */ + public InstanceSpec findConnectionInstance(ZooKeeper client) throws Exception { + Method m = client.getClass().getDeclaredMethod("testableRemoteSocketAddress"); + m.setAccessible(true); + InetSocketAddress address = (InetSocketAddress)m.invoke(client); + if (address != null) { + for (TestingZooKeeperServer server : servers) { + if (server.getInstanceSpec().getPort() == address.getPort()) + return server.getInstanceSpec(); + } + } + + return null; + } + + private static Map<InstanceSpec, Collection<InstanceSpec>> makeSpecs(int instanceQty) { + ImmutableList.Builder<InstanceSpec> builder = ImmutableList.builder(); + for (int i = 0; i < instanceQty; ++i) + builder.add(InstanceSpec.newInstanceSpec()); + + return listToMap(builder.build()); + } + + private static Map<InstanceSpec, Collection<InstanceSpec>> listToMap(Collection<InstanceSpec> list) { + ImmutableMap.Builder<InstanceSpec, Collection<InstanceSpec>> mapBuilder = ImmutableMap.builder(); + for (InstanceSpec spec : list) + mapBuilder.put(spec, list); + + return mapBuilder.build(); + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/dfaffe2a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/curator/TestingZooKeeperServer.java ---------------------------------------------------------------------- diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/curator/TestingZooKeeperServer.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/curator/TestingZooKeeperServer.java new file mode 100644 index 0000000..808e617 --- /dev/null +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/curator/TestingZooKeeperServer.java @@ -0,0 +1,169 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.spi.discovery.tcp.ipfinder.zk.curator; + +import org.apache.curator.test.DirectoryUtils; +import org.apache.curator.test.InstanceSpec; +import org.apache.curator.test.QuorumConfigBuilder; +import org.apache.curator.test.TestingZooKeeperMain; +import org.apache.curator.test.ZooKeeperMainFace; +import org.apache.zookeeper.server.quorum.QuorumPeer; +import org.apache.zookeeper.server.quorum.QuorumPeerConfig; +import org.apache.zookeeper.server.quorum.QuorumPeerMain; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.io.Closeable; +import java.io.IOException; +import java.util.Collection; +import java.util.concurrent.atomic.AtomicReference; + +/** + */ +public class TestingZooKeeperServer extends QuorumPeerMain implements Closeable { + /** Logger. */ + private static final Logger logger = LoggerFactory.getLogger(org.apache.curator.test.TestingZooKeeperServer.class); + + /** Config builder. */ + private final QuorumConfigBuilder configBuilder; + /** This instance index. */ + private final int thisInstanceIndex; + /** Main. */ + private volatile ZooKeeperMainFace main; + /** State. */ + private final AtomicReference<State> state = new AtomicReference<>(State.LATENT); + + /** + * Server state. + */ + private enum State { + /** Latent. */ + LATENT, + /** Started. */ + STARTED, + /** Stopped. */ + STOPPED, + /** Closed. */ + CLOSED + } + + /** + * @param configBuilder Config builder. + */ + public TestingZooKeeperServer(QuorumConfigBuilder configBuilder) { + this(configBuilder, 0); + } + + /** + * @param configBuilder Config builder. + * @param thisInstanceIndex This instance index. + */ + public TestingZooKeeperServer(QuorumConfigBuilder configBuilder, int thisInstanceIndex) { + this.configBuilder = configBuilder; + this.thisInstanceIndex = thisInstanceIndex; + main = (configBuilder.size() > 1) ? new FixedTestingQuorumPeerMain() : new TestingZooKeeperMain(); + } + + /** {@inheritDoc} */ + public QuorumPeer getQuorumPeer() { + return main.getQuorumPeer(); + } + + /** + * + */ + public Collection<InstanceSpec> getInstanceSpecs() { + return configBuilder.getInstanceSpecs(); + } + + public void kill() { + main.kill(); + state.set(State.STOPPED); + } + + /** + * Restart the server. If the server is running it will be stopped and then + * started again. If it is not running (in a LATENT or STOPPED state) then + * it will be restarted. If it is in a CLOSED state then an exception will + * be thrown. + * + * @throws Exception + */ + public void restart() throws Exception { + // Can't restart from a closed state as all the temporary data is gone + if (state.get() == State.CLOSED) + throw new IllegalStateException("Cannot restart a closed instance"); + + // If the server's currently running then stop it. + if (state.get() == State.STARTED) + stop(); + + // Set to a LATENT state so we can restart + state.set(State.LATENT); + + main = (configBuilder.size() > 1) ? new FixedTestingQuorumPeerMain() : new TestingZooKeeperMain(); + start(); + } + + /** + * + */ + public void stop() throws IOException { + if (state.compareAndSet(State.STARTED, State.STOPPED)) + main.close(); + } + + /** + * + */ + public InstanceSpec getInstanceSpec() { + return configBuilder.getInstanceSpec(thisInstanceIndex); + } + + /** {@inheritDoc} */ + @Override public void close() throws IOException { + stop(); + + if (state.compareAndSet(State.STOPPED, State.CLOSED)) { + InstanceSpec spec = getInstanceSpec(); + if (spec.deleteDataDirectoryOnClose()) + DirectoryUtils.deleteRecursively(spec.getDataDirectory()); + } + } + + /** + * + */ + public void start() throws Exception { + if (!state.compareAndSet(State.LATENT, State.STARTED)) + return; + + new Thread(new Runnable() { + public void run() { + try { + QuorumPeerConfig config = configBuilder.buildConfig(thisInstanceIndex); + main.runFromConfig(config); + } + catch (Exception e) { + logger.error(String.format("From testing server (random state: %s) for instance: %s", String.valueOf(configBuilder.isFromRandom()), getInstanceSpec()), e); + } + } + }).start(); + + main.blockUntilStarted(); + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/dfaffe2a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiAbstractTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiAbstractTestSuite.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiAbstractTestSuite.java index c5d3488..9f0cc6d 100644 --- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiAbstractTestSuite.java +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiAbstractTestSuite.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.util.List; import junit.framework.TestSuite; import org.apache.curator.test.InstanceSpec; -import org.apache.curator.test.TestingCluster; +import org.apache.ignite.spi.discovery.tcp.ipfinder.zk.curator.TestingCluster; import org.apache.ignite.IgniteException; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.spi.discovery.DiscoverySpi; http://git-wip-us.apache.org/repos/asf/ignite/blob/dfaffe2a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiTestSuite2.java ---------------------------------------------------------------------- diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiTestSuite2.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiTestSuite2.java index 012366f..3b8ddee 100644 --- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiTestSuite2.java +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiTestSuite2.java @@ -18,7 +18,7 @@ package org.apache.ignite.spi.discovery.zk; import junit.framework.TestSuite; -import org.apache.curator.test.TestingCluster; +import org.apache.ignite.spi.discovery.tcp.ipfinder.zk.curator.TestingCluster; import org.apache.ignite.internal.ClusterNodeMetricsUpdateTest; import org.apache.ignite.internal.IgniteClientReconnectCacheTest; import org.apache.ignite.internal.processors.cache.datastructures.IgniteClientDataStructuresTest; http://git-wip-us.apache.org/repos/asf/ignite/blob/dfaffe2a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClientTest.java ---------------------------------------------------------------------- diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClientTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClientTest.java index 7c9ec51..e3b91c7 100644 --- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClientTest.java +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClientTest.java @@ -26,7 +26,7 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; -import org.apache.curator.test.TestingCluster; +import org.apache.ignite.spi.discovery.tcp.ipfinder.zk.curator.TestingCluster; import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.util.future.GridFutureAdapter; import org.apache.ignite.internal.util.typedef.internal.U; http://git-wip-us.apache.org/repos/asf/ignite/blob/dfaffe2a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java ---------------------------------------------------------------------- diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java index 19ca5f2..f249b59 100644 --- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java @@ -52,8 +52,8 @@ import javax.management.ObjectName; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.RetryNTimes; -import org.apache.curator.test.TestingCluster; -import org.apache.curator.test.TestingZooKeeperServer; +import org.apache.ignite.spi.discovery.tcp.ipfinder.zk.curator.TestingCluster; +import org.apache.ignite.spi.discovery.tcp.ipfinder.zk.curator.TestingZooKeeperServer; import org.apache.ignite.Ignite; import org.apache.ignite.IgniteCache; import org.apache.ignite.IgniteCheckedException; http://git-wip-us.apache.org/repos/asf/ignite/blob/dfaffe2a/parent/pom.xml ---------------------------------------------------------------------- diff --git a/parent/pom.xml b/parent/pom.xml index 76e39b7..f5b49ba 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -122,7 +122,7 @@ <yammer.metrics.core.version>2.2.0</yammer.metrics.core.version> <yardstick.version>0.8.3</yardstick.version> <zkclient.version>0.5</zkclient.version> - <zookeeper.version>3.4.6</zookeeper.version> + <zookeeper.version>3.4.13</zookeeper.version> <!-- OSGI Manifest generation default property values --> <osgi.import.package>*</osgi.import.package>
