|
@@ -26,6 +26,7 @@ import java.util.LinkedHashSet;
|
|
|
import java.util.Set;
|
|
|
|
|
|
import org.apache.log4j.Logger;
|
|
|
+import org.apache.zookeeper.PortAssignment;
|
|
|
import org.apache.zookeeper.ZooKeeper;
|
|
|
import org.apache.zookeeper.server.quorum.QuorumPeer;
|
|
|
import org.apache.zookeeper.server.quorum.QuorumPeer.QuorumServer;
|
|
@@ -36,14 +37,32 @@ public class QuorumBase extends ClientBase {
|
|
|
|
|
|
File s1dir, s2dir, s3dir, s4dir, s5dir;
|
|
|
QuorumPeer s1, s2, s3, s4, s5;
|
|
|
+ private int port1;
|
|
|
+ private int port2;
|
|
|
+ private int port3;
|
|
|
+ private int port4;
|
|
|
+ private int port5;
|
|
|
|
|
|
+ @Override
|
|
|
protected void setUp() throws Exception {
|
|
|
LOG.info("STARTING " + getName());
|
|
|
setupTestEnv();
|
|
|
|
|
|
JMXEnv.setUp();
|
|
|
|
|
|
- hostPort = "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183,127.0.0.1:2184,127.0.0.1:2185";
|
|
|
+ setUpAll();
|
|
|
+
|
|
|
+ port1 = PortAssignment.unique();
|
|
|
+ port2 = PortAssignment.unique();
|
|
|
+ port3 = PortAssignment.unique();
|
|
|
+ port4 = PortAssignment.unique();
|
|
|
+ port5 = PortAssignment.unique();
|
|
|
+ hostPort = "127.0.0.1:" + port1
|
|
|
+ + ",127.0.0.1:" + port2
|
|
|
+ + ",127.0.0.1:" + port3
|
|
|
+ + ",127.0.0.1:" + port4
|
|
|
+ + ",127.0.0.1:" + port5;
|
|
|
+ LOG.info("Ports are: " + hostPort);
|
|
|
|
|
|
s1dir = ClientBase.createTmpDir();
|
|
|
s2dir = ClientBase.createTmpDir();
|
|
@@ -60,27 +79,27 @@ public class QuorumBase extends ClientBase {
|
|
|
int initLimit = 3;
|
|
|
int syncLimit = 3;
|
|
|
HashMap<Long,QuorumServer> peers = new HashMap<Long,QuorumServer>();
|
|
|
- peers.put(Long.valueOf(1), new QuorumServer(1, new InetSocketAddress("127.0.0.1", 3181)));
|
|
|
- peers.put(Long.valueOf(2), new QuorumServer(2, new InetSocketAddress("127.0.0.1", 3182)));
|
|
|
- peers.put(Long.valueOf(3), new QuorumServer(3, new InetSocketAddress("127.0.0.1", 3183)));
|
|
|
- peers.put(Long.valueOf(4), new QuorumServer(4, new InetSocketAddress("127.0.0.1", 3184)));
|
|
|
- peers.put(Long.valueOf(5), new QuorumServer(5, new InetSocketAddress("127.0.0.1", 3185)));
|
|
|
-
|
|
|
- LOG.info("creating QuorumPeer 1");
|
|
|
- s1 = new QuorumPeer(peers, s1dir, s1dir, 2181, 0, 1, tickTime, initLimit, syncLimit);
|
|
|
- assertEquals(2181, s1.getClientPort());
|
|
|
- LOG.info("creating QuorumPeer 2");
|
|
|
- s2 = new QuorumPeer(peers, s2dir, s2dir, 2182, 0, 2, tickTime, initLimit, syncLimit);
|
|
|
- assertEquals(2182, s2.getClientPort());
|
|
|
- LOG.info("creating QuorumPeer 3");
|
|
|
- s3 = new QuorumPeer(peers, s3dir, s3dir, 2183, 0, 3, tickTime, initLimit, syncLimit);
|
|
|
- assertEquals(2183, s3.getClientPort());
|
|
|
- LOG.info("creating QuorumPeer 4");
|
|
|
- s4 = new QuorumPeer(peers, s4dir, s4dir, 2184, 0, 4, tickTime, initLimit, syncLimit);
|
|
|
- assertEquals(2184, s4.getClientPort());
|
|
|
- LOG.info("creating QuorumPeer 5");
|
|
|
- s5 = new QuorumPeer(peers, s5dir, s5dir, 2185, 0, 5, tickTime, initLimit, syncLimit);
|
|
|
- assertEquals(2185, s5.getClientPort());
|
|
|
+ peers.put(Long.valueOf(1), new QuorumServer(1, new InetSocketAddress("127.0.0.1", port1 + 1000)));
|
|
|
+ peers.put(Long.valueOf(2), new QuorumServer(2, new InetSocketAddress("127.0.0.1", port2 + 1000)));
|
|
|
+ peers.put(Long.valueOf(3), new QuorumServer(3, new InetSocketAddress("127.0.0.1", port3 + 1000)));
|
|
|
+ peers.put(Long.valueOf(4), new QuorumServer(4, new InetSocketAddress("127.0.0.1", port4 + 1000)));
|
|
|
+ peers.put(Long.valueOf(5), new QuorumServer(5, new InetSocketAddress("127.0.0.1", port5 + 1000)));
|
|
|
+
|
|
|
+ LOG.info("creating QuorumPeer 1 port " + port1);
|
|
|
+ s1 = new QuorumPeer(peers, s1dir, s1dir, port1, 0, 1, tickTime, initLimit, syncLimit);
|
|
|
+ assertEquals(port1, s1.getClientPort());
|
|
|
+ LOG.info("creating QuorumPeer 2 port " + port2);
|
|
|
+ s2 = new QuorumPeer(peers, s2dir, s2dir, port2, 0, 2, tickTime, initLimit, syncLimit);
|
|
|
+ assertEquals(port2, s2.getClientPort());
|
|
|
+ LOG.info("creating QuorumPeer 3 port " + port3);
|
|
|
+ s3 = new QuorumPeer(peers, s3dir, s3dir, port3, 0, 3, tickTime, initLimit, syncLimit);
|
|
|
+ assertEquals(port3, s3.getClientPort());
|
|
|
+ LOG.info("creating QuorumPeer 4 port " + port4);
|
|
|
+ s4 = new QuorumPeer(peers, s4dir, s4dir, port4, 0, 4, tickTime, initLimit, syncLimit);
|
|
|
+ assertEquals(port4, s4.getClientPort());
|
|
|
+ LOG.info("creating QuorumPeer 5 port " + port5);
|
|
|
+ s5 = new QuorumPeer(peers, s5dir, s5dir, port5, 0, 5, tickTime, initLimit, syncLimit);
|
|
|
+ assertEquals(port5, s5.getClientPort());
|
|
|
LOG.info("start QuorumPeer 1");
|
|
|
s1.start();
|
|
|
LOG.info("start QuorumPeer 2");
|
|
@@ -93,6 +112,7 @@ public class QuorumBase extends ClientBase {
|
|
|
s5.start();
|
|
|
LOG.info("started QuorumPeer 5");
|
|
|
|
|
|
+ LOG.info ("Closing ports " + hostPort);
|
|
|
for (String hp : hostPort.split(",")) {
|
|
|
assertTrue("waiting for server up",
|
|
|
ClientBase.waitForServerUp(hp,
|
|
@@ -159,14 +179,14 @@ public class QuorumBase extends ClientBase {
|
|
|
|
|
|
protected ZooKeeper createClient()
|
|
|
throws IOException, InterruptedException
|
|
|
- {
|
|
|
+ {
|
|
|
return createClient(hostPort);
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
protected ZooKeeper createClient(String hp)
|
|
|
throws IOException, InterruptedException
|
|
|
- {
|
|
|
+ {
|
|
|
CountdownWatcher watcher = new CountdownWatcher();
|
|
|
return createClient(watcher, hp);
|
|
|
- }
|
|
|
+ }
|
|
|
}
|