Return-Path: Delivered-To: apmail-hadoop-zookeeper-commits-archive@minotaur.apache.org Received: (qmail 53807 invoked from network); 5 Jun 2009 04:44:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 5 Jun 2009 04:44:40 -0000 Received: (qmail 1305 invoked by uid 500); 5 Jun 2009 04:44:53 -0000 Delivered-To: apmail-hadoop-zookeeper-commits-archive@hadoop.apache.org Received: (qmail 1278 invoked by uid 500); 5 Jun 2009 04:44:52 -0000 Mailing-List: contact zookeeper-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: zookeeper-dev@ Delivered-To: mailing list zookeeper-commits@hadoop.apache.org Received: (qmail 1268 invoked by uid 99); 5 Jun 2009 04:44:52 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Jun 2009 04:44:52 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Jun 2009 04:44:44 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 0F3E12388872; Fri, 5 Jun 2009 04:44:24 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r781914 - in /hadoop/zookeeper/trunk: ./ src/java/main/org/apache/zookeeper/server/ src/java/main/org/apache/zookeeper/server/quorum/ Date: Fri, 05 Jun 2009 04:44:23 -0000 To: zookeeper-commits@hadoop.apache.org From: breed@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090605044424.0F3E12388872@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: breed Date: Fri Jun 5 04:44:23 2009 New Revision: 781914 URL: http://svn.apache.org/viewvc?rev=781914&view=rev Log: ZOOKEEPER-431. Expose methods to ease ZK integration Modified: hadoop/zookeeper/trunk/CHANGES.txt hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerConfig.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMain.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerMain.java Modified: hadoop/zookeeper/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=781914&r1=781913&r2=781914&view=diff ============================================================================== --- hadoop/zookeeper/trunk/CHANGES.txt (original) +++ hadoop/zookeeper/trunk/CHANGES.txt Fri Jun 5 04:44:23 2009 @@ -185,6 +185,8 @@ ZOOKEEPER-383. Asynchronous version of createLedger(). (flavio via mahadev) ZOOKEEPER-358. Throw exception when ledger does not exist. (flavio via breed) + + ZOOKEEPER-431. Expose methods to ease ZK integration. (Jean-Daniel via breed) NEW FEATURES: Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerConfig.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerConfig.java?rev=781914&r1=781913&r2=781914&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerConfig.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerConfig.java Fri Jun 5 04:44:23 2009 @@ -67,10 +67,18 @@ // let qpconfig parse the file and then pull the stuff we are // interested in - clientPort = config.getClientPort(); - dataDir = config.getDataDir(); - dataLogDir = config.getDataLogDir(); - tickTime = config.getTickTime(); + readFrom(config); + } + + /** + * Read attributes from a QuorumPeerConfig. + * @param config + */ + public void readFrom(QuorumPeerConfig config) { + clientPort = config.getClientPort(); + dataDir = config.getDataDir(); + dataLogDir = config.getDataLogDir(); + tickTime = config.getTickTime(); } public int getClientPort() { return clientPort; } Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMain.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMain.java?rev=781914&r1=781913&r2=781914&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMain.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMain.java Fri Jun 5 04:44:23 2009 @@ -82,6 +82,15 @@ config.parse(args); } + runFromConfig(config); + } + + /** + * Run from a ServerConfig. + * @param config ServerConfig to use. + * @throws IOException + */ + public void runFromConfig(ServerConfig config) throws IOException { LOG.info("Starting server"); try { // Note that this thread isn't going to be doing anything else, Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java?rev=781914&r1=781913&r2=781914&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java Fri Jun 5 04:44:23 2009 @@ -100,7 +100,13 @@ } } - protected void parseProperties(Properties zkProp) + /** + * Parse config from a Properties. + * @param zkProp Properties to parse from. + * @throws IOException + * @throws ConfigException + */ + public void parseProperties(Properties zkProp) throws IOException, ConfigException { for (Entry entry : zkProp.entrySet()) { String key = entry.getKey().toString().trim(); @@ -263,4 +269,6 @@ } public long getServerId() { return serverId; } + + public boolean isDistributed() { return servers.size() > 1; } } Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerMain.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerMain.java?rev=781914&r1=781913&r2=781914&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerMain.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerMain.java Fri Jun 5 04:44:23 2009 @@ -99,37 +99,7 @@ } if (args.length == 1 && config.servers.size() > 0) { - try { - ManagedUtil.registerLog4jMBeans(); - } catch (JMException e) { - LOG.warn("Unable to register log4j JMX control", e); - } - - LOG.info("Starting quorum peer"); - try { - NIOServerCnxn.Factory cnxnFactory = - new NIOServerCnxn.Factory(config.getClientPort()); - - quorumPeer = new QuorumPeer(); - quorumPeer.setClientPort(config.getClientPort()); - quorumPeer.setTxnFactory(new FileTxnSnapLog( - new File(config.getDataLogDir()), - new File(config.getDataDir()))); - quorumPeer.setQuorumPeers(config.getServers()); - quorumPeer.setElectionType(config.getElectionAlg()); - quorumPeer.setMyid(config.getServerId()); - quorumPeer.setTickTime(config.getTickTime()); - quorumPeer.setInitLimit(config.getInitLimit()); - quorumPeer.setSyncLimit(config.getSyncLimit()); - quorumPeer.setQuorumVerifier(config.getQuorumVerifier()); - quorumPeer.setCnxnFactory(cnxnFactory); - - quorumPeer.start(); - quorumPeer.join(); - } catch (InterruptedException e) { - // warn, but generally this is ok - LOG.warn("Quorum Peer interrupted", e); - } + runFromConfig(config); } else { LOG.warn("Either no config or no quorum defined in config, running " + " in standalone mode"); @@ -138,6 +108,40 @@ } } + public void runFromConfig(QuorumPeerConfig config) throws IOException { + try { + ManagedUtil.registerLog4jMBeans(); + } catch (JMException e) { + LOG.warn("Unable to register log4j JMX control", e); + } + + LOG.info("Starting quorum peer"); + try { + NIOServerCnxn.Factory cnxnFactory = + new NIOServerCnxn.Factory(config.getClientPort()); + + quorumPeer = new QuorumPeer(); + quorumPeer.setClientPort(config.getClientPort()); + quorumPeer.setTxnFactory(new FileTxnSnapLog( + new File(config.getDataLogDir()), + new File(config.getDataDir()))); + quorumPeer.setQuorumPeers(config.getServers()); + quorumPeer.setElectionType(config.getElectionAlg()); + quorumPeer.setMyid(config.getServerId()); + quorumPeer.setTickTime(config.getTickTime()); + quorumPeer.setInitLimit(config.getInitLimit()); + quorumPeer.setSyncLimit(config.getSyncLimit()); + quorumPeer.setQuorumVerifier(config.getQuorumVerifier()); + quorumPeer.setCnxnFactory(cnxnFactory); + + quorumPeer.start(); + quorumPeer.join(); + } catch (InterruptedException e) { + // warn, but generally this is ok + LOG.warn("Quorum Peer interrupted", e); + } + } + protected void shutdown() { quorumPeer.shutdown(); }