zookeeper-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From an...@apache.org
Subject [28/45] zookeeper git commit: ZOOKEEPER-3030: MAVEN MIGRATION - Step 1.3 - move contrib directories
Date Mon, 06 Aug 2018 12:14:37 GMT
http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zkpython/src/test/create_test.py
----------------------------------------------------------------------
diff --git a/src/contrib/zkpython/src/test/create_test.py b/src/contrib/zkpython/src/test/create_test.py
deleted file mode 100755
index 8ab80f9..0000000
--- a/src/contrib/zkpython/src/test/create_test.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/python
-#
-#  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.
-
-import zookeeper, zktestbase, unittest, threading
-
-ZOO_OPEN_ACL_UNSAFE = {"perms":0x1f, "scheme":"world", "id" :"anyone"}
-
-class CreationTest(zktestbase.TestBase):
-    """Test whether we can create znodes"""
-    # to do: startup and teardown via scripts?
-    def setUp(self):
-        zktestbase.TestBase.setUp(self)
-        try:
-            zookeeper.delete(self.handle, "/zk-python-createtest")
-            zookeeper.delete(self.handle, "/zk-python-acreatetest")
-        except:
-            pass
-
-    def test_sync_create(self):
-        self.assertEqual(self.connected, True)
-        ret = zookeeper.create(self.handle, "/zk-python-createtest", "nodecontents", [ZOO_OPEN_ACL_UNSAFE], zookeeper.EPHEMERAL)
-        self.assertEqual(ret, "/zk-python-createtest")
-        self.assertRaises(zookeeper.NoChildrenForEphemeralsException,
-                          zookeeper.create,
-                          self.handle,
-                          "/zk-python-createtest/invalid-child",
-                          "",
-                          [ZOO_OPEN_ACL_UNSAFE],
-                          zookeeper.EPHEMERAL)
-
-    def test_sync_create_existing(self):
-        self.assertEqual(self.connected, True)
-        ret = zookeeper.create(self.handle, "/zk-python-createtest-existing", "nodecontents", [ZOO_OPEN_ACL_UNSAFE], zookeeper.EPHEMERAL)
-        self.assertEqual(ret, "/zk-python-createtest-existing")
-
-        self.assertRaises(zookeeper.NodeExistsException,
-                          zookeeper.create,
-                          self.handle,
-                          "/zk-python-createtest-existing",
-                          "nodecontents",
-                          [ZOO_OPEN_ACL_UNSAFE],
-                          zookeeper.EPHEMERAL)
-
-
-    def test_exception_paths(self):
-        """
-        Make sure common exceptions due to API misuse are correctly propogated
-        """
-        self.assertRaises(zookeeper.BadArgumentsException,
-                          zookeeper.create,
-                          self.handle,
-                          "/zk-python-badargs-test",
-                          "",
-                          [ZOO_OPEN_ACL_UNSAFE],
-                          -1)
-        self.assertRaises(zookeeper.InvalidACLException,
-                          zookeeper.create,
-                          self.handle,
-                          "/zk-python-invalidacl-test",
-                          "",
-                          ZOO_OPEN_ACL_UNSAFE) # Error - not a list
-
-
-    def test_async_create(self):
-        self.cv = threading.Condition()
-        def callback(handle, rc, value):
-            self.cv.acquire()
-            self.callback_flag = True
-            self.rc = rc
-            self.cv.notify()
-            self.cv.release()
-
-        self.assertEqual(self.connected, True, "Not connected!")
-        self.cv.acquire()
-
-        ret = zookeeper.acreate(self.handle, "/zk-python-acreatetest", "nodecontents",
-                                [ZOO_OPEN_ACL_UNSAFE], zookeeper.EPHEMERAL,
-                                callback )
-        self.assertEqual(ret, zookeeper.OK, "acreate failed")
-        while not self.callback_flag:
-            self.cv.wait(15)
-        self.cv.release()
-
-        self.assertEqual(self.callback_flag, True, "acreate timed out")
-        self.assertEqual(self.rc, zookeeper.OK)
-
-
-if __name__ == '__main__':
-    unittest.main()

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zkpython/src/test/delete_test.py
----------------------------------------------------------------------
diff --git a/src/contrib/zkpython/src/test/delete_test.py b/src/contrib/zkpython/src/test/delete_test.py
deleted file mode 100755
index 913b6a9..0000000
--- a/src/contrib/zkpython/src/test/delete_test.py
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/python
-#
-#  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.
-
-import zookeeper, zktestbase, unittest, threading
-
-class DeletionTest(zktestbase.TestBase):
-    """Test whether we can delete znodes"""
-
-    def test_sync_delete(self):
-        ZOO_OPEN_ACL_UNSAFE = {"perms":0x1f, "scheme":"world", "id" :"anyone"}
-        self.assertEqual(self.connected, True)
-        ret = zookeeper.create(self.handle, "/zk-python-deletetest", "nodecontents", [ZOO_OPEN_ACL_UNSAFE], zookeeper.EPHEMERAL)
-        self.assertEqual(ret, "/zk-python-deletetest")
-        ret = zookeeper.delete(self.handle,"/zk-python-deletetest")
-        self.assertEqual(ret, zookeeper.OK)
-        children = zookeeper.get_children(self.handle, "/")
-        self.assertEqual(False, "zk-python-deletetest" in children)
-
-        # test exception
-        self.assertRaises(zookeeper.NoNodeException,
-                          zookeeper.delete,
-                          self.handle,
-                          "/zk-python-deletetest")
-
-    def test_async_delete(self):
-        ZOO_OPEN_ACL_UNSAFE = {"perms":0x1f, "scheme":"world", "id" :"anyone"}
-        self.assertEqual(self.connected, True)
-        ret = zookeeper.create(self.handle, "/zk-python-adeletetest", "nodecontents", [ZOO_OPEN_ACL_UNSAFE], zookeeper.EPHEMERAL)
-        self.assertEqual(ret, "/zk-python-adeletetest")
-
-        self.cv = threading.Condition()
-        self.callback_flag = False
-        self.rc = -1
-        def callback(handle, rc):
-            self.cv.acquire()
-            self.callback_flag = True
-            self.cv.notify()
-            self.rc = rc # don't assert this here, as if the assertion fails, the test will block
-            self.cv.release()
-
-        self.cv.acquire()
-        ret = zookeeper.adelete(self.handle,"/zk-python-adeletetest",-1,callback)
-        self.assertEqual(ret, zookeeper.OK, "adelete failed")
-        while not self.callback_flag:
-            self.cv.wait(15)
-        self.cv.release()
-
-        self.assertEqual(self.callback_flag, True, "adelete timed out")
-        self.assertEqual(self.rc, zookeeper.OK)
-
-
-if __name__ == '__main__':
-    unittest.main()

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zkpython/src/test/exists_test.py
----------------------------------------------------------------------
diff --git a/src/contrib/zkpython/src/test/exists_test.py b/src/contrib/zkpython/src/test/exists_test.py
deleted file mode 100755
index ddc6ef3..0000000
--- a/src/contrib/zkpython/src/test/exists_test.py
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/python
-#
-#  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.
-
-import zookeeper, zktestbase, unittest, threading
-
-ZOO_OPEN_ACL_UNSAFE = {"perms":0x1f, "scheme":"world", "id" :"anyone"}
-class ExistsTest(zktestbase.TestBase):
-    def setUp( self ):
-        zktestbase.TestBase.setUp(self)
-        try:
-            zookeeper.create(self.handle, "/zk-python-existstest","existstest", [ZOO_OPEN_ACL_UNSAFE],zookeeper.EPHEMERAL)
-            zookeeper.create(self.handle, "/zk-python-aexiststest","existstest",[ZOO_OPEN_ACL_UNSAFE],zookeeper.EPHEMERAL)
-        except:
-            pass
-
-    def test_sync_exists(self):
-        self.assertEqual(self.connected, True)
-        ret = zookeeper.exists(self.handle, "/zk-python-existstest", None)
-        self.assertNotEqual(ret, None, "/zk-python-existstest does not exist (possibly means creation failure)")
-
-    def test_sync_nexists(self):
-        self.assertEqual(None, zookeeper.exists(self.handle, "/i-dont-exist", None))
-
-
-    def test_async_exists(self):
-        self.cv = threading.Condition()
-        def callback(handle, rc, stat):
-            self.cv.acquire()
-            self.callback_flag = True
-            self.cv.notify()
-            self.cv.release()
-            self.rc = rc
-
-        self.assertEqual(self.connected, True)
-
-        self.cv.acquire()
-        ret = zookeeper.aexists(self.handle, "/zk-python-aexiststest", None,
-                                callback )
-        self.assertEqual(ret, zookeeper.OK)
-        while not self.callback_flag:
-            self.cv.wait(15)
-        self.cv.release()
-
-        self.assertEqual(self.callback_flag, True, "aexists timed out")
-        self.assertEqual(self.rc, zookeeper.OK, "Return code not ok:" + zookeeper.zerror(self.rc))
-
-
-if __name__ == '__main__':
-    unittest.main()

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zkpython/src/test/get_set_test.py
----------------------------------------------------------------------
diff --git a/src/contrib/zkpython/src/test/get_set_test.py b/src/contrib/zkpython/src/test/get_set_test.py
deleted file mode 100755
index b77b3b2..0000000
--- a/src/contrib/zkpython/src/test/get_set_test.py
+++ /dev/null
@@ -1,211 +0,0 @@
-#!/usr/bin/python
-#
-#  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.
-
-import zookeeper, zktestbase, unittest, threading, sys
-if sys.version_info < (3,):
-	range = xrange
-
-ZOO_OPEN_ACL_UNSAFE = {"perms":0x1f, "scheme":"world", "id" :"anyone"}
-
-class GetSetTest(zktestbase.TestBase):
-    def setUp( self ):
-        zktestbase.TestBase.setUp(self)
-        try:
-            zookeeper.create(self.handle, "/zk-python-getsettest", "on",[ZOO_OPEN_ACL_UNSAFE], zookeeper.EPHEMERAL)
-            zookeeper.create(self.handle, "/zk-python-agetsettest",
-                             "on",[ZOO_OPEN_ACL_UNSAFE], zookeeper.EPHEMERAL)
-        except:
-            pass
-
-    def test_empty_node(self):
-        """
-        Test for a bug when instead of empty string we can get
-        random data from buffer malloc'ed to hold node contents.
-        See ZOOKEEPER-1906 for details
-        """
-        NODE_PATH = "/zk-python-test-empty-node"
-        self.ensureDeleted(NODE_PATH)
-        zookeeper.create(self.handle, NODE_PATH, "",
-                         [{"perms":0x1f, "scheme":"world", "id" :"anyone"}])
-        (data,stat) = zookeeper.get(self.handle, NODE_PATH, None)
-        self.assertEqual(data, "", "Data is not empty as expected: " + data)
-
-    def test_sync_getset(self):
-        self.assertEqual(self.connected, True, "Not connected!")
-        (data,stat) = zookeeper.get(self.handle, "/zk-python-getsettest", None)
-        self.assertEqual(data, "on", "Data is not 'on' as expected: " + data)
-        ret = zookeeper.set(self.handle, "/zk-python-getsettest",
-                            "off", stat["version"])
-        (data,stat) = zookeeper.get(self.handle, "/zk-python-getsettest", None)
-        self.assertEqual(data, "off", "Data is not 'off' as expected: " + data)
-        self.assertRaises(zookeeper.BadVersionException,
-                          zookeeper.set,
-                          self.handle,
-                          "/zk-python-getsettest",
-                          "test",
-                          stat["version"]+1)
-        stat2 = zookeeper.set2(self.handle, "/zk-python-getsettest",
-                               "set2", stat["version"])
-        self.assertNotEqual(stat2, None, "set2 call failed, return should not be None")
-        self.assertEqual(stat2["numChildren"], 0,
-                         "set2 call failed, numChildren not 0 in set2 call")
-        (data,stat) = zookeeper.get(self.handle, "/zk-python-getsettest", None)
-        self.assertEqual(data, "set2", "Data is not 'set2' as expected: " + data)
-
-    def test_stat_deleted_node(self):
-        """
-        Test for a bug that surfaced when trying to build a
-        stat object from a non-existant node.
-
-        """
-        self.ensureDeleted("/zk-python-test-deleteme")
-        self.assertRaises(zookeeper.NoNodeException,
-                          zookeeper.get,
-                          self.handle,
-                          "/zk-python-test-deleteme")
-        self.cv = threading.Condition()
-        def callback(handle, rc, value, stat):
-            self.cv.acquire()
-            self.stat = stat
-            self.rc = rc
-            self.value = value
-            self.callback_flag = True
-            self.cv.notify()
-            self.cv.release()
-        self.cv.acquire()
-        zookeeper.aget(self.handle, "/zk-python-test-deleteme", None, callback)
-        self.cv.wait(15)
-        self.assertEqual(self.callback_flag, True, "aget timed out!")
-        self.assertEqual(self.stat, None, "Stat should be none!")
-        self.assertEqual(self.value, None, "Value should be none!")
-
-    def test_sync_get_large_datanode(self):
-        """
-        Test that we can retrieve datanode sizes up to
-        1Mb with default parameters (depends on ZooKeeper server).
-        """
-
-        data = ''.join(["A" for x in range(1024*1023)])
-        self.ensureDeleted("/zk-python-test-large-datanode")
-        zookeeper.create(self.handle, "/zk-python-test-large-datanode", data,
-                         [{"perms":0x1f, "scheme":"world", "id" :"anyone"}])
-        (ret,stat) = zookeeper.get(self.handle, "/zk-python-test-large-datanode")
-        self.assertEqual(len(ret), 1024*1023,
-                         "Should have got 1Mb returned, instead got %s" % len(ret))
-        (ret,stat) = zookeeper.get(self.handle, "/zk-python-test-large-datanode",None,500)
-        self.assertEqual(len(ret), 500,
-                         "Should have got 500 bytes returned, instead got %s" % len(ret))
-
-
-
-    def test_async_getset(self):
-        self.cv = threading.Condition()
-        def get_callback(handle, rc, value, stat):
-            self.cv.acquire()
-            self.callback_flag = True
-            self.rc = rc
-            self.value = (value,stat)
-            self.cv.notify()
-            self.cv.release()
-
-        def set_callback(handle, rc, stat):
-            self.cv.acquire()
-            self.callback_flag = True
-            self.rc = rc
-            self.value = stat
-            self.cv.notify()
-            self.cv.release()
-
-        self.assertEqual(self.connected, True, "Not connected!")
-
-        self.cv.acquire()
-        self.callback_flag = False
-        ret = zookeeper.aset(self.handle, "/zk-python-agetsettest", "off", -1, set_callback)
-        self.assertEqual(ret, zookeeper.OK, "aset failed")
-        while not self.callback_flag:
-            self.cv.wait(15)
-        self.cv.release()
-        self.assertEqual(self.callback_flag, True, "aset timed out")
-
-        self.cv.acquire()
-        self.callback_flag = False
-        ret = zookeeper.aget(self.handle, "/zk-python-agetsettest", None, get_callback)
-        self.assertEqual(ret, zookeeper.OK, "aget failed")
-        self.cv.wait(15)
-        self.cv.release()
-        self.assertEqual(self.callback_flag, True, "aget timed out")
-        self.assertEqual(self.value[0], "off", "Data is not 'off' as expected: " + self.value[0])
-
-    def test_sync_getchildren(self):
-        self.ensureCreated("/zk-python-getchildrentest", flags=0)
-        self.ensureCreated("/zk-python-getchildrentest/child")
-        children = zookeeper.get_children(self.handle, "/zk-python-getchildrentest")
-        self.assertEqual(len(children), 1, "Expected to find 1 child, got " + str(len(children)))
-
-    def test_async_getchildren(self):
-        self.ensureCreated("/zk-python-getchildrentest", flags=0)
-        self.ensureCreated("/zk-python-getchildrentest/child")
-
-        def gc_callback(handle, rc, children):
-            self.cv.acquire()
-            self.rc = rc
-            self.children = children
-            self.callback_flag = True
-            self.cv.notify()
-            self.cv.release()
-
-        self.cv.acquire()
-        self.callback_flag = False
-        zookeeper.aget_children(self.handle, "/zk-python-getchildrentest", None, gc_callback)
-        self.cv.wait(15)
-        self.assertEqual(self.callback_flag, True, "aget_children timed out")
-        self.assertEqual(self.rc, zookeeper.OK, "Return code for aget_children was not OK - %s" % zookeeper.zerror(self.rc))
-        self.assertEqual(len(self.children), 1, "Expected to find 1 child, got " + str(len(self.children)))
-
-
-    def test_async_getchildren_with_watcher(self):
-        self.ensureCreated("/zk-python-getchildrentest", flags=0)
-        self.ensureCreated("/zk-python-getchildrentest/child")
-
-        watched = []
-
-        def watcher(*args):
-            self.cv.acquire()
-            watched.append(args)
-            self.cv.notify()
-            self.cv.release()
-
-        def children_callback(*args):
-            self.cv.acquire()
-            self.cv.notify()
-            self.cv.release()
-
-        zookeeper.aget_children(
-            self.handle, "/zk-python-getchildrentest", watcher, children_callback)
-
-        self.cv.acquire()
-        self.cv.wait()
-        self.cv.release()
-
-        self.cv.acquire()
-        self.ensureCreated("/zk-python-getchildrentest/child2")
-        self.cv.wait(15)
-        self.assertTrue(watched)
-
-if __name__ == '__main__':
-    unittest.main()

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zkpython/src/test/run_tests.sh
----------------------------------------------------------------------
diff --git a/src/contrib/zkpython/src/test/run_tests.sh b/src/contrib/zkpython/src/test/run_tests.sh
deleted file mode 100755
index 18d9240..0000000
--- a/src/contrib/zkpython/src/test/run_tests.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-#
-#  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.
-
-# Usage: run_tests.sh testdir [logdir]
-# logdir is optional, defaults to cwd
-
-# get the number of command-line arguments given
-ARGC=$#
-
-# check to make sure enough arguments were given or exit
-if [ $ARGC -lt 2 ]; then
-    export ZKPY_LOG_DIR="."
-else
-    export ZKPY_LOG_DIR=$2
-fi
-
-# Find the build directory containing zookeeper.so
-SO_PATH=`find ../../../build/ -name "zookeeper.so" | head -1`
-PYTHONPATH=`dirname $SO_PATH`
-LIB_PATH=../../c/.libs/:../../../build/test/test-cppunit/.libs
-for test in `ls $1/*_test.py`; 
-do
-    echo "Running $test"
-    LD_LIBRARY_PATH=$LIB_PATH:$LD_LIBRARY_PATH DYLD_LIBRARY_PATH=$LIB_PATH:$DYLD_LIBRARY_PATH PYTHONPATH=$PYTHONPATH python $test
-done

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zkpython/src/test/zkServer.sh
----------------------------------------------------------------------
diff --git a/src/contrib/zkpython/src/test/zkServer.sh b/src/contrib/zkpython/src/test/zkServer.sh
deleted file mode 100755
index 51d508f..0000000
--- a/src/contrib/zkpython/src/test/zkServer.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/bash
-#
-# 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.
-
-if [ "x$1" == "x" ]
-then
-    echo "USAGE: $0 startClean|start|stop hostPorts"
-    exit 2
-fi
-
-if [ "x$1" == "xstartClean" ]
-then
-    if [ "x${base_dir}" == "x" ]
-    then
-    rm -rf /tmp/zkdata
-    else
-    rm -rf ${base_dir}/build/tmp
-    fi
-fi
-
-if [ "x${base_dir}" == "x" ]	
-then
-zk_base="../../../"
-else
-zk_base="${base_dir}"
-fi
-
-CLASSPATH="$CLASSPATH:${zk_base}/build/classes"
-CLASSPATH="$CLASSPATH:${zk_base}/conf"
-
-for i in "${zk_base}"/build/lib/*.jar
-do
-    CLASSPATH="$CLASSPATH:$i"
-done
-
-for i in "${zk_base}"/src/java/lib/*.jar
-do
-    CLASSPATH="$CLASSPATH:$i"
-done
-
-# Make sure nothing is left over from before
-#fuser -skn tcp 22182/tcp
-
-case $1 in
-start|startClean)
-    if [ "x${base_dir}" == "x" ]
-        then
-        mkdir -p /tmp/zkdata
-        java -cp $CLASSPATH org.apache.zookeeper.server.ZooKeeperServerMain 22182 /tmp/zkdata &> /tmp/zk.log &
-        else
-        mkdir -p ${base_dir}/build/tmp/zkdata
-        java -cp $CLASSPATH org.apache.zookeeper.server.ZooKeeperServerMain 22182 ${base_dir}/build/tmp/zkdata &> ${base_dir}/build/tmp/zk.log &
-    fi
-        sleep 5
-    ;;
-stop)
-    # Already killed above
-    ;;
-*)
-    echo "Unknown command " + $1
-    exit 2
-esac
-

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zkpython/src/test/zktestbase.py
----------------------------------------------------------------------
diff --git a/src/contrib/zkpython/src/test/zktestbase.py b/src/contrib/zkpython/src/test/zktestbase.py
deleted file mode 100755
index 8229418..0000000
--- a/src/contrib/zkpython/src/test/zktestbase.py
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/python
-#
-#  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.
-
-import os
-import unittest, threading, zookeeper
-ZOO_OPEN_ACL_UNSAFE = {"perms":0x1f, "scheme":"world", "id" :"anyone"}
-
-class TestBase(unittest.TestCase):
-    SERVER_PORT = 22182
-    
-    def __init__(self,methodName='runTest'):
-        unittest.TestCase.__init__(self,methodName)
-        self.host = "localhost:%d" % self.SERVER_PORT
-        self.connected = False
-        self.handle = -1
-        logdir = os.environ.get("ZKPY_LOG_DIR")
-        logfile = os.path.join(logdir, self.__class__.__name__ + ".log")
-        try:
-            f = open(logfile,"w")
-            zookeeper.set_log_stream(f)
-        except IOError:
-            print("Couldn't open " + logfile + " for writing")
-
-
-    def setUp(self):
-        self.callback_flag = False
-        self.cv = threading.Condition()
-        self.connected = False
-        def connection_watcher(handle, type, state, path):
-            self.cv.acquire()
-            self.connected = True
-            self.cv.notify()
-            self.cv.release()
-
-        self.cv.acquire()
-        self.handle = zookeeper.init(self.host, connection_watcher)
-        self.cv.wait(15.0)
-        self.cv.release()
-
-        if not self.connected:
-            raise Exception("Couldn't connect to host -", self.host)
-
-    def newConnection(self):
-        cv = threading.Condition()
-        self.pending_connection = False
-        def connection_watcher(handle, type, state, path):
-            cv.acquire()
-            self.pending_connection = True
-            cv.notify()
-            cv.release()
-
-        cv.acquire()
-        handle = zookeeper.init(self.host, connection_watcher)
-        cv.wait(15.0)
-        cv.release()
-
-        if not self.pending_connection:
-            raise Exception("Couldn't connect to host -", self.host)
-        return handle
-
-    def ensureDeleted(self,path):
-        self.assertEqual(zookeeper.CONNECTED_STATE, zookeeper.state(self.handle), "Not connected!")
-        try:
-            self.assertEqual(zookeeper.OK, zookeeper.delete(self.handle, path))
-        except zookeeper.NoNodeException:
-            pass
-
-    def ensureCreated(self,path,data="",flags=zookeeper.EPHEMERAL):
-        """
-        It's possible not to get the flags you want here if the node already exists
-        """
-        self.assertEqual(zookeeper.CONNECTED_STATE, zookeeper.state(self.handle), "Not connected!")
-        try:
-            self.assertEqual(path, zookeeper.create(self.handle, path, data, [ZOO_OPEN_ACL_UNSAFE], flags))
-        except zookeeper.NodeExistsException:
-            pass
-
-    def tearDown(self):
-        if self.connected:
-            zookeeper.close(self.handle)
-
-    def all(self, iterable):
-        for element in iterable:
-            if not element:
-                return False
-        return True

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zktreeutil/Makefile.am
----------------------------------------------------------------------
diff --git a/src/contrib/zktreeutil/Makefile.am b/src/contrib/zktreeutil/Makefile.am
deleted file mode 100644
index 36da1a5..0000000
--- a/src/contrib/zktreeutil/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-SUBDIRS = src
-

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zktreeutil/README.txt
----------------------------------------------------------------------
diff --git a/src/contrib/zktreeutil/README.txt b/src/contrib/zktreeutil/README.txt
deleted file mode 100644
index 43b06fa..0000000
--- a/src/contrib/zktreeutil/README.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-==========================================
-zktreeutil - Zookeeper Tree Data Utility
-Author: Anirban Roy
-Organization: Yahoo Inc.
-==========================================
-
-zktreeutil program is intended to manage and manipulate zk-tree data quickly, effi-
-ciently and with ease. The utility operates on free-form ZK-tree and hence can be used
-for any cluster managed by Zookeeper. Here are the basic functionalities -
-
-EXPORT: The whole/partial ZK-tree is exported into a XML file. This helps in
-capturing a current snapshot of the data for backup/analysis. For a subtree
-export, one need to specify the path to the ZK-subtree with proper option.
-
-IMPORT: The ZK-tree can be imported from XML into ZK cluster. This helps in priming
-the new ZK cluster with static configuration. The import can be non-intrusive by
-making only the additions in the existing data. The import of subtree is also
-possible by optionally providing the path to the ZK-subtree.
-
-DIFF: Creates a diff between live ZK data vs data saved in XML file. Diff can ignore
-some ZK-tree branches (possibly dynamic data) on reading the optional ignore flag
-from XML file. Diffing on a ZK-subtree achieved by providing path to ZK-subtree with
-diff command.
-
-UPDATE: Make the incremental changes into the live ZK-tree from saved XML, essentia-
-lly after running the diff.
-
-DUMP: Dumps the ZK-tree on the standard output device reading either from live ZK
-server or XML file. Like export, ZK-subtree can be dumped with optionaly
-providing the path to the ZK-subtree, and till a certain depth of the (sub)tree.
-
-The exported ZK data into XML file can be shortened by only keeping the static ZK
-nodes which are required to prime a cluster. The dynamic zk nodes (created on-the-
-fly) can be ignored by setting a 'ignore' attribute at the root node of the dynamic
-subtree (see tests/zk_sample.xml), possibly deleting all inner ZK nodes under that.
-Once ignored, the whole subtree is ignored during DIFF, UPDATE and WRITE.
-
-Pre-requisites
---------------
-1. Linux system with 2.6.X kernel.
-2. Zookeeper C client library (locally built at ../../c/.libs) >= 3.X.X
-3. Development build libraries (rpm packages):
-  a. boost-devel >= 1.32.0
-  b. libxml2-devel >= 2.7.3
-  c. log4cxx0100-devel >= 0.10.0
-
-Build instructions
-------------------
-1. cd into this directory
-2. autoreconf -if
-3. ./configure
-4. make
-5. 'zktreeutil' binary created under src directory
-
-Limitations
------------
-Current version works with text data only, binary data will be supported in future
-versions.
-
-Testing  and usage of zktreeutil
---------------------------------
-1.  Run Zookeeper server locally on port 2181
-2.  export LD_LIBRARY_PATH=../../c/.libs/:/usr/local/lib/
-3.  ./src/zktreeutil --help # show help
-4.  ./src/zktreeutil --zookeeper=localhost:2181 --import --xmlfile=tests/zk_sample.xml 2>/dev/null                 # import sample ZK tree
-5.  ./src/zktreeutil --zookeeper=localhost:2181 --dump --path=/myapp/version-1.0 2>/dev/null                         # dump Zk subtree 
-5.  ./src/zktreeutil --zookeeper=localhost:2181 --dump --depth=3 2>/dev/null                                                 # dump Zk tree till certain depth
-6.  ./src/zktreeutil --xmlfile=zk_sample.xml -D 2>/dev/null                                                                     # dump the xml data
-7.  Change zk_sample.xml with adding/deleting/chaging some nodes 
-8.  ./src/zktreeutil -z localhost:2181 -F -x zk_sample.xml -p /myapp/version-1.0/configuration 2>/dev/null          # take a diff of changes
-9.  ./src/zktreeutil -z localhost:2181 -E 2>/dev/null > zk_sample2.xml                                                         # export the mofied ZK tree
-10. ./src/zktreeutil -z localhost:2181 -U -x zk_sample.xml -p /myapp/version-1.0/distributions 2>/dev/null        # update with incr. changes
-11. ./src/zktreeutil --zookeeper=localhost:2181 --import --force --xmlfile=zk_sample2.xml 2>/dev/null             # re-prime the ZK tree
-

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zktreeutil/build.xml
----------------------------------------------------------------------
diff --git a/src/contrib/zktreeutil/build.xml b/src/contrib/zktreeutil/build.xml
deleted file mode 100644
index 809d134..0000000
--- a/src/contrib/zktreeutil/build.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-   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.
--->
-
-<project name="zktreeutil" default="compile">
-  <import file="../build-contrib.xml"/>
-
-  <target name="init" depends="check-contrib" unless="skip.contrib">
-    <echo message="contrib: ${name}"/>
-    <mkdir dir="${build.dir}"/>
-    <antcall target="init-contrib"/>
-  </target>
-
-  <target name="compile" depends="init" unless="skip.contrib">
-    <echo message="contrib: ${name}"/>
-
-    <mkdir dir="${build.dir}"/>
-    <copy todir="${build.dir}">
-      <fileset dir="${basedir}">
-        <exclude name="**/VERSION"/>
-      </fileset>
-    </copy>
-    <exec executable="echo" output="${build.dir}/VERSION">
-      <arg line="${version}" />
-    </exec>
-  </target>
-
-    <target name="jar" depends="compile" >
-        <echo message="No jar target defined for this package"/>
-    </target>
-
-     <target name="test">
-        <echo message="No test target defined for this package" />
-    </target>
-
-
-  <target name="package" depends="compile" unless="skip.contrib">
-    <echo message="contrib: ${name}"/>
-
-    <mkdir dir="${dist.dir}/contrib/${name}"/>
-    <copy todir="${dist.dir}/contrib/${name}">
-      <fileset dir="${build.dir}"/>
-    </copy>
-  </target>
-
-</project>

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zktreeutil/configure.ac
----------------------------------------------------------------------
diff --git a/src/contrib/zktreeutil/configure.ac b/src/contrib/zktreeutil/configure.ac
deleted file mode 100644
index b4a82a7..0000000
--- a/src/contrib/zktreeutil/configure.ac
+++ /dev/null
@@ -1,66 +0,0 @@
-#                                               -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
-
-AC_PREREQ(2.59)
-
-AC_INIT([zktreeutil], [1.0.0])
-AM_INIT_AUTOMAKE(foreign)
-
-AC_CONFIG_SRCDIR([src])
-AM_CONFIG_HEADER([config.h])
-
-PACKAGE=zktreeutil
-VERSION=1.0.0
-
-AC_SUBST(PACKAGE)
-AC_SUBST(VERSION)
-BUILD_PATH="`pwd`"
-
-# Checks for programs.
-AC_LANG_CPLUSPLUS
-AC_PROG_CXX
-
-# Checks for libxm2.
-AM_PATH_XML2(2.7.3)
-XML2_INCLUDE="/usr/include/libxml2"
-AC_SUBST(XML2_INCLUDE)
-
-# Zookeeper C client
-ZOOKEEPER_PATH=${BUILD_PATH}/../../c
-AC_CHECK_LIB(zookeeper_mt, main, [ZOOKEEPER="-L${ZOOKEEPER_PATH}/.libs -lzookeeper_mt"],,["-L${ZOOKEEPER_PATH}/.libs"])
-if test -z "${ZOOKEEPER}"; then
-      AC_ERROR("... zookeeper C client not found!")
-fi
-
-AC_SUBST(ZOOKEEPER)
-AC_SUBST(ZOOKEEPER_PATH)
-
-### log4cxx ###
-
-LOG4CXX_VERSION="0.10.0"
-LOG4CXX_INCLUDE="/usr/local/include"
-LOG4CXX_LIB_PATH="/usr/local/lib"
-AC_CHECK_LIB(log4cxx, main, [LOG4CXX="-L${LOG4CXX_LIB_PATH} -llog4cxx"],,["-L${LOG4CXX_LIB_PATH}"])
-if test -z "${LOG4CXX}"; then
-      AC_ERROR("... log4cxx not found!")
-fi
-
-AC_SUBST(LOG4CXX)
-AC_SUBST(LOG4CXX_VERSION)
-AC_SUBST(LOG4CXX_INCLUDE)
-
-# Checks for header files.
-AC_HEADER_DIRENT
-AC_HEADER_STDC
-AC_CHECK_HEADERS([stdlib.h string.h stdio.h unistd.h boost/shared_ptr.hpp boost/algorithm/string.hpp boost/algorithm/string/split.hpp])
-
-# Checks for typedefs, structures, and compiler characteristics.
-AC_HEADER_STDBOOL
-AC_C_CONST
-AC_C_INLINE
-AC_TYPE_SIZE_T
-AC_C_VOLATILE
-
-AC_CONFIG_FILES([Makefile])
-AC_CONFIG_FILES([src/Makefile])
-AC_OUTPUT

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zktreeutil/src/Makefile.am
----------------------------------------------------------------------
diff --git a/src/contrib/zktreeutil/src/Makefile.am b/src/contrib/zktreeutil/src/Makefile.am
deleted file mode 100644
index 641077a..0000000
--- a/src/contrib/zktreeutil/src/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-# 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.
-
-AM_CXXFLAGS = -I${ZOOKEEPER_PATH}/include -I${ZOOKEEPER_PATH}/generated \
-    -I$(top_srcdir)/include -I${LOG4CXX_INCLUDE} -I/usr/include \
-      -I${XML2_INCLUDE}
-
-bin_PROGRAMS = zktreeutil
-
-zktreeutil_SOURCES = ZkAdaptor.cc ZkTreeUtil.cc ZkTreeUtilMain.cc
-zktreeutil_LDADD = ${ZOOKEEPER} ${XML_LIBS} ${LOG4CXX}

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zktreeutil/src/SimpleTree.h
----------------------------------------------------------------------
diff --git a/src/contrib/zktreeutil/src/SimpleTree.h b/src/contrib/zktreeutil/src/SimpleTree.h
deleted file mode 100644
index 8226f05..0000000
--- a/src/contrib/zktreeutil/src/SimpleTree.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- * 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.
- */
-
-#ifndef __SIMPLE_TREE_H__
-#define __SIMPLE_TREE_H__
-
-#include <vector>
-#include <boost/shared_ptr.hpp>
-
-namespace zktreeutil
-{
-   using std::vector;
-
-   /**
-    * \brief A simple tree data-structure template.
-    */
-   template < class KeyType, class DataType > class SimpleTreeNode
-   {
-      private:
-         /**
-          * \brief The type representing simple-tree node smart-pointer.
-          */
-         typedef boost::shared_ptr< SimpleTreeNode< KeyType, DataType > > SimpleTreeNodeSptr;
-
-      public:
-         /**
-          * \brief Constructor.
-          * 
-          * @param isRoot the flag indicating whether the node is root.
-          */
-         SimpleTreeNode (bool isRoot=false) : isRoot_(isRoot)
-         {
-         }
-
-         /**
-          * \brief Constructor.
-          * 
-          * @param key the key stored at the tree node
-          * @param isRoot the flag indicating whether the node is root
-          */
-         SimpleTreeNode (const KeyType& key, bool isRoot=false) :
-            isRoot_(isRoot), key_(key)
-         {
-         }
-
-         /**
-          * \brief Constructor.
-          * 
-          * @param key the key stored at the tree node
-          * @param val the value stored at the tree node
-          * @param isRoot the flag indicating whether the node is root
-          */
-         SimpleTreeNode (const KeyType& key, const DataType& val, bool isRoot=false) :
-            isRoot_(isRoot), key_(key), val_(val)
-         {
-         }
-
-         /**
-          * \brief Destructor.
-          */
-         ~SimpleTreeNode () throw() {}
-
-         /**
-          * \brief Add a child node to this node.
-          *
-          * @param node the child node to be added
-          */
-         void addChild (const SimpleTreeNodeSptr node) { children_.push_back (node); }
-
-         /**
-          * \brief Sets the key of this node.
-          *
-          * @param key the key to be set
-          */
-         void setKey (const KeyType& key) { key_ = key; }
-
-         /**
-          * \brief Sets the data of this node.
-          *
-          * @param val the value to be set
-          */
-         void setData (const DataType& val) { val_ = val; }
-
-         /**
-          * \brief Gets the key of this node.
-          *
-          * @return the key of this node 
-          */
-         KeyType getKey () const { return key_; }
-
-         /**
-          * \brief Gets the data of this node.
-          *
-          * @return the value of this node 
-          */
-         DataType getData () const { return val_; }
-
-         /**
-          * \brief Gets the i'th of this node.
-          *
-          * @param idx the index of the child node
-          * @return the child node
-          */
-         SimpleTreeNodeSptr getChild (unsigned idx) const { return children_[idx]; }
-
-         /**
-          * \brief Gets the number of children of this node.
-          *
-          * @return the number of children
-          */
-         unsigned numChildren () const { return children_.size(); }
-
-         /**
-          * \brief Indicates whether this node is root.
-          *
-          * @return 'true' if this node is root, 'false' otherwise
-          */
-         bool isRoot () const { return isRoot_; }
-
-         /**
-          * \brief Indicates whether this node is leaf node.
-          *
-          * @return 'true' if this node is leaf node, 'false' otherwise
-          */
-         bool isLeaf () const { return !numChildren(); }
-
-      private:
-         bool isRoot_;                                        // Flag indicates if the node is root
-         KeyType key_;                                        // Key of this node
-         DataType val_;                                        // Value of this node
-         vector< SimpleTreeNodeSptr > children_;    // List of children of this node
-   };
-}
-
-#endif // __SIMPLE_TREE_H__

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zktreeutil/src/ZkAdaptor.cc
----------------------------------------------------------------------
diff --git a/src/contrib/zktreeutil/src/ZkAdaptor.cc b/src/contrib/zktreeutil/src/ZkAdaptor.cc
deleted file mode 100644
index 1df175a..0000000
--- a/src/contrib/zktreeutil/src/ZkAdaptor.cc
+++ /dev/null
@@ -1,513 +0,0 @@
-/**
- * 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.
- */
-
-#include "ZkAdaptor.h"
-#include <string.h>
-#include <sstream>
-#include <iostream>
-#include <algorithm>
-#include <log4cxx/logger.h>
-
-// Logger
-static log4cxx::LoggerPtr zkLoggerPtr = log4cxx::Logger::getLogger ("zookeeper.core");
-
-namespace zktreeutil
-{
-    /**
-     * \brief This class provides logic for checking if a request can be retried.
-     */
-    class RetryHandler
-    {
-        public:
-            RetryHandler(const ZooKeeperConfig &zkConfig) : m_zkConfig(zkConfig)
-            {
-                if (zkConfig.getAutoReconnect())
-                    retries = 2;
-                else
-                    retries = 0;
-            }
-
-            /**
-             * \brief Attempts to fix a side effect of the given RC.
-             * 
-             * @param rc the ZK error code
-             * @return whether the error code has been handled and the caller should 
-             *         retry an operation the caused this error
-             */
-            bool handleRC(int rc)
-            {
-                //check if the given error code is recoverable
-                if (!retryOnError(rc))
-                    return false;
-
-                std::cerr << "[zktreeuti] Number of retries left: " << retries << std::endl;
-                if (retries-- > 0)
-                    return true;
-                else
-                    return false;
-            }
-
-        private:
-            /**
-             * The ZK config.
-             */
-            const ZooKeeperConfig &m_zkConfig;
-
-            /**
-             * The number of outstanding retries.
-             */
-            int retries;    
-
-            /**
-             * Checks whether the given error entitles this adapter
-             * to retry the previous operation.
-             * 
-             * @param zkErrorCode one of the ZK error code
-             */
-            static bool retryOnError(int zkErrorCode)
-            {
-                return (zkErrorCode == ZCONNECTIONLOSS || zkErrorCode == ZOPERATIONTIMEOUT);
-            }
-    };
-
-
-    // =======================================================================
-
-    ZooKeeperAdapter::ZooKeeperAdapter(ZooKeeperConfig config) throw(ZooKeeperException) :
-        m_zkConfig(config),
-        mp_zkHandle(NULL)
-    {
-        // Enforce setting up appropriate ZK log level
-        if (zkLoggerPtr->isDebugEnabled()
-#ifdef LOG4CXX_TRACE
-                || zkLoggerPtr->isTraceEnabled()
-#endif
-            ) 
-        {
-            zoo_set_debug_level( ZOO_LOG_LEVEL_DEBUG );
-        } else if (zkLoggerPtr->isInfoEnabled()) {
-            zoo_set_debug_level( ZOO_LOG_LEVEL_INFO );
-        } else if (zkLoggerPtr->isWarnEnabled()) {
-            zoo_set_debug_level( ZOO_LOG_LEVEL_WARN );
-        } else {
-            zoo_set_debug_level( ZOO_LOG_LEVEL_ERROR );
-        }
-
-        // Establish the connection
-        reconnect();
-    }
-
-    ZooKeeperAdapter::~ZooKeeperAdapter()
-    {
-        try
-        {
-            disconnect();
-        }
-        catch (std::exception &e)
-        {
-            std::cerr << "[zktreeutil] An exception while disconnecting from ZK: "
-                << e.what()
-                << std::endl;
-        }
-    }
-
-    void ZooKeeperAdapter::validatePath(const string &path) throw(ZooKeeperException)
-    {
-        if (path.find ("/") != 0)
-        {
-            std::ostringstream oss;
-            oss << "Node path must start with '/' but" "it was '"
-                << path
-                << "'";
-            throw ZooKeeperException (oss.str());
-        }
-        if (path.length() > 1)
-        {
-            if (path.rfind ("/") == path.length() - 1)
-            {
-                std::ostringstream oss;
-                oss << "Node path must not end with '/' but it was '"
-                    << path
-                    << "'";
-                throw ZooKeeperException (oss.str());
-            }
-            if (path.find( "//" ) != string::npos)
-            {
-                std::ostringstream oss;
-                oss << "Node path must not contain '//' but it was '"
-                    << path
-                    << "'";
-                throw ZooKeeperException (oss.str());
-            }
-        }
-    }
-
-    void ZooKeeperAdapter::disconnect()
-    {
-        if (mp_zkHandle != NULL)
-        {
-            zookeeper_close (mp_zkHandle);
-            mp_zkHandle = NULL;
-        }
-    }
-
-    void ZooKeeperAdapter::reconnect() throw(ZooKeeperException)
-    {
-        // Clear the connection state
-        disconnect();
-
-        // Establish a new connection to ZooKeeper
-        mp_zkHandle = zookeeper_init( m_zkConfig.getHosts().c_str(), 
-                NULL, 
-                m_zkConfig.getLeaseTimeout(),
-                0,
-                NULL,
-                0);
-        if (mp_zkHandle == NULL)
-        {
-            // Invalid handle returned
-            std::ostringstream oss;
-            oss << "Unable to connect to ZK running at '"
-                << m_zkConfig.getHosts()
-                << "'";
-            throw ZooKeeperException (oss.str());
-        }
-
-        // Enter into connect loop
-        int64_t connWaitTime = m_zkConfig.getConnectTimeout();
-        while (1)
-        {
-            int state = zoo_state (mp_zkHandle);
-            if (state == ZOO_CONNECTED_STATE)
-            {
-                // connected
-                std::cerr << "[zktreeutil] Connected! mp_zkHandle: "
-                    << mp_zkHandle
-                    << std::endl; 
-                return;
-            }
-            else if ( state && state != ZOO_CONNECTING_STATE)
-            {
-                // Not connecting any more... some other issue
-                std::ostringstream oss;
-                oss << "Unable to connect to ZK running at '"
-                    << m_zkConfig.getHosts()
-                    << "'; state="
-                    << state;
-                throw ZooKeeperException (oss.str());
-            }
-
-            // Still connecting, wait and come back
-            struct timeval now;
-            gettimeofday( &now, NULL );
-            int64_t milliSecs = -(now.tv_sec * 1000LL + now.tv_usec / 1000);
-            std::cerr << "[zktreeutil] About to wait 1 sec" << std::endl;
-            sleep (1);
-            gettimeofday( &now, NULL );
-            milliSecs += now.tv_sec * 1000LL + now.tv_usec / 1000;
-            connWaitTime -= milliSecs;
-            // Timed out !!!
-            if (connWaitTime <= 0)
-                break;
-        }
-
-        // Timed out while connecting
-        std::ostringstream oss;
-        oss << "Timed out while connecting to ZK running at '"
-            << m_zkConfig.getHosts()
-            << "'";
-        throw ZooKeeperException (oss.str());
-    }
-
-    void ZooKeeperAdapter::verifyConnection() throw(ZooKeeperException)
-    {
-        // Check connection state
-        int state = zoo_state (mp_zkHandle);
-        if (state != ZOO_CONNECTED_STATE)
-        {
-            if (m_zkConfig.getAutoReconnect())
-            {
-                // Trying to reconnect
-                std::cerr << "[zktreeutil] Trying to reconnect..." << std::endl;
-                reconnect();
-            }
-            else
-            {
-                std::ostringstream oss;
-                oss << "Disconnected from ZK running at '"
-                    << m_zkConfig.getHosts()
-                    << "'; state="
-                    << state;
-                throw ZooKeeperException (oss.str());
-            }
-        }
-    }
-
-    bool ZooKeeperAdapter::createNode(const string &path, 
-            const string &value, 
-            int flags, 
-            bool createAncestors) throw(ZooKeeperException) 
-    {
-        const int MAX_PATH_LENGTH = 1024;
-        char realPath[MAX_PATH_LENGTH];
-        realPath[0] = 0;
-
-        int rc;
-        RetryHandler rh(m_zkConfig);
-        do
-        {
-            verifyConnection();
-            rc = zoo_create( mp_zkHandle, 
-                    path.c_str(), 
-                    value.c_str(),
-                    value.length(),
-                    &ZOO_OPEN_ACL_UNSAFE,
-                    flags,
-                    realPath,
-                    MAX_PATH_LENGTH );
-        } while (rc != ZOK && rh.handleRC(rc));
-        if (rc != ZOK) // check return status
-        {
-            if (rc == ZNODEEXISTS)
-            {
-                //the node already exists
-                std::cerr << "[zktreeutil] ZK node " << path << " already exists" << std::endl;
-                return false;
-            }
-            else if (rc == ZNONODE && createAncestors)
-            {
-                std::cerr << "[zktreeutil] Intermediate ZK node missing in path " << path << std::endl;
-                //one of the ancestors doesn't exist so lets start from the root 
-                //and make sure the whole path exists, creating missing nodes if
-                //necessary
-                for (string::size_type pos = 1; pos != string::npos; )
-                {
-                    pos = path.find( "/", pos );
-                    if (pos != string::npos)
-                    {
-                        try
-                        {
-                            createNode( path.substr( 0, pos ), "", 0, true );
-                        }
-                        catch (ZooKeeperException &e)
-                        {
-                            throw ZooKeeperException( string("Unable to create " "node ") + path, rc );
-                        }
-                        pos++;
-                    }
-                    else
-                    {
-                        // No more path components
-                        return createNode( path, value, flags, false );
-                    }
-                }
-            }
-
-            // Unexpected error during create
-            std::cerr << "[zktreeutil] Error in creating ZK node " << path << std::endl;
-            throw ZooKeeperException( string("Unable to create node ") + path, rc );
-        }
-
-        // Success
-        std::cerr << "[zktreeutil] " << realPath << " has been created" << std::endl;
-        return true;
-    }
-
-    bool ZooKeeperAdapter::deleteNode(const string &path,
-            bool recursive,
-            int version) throw(ZooKeeperException)
-    {
-        // Validate the zk path
-        validatePath( path );
-
-        int rc;
-        RetryHandler rh(m_zkConfig);
-        do
-        {
-            verifyConnection();
-            rc = zoo_delete( mp_zkHandle, path.c_str(), version );
-        } while (rc != ZOK && rh.handleRC(rc));
-        if (rc != ZOK) //check return status
-        {
-            if (rc == ZNONODE)
-            {
-                std::cerr << "[zktreeutil] ZK Node "
-                    << path
-                    << " does not exist"
-                    << std::endl;
-                return false;
-            }
-            if (rc == ZNOTEMPTY && recursive)
-            {
-                std::cerr << "[zktreeutil] ZK Node "
-                    << path
-                    << " not empty; deleting..."
-                    << std::endl;
-                //get all children and delete them recursively...
-                vector<string> nodeList = getNodeChildren (path);
-                for (vector<string>::const_iterator i = nodeList.begin();
-                        i != nodeList.end();
-                        ++i) {
-                    deleteNode( *i, true );
-                }
-                //...and finally attempt to delete the node again
-                return deleteNode( path, false ); 
-            }
-
-            // Unexpected return without success
-            std::cerr << "[zktreeutil] Unable to delete ZK node " << path << std::endl;
-            throw ZooKeeperException( string("Unable to delete node ") + path, rc );
-        }
-
-        // success
-        std::cerr << "[zktreeutil] " << path << " has been deleted" << std::endl;
-        return true;
-    }
-
-    vector< string > ZooKeeperAdapter::getNodeChildren (const string &path) throw (ZooKeeperException)
-    {
-        // Validate the zk path
-        validatePath( path );
-
-        String_vector children;
-        memset( &children, 0, sizeof(children) );
-        int rc;
-        RetryHandler rh(m_zkConfig);
-        do
-        {
-            verifyConnection();
-            rc = zoo_get_children( mp_zkHandle,
-                    path.c_str(), 
-                    0,
-                    &children );
-        } while (rc != ZOK && rh.handleRC(rc));
-        if (rc != ZOK) // check return code
-        {
-            std::cerr << "[zktreeutil] Error in fetching children of " << path << std::endl;
-            throw ZooKeeperException( string("Unable to get children of node ") + path, rc );
-        }
-        else
-        {
-            vector< string > nodeList;
-            for (int i = 0; i < children.count; ++i)
-            {
-                //convert each child's path from relative to absolute 
-                string absPath(path);
-                if (path != "/")
-                {
-                    absPath.append( "/" );
-                } 
-                absPath.append( children.data[i] ); 
-                nodeList.push_back( absPath );
-            }
-
-            //make sure the order is always deterministic
-            sort( nodeList.begin(), nodeList.end() );
-            return nodeList;
-        }
-    }
-
-    bool ZooKeeperAdapter::nodeExists(const string &path) throw(ZooKeeperException)
-    {
-        // Validate the zk path
-        validatePath( path );
-
-        struct Stat tmpStat;
-        struct Stat* stat = &tmpStat;
-        memset( stat, 0, sizeof(Stat) );
-
-        int rc;
-        RetryHandler rh(m_zkConfig);
-        do {
-            verifyConnection();
-            rc = zoo_exists( mp_zkHandle,
-                    path.c_str(),
-                    0,
-                    stat );
-        } while (rc != ZOK && rh.handleRC(rc));
-        if (rc != ZOK)
-        {
-            if (rc == ZNONODE)
-                return false;
-            // Some error
-            std::cerr << "[zktreeutil] Error in checking existence of " << path << std::endl;
-            throw ZooKeeperException( string("Unable to check existence of node ") + path, rc );
-        } else {
-            return true;        
-        }
-    }
-
-    string ZooKeeperAdapter::getNodeData(const string &path) throw(ZooKeeperException)
-    {
-        // Validate the zk path
-        validatePath( path );
-
-        const int MAX_DATA_LENGTH = 128 * 1024;
-        char buffer[MAX_DATA_LENGTH];
-        memset( buffer, 0, MAX_DATA_LENGTH );
-        struct Stat tmpStat;
-        struct Stat* stat = &tmpStat;
-        memset( stat, 0, sizeof(Stat) );
-
-        int rc;
-        int len;
-        RetryHandler rh(m_zkConfig);
-        do {
-            verifyConnection();
-            len = MAX_DATA_LENGTH - 1;
-            rc = zoo_get( mp_zkHandle,
-                    path.c_str(),
-                    0,
-                    buffer, &len, stat );
-        } while (rc != ZOK && rh.handleRC(rc));
-        if (rc != ZOK) // checl return code
-        {
-            std::cerr << "[zktreeutil] Error in fetching value of " << path << std::endl;
-            throw ZooKeeperException( string("Unable to get data of node ") + path, rc );
-        }
-
-        // return data
-        return string( buffer, buffer + len );
-    }
-
-    void ZooKeeperAdapter::setNodeData(const string &path,
-            const string &value,
-            int version) throw(ZooKeeperException)
-    {
-        // Validate the zk path
-        validatePath( path );
-
-        int rc;
-        RetryHandler rh(m_zkConfig);
-        do {
-            verifyConnection();
-            rc = zoo_set( mp_zkHandle,
-                    path.c_str(),
-                    value.c_str(),
-                    value.length(),
-                    version);
-        } while (rc != ZOK && rh.handleRC(rc));
-        if (rc != ZOK) // check return code
-        {
-            std::cerr << "[zktreeutil] Error in setting value of " << path << std::endl;
-            throw ZooKeeperException( string("Unable to set data for node ") + path, rc );
-        }
-        // success
-    }
-
-}   /* end of 'namespace zktreeutil' */

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/eab8c1eb/src/contrib/zktreeutil/src/ZkAdaptor.h
----------------------------------------------------------------------
diff --git a/src/contrib/zktreeutil/src/ZkAdaptor.h b/src/contrib/zktreeutil/src/ZkAdaptor.h
deleted file mode 100644
index 4b68e28..0000000
--- a/src/contrib/zktreeutil/src/ZkAdaptor.h
+++ /dev/null
@@ -1,327 +0,0 @@
-/**
- * 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.
- */
-
-#ifndef __ZK_ADAPTER_H__
-#define __ZK_ADAPTER_H__
-
-#include <string>
-#include <vector>
-
-extern "C" {
-#include "zookeeper.h"
-}
-
-namespace zktreeutil
-{
-    using std::string;
-    using std::vector;
-
-    /**
-     * \brief A cluster related exception.
-     */
-    class ZooKeeperException : public std::exception
-    {
-        public:
-
-            /**
-             * \brief Constructor.
-             * 
-             * @param msg the detailed message associated with this exception
-             */
-            ZooKeeperException(const string& msg) :
-                m_message(msg),
-                m_zkErrorCode(0) {}
-
-            /**
-             * \brief Constructor.
-             * 
-             * @param msg the detailed message associated with this exception
-             * @param errorCode the ZK error code associated with this exception
-             */
-            ZooKeeperException(const string &msg, int errorCode) : 
-                m_zkErrorCode(errorCode) 
-            {
-                char tmp[100];
-                sprintf( tmp, " (ZK error code: %d)", errorCode );
-                m_message = msg + tmp;
-            }
-
-            /**
-             * \brief Destructor.
-             */
-            ~ZooKeeperException() throw() {}
-
-            /**
-             * \brief Returns detailed description of the exception.
-             */
-            const char *what() const throw()
-            {
-                return m_message.c_str();
-            }
-
-            /**
-             * \brief Returns the ZK error code.
-             */
-            int getZKErrorCode() const
-            {
-                return m_zkErrorCode;
-            }
-
-        private:
-
-            /**
-             * The detailed message associated with this exception.
-             */
-            string m_message;
-
-            /**
-             * The optional error code received from ZK.
-             */
-            int m_zkErrorCode;
-
-    };
-
-    /**
-     * \brief This class encapsulates configuration of a ZK client.
-     */
-    class ZooKeeperConfig
-    {
-        public:
-
-            /**
-             * \brief Constructor.
-             * 
-             * @param hosts the comma separated list of host and port pairs of ZK nodes
-             * @param leaseTimeout the lease timeout (heartbeat)
-             * @param autoReconnect whether to allow for auto-reconnect
-             * @param connectTimeout the connect timeout, in milliseconds;
-             */
-            ZooKeeperConfig(const string &hosts, 
-                    int leaseTimeout, 
-                    bool autoReconnect = true, 
-                    long long int connectTimeout = 15000)
-                : m_hosts(hosts),
-                m_leaseTimeout(leaseTimeout), 
-                m_autoReconnect(autoReconnect),
-                m_connectTimeout(connectTimeout) {}
-
-            /**
-             * \brief Returns the list of ZK hosts to connect to.
-             */
-            string getHosts() const { return m_hosts; }
-
-            /**
-             * \brief Returns the lease timeout.
-             */
-            int getLeaseTimeout() const { return m_leaseTimeout; }
-
-            /**
-             * \brief Returns whether {@link ZooKeeperAdapter} should attempt 
-             * \brief to automatically reconnect in case of a connection failure.
-             */
-            bool getAutoReconnect() const { return m_autoReconnect; }
-
-            /**
-             * \brief Gets the connect timeout.
-             * 
-             * @return the connect timeout
-             */
-            long long int getConnectTimeout() const { return m_connectTimeout; }
-
-        private:
-
-            /**
-             * The host addresses of ZK nodes.
-             */
-            const string m_hosts;
-
-            /**
-             * The ZK lease timeout.
-             */
-            const int m_leaseTimeout;
-
-            /**
-             * True if this adapater should attempt to autoreconnect in case 
-             * the current session has been dropped.
-             */
-            const bool m_autoReconnect;
-
-            /**
-             * How long to wait, in milliseconds, before a connection 
-             * is established to ZK.
-             */
-            const long long int m_connectTimeout;
-    };
-
-    /**
-     * \brief This is a wrapper around ZK C synchrounous API.
-     */
-    class ZooKeeperAdapter
-    {
-        public:
-            /**
-             * \brief Constructor.
-             * Attempts to create a ZK adapter, optionally connecting
-             * to the ZK. Note, that if the connection is to be established
-             * and the given listener is NULL, some events may be lost, 
-             * as they may arrive asynchronously before this method finishes.
-             * 
-             * @param config the ZK configuration
-             * @throw ZooKeeperException if cannot establish connection to the given ZK
-             */
-            ZooKeeperAdapter(ZooKeeperConfig config) throw(ZooKeeperException);
-
-            /**
-             * \brief Destructor.
-             */
-            ~ZooKeeperAdapter(); 
-
-            /**
-             * \brief Returns the current config.
-             */
-            const ZooKeeperConfig &getZooKeeperConfig() const { return m_zkConfig; }
-
-            /**
-             * \brief Restablishes connection to the ZK. 
-             * If this adapter is already connected, the current connection 
-             * will be dropped and a new connection will be established.
-             * 
-             * @throw ZooKeeperException if cannot establish connection to the ZK
-             */
-            void reconnect() throw(ZooKeeperException);
-
-            /**
-             * \brief Disconnects from the ZK and unregisters {@link #mp_zkHandle}.
-             */
-            void disconnect();
-
-            /**
-             * \brief Creates a new node identified by the given path. 
-             * This method will optionally attempt to create all missing ancestors.
-             * 
-             * @param path the absolute path name of the node to be created
-             * @param value the initial value to be associated with the node
-             * @param flags the ZK flags of the node to be created
-             * @param createAncestors if true and there are some missing ancestor nodes, 
-             *        this method will attempt to create them
-             * 
-             * @return true if the node has been successfully created; false otherwise
-             * @throw ZooKeeperException if the operation has failed
-             */ 
-            bool createNode(const string &path, 
-                    const string &value = "", 
-                    int flags = 0, 
-                    bool createAncestors = true) throw(ZooKeeperException);
-
-            /**
-             * \brief Deletes a node identified by the given path.
-             * 
-             * @param path the absolute path name of the node to be deleted
-             * @param recursive if true this method will attempt to remove 
-             *                  all children of the given node if any exist
-             * @param version the expected version of the node. The function will 
-             *                fail if the actual version of the node does not match 
-             *                the expected version
-             * 
-             * @return true if the node has been deleted; false otherwise
-             * @throw ZooKeeperException if the operation has failed
-             */
-            bool deleteNode(const string &path,
-                    bool recursive = false,
-                    int version = -1) throw(ZooKeeperException);
-
-            /**
-             * \brief Retrieves list of all children of the given node.
-             * 
-             * @param path the absolute path name of the node for which to get children
-             * @return the list of absolute paths of child nodes, possibly empty
-             * @throw ZooKeeperException if the operation has failed
-             */
-            vector<string> getNodeChildren( const string &path) throw(ZooKeeperException);
-
-            /**
-             * \brief Check the existence of path to a znode.
-             * 
-             * @param path the absolute path name of the znode
-             * @return TRUE if the znode exists; FALSE otherwise
-             * @throw ZooKeeperException if the operation has failed
-             */
-            bool nodeExists(const string &path) throw(ZooKeeperException);
-
-            /**
-             * \brief Gets the given node's data.
-             * 
-             * @param path the absolute path name of the node to get data from
-             * 
-             * @return the node's data
-             * @throw ZooKeeperException if the operation has failed
-             */
-            string getNodeData(const string &path) throw(ZooKeeperException);
-
-            /**
-             * \brief Sets the given node's data.
-             * 
-             * @param path the absolute path name of the node to get data from
-             * @param value the node's data to be set
-             * @param version the expected version of the node. The function will 
-             *                fail if the actual version of the node does not match 
-             *                the expected version
-             * 
-             * @throw ZooKeeperException if the operation has failed
-             */
-            void setNodeData(const string &path,
-                    const string &value,
-                    int version = -1) throw(ZooKeeperException);
-
-            /**
-             * \brief Validates the given path to a node in ZK.
-             * 
-             * @param the path to be validated
-             * 
-             * @throw ZooKeeperException if the given path is not valid
-             *        (for instance it doesn't start with "/")
-             */
-            static void validatePath(const string &path) throw(ZooKeeperException);
-
-        private:
-
-            /**
-             * Verifies whether the connection is established,
-             * optionally auto reconnecting.
-             * 
-             * @throw ZooKeeperConnection if this client is disconnected
-             *        and auto-reconnect failed or was not allowed
-             */
-            void verifyConnection() throw(ZooKeeperException);
-
-        private:
-
-            /**
-             * The current ZK configuration.
-             */
-            const ZooKeeperConfig m_zkConfig;
-
-            /**
-             * The current ZK session.
-             */
-            zhandle_t *mp_zkHandle;
-    };
-
-}   /* end of 'namespace zktreeutil' */
-
-#endif /* __ZK_ADAPTER_H__ */


Mime
View raw message