You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by br...@apache.org on 2012/04/23 01:20:15 UTC
svn commit: r1328991 [2/2] - in /zookeeper/trunk: ./
src/java/main/org/apache/zookeeper/server/quorum/
src/java/main/org/apache/zookeeper/server/quorum/flexible/
src/java/test/org/apache/zookeeper/server/quorum/
src/java/test/org/apache/zookeeper/serve...
Added: zookeeper/trunk/src/java/test/org/apache/zookeeper/server/util/DynamicConfigBCTest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/server/util/DynamicConfigBCTest.java?rev=1328991&view=auto
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/server/util/DynamicConfigBCTest.java (added)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/server/util/DynamicConfigBCTest.java Sun Apr 22 23:20:13 2012
@@ -0,0 +1,171 @@
+/**
+ * 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.zookeeper.server.util;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Properties;
+import org.junit.Assert;
+
+import org.junit.Test;
+import org.apache.zookeeper.PortAssignment;
+import org.apache.zookeeper.server.ZKDatabase;
+import org.apache.zookeeper.server.quorum.QuorumPeer;
+import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
+import org.apache.zookeeper.server.quorum.QuorumPeerConfig.ConfigException;
+import org.apache.zookeeper.server.quorum.flexible.QuorumVerifier;
+import org.apache.zookeeper.test.ClientBase;
+
+
+/**
+ * test for backward compatibility of dynamic configuration parameters representation.
+ * Currently this only includes membership parameters.
+ * {@link https://issues.apache.org/jira/browse/ZOOKEEPER-1411}
+ */
+public class DynamicConfigBCTest extends QuorumPeer {
+ final int CLIENT_PORT_QP1 = PortAssignment.unique();
+ final int CLIENT_PORT_QP2 = PortAssignment.unique();
+ final int CLIENT_PORT_QP3 = PortAssignment.unique();
+
+ String configStr1 =
+ "server.1=127.0.0.1:" + PortAssignment.unique()
+ + ":" + PortAssignment.unique()
+ + "\nserver.2=127.0.0.1:" + PortAssignment.unique()
+ + ":" + PortAssignment.unique();
+
+
+ String configStr2 =
+ "server.1=127.0.0.1:" + PortAssignment.unique()
+ + ":" + PortAssignment.unique() + ";" + CLIENT_PORT_QP1
+ + "\nserver.2=127.0.0.1:" + PortAssignment.unique()
+ + ":" + PortAssignment.unique() + ";" + CLIENT_PORT_QP2
+ + "\nserver.3=127.0.0.1:" + PortAssignment.unique()
+ + ":" + PortAssignment.unique() + ";" + CLIENT_PORT_QP3
+ + "\nversion=2";
+
+
+ @Test
+ public void dynamicConfigBackwardCompatibilityTest() throws IOException, ConfigException
+ {
+ //set up an plain old single config file
+ File tmpDir = ClientBase.createTmpDir();
+ File confFile = new File(tmpDir, "zoo.cfg");
+
+ FileWriter fwriter = new FileWriter(confFile);
+ fwriter.write("tickTime=4000\n");
+ fwriter.write("initLimit=10\n");
+ fwriter.write("syncLimit=5\n");
+
+ File dataDir = new File(tmpDir, "data");
+ if (!dataDir.mkdir()) {
+ throw new IOException("Unable to mkdir " + dataDir);
+ }
+
+ // Convert windows path to UNIX to avoid problems with "\"
+ String dir = dataDir.toString();
+ String osname = java.lang.System.getProperty("os.name");
+ if (osname.toLowerCase().contains("windows")) {
+ dir = dir.replace('\\', '/');
+ }
+ fwriter.write("dataDir=" + dir + "\n");
+
+ fwriter.write("clientPort=" + CLIENT_PORT_QP1 + "\n");
+
+ fwriter.write(configStr1 + "\n");
+ fwriter.flush();
+ fwriter.close();
+
+ File myidFile = new File(dataDir, "myid");
+ fwriter = new FileWriter(myidFile);
+ int myId = 1;
+ fwriter.write(Integer.toString(myId));
+ fwriter.flush();
+ fwriter.close();
+
+ //set QuorumPeer's membership params the same way QuorumPeerMain does
+ QuorumPeerConfig config = new QuorumPeerConfig();
+ config.parse(confFile.toString());
+
+ setDynamicConfigFilename(config.getDynamicConfigFilename());
+ setConfigFileName(config.getConfigFilename());
+ setConfigBackwardCompatibility(config.getConfigBackwardCompatibility());
+ setZKDatabase(new ZKDatabase(getTxnFactory()));
+ setQuorumVerifier(config.getQuorumVerifier(), false);
+
+ // check that a dynamic configuration file wasn't created and that the static config file contains
+ // the membership definitions
+ Assert.assertFalse((new File(config.getConfigFilename() + ".dynamic")).exists());
+ Properties cfg = new Properties();
+ FileInputStream in = new FileInputStream(config.getConfigFilename());
+ try {
+ cfg.load(in);
+ } finally {
+ in.close();
+ }
+ Assert.assertTrue(cfg.containsKey("server.1"));
+ Assert.assertTrue(cfg.containsKey("server.2"));
+ Assert.assertFalse(cfg.containsKey("server.3"));
+ Assert.assertFalse(cfg.containsKey("dynamicConfigFile"));
+
+ // check that backward compatibility bit is true
+ Assert.assertTrue(getConfigBackwardCompatibility());
+
+ QuorumVerifier qvNew = configFromString(configStr2);
+ setQuorumVerifier(qvNew, true);
+
+ // check that backward compatibility bit is now false
+ Assert.assertFalse(getConfigBackwardCompatibility());
+
+ // check that a dynamic configuration file was created
+ Assert.assertTrue((new File(config.getConfigFilename() + ".dynamic")).exists());
+
+ // check that config file doesn't include membership info
+ // and has a pointer to the dynamic configuration file
+ cfg = new Properties();
+ in = new FileInputStream(config.getConfigFilename());
+ try {
+ cfg.load(in);
+ } finally {
+ in.close();
+ }
+ Assert.assertFalse(cfg.containsKey("server.1"));
+ Assert.assertFalse(cfg.containsKey("server.2"));
+ Assert.assertFalse(cfg.containsKey("server.3"));
+ Assert.assertTrue(cfg.containsKey("dynamicConfigFile"));
+
+ // check that the dynamic configuration file contains the membership info
+ cfg = new Properties();
+ in = new FileInputStream(getDynamicConfigFilename());
+ try {
+ cfg.load(in);
+ } finally {
+ in.close();
+ }
+ Assert.assertTrue(cfg.containsKey("server.1"));
+ Assert.assertTrue(cfg.containsKey("server.2"));
+ Assert.assertTrue(cfg.containsKey("server.3"));
+ Assert.assertFalse(cfg.containsKey("dynamicConfigFile"));
+ }
+
+}
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/test/CnxManagerTest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/CnxManagerTest.java?rev=1328991&r1=1328990&r2=1328991&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/test/CnxManagerTest.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/test/CnxManagerTest.java Sun Apr 22 23:20:13 2012
@@ -66,7 +66,8 @@ public class CnxManagerTest extends ZKTe
peers.put(Long.valueOf(i),
new QuorumServer(i,
new InetSocketAddress(peerQuorumPort[i]),
- new InetSocketAddress(PortAssignment.unique())));
+ new InetSocketAddress(PortAssignment.unique()),
+ new InetSocketAddress(peerClientPort[i])));
peerTmpdir[i] = ClientBase.createTmpDir();
}
}
@@ -183,6 +184,7 @@ public class CnxManagerTest extends ZKTe
peers.put(Long.valueOf(2),
new QuorumServer(2,
new InetSocketAddress(deadAddress, deadPort),
+ new InetSocketAddress(deadAddress, PortAssignment.unique()),
new InetSocketAddress(deadAddress, PortAssignment.unique())));
peerTmpdir[2] = ClientBase.createTmpDir();
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/test/FLETest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/FLETest.java?rev=1328991&r1=1328990&r2=1328991&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/test/FLETest.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/test/FLETest.java Sun Apr 22 23:20:13 2012
@@ -298,12 +298,12 @@ public class FLETest extends ZKTestCase
* Creates list of peers.
*/
for(int i = 0; i < count; i++) {
+ port[i] = PortAssignment.unique();
peers.put(Long.valueOf(i),
new QuorumServer(i,
new InetSocketAddress(PortAssignment.unique()),
- new InetSocketAddress(PortAssignment.unique())));
- tmpdir[i] = ClientBase.createTmpDir();
- port[i] = PortAssignment.unique();
+ new InetSocketAddress(PortAssignment.unique()), new InetSocketAddress(port[i])));
+ tmpdir[i] = ClientBase.createTmpDir();
}
/*
@@ -400,12 +400,13 @@ public class FLETest extends ZKTestCase
int waitTime = 10 * 1000;
ArrayList<QuorumPeer> peerList = new ArrayList<QuorumPeer>();
for(sid = 0; sid < 3; sid++) {
+ port[sid] = PortAssignment.unique();
peers.put(Long.valueOf(sid),
new QuorumServer(sid,
new InetSocketAddress(PortAssignment.unique()),
- new InetSocketAddress(PortAssignment.unique())));
- tmpdir[sid] = ClientBase.createTmpDir();
- port[sid] = PortAssignment.unique();
+ new InetSocketAddress(PortAssignment.unique()),
+ new InetSocketAddress(port[sid])));
+ tmpdir[sid] = ClientBase.createTmpDir();
}
// start 2 peers and verify if they form the cluster
for (sid = 0; sid < 2; sid++) {
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/test/FLEZeroWeightTest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/FLEZeroWeightTest.java?rev=1328991&r1=1328990&r2=1328991&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/test/FLEZeroWeightTest.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/test/FLEZeroWeightTest.java Sun Apr 22 23:20:13 2012
@@ -144,12 +144,13 @@ public class FLEZeroWeightTest extends Z
LOG.info("TestZeroWeightQuorum: " + getTestName()+ ", " + count);
for(int i = 0; i < count; i++) {
- peers.put(Long.valueOf(i),
- new QuorumServer(i,
- new InetSocketAddress(PortAssignment.unique()),
- new InetSocketAddress(PortAssignment.unique())));
+ InetSocketAddress addr1 = new InetSocketAddress("127.0.0.1",PortAssignment.unique());
+ InetSocketAddress addr2 = new InetSocketAddress("127.0.0.1",PortAssignment.unique());
+ InetSocketAddress addr3 = new InetSocketAddress("127.0.0.1",PortAssignment.unique());
+ port[i] = addr3.getPort();
+ qp.setProperty("server."+i, "127.0.0.1:"+addr1.getPort()+":"+addr2.getPort()+";"+port[i]);
+ peers.put(Long.valueOf(i), new QuorumServer(i, addr1, addr2, addr3));
tmpdir[i] = ClientBase.createTmpDir();
- port[i] = PortAssignment.unique();
}
for(int i = 0; i < le.length; i++) {
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/test/HierarchicalQuorumTest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/HierarchicalQuorumTest.java?rev=1328991&r1=1328990&r2=1328991&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/test/HierarchicalQuorumTest.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/test/HierarchicalQuorumTest.java Sun Apr 22 23:20:13 2012
@@ -53,6 +53,13 @@ public class HierarchicalQuorumTest exte
protected int leport4;
protected int leport5;
+ protected int clientport1;
+ protected int clientport2;
+ protected int clientport3;
+ protected int clientport4;
+ protected int clientport5;
+
+
Properties qp;
protected final ClientHammerTest cht = new ClientHammerTest();
@@ -74,12 +81,17 @@ public class HierarchicalQuorumTest exte
leport3 = PortAssignment.unique();
leport4 = PortAssignment.unique();
leport5 = 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;
+ clientport1 = PortAssignment.unique();
+ clientport2 = PortAssignment.unique();
+ clientport3 = PortAssignment.unique();
+ clientport4 = PortAssignment.unique();
+ clientport5 = PortAssignment.unique();
+
+ hostPort = "127.0.0.1:" + clientport1
+ + ",127.0.0.1:" + clientport2
+ + ",127.0.0.1:" + clientport3
+ + ",127.0.0.1:" + clientport4
+ + ",127.0.0.1:" + clientport5;
LOG.info("Ports are: " + hostPort);
s1dir = ClientBase.createTmpDir();
@@ -94,7 +106,12 @@ public class HierarchicalQuorumTest exte
"weight.2=1\n" +
"weight.3=1\n" +
"weight.4=0\n" +
- "weight.5=0\n";
+ "weight.5=0\n" +
+ "server.1=127.0.0.1:" + (port1 + 1000) + ":" + (leport1 + 1000) + ";" + clientport1 + "\n" +
+ "server.2=127.0.0.1:" + (port2 + 1000) + ":" + (leport2 + 1000) + ";" + clientport2 + "\n" +
+ "server.3=127.0.0.1:" + (port3 + 1000) + ":" + (leport3 + 1000) + ";" + clientport3 + "\n" +
+ "server.4=127.0.0.1:" + (port4 + 1000) + ":" + (leport4 + 1000) + ";" + clientport4 + "\n" +
+ "server.5=127.0.0.1:" + (port5 + 1000) + ":" + (leport5 + 1000) + ";" + clientport5 + "\n";
ByteArrayInputStream is = new ByteArrayInputStream(config.getBytes());
this.qp = new Properties();
@@ -130,54 +147,64 @@ public class HierarchicalQuorumTest exte
HashMap<Long,QuorumServer> peers = new HashMap<Long,QuorumServer>();
peers.put(Long.valueOf(1), new QuorumServer(1,
new InetSocketAddress("127.0.0.1", port1 + 1000),
- new InetSocketAddress("127.0.0.1", leport1 + 1000)));
+ new InetSocketAddress("127.0.0.1", leport1 + 1000),
+ new InetSocketAddress("127.0.0.1", clientport1)));
peers.put(Long.valueOf(2), new QuorumServer(2,
new InetSocketAddress("127.0.0.1", port2 + 1000),
- new InetSocketAddress("127.0.0.1", leport2 + 1000)));
+ new InetSocketAddress("127.0.0.1", leport2 + 1000),
+ new InetSocketAddress("127.0.0.1", clientport2)));
peers.put(Long.valueOf(3), new QuorumServer(3,
new InetSocketAddress("127.0.0.1", port3 + 1000),
- new InetSocketAddress("127.0.0.1", leport3 + 1000)));
+ new InetSocketAddress("127.0.0.1", leport3 + 1000),
+ new InetSocketAddress("127.0.0.1", clientport3)));
peers.put(Long.valueOf(4), new QuorumServer(4,
new InetSocketAddress("127.0.0.1", port4 + 1000),
- new InetSocketAddress("127.0.0.1", leport4 + 1000),
+ new InetSocketAddress("127.0.0.1", leport4),
+ new InetSocketAddress("127.0.0.1", clientport4),
withObservers ? QuorumPeer.LearnerType.OBSERVER
: QuorumPeer.LearnerType.PARTICIPANT));
peers.put(Long.valueOf(5), new QuorumServer(5,
new InetSocketAddress("127.0.0.1", port5 + 1000),
new InetSocketAddress("127.0.0.1", leport5 + 1000),
+ new InetSocketAddress("127.0.0.1", clientport5),
withObservers ? QuorumPeer.LearnerType.OBSERVER
: QuorumPeer.LearnerType.PARTICIPANT));
- LOG.info("creating QuorumPeer 1 port " + port1);
+ LOG.info("creating QuorumPeer 1 port " + clientport1);
+
+ if (withObservers) {
+ qp.setProperty("server.4", "127.0.0.1:" + (port4 + 1000) + ":" + (leport4 + 1000) + ":observer" + ";" + clientport4);
+ qp.setProperty("server.5", "127.0.0.1:" + (port5 + 1000) + ":" + (leport5 + 1000) + ":observer" + ";" + clientport5);
+ }
QuorumHierarchical hq1 = new QuorumHierarchical(qp);
- s1 = new QuorumPeer(peers, s1dir, s1dir, port1, 3, 1, tickTime, initLimit, syncLimit, hq1);
- Assert.assertEquals(port1, s1.getClientPort());
+ s1 = new QuorumPeer(peers, s1dir, s1dir, clientport1, 3, 1, tickTime, initLimit, syncLimit, hq1);
+ Assert.assertEquals(clientport1, s1.getClientPort());
- LOG.info("creating QuorumPeer 2 port " + port2);
+ LOG.info("creating QuorumPeer 2 port " + clientport2);
QuorumHierarchical hq2 = new QuorumHierarchical(qp);
- s2 = new QuorumPeer(peers, s2dir, s2dir, port2, 3, 2, tickTime, initLimit, syncLimit, hq2);
- Assert.assertEquals(port2, s2.getClientPort());
+ s2 = new QuorumPeer(peers, s2dir, s2dir, clientport2, 3, 2, tickTime, initLimit, syncLimit, hq2);
+ Assert.assertEquals(clientport2, s2.getClientPort());
- LOG.info("creating QuorumPeer 3 port " + port3);
+ LOG.info("creating QuorumPeer 3 port " + clientport3);
QuorumHierarchical hq3 = new QuorumHierarchical(qp);
- s3 = new QuorumPeer(peers, s3dir, s3dir, port3, 3, 3, tickTime, initLimit, syncLimit, hq3);
- Assert.assertEquals(port3, s3.getClientPort());
+ s3 = new QuorumPeer(peers, s3dir, s3dir, clientport3, 3, 3, tickTime, initLimit, syncLimit, hq3);
+ Assert.assertEquals(clientport3, s3.getClientPort());
- LOG.info("creating QuorumPeer 4 port " + port4);
+ LOG.info("creating QuorumPeer 4 port " + clientport4);
QuorumHierarchical hq4 = new QuorumHierarchical(qp);
- s4 = new QuorumPeer(peers, s4dir, s4dir, port4, 3, 4, tickTime, initLimit, syncLimit, hq4);
+ s4 = new QuorumPeer(peers, s4dir, s4dir, clientport4, 3, 4, tickTime, initLimit, syncLimit, hq4);
if (withObservers) {
s4.setLearnerType(QuorumPeer.LearnerType.OBSERVER);
}
- Assert.assertEquals(port4, s4.getClientPort());
+ Assert.assertEquals(clientport4, s4.getClientPort());
- LOG.info("creating QuorumPeer 5 port " + port5);
+ LOG.info("creating QuorumPeer 5 port " + clientport5);
QuorumHierarchical hq5 = new QuorumHierarchical(qp);
- s5 = new QuorumPeer(peers, s5dir, s5dir, port5, 3, 5, tickTime, initLimit, syncLimit, hq5);
+ s5 = new QuorumPeer(peers, s5dir, s5dir, clientport5, 3, 5, tickTime, initLimit, syncLimit, hq5);
if (withObservers) {
s5.setLearnerType(QuorumPeer.LearnerType.OBSERVER);
}
- Assert.assertEquals(port5, s5.getClientPort());
+ Assert.assertEquals(clientport5, s5.getClientPort());
// Observers are currently only compatible with LeaderElection
if (withObservers) {
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/test/LENonTerminateTest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/LENonTerminateTest.java?rev=1328991&r1=1328990&r2=1328991&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/test/LENonTerminateTest.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/test/LENonTerminateTest.java Sun Apr 22 23:20:13 2012
@@ -218,7 +218,7 @@ public class LENonTerminateTest extends
super(quorumPeers, snapDir, logDir, electionAlg,
myid,tickTime, initLimit,syncLimit,
ServerCnxnFactory.createFactory(clientPort, -1),
- new QuorumMaj(countParticipants(quorumPeers)));
+ new QuorumMaj(quorumPeers), null);
}
protected Election createElectionAlgorithm(int electionAlgorithm){
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ObserverTest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ObserverTest.java?rev=1328991&r1=1328990&r2=1328991&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ObserverTest.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ObserverTest.java Sun Apr 22 23:20:13 2012
@@ -71,18 +71,17 @@ public class ObserverTest extends Quorum
final int CLIENT_PORT_OBS = PortAssignment.unique();
- String quorumCfgSection =
- "electionAlg=3\n" +
+ String quorumCfgSection =
"server.1=127.0.0.1:" + (PORT_QP1)
- + ":" + (PORT_QP_LE1)
+ + ":" + (PORT_QP_LE1) + ";" + CLIENT_PORT_QP1
+ "\nserver.2=127.0.0.1:" + (PORT_QP2)
- + ":" + (PORT_QP_LE2)
+ + ":" + (PORT_QP_LE2) + ";" + CLIENT_PORT_QP2
+ "\nserver.3=127.0.0.1:"
- + (PORT_OBS)+ ":" + (PORT_OBS_LE) + ":observer";
- String obsCfgSection = quorumCfgSection + "\npeerType=observer";
+ + (PORT_OBS)+ ":" + (PORT_OBS_LE) + ":observer" + ";" + CLIENT_PORT_OBS;
+
MainThread q1 = new MainThread(1, CLIENT_PORT_QP1, quorumCfgSection);
MainThread q2 = new MainThread(2, CLIENT_PORT_QP2, quorumCfgSection);
- MainThread q3 = new MainThread(3, CLIENT_PORT_OBS, obsCfgSection);
+ MainThread q3 = new MainThread(3, CLIENT_PORT_OBS, quorumCfgSection);
q1.start();
q2.start();
q3.start();
@@ -201,7 +200,7 @@ public class ObserverTest extends Quorum
String quorumCfgSection =
"server.1=127.0.0.1:" + (PortAssignment.unique())
- + ":" + (PortAssignment.unique()) + ":observer\npeerType=observer\n";
+ + ":" + (PortAssignment.unique()) + ":observer;" + CLIENT_PORT_QP1 + "\n";
MainThread q1 = new MainThread(1, CLIENT_PORT_QP1, quorumCfgSection);
q1.start();
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumBase.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumBase.java?rev=1328991&r1=1328990&r2=1328991&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumBase.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumBase.java Sun Apr 22 23:20:13 2012
@@ -56,7 +56,13 @@ public class QuorumBase extends ClientBa
protected int portLE3;
protected int portLE4;
protected int portLE5;
-
+
+ protected int portClient1;
+ protected int portClient2;
+ protected int portClient3;
+ protected int portClient4;
+ protected int portClient5;
+
@Test
// This just avoids complaints by junit
public void testNull() {
@@ -87,11 +93,17 @@ public class QuorumBase extends ClientBa
portLE4 = PortAssignment.unique();
portLE5 = 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;
+ portClient1 = PortAssignment.unique();
+ portClient2 = PortAssignment.unique();
+ portClient3 = PortAssignment.unique();
+ portClient4 = PortAssignment.unique();
+ portClient5 = PortAssignment.unique();
+
+ hostPort = "127.0.0.1:" + portClient1
+ + ",127.0.0.1:" + portClient2
+ + ",127.0.0.1:" + portClient3
+ + ",127.0.0.1:" + portClient4
+ + ",127.0.0.1:" + portClient5;
LOG.info("Ports are: " + hostPort);
s1dir = ClientBase.createTmpDir();
@@ -126,22 +138,27 @@ public class QuorumBase extends ClientBa
peers.put(Long.valueOf(1), new QuorumServer(1,
new InetSocketAddress("127.0.0.1", port1 + 1000),
new InetSocketAddress("127.0.0.1", portLE1 + 1000),
+ new InetSocketAddress("127.0.0.1", portClient1),
LearnerType.PARTICIPANT));
peers.put(Long.valueOf(2), new QuorumServer(2,
new InetSocketAddress("127.0.0.1", port2 + 1000),
new InetSocketAddress("127.0.0.1", portLE2 + 1000),
+ new InetSocketAddress("127.0.0.1", portClient2),
LearnerType.PARTICIPANT));
peers.put(Long.valueOf(3), new QuorumServer(3,
new InetSocketAddress("127.0.0.1", port3 + 1000),
new InetSocketAddress("127.0.0.1", portLE3 + 1000),
+ new InetSocketAddress("127.0.0.1", portClient3),
LearnerType.PARTICIPANT));
peers.put(Long.valueOf(4), new QuorumServer(4,
new InetSocketAddress("127.0.0.1", port4 + 1000),
new InetSocketAddress("127.0.0.1", portLE4 + 1000),
+ new InetSocketAddress("127.0.0.1", portClient4),
LearnerType.PARTICIPANT));
peers.put(Long.valueOf(5), new QuorumServer(5,
new InetSocketAddress("127.0.0.1", port5 + 1000),
new InetSocketAddress("127.0.0.1", portLE5 + 1000),
+ new InetSocketAddress("127.0.0.1", portClient5),
LearnerType.PARTICIPANT));
if (withObservers) {
@@ -149,21 +166,21 @@ public class QuorumBase extends ClientBa
peers.get(Long.valueOf(5)).type = LearnerType.OBSERVER;
}
- LOG.info("creating QuorumPeer 1 port " + port1);
- s1 = new QuorumPeer(peers, s1dir, s1dir, port1, 3, 1, tickTime, initLimit, syncLimit);
- Assert.assertEquals(port1, s1.getClientPort());
- LOG.info("creating QuorumPeer 2 port " + port2);
- s2 = new QuorumPeer(peers, s2dir, s2dir, port2, 3, 2, tickTime, initLimit, syncLimit);
- Assert.assertEquals(port2, s2.getClientPort());
- LOG.info("creating QuorumPeer 3 port " + port3);
- s3 = new QuorumPeer(peers, s3dir, s3dir, port3, 3, 3, tickTime, initLimit, syncLimit);
- Assert.assertEquals(port3, s3.getClientPort());
- LOG.info("creating QuorumPeer 4 port " + port4);
- s4 = new QuorumPeer(peers, s4dir, s4dir, port4, 3, 4, tickTime, initLimit, syncLimit);
- Assert.assertEquals(port4, s4.getClientPort());
- LOG.info("creating QuorumPeer 5 port " + port5);
- s5 = new QuorumPeer(peers, s5dir, s5dir, port5, 3, 5, tickTime, initLimit, syncLimit);
- Assert.assertEquals(port5, s5.getClientPort());
+ LOG.info("creating QuorumPeer 1 port " + portClient1);
+ s1 = new QuorumPeer(peers, s1dir, s1dir, portClient1, 3, 1, tickTime, initLimit, syncLimit);
+ Assert.assertEquals(portClient1, s1.getClientPort());
+ LOG.info("creating QuorumPeer 2 port " + portClient2);
+ s2 = new QuorumPeer(peers, s2dir, s2dir, portClient2, 3, 2, tickTime, initLimit, syncLimit);
+ Assert.assertEquals(portClient2, s2.getClientPort());
+ LOG.info("creating QuorumPeer 3 port " + portClient3);
+ s3 = new QuorumPeer(peers, s3dir, s3dir, portClient3, 3, 3, tickTime, initLimit, syncLimit);
+ Assert.assertEquals(portClient3, s3.getClientPort());
+ LOG.info("creating QuorumPeer 4 port " + portClient4);
+ s4 = new QuorumPeer(peers, s4dir, s4dir, portClient4, 3, 4, tickTime, initLimit, syncLimit);
+ Assert.assertEquals(portClient4, s4.getClientPort());
+ LOG.info("creating QuorumPeer 5 port " + portClient5);
+ s5 = new QuorumPeer(peers, s5dir, s5dir, portClient5, 3, 5, tickTime, initLimit, syncLimit);
+ Assert.assertEquals(portClient5, s5.getClientPort());
if (withObservers) {
s4.setLearnerType(LearnerType.OBSERVER);
@@ -240,50 +257,55 @@ public class QuorumBase extends ClientBa
peers.put(Long.valueOf(1), new QuorumServer(1,
new InetSocketAddress("127.0.0.1", port1 + 1000),
new InetSocketAddress("127.0.0.1", portLE1 + 1000),
+ new InetSocketAddress("127.0.0.1", portClient1),
LearnerType.PARTICIPANT));
peers.put(Long.valueOf(2), new QuorumServer(2,
new InetSocketAddress("127.0.0.1", port2 + 1000),
new InetSocketAddress("127.0.0.1", portLE2 + 1000),
+ new InetSocketAddress("127.0.0.1", portClient2),
LearnerType.PARTICIPANT));
peers.put(Long.valueOf(3), new QuorumServer(3,
new InetSocketAddress("127.0.0.1", port3 + 1000),
new InetSocketAddress("127.0.0.1", portLE3 + 1000),
+ new InetSocketAddress("127.0.0.1", portClient3),
LearnerType.PARTICIPANT));
peers.put(Long.valueOf(4), new QuorumServer(4,
new InetSocketAddress("127.0.0.1", port4 + 1000),
new InetSocketAddress("127.0.0.1", portLE4 + 1000),
+ new InetSocketAddress("127.0.0.1", portClient4),
LearnerType.PARTICIPANT));
peers.put(Long.valueOf(5), new QuorumServer(5,
new InetSocketAddress("127.0.0.1", port5 + 1000),
new InetSocketAddress("127.0.0.1", portLE5 + 1000),
+ new InetSocketAddress("127.0.0.1", portClient5),
LearnerType.PARTICIPANT));
}
switch(i){
case 1:
- LOG.info("creating QuorumPeer 1 port " + port1);
- s1 = new QuorumPeer(peers, s1dir, s1dir, port1, 3, 1, tickTime, initLimit, syncLimit);
- Assert.assertEquals(port1, s1.getClientPort());
+ LOG.info("creating QuorumPeer 1 port " + portClient1);
+ s1 = new QuorumPeer(peers, s1dir, s1dir, portClient1, 3, 1, tickTime, initLimit, syncLimit);
+ Assert.assertEquals(portClient1, s1.getClientPort());
break;
case 2:
- LOG.info("creating QuorumPeer 2 port " + port2);
- s2 = new QuorumPeer(peers, s2dir, s2dir, port2, 3, 2, tickTime, initLimit, syncLimit);
- Assert.assertEquals(port2, s2.getClientPort());
+ LOG.info("creating QuorumPeer 2 port " + portClient2);
+ s2 = new QuorumPeer(peers, s2dir, s2dir, portClient2, 3, 2, tickTime, initLimit, syncLimit);
+ Assert.assertEquals(portClient2, s2.getClientPort());
break;
case 3:
- LOG.info("creating QuorumPeer 3 port " + port3);
- s3 = new QuorumPeer(peers, s3dir, s3dir, port3, 3, 3, tickTime, initLimit, syncLimit);
- Assert.assertEquals(port3, s3.getClientPort());
+ LOG.info("creating QuorumPeer 3 port " + portClient3);
+ s3 = new QuorumPeer(peers, s3dir, s3dir, portClient3, 3, 3, tickTime, initLimit, syncLimit);
+ Assert.assertEquals(portClient3, s3.getClientPort());
break;
case 4:
- LOG.info("creating QuorumPeer 4 port " + port4);
- s4 = new QuorumPeer(peers, s4dir, s4dir, port4, 3, 4, tickTime, initLimit, syncLimit);
- Assert.assertEquals(port4, s4.getClientPort());
+ LOG.info("creating QuorumPeer 4 port " + portClient4);
+ s4 = new QuorumPeer(peers, s4dir, s4dir, portClient4, 3, 4, tickTime, initLimit, syncLimit);
+ Assert.assertEquals(portClient4, s4.getClientPort());
break;
case 5:
- LOG.info("creating QuorumPeer 5 port " + port5);
- s5 = new QuorumPeer(peers, s5dir, s5dir, port5, 3, 5, tickTime, initLimit, syncLimit);
- Assert.assertEquals(port5, s5.getClientPort());
+ LOG.info("creating QuorumPeer 5 port " + portClient5);
+ s5 = new QuorumPeer(peers, s5dir, s5dir, portClient5, 3, 5, tickTime, initLimit, syncLimit);
+ Assert.assertEquals(portClient5, s5.getClientPort());
}
}
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumUtil.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumUtil.java?rev=1328991&r1=1328990&r2=1328991&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumUtil.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumUtil.java Sun Apr 22 23:20:13 2012
@@ -102,9 +102,11 @@ public class QuorumUtil {
ps.clientPort = PortAssignment.unique();
peers.put(i, ps);
- peersView.put(Long.valueOf(i), new QuorumServer(i, new InetSocketAddress(
- "127.0.0.1", ps.clientPort + 1000), new InetSocketAddress("127.0.0.1",
- PortAssignment.unique() + 1000), LearnerType.PARTICIPANT));
+ peersView.put(Long.valueOf(i), new QuorumServer(i,
+ new InetSocketAddress("127.0.0.1", PortAssignment.unique() + 1000),
+ new InetSocketAddress("127.0.0.1", PortAssignment.unique() + 1000),
+ new InetSocketAddress("127.0.0.1", ps.clientPort),
+ LearnerType.PARTICIPANT));
hostPort += "127.0.0.1:" + ps.clientPort + ((i == ALL) ? "" : ",");
}
for (int i = 1; i <= ALL; ++i) {
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/test/StandaloneTest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/StandaloneTest.java?rev=1328991&r1=1328990&r2=1328991&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/test/StandaloneTest.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/test/StandaloneTest.java Sun Apr 22 23:20:13 2012
@@ -49,7 +49,7 @@ public class StandaloneTest extends Quor
String quorumCfgSection =
"server.1=127.0.0.1:" + (PortAssignment.unique())
- + ":" + (PortAssignment.unique()) + "\n";
+ + ":" + (PortAssignment.unique()) + ";" + CLIENT_PORT_QP1 + "\n";
MainThread q1 = new MainThread(1, CLIENT_PORT_QP1, quorumCfgSection);
q1.start();