From: <btm...@us...> - 2010-12-07 23:03:44
|
Revision: 3999 http://bigdata.svn.sourceforge.net/bigdata/?rev=3999&view=rev Author: btmurphy Date: 2010-12-07 23:03:37 +0000 (Tue, 07 Dec 2010) Log Message: ----------- [branch dev-btm]: CHECKPOINT - added info to testzoo.config for com.bigdata.quorum.ServiceImpl component so that the zookeeper tests now using smart proxy zookeeper wrapper can start the QuorumPeerService and the tests can pass; changed AbstractZooTestCase to now start the smart proxy based com.bigdata.quorum.ServiceImpl instead of org.apache.zookeeper.server.quorum.QuorumPeerMain; and cleaned up debug statements in AbstractFedZooTestCase from the last checkpoint checkin Modified Paths: -------------- branches/dev-btm/bigdata-jini/src/test/com/bigdata/jini/start/AbstractFedZooTestCase.java branches/dev-btm/bigdata-jini/src/test/com/bigdata/zookeeper/AbstractZooTestCase.java branches/dev-btm/bigdata-jini/src/test/com/bigdata/zookeeper/testzoo.config Modified: branches/dev-btm/bigdata-jini/src/test/com/bigdata/jini/start/AbstractFedZooTestCase.java =================================================================== --- branches/dev-btm/bigdata-jini/src/test/com/bigdata/jini/start/AbstractFedZooTestCase.java 2010-12-07 22:31:55 UTC (rev 3998) +++ branches/dev-btm/bigdata-jini/src/test/com/bigdata/jini/start/AbstractFedZooTestCase.java 2010-12-07 23:03:37 UTC (rev 3999) @@ -56,7 +56,6 @@ import net.jini.admin.Administrable; import net.jini.core.lookup.ServiceItem; import net.jini.core.lookup.ServiceTemplate; -import net.jini.discovery.DiscoveryGroupManagement; import net.jini.lookup.ServiceDiscoveryManager; //BTM - FOR_ZOOKEEPER_SMART_PROXY - END @@ -188,10 +187,8 @@ //BTM - FOR_ZOOKEEPER_SMART_PROXY - BEGIN // Graceful shutdown of QuorumPeerService ServiceDiscoveryManager sdm = fed.getServiceDiscoveryManager(); - DiscoveryGroupManagement ldm = - (DiscoveryGroupManagement)(sdm.getDiscoveryManager()); Class[] quorumServiceType = - new Class[] {com.bigdata.service.QuorumPeerService.class}; + new Class[] {QuorumPeerService.class}; ServiceTemplate quorumServiceTmpl = new ServiceTemplate(null, quorumServiceType, null); ServiceItem[] items = Modified: branches/dev-btm/bigdata-jini/src/test/com/bigdata/zookeeper/AbstractZooTestCase.java =================================================================== --- branches/dev-btm/bigdata-jini/src/test/com/bigdata/zookeeper/AbstractZooTestCase.java 2010-12-07 22:31:55 UTC (rev 3998) +++ branches/dev-btm/bigdata-jini/src/test/com/bigdata/zookeeper/AbstractZooTestCase.java 2010-12-07 23:03:37 UTC (rev 3999) @@ -58,6 +58,18 @@ import com.bigdata.jini.util.ConfigMath; import com.bigdata.resources.ResourceFileFilter; +//BTM - FOR_ZOOKEEPER_SMART_PROXY - BEGIN +import com.bigdata.service.QuorumPeerService; +import com.sun.jini.admin.DestroyAdmin; +import net.jini.admin.Administrable; +import net.jini.core.discovery.LookupLocator; +import net.jini.core.lookup.ServiceItem; +import net.jini.core.lookup.ServiceTemplate; +import net.jini.discovery.DiscoveryGroupManagement; +import net.jini.discovery.LookupDiscoveryManager; +import net.jini.lookup.ServiceDiscoveryManager; +//BTM - FOR_ZOOKEEPER_SMART_PROXY - END + /** * Abstract base class for zookeeper integration tests. * @@ -147,6 +159,10 @@ // the chosen client port. int clientPort = -1; +//BTM - FOR_ZOOKEEPER_SMART_PROXY - BEGIN + String hostname; +//BTM - FOR_ZOOKEEPER_SMART_PROXY - END + public void setUp() throws Exception { try { @@ -160,7 +176,7 @@ final int leaderPort = getPort(3888/* suggestedPort */); //BTM - PRE_ZOOKEEPER_SMART_PROXY - BEGIN //BTM - PRE_ZOOKEEPER_SMART_PROXY final String servers = "1=localhost:" + peerPort + ":" + leaderPort; - String hostname = com.bigdata.util.config.NicUtil.getIpAddress("default.nic", "default", true); + hostname = com.bigdata.util.config.NicUtil.getIpAddress("default.nic", "default", true); final String servers = "1="+hostname+":" + peerPort + ":" + leaderPort; //BTM - PRE_ZOOKEEPER_SMART_PROXY - END @@ -255,6 +271,42 @@ } +//BTM - FOR_ZOOKEEPER_SMART_PROXY - BEGIN + // Gracefully shutdown QuorumPeerService + // For graceful shutdown of QuorumPeerService + LookupLocator[] locs = + new LookupLocator[] + { new LookupLocator("jini://"+hostname) }; + LookupDiscoveryManager ldm = + new LookupDiscoveryManager + (DiscoveryGroupManagement.NO_GROUPS, + locs, null); + //wait no more than N secs for lookup to be discovered + int nWait = 3; + for (int i=0; i<nWait; i++) { + if ( (ldm.getRegistrars()).length > 0 ) break; + com.bigdata.util.Util.delayMS(1L*1000L); + } + ServiceDiscoveryManager sdm = + new ServiceDiscoveryManager(ldm, null); + Class[] quorumServiceType = + new Class[] {QuorumPeerService.class}; + ServiceTemplate quorumServiceTmpl = + new ServiceTemplate(null, quorumServiceType, null); + ServiceItem[] items = + sdm.lookup(quorumServiceTmpl, Integer.MAX_VALUE, null); + for (int i=0; i<items.length; i++) { + QuorumPeerService zk = (QuorumPeerService)(items[i].service); + try { + Object admin = ((Administrable)zk).getAdmin(); + ((DestroyAdmin)admin).destroy(); + } catch(Exception e) { + log.warn("failure on zookeeper destroy ["+zk+"]", e); + } + } + sdm.terminate(); +//BTM - FOR_ZOOKEEPER_SMART_PROXY - END + for (ProcessHelper h : listener.running) { // destroy zookeeper service iff we started it. Modified: branches/dev-btm/bigdata-jini/src/test/com/bigdata/zookeeper/testzoo.config =================================================================== --- branches/dev-btm/bigdata-jini/src/test/com/bigdata/zookeeper/testzoo.config 2010-12-07 22:31:55 UTC (rev 3998) +++ branches/dev-btm/bigdata-jini/src/test/com/bigdata/zookeeper/testzoo.config 2010-12-07 23:03:37 UTC (rev 3999) @@ -6,6 +6,31 @@ import com.bigdata.jini.util.ConfigMath; import com.bigdata.util.config.NicUtil; +bigdata { + + fedname = System.getProperty("federation.name","testFed"); + zrootname = System.getProperty("bigdata.zrootname","testZroot"); + + // logging configuration (value is a URI!) + log4j="file:"+System.getProperty("log4j.path", + ConfigMath.getAbsolutePath(new File("bigdata/src/resources/logging")) + )+"/log4j.properties"; + + private static localIpAddr = + NicUtil.getIpAddress("default.nic", "default", true); +} + +com.bigdata.jini.start.config.ServiceConfiguration { + defaultJavaArgs = new String[]{ + "-server", + "-ea", + "-Djava.security.policy="+ConfigMath.getAbsolutePath(new File("policy.all")) + }; + + serviceDir = ConfigMath.getAbsoluteFile(new File(bigdata.fedname)); + log4j = bigdata.log4j; +} + /** * Zookeeper server configuration. */ @@ -33,8 +58,6 @@ private static appHome = System.getProperty("app.home", ConfigMath.getAbsolutePath(new File(".")) ); - private static localIpAddr = - NicUtil.getIpAddress("default.nic", "default", true); /* A comma delimited list of the known zookeeper servers together * with their assigned "myid". @@ -60,7 +83,7 @@ * syntax is obvious, if ugly. */ // standalone - servers = ConfigUtil.concat( new String[] { "1=", localIpAddr, ":2888:3888" } ); + servers = ConfigUtil.concat( new String[] { "1=", bigdata.localIpAddr, ":2888:3888" } ); // ensemble //servers="1=zoo1:2888:3888, 2=zoo2:2888:3888, 3=zoo3:2888:3888"; @@ -98,8 +121,16 @@ * located since we change to the service directory before starting * the service. */ - log4j="file:"+System.getProperty("log4j.path", - ConfigMath.getAbsolutePath(new File("bigdata/src/resources/logging")) - )+"/log4j.properties"; + log4j=bigdata.log4j; +} -} +com.bigdata.quorum.ServiceImpl { + serviceDir = org.apache.zookeeper.server.quorum.QuorumPeerMain.serviceDir; + clientPort=org.apache.zookeeper.server.quorum.QuorumPeerMain.clientPort; + tickTime=org.apache.zookeeper.server.quorum.QuorumPeerMain.tickTime; + initLimit=org.apache.zookeeper.server.quorum.QuorumPeerMain.initLimit; + syncLimit=org.apache.zookeeper.server.quorum.QuorumPeerMain.syncLimit; + servers=org.apache.zookeeper.server.quorum.QuorumPeerMain.servers; + + log4j=bigdata.log4j; +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |