Selaa lähdekoodia

ZOOKEEPER-371. jdiff documentation included in build/release

git-svn-id: https://svn.apache.org/repos/asf/hadoop/zookeeper/trunk@767596 13f79535-47bb-0310-9956-ffa450edef68
Patrick D. Hunt 16 vuotta sitten
vanhempi
commit
d879ea6c15
3 muutettua tiedostoa jossa 2803 lisäystä ja 5 poistoa
  1. 6 3
      CHANGES.txt
  2. 80 2
      build.xml
  3. 2717 0
      src/java/lib/jdiff/zookeeper_3.1.1.xml

+ 6 - 3
CHANGES.txt

@@ -58,10 +58,11 @@ BUGFIXES:
   ZOOKEEPER-367. RecoveryTest failure - "unreasonable length" IOException
   (mahadev via phunt)
 
-  ZOOKEEPER-346. remove the kill command fro mthe client port. (phunt via mahadev)
+  ZOOKEEPER-346. remove the kill command fro mthe client port.
+  (phunt via mahadev)
 
-  ZOOKEEPER-377. running ant cppunit tests, a failure still results in BUILD
-SUCCESSFUL (giri via mahadev)
+  ZOOKEEPER-377. running ant cppunit tests, a failure still results in 
+  BUILD SUCCESSFUL (giri via mahadev)
 
 IMPROVEMENTS:
   ZOOKEEPER-308. improve the atomic broadcast performance 3x.
@@ -106,6 +107,8 @@ IMPROVEMENTS:
 
 NEW FEATURES:
 
+  ZOOKEEPER-371. jdiff documentation included in build/release (giri via phunt)
+
 
 Release 3.1.0 - 2009-02-06
   

+ 80 - 2
build.xml

@@ -117,7 +117,25 @@
     <property name="make.cmd" value="make"/>
     <property name="test_patch_sh" value="${test.src.dir}/bin/test-patch.sh"/>
 
-<!-- ====================================================== -->
+	<!-- jdiff.home property set -->
+    <property name="jdiff.home" value="${lib.dir}"/>
+    <property name="jdiff.version" value="1.0.9"/>
+    <property name="xerces.version" value="1.4.4"/>	
+    <property name="jdiff.jar" value="${jdiff.home}/jdiff-${jdiff.version}.jar"/>
+    <property name="xerces.jar" value="${jdiff.home}/xerces-${xerces.version}.jar"/>
+    <property name="jdiff.build.dir" value="${build.docs}/jdiff"/>
+    <property name="jdiff.xml.dir" value="${lib.dir}/jdiff"/>
+    <property name="jdiff.stable" value="3.1.1"/>
+    <property name="jdiff.stable.javadoc" 
+            value="http://hadoop.apache.org/zookeeper/docs/r${jdiff.stable}/api/"/>
+    <property name="jdiff.download.url" 
+		value="http://mirrors.ibiblio.org/pub/mirrors/maven2/jdiff/jdiff/${jdiff.version}/jdiff-${jdiff.version}.jar"/>
+    <property name="jdiff.jar" value="${jdiff.home}/jdiff.jar"/>
+    <property name="xerces.download.url" 
+		value="http://mirrors.ibiblio.org/pub/mirrors/maven2/xerces/xerces/${xerces.version}/xerces-${xerces.version}.jar"/>
+    <property name="xerces.jar" value="${jdiff.home}/xerces.jar"/>
+
+    <!-- ====================================================== -->
     <!-- Macro definitions                                      -->
     <!-- ====================================================== -->
     <macrodef name="macro_tar" description="Worker Macro for tar">
@@ -406,13 +424,14 @@
     <!-- ================================================================== -->
     <!--                                                                    -->
     <!-- ================================================================== -->
-    <target name="package" depends="release-jar, javadoc, compile-test"
+    <target name="package" depends="release-jar, api-report, compile-test"
             description="Build distribution">
       <mkdir dir="${dist.dir}"/>
       <mkdir dir="${dist.dir}/lib"/>
       <mkdir dir="${dist.dir}/contrib"/>
       <mkdir dir="${dist.dir}/bin"/>
       <mkdir dir="${dist.dir}/docs"/>
+      <mkdir dir="${dist.dir}/docs/jdiff"/>
       <mkdir dir="${dist.dir}/docs/api"/>
 
       <copy todir="${dist.dir}/lib" includeEmptyDirs="false">
@@ -513,7 +532,11 @@
       <delete dir="${docs.src}/build"/>
       <delete dir="${src_generated.dir}" />
       <delete dir="${csrc_generated.dir}" />
+      <delete file="${jdiff.jar}" />
+      <delete file="${xerces.jar}" />
+      <delete file="${lib.dir}/Null.java"/>
       <delete file="${lib.dir}/rats.jar" />
+      <delete file="${jdiff.xml.dir}/${name}_${version}.xml"/>	
       <delete file="${jar.name}" />
       <delete dir="${distribution}"/>
       <delete dir="${revision.dir}"/>
@@ -899,4 +922,59 @@
     	</exec>
      </target>
 
+     <target name="get-jdiff" description="download jdiff and its dependencies">
+	<get src="${jdiff.download.url}" dest="${jdiff.jar}" usetimestamp="true"/>
+	<get src="${xerces.download.url}" dest="${xerces.jar}" usetimestamp="true"/>
+     </target>	
+
+     <target name="api-xml" depends="get-jdiff, javadoc, write-null">
+    	<javadoc>
+       		<doclet name="jdiff.JDiff"
+               		path="${jdiff.jar}:${xerces.jar}">
+         		<param name="-apidir" value="${jdiff.xml.dir}"/>
+         		<param name="-apiname" value="${name} ${version}"/>
+       		</doclet>
+       		<packageset dir="${java.src.dir}">
+			<include name="org/apache/zookeeper"/>
+			<exclude name="org/apache/jute"/>
+                </packageset>
+       		<classpath>
+       			<fileset dir="${lib.dir}">
+        			<include name="**/*.jar"/>
+      			</fileset>
+			<pathelement path="${build.classes}" />	
+		</classpath>
+       	</javadoc>
+     </target>
+	
+     <target name="write-null">
+	<exec executable="touch">
+		<arg value="${jdiff.home}/Null.java"/>
+        </exec>
+     </target> 
+
+     <target name="api-report" depends="api-xml">
+	<mkdir dir="${jdiff.build.dir}"/>
+        <javadoc sourcepath="${java.src.dir}"
+             destdir="${jdiff.build.dir}"
+	     excludepackagenames="org.apache.jute"	
+             sourceFiles="${jdiff.home}/Null.java">
+       		<doclet name="jdiff.JDiff" path="${jdiff.jar}:${xerces.jar}">
+         		<param name="-oldapi" value="${name} ${jdiff.stable}"/>
+         		<param name="-newapi" value="${name} ${version}"/>
+         		<param name="-oldapidir" value="${jdiff.xml.dir}"/>
+         		<param name="-newapidir" value="${jdiff.xml.dir}"/>
+         		<param name="-javadocold" value="${jdiff.stable.javadoc}"/>
+         		<param name="-javadocnew" value="../../api/"/>
+         		<param name="-stats"/>
+       		</doclet>
+		<classpath>
+       			<fileset dir="${lib.dir}">
+        			<include name="**/*.jar"/>
+      			</fileset>
+			<pathelement path="${build.classes}" />	
+		</classpath>
+       </javadoc>
+  </target>
+
 </project>

+ 2717 - 0
src/java/lib/jdiff/zookeeper_3.1.1.xml

@@ -0,0 +1,2717 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<!-- on Wed Apr 22 05:04:00 UTC 2009 -->
+
+<!--
+   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.
+-->
+
+<api
+  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+  xsi:noNamespaceSchemaLocation='api.xsd'
+  name="zookeeper 3.1.1"
+  jdversion="1.0.9">
+
+<!--  Command line arguments =  -doclet jdiff.JDiff -docletpath /home/gkesavan/zk-3.1/src/java/lib/jdiff-1.0.9.jar:/home/gkesavan/zk-3.1/src/java/lib/xerces-1.4.4.jar -classpath /home/gkesavan/zk-3.1/src/java/lib/jdiff-1.0.9.jar:/home/gkesavan/zk-3.1/src/java/lib/junit-4.4.jar:/home/gkesavan/zk-3.1/src/java/lib/log4j-1.2.15.jar:/home/gkesavan/zk-3.1/src/java/lib/xerces-1.4.4.jar:/home/gkesavan/zk-3.1/build/classes -sourcepath /home/gkesavan/zk-3.1/src/java/main -apidir /home/gkesavan/zk-3.1/src/java/lib/jdiff -apiname zookeeper 3.1.1 -->
+<package name="org.apache.zookeeper">
+  <!-- start interface org.apache.zookeeper.AsyncCallback -->
+  <interface name="AsyncCallback"    abstract="true"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+  </interface>
+  <!-- end interface org.apache.zookeeper.AsyncCallback -->
+  <!-- start interface org.apache.zookeeper.AsyncCallback.ACLCallback -->
+  <interface name="AsyncCallback.ACLCallback"    abstract="true"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <implements name="org.apache.zookeeper.AsyncCallback"/>
+    <method name="processResult"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="rc" type="int"/>
+      <param name="path" type="java.lang.String"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <param name="acl" type="java.util.List"/>
+      <param name="stat" type="org.apache.zookeeper.data.Stat"/>
+    </method>
+  </interface>
+  <!-- end interface org.apache.zookeeper.AsyncCallback.ACLCallback -->
+  <!-- start interface org.apache.zookeeper.AsyncCallback.ChildrenCallback -->
+  <interface name="AsyncCallback.ChildrenCallback"    abstract="true"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <implements name="org.apache.zookeeper.AsyncCallback"/>
+    <method name="processResult"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="rc" type="int"/>
+      <param name="path" type="java.lang.String"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <param name="children" type="java.util.List"/>
+    </method>
+  </interface>
+  <!-- end interface org.apache.zookeeper.AsyncCallback.ChildrenCallback -->
+  <!-- start interface org.apache.zookeeper.AsyncCallback.DataCallback -->
+  <interface name="AsyncCallback.DataCallback"    abstract="true"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <implements name="org.apache.zookeeper.AsyncCallback"/>
+    <method name="processResult"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="rc" type="int"/>
+      <param name="path" type="java.lang.String"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <param name="data" type="byte[]"/>
+      <param name="stat" type="org.apache.zookeeper.data.Stat"/>
+    </method>
+  </interface>
+  <!-- end interface org.apache.zookeeper.AsyncCallback.DataCallback -->
+  <!-- start interface org.apache.zookeeper.AsyncCallback.StatCallback -->
+  <interface name="AsyncCallback.StatCallback"    abstract="true"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <implements name="org.apache.zookeeper.AsyncCallback"/>
+    <method name="processResult"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="rc" type="int"/>
+      <param name="path" type="java.lang.String"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <param name="stat" type="org.apache.zookeeper.data.Stat"/>
+    </method>
+  </interface>
+  <!-- end interface org.apache.zookeeper.AsyncCallback.StatCallback -->
+  <!-- start interface org.apache.zookeeper.AsyncCallback.StringCallback -->
+  <interface name="AsyncCallback.StringCallback"    abstract="true"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <implements name="org.apache.zookeeper.AsyncCallback"/>
+    <method name="processResult"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="rc" type="int"/>
+      <param name="path" type="java.lang.String"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <param name="name" type="java.lang.String"/>
+    </method>
+  </interface>
+  <!-- end interface org.apache.zookeeper.AsyncCallback.StringCallback -->
+  <!-- start interface org.apache.zookeeper.AsyncCallback.VoidCallback -->
+  <interface name="AsyncCallback.VoidCallback"    abstract="true"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <implements name="org.apache.zookeeper.AsyncCallback"/>
+    <method name="processResult"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="rc" type="int"/>
+      <param name="path" type="java.lang.String"/>
+      <param name="ctx" type="java.lang.Object"/>
+    </method>
+  </interface>
+  <!-- end interface org.apache.zookeeper.AsyncCallback.VoidCallback -->
+  <!-- start class org.apache.zookeeper.ClientCnxn -->
+  <class name="ClientCnxn" extends="java.lang.Object"
+    abstract="false"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="ClientCnxn" type="java.lang.String, int, org.apache.zookeeper.ZooKeeper, org.apache.zookeeper.ClientWatchManager"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <exception name="IOException" type="java.io.IOException"/>
+    </constructor>
+    <constructor name="ClientCnxn" type="java.lang.String, int, org.apache.zookeeper.ZooKeeper, org.apache.zookeeper.ClientWatchManager, long, byte[]"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <exception name="IOException" type="java.io.IOException"/>
+      <doc>
+      <![CDATA[Creates a connection object. The actual network connect doesn't get
+ established until needed.
+
+ @param hosts
+                a comma separated list of hosts that can be connected to.
+ @param sessionTimeout
+                the timeout for connections.
+ @param zooKeeper
+                the zookeeper object that this connection is related to.
+ @throws KeeperException
+ @throws IOException]]>
+      </doc>
+    </constructor>
+    <method name="getSessionId" return="long"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="getSessionPasswd" return="byte[]"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="toString" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="disconnect"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Shutdown the send/event threads. This method should not be called
+ directly - rather it should be called as part of close operation. This
+ method is primarily here to allow the tests to verify disconnection
+ behavior.]]>
+      </doc>
+    </method>
+    <method name="close"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <exception name="IOException" type="java.io.IOException"/>
+      <doc>
+      <![CDATA[Close the connection, which includes; send session disconnect to the
+ server, shutdown the send/event threads.
+ 
+ @throws IOException]]>
+      </doc>
+    </method>
+    <method name="submitRequest" return="org.apache.zookeeper.proto.ReplyHeader"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="h" type="org.apache.zookeeper.proto.RequestHeader"/>
+      <param name="request" type="org.apache.jute.Record"/>
+      <param name="response" type="org.apache.jute.Record"/>
+      <param name="watchRegistration" type="org.apache.zookeeper.ZooKeeper.WatchRegistration"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+    </method>
+    <method name="addAuthInfo"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="scheme" type="java.lang.String"/>
+      <param name="auth" type="byte[]"/>
+    </method>
+    <field name="disableAutoWatchReset" type="boolean"
+      transient="false" volatile="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[This controls whether automatic watch resetting is enabled.
+ Clients automatically reset watches during session reconnect, this
+ option allows the client to turn off this behavior by setting
+ the environment variable "zookeeper.disableAutoWatchReset" to "true"]]>
+      </doc>
+    </field>
+    <field name="packetLen" type="int"
+      transient="false" volatile="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <doc>
+    <![CDATA[This class manages the socket i/o for the client. ClientCnxn maintains a list
+ of available servers to connect to and "transparently" switches servers it is
+ connected to as needed.]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.ClientCnxn -->
+  <!-- start interface org.apache.zookeeper.ClientWatchManager -->
+  <interface name="ClientWatchManager"    abstract="true"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <method name="materialize" return="java.util.Set"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="state" type="org.apache.zookeeper.Watcher.Event.KeeperState"/>
+      <param name="type" type="org.apache.zookeeper.Watcher.Event.EventType"/>
+      <param name="path" type="java.lang.String"/>
+      <doc>
+      <![CDATA[Return a set of watchers that should be notified of the event. The 
+ manager must not notify the watcher(s), however it will update it's 
+ internal structure as if the watches had triggered. The intent being 
+ that the callee is now responsible for notifying the watchers of the 
+ event, possibly at some later time.
+ 
+ @param state event state
+ @param type event type
+ @param path event path
+ @return]]>
+      </doc>
+    </method>
+  </interface>
+  <!-- end interface org.apache.zookeeper.ClientWatchManager -->
+  <!-- start class org.apache.zookeeper.CreateMode -->
+  <class name="CreateMode" extends="java.lang.Enum"
+    abstract="false"
+    static="false" final="true" visibility="public"
+    deprecated="not deprecated">
+    <method name="values" return="org.apache.zookeeper.CreateMode[]"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="valueOf" return="org.apache.zookeeper.CreateMode"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="name" type="java.lang.String"/>
+    </method>
+    <method name="isEphemeral" return="boolean"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="isSequential" return="boolean"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="toFlag" return="int"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="fromFlag" return="org.apache.zookeeper.CreateMode"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="flag" type="int"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <doc>
+      <![CDATA[Map an integer value to a CreateMode value]]>
+      </doc>
+    </method>
+    <field name="PERSISTENT" type="org.apache.zookeeper.CreateMode"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[The znode will not be automatically deleted upon client's disconnect.]]>
+      </doc>
+    </field>
+    <field name="PERSISTENT_SEQUENTIAL" type="org.apache.zookeeper.CreateMode"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[The znode will not be automatically deleted upon client's disconnect,
+ and its name will be appended with a monotonically increasing number.]]>
+      </doc>
+    </field>
+    <field name="EPHEMERAL" type="org.apache.zookeeper.CreateMode"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[The znode will be deleted upon the client's disconnect.]]>
+      </doc>
+    </field>
+    <field name="EPHEMERAL_SEQUENTIAL" type="org.apache.zookeeper.CreateMode"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[The znode will be deleted upon the client's disconnect, and its name
+ will be appended with a monotonically increasing number.]]>
+      </doc>
+    </field>
+    <doc>
+    <![CDATA[CreateMode value determines how the znode is created on ZooKeeper.]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.CreateMode -->
+  <!-- start class org.apache.zookeeper.Environment -->
+  <class name="Environment" extends="java.lang.Object"
+    abstract="false"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="Environment"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <method name="list" return="java.util.List"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="logEnv"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="msg" type="java.lang.String"/>
+      <param name="log" type="org.apache.log4j.Logger"/>
+    </method>
+    <doc>
+    <![CDATA[Provide insight into the runtime environment.]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.Environment -->
+  <!-- start class org.apache.zookeeper.Environment.Entry -->
+  <class name="Environment.Entry" extends="java.lang.Object"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="Environment.Entry" type="java.lang.String, java.lang.String"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <method name="getKey" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="getValue" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="toString" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+  </class>
+  <!-- end class org.apache.zookeeper.Environment.Entry -->
+  <!-- start class org.apache.zookeeper.KeeperException -->
+  <class name="KeeperException" extends="java.lang.Exception"
+    abstract="true"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException" type="org.apache.zookeeper.KeeperException.Code"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <method name="create" return="org.apache.zookeeper.KeeperException"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="code" type="org.apache.zookeeper.KeeperException.Code"/>
+      <param name="path" type="java.lang.String"/>
+      <doc>
+      <![CDATA[All non-specific keeper exceptions should be constructed via
+ this factory method in order to guarantee consistency in error
+ codes and such.  If you know the error code, then you should
+ construct the special purpose exception directly.  That will
+ allow you to have the most specific possible declarations of
+ what exceptions might actually be thrown.
+
+ @param code The error code.
+ @param path The ZooKeeper path being operated on.
+ @return The specialized exception, presumably to be thrown by
+  the caller.]]>
+      </doc>
+    </method>
+    <method name="create" return="org.apache.zookeeper.KeeperException"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link #create(Code, String)}
+ instead">
+      <param name="code" type="int"/>
+      <param name="path" type="java.lang.String"/>
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link #create(Code, String)}
+ instead]]>
+      </doc>
+    </method>
+    <method name="create" return="org.apache.zookeeper.KeeperException"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link #create(Code)}
+ instead">
+      <param name="code" type="int"/>
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link #create(Code)}
+ instead]]>
+      </doc>
+    </method>
+    <method name="create" return="org.apache.zookeeper.KeeperException"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="code" type="org.apache.zookeeper.KeeperException.Code"/>
+      <doc>
+      <![CDATA[All non-specific keeper exceptions should be constructed via
+ this factory method in order to guarantee consistency in error
+ codes and such.  If you know the error code, then you should
+ construct the special purpose exception directly.  That will
+ allow you to have the most specific possible declarations of
+ what exceptions might actually be thrown.
+
+ @param code The error code of your new exception.  This will
+ also determine the specific type of the exception that is
+ returned.
+ @return The specialized exception, presumably to be thrown by
+ the caller.]]>
+      </doc>
+    </method>
+    <method name="setCode"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="deprecated in 3.1.0, exceptions should be immutable, this
+ method should not be used">
+      <param name="code" type="int"/>
+      <doc>
+      <![CDATA[Set the code for this exception
+ @param code error code
+ @deprecated deprecated in 3.1.0, exceptions should be immutable, this
+ method should not be used]]>
+      </doc>
+    </method>
+    <method name="getCode" return="int"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link #code()} instead">
+      <doc>
+      <![CDATA[Read the error code for this exception
+ @return the error code for this exception
+ @deprecated deprecated in 3.1.0, use {@link #code()} instead]]>
+      </doc>
+    </method>
+    <method name="code" return="org.apache.zookeeper.KeeperException.Code"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Read the error Code for this exception
+ @return the error Code for this exception]]>
+      </doc>
+    </method>
+    <method name="getPath" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Read the path for this exception
+ @return the path associated with this error, null if none]]>
+      </doc>
+    </method>
+    <method name="getMessage" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException -->
+  <!-- start class org.apache.zookeeper.KeeperException.APIErrorException -->
+  <class name="KeeperException.APIErrorException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.APIErrorException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.APIERROR]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.APIErrorException -->
+  <!-- start class org.apache.zookeeper.KeeperException.AuthFailedException -->
+  <class name="KeeperException.AuthFailedException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.AuthFailedException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.AUTHFAILED]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.AuthFailedException -->
+  <!-- start class org.apache.zookeeper.KeeperException.BadArgumentsException -->
+  <class name="KeeperException.BadArgumentsException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.BadArgumentsException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.BADARGUMENTS]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.BadArgumentsException -->
+  <!-- start class org.apache.zookeeper.KeeperException.BadVersionException -->
+  <class name="KeeperException.BadVersionException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.BadVersionException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.BADVERSION]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.BadVersionException -->
+  <!-- start class org.apache.zookeeper.KeeperException.Code -->
+  <class name="KeeperException.Code" extends="java.lang.Enum"
+    abstract="false"
+    static="true" final="true" visibility="public"
+    deprecated="not deprecated">
+    <implements name="org.apache.zookeeper.KeeperException.CodeDeprecated"/>
+    <method name="values" return="org.apache.zookeeper.KeeperException.Code[]"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="valueOf" return="org.apache.zookeeper.KeeperException.Code"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="name" type="java.lang.String"/>
+    </method>
+    <method name="intValue" return="int"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Get the int value for a particular Code.
+ @return error code as integer]]>
+      </doc>
+    </method>
+    <method name="get" return="org.apache.zookeeper.KeeperException.Code"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="code" type="int"/>
+      <doc>
+      <![CDATA[Get the Code value for a particular integer error code
+ @param code int error code
+ @return Code value corresponding to specified int code, or null]]>
+      </doc>
+    </method>
+    <field name="OK" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Everything is OK]]>
+      </doc>
+    </field>
+    <field name="SYSTEMERROR" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[System and server-side errors.
+ This is never thrown by the server, it shouldn't be used other than
+ to indicate a range. Specifically error codes greater than this
+ value, but lesser than {@link #APIERROR}, are system errors.]]>
+      </doc>
+    </field>
+    <field name="RUNTIMEINCONSISTENCY" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[A runtime inconsistency was found]]>
+      </doc>
+    </field>
+    <field name="DATAINCONSISTENCY" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[A data inconsistency was found]]>
+      </doc>
+    </field>
+    <field name="CONNECTIONLOSS" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Connection to the server has been lost]]>
+      </doc>
+    </field>
+    <field name="MARSHALLINGERROR" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Error while marshalling or unmarshalling data]]>
+      </doc>
+    </field>
+    <field name="UNIMPLEMENTED" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Operation is unimplemented]]>
+      </doc>
+    </field>
+    <field name="OPERATIONTIMEOUT" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Operation timeout]]>
+      </doc>
+    </field>
+    <field name="BADARGUMENTS" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Invalid arguments]]>
+      </doc>
+    </field>
+    <field name="APIERROR" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[API errors.
+ This is never thrown by the server, it shouldn't be used other than
+ to indicate a range. Specifically error codes greater than this
+ value are API errors (while values less than this indicate a
+ {@link #SYSTEMERROR}).]]>
+      </doc>
+    </field>
+    <field name="NONODE" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Node does not exist]]>
+      </doc>
+    </field>
+    <field name="NOAUTH" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Not authenticated]]>
+      </doc>
+    </field>
+    <field name="BADVERSION" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Version conflict]]>
+      </doc>
+    </field>
+    <field name="NOCHILDRENFOREPHEMERALS" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Ephemeral nodes may not have children]]>
+      </doc>
+    </field>
+    <field name="NODEEXISTS" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[The node already exists]]>
+      </doc>
+    </field>
+    <field name="NOTEMPTY" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[The node has children]]>
+      </doc>
+    </field>
+    <field name="SESSIONEXPIRED" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[The session has been expired by the server]]>
+      </doc>
+    </field>
+    <field name="INVALIDCALLBACK" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Invalid callback specified]]>
+      </doc>
+    </field>
+    <field name="INVALIDACL" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Invalid ACL specified]]>
+      </doc>
+    </field>
+    <field name="AUTHFAILED" type="org.apache.zookeeper.KeeperException.Code"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Client authentication failed]]>
+      </doc>
+    </field>
+    <doc>
+    <![CDATA[Codes which represent the various KeeperException
+ types. This enum replaces the deprecated earlier static final int
+ constants. The old, deprecated, values are in "camel case" while the new
+ enum values are in all CAPS.]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.Code -->
+  <!-- start interface org.apache.zookeeper.KeeperException.CodeDeprecated -->
+  <interface name="KeeperException.CodeDeprecated"    abstract="true"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <field name="Ok" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#OK} instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#OK} instead]]>
+      </doc>
+    </field>
+    <field name="SystemError" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#SYSTEMERROR} instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#SYSTEMERROR} instead]]>
+      </doc>
+    </field>
+    <field name="RuntimeInconsistency" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use
+ {@link Code#RUNTIMEINCONSISTENCY} instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use
+ {@link Code#RUNTIMEINCONSISTENCY} instead]]>
+      </doc>
+    </field>
+    <field name="DataInconsistency" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#DATAINCONSISTENCY}
+ instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#DATAINCONSISTENCY}
+ instead]]>
+      </doc>
+    </field>
+    <field name="ConnectionLoss" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#CONNECTIONLOSS}
+ instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#CONNECTIONLOSS}
+ instead]]>
+      </doc>
+    </field>
+    <field name="MarshallingError" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#MARSHALLINGERROR}
+ instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#MARSHALLINGERROR}
+ instead]]>
+      </doc>
+    </field>
+    <field name="Unimplemented" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#UNIMPLEMENTED}
+ instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#UNIMPLEMENTED}
+ instead]]>
+      </doc>
+    </field>
+    <field name="OperationTimeout" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#OPERATIONTIMEOUT}
+ instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#OPERATIONTIMEOUT}
+ instead]]>
+      </doc>
+    </field>
+    <field name="BadArguments" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#BADARGUMENTS}
+ instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#BADARGUMENTS}
+ instead]]>
+      </doc>
+    </field>
+    <field name="APIError" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#APIERROR} instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#APIERROR} instead]]>
+      </doc>
+    </field>
+    <field name="NoNode" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#NONODE} instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#NONODE} instead]]>
+      </doc>
+    </field>
+    <field name="NoAuth" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#NOAUTH} instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#NOAUTH} instead]]>
+      </doc>
+    </field>
+    <field name="BadVersion" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#BADVERSION} instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#BADVERSION} instead]]>
+      </doc>
+    </field>
+    <field name="NoChildrenForEphemerals" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use
+ {@link Code#NOCHILDRENFOREPHEMERALS}
+ instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use
+ {@link Code#NOCHILDRENFOREPHEMERALS}
+ instead]]>
+      </doc>
+    </field>
+    <field name="NodeExists" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#NODEEXISTS} instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#NODEEXISTS} instead]]>
+      </doc>
+    </field>
+    <field name="NotEmpty" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#NOTEMPTY} instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#NOTEMPTY} instead]]>
+      </doc>
+    </field>
+    <field name="SessionExpired" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#SESSIONEXPIRED} instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#SESSIONEXPIRED} instead]]>
+      </doc>
+    </field>
+    <field name="InvalidCallback" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#INVALIDCALLBACK}
+ instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#INVALIDCALLBACK}
+ instead]]>
+      </doc>
+    </field>
+    <field name="InvalidACL" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#INVALIDACL} instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#INVALIDACL} instead]]>
+      </doc>
+    </field>
+    <field name="AuthFailed" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="deprecated in 3.1.0, use {@link Code#AUTHFAILED} instead">
+      <doc>
+      <![CDATA[@deprecated deprecated in 3.1.0, use {@link Code#AUTHFAILED} instead]]>
+      </doc>
+    </field>
+    <doc>
+    <![CDATA[This interface contains the original static final int constants
+ which have now been replaced with an enumeration in Code. Do not
+ reference this class directly, if necessary (legacy code) continue
+ to access the constants through Code.
+ Note: an interface is used here due to the fact that enums cannot
+ reference constants defined within the same enum as said constants
+ are considered initialized _after_ the enum itself. By using an
+ interface as a super type this allows the deprecated constants to
+ be initialized first and referenced when constructing the enums. I
+ didn't want to have constants declared twice. This
+ interface should be private, but it's declared public to enable
+ javadoc to include in the user API spec.]]>
+    </doc>
+  </interface>
+  <!-- end interface org.apache.zookeeper.KeeperException.CodeDeprecated -->
+  <!-- start class org.apache.zookeeper.KeeperException.ConnectionLossException -->
+  <class name="KeeperException.ConnectionLossException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.ConnectionLossException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.CONNECTIONLOSS]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.ConnectionLossException -->
+  <!-- start class org.apache.zookeeper.KeeperException.DataInconsistencyException -->
+  <class name="KeeperException.DataInconsistencyException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.DataInconsistencyException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.DATAINCONSISTENCY]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.DataInconsistencyException -->
+  <!-- start class org.apache.zookeeper.KeeperException.InvalidACLException -->
+  <class name="KeeperException.InvalidACLException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.InvalidACLException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.INVALIDACL]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.InvalidACLException -->
+  <!-- start class org.apache.zookeeper.KeeperException.InvalidCallbackException -->
+  <class name="KeeperException.InvalidCallbackException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.InvalidCallbackException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.INVALIDCALLBACK]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.InvalidCallbackException -->
+  <!-- start class org.apache.zookeeper.KeeperException.MarshallingErrorException -->
+  <class name="KeeperException.MarshallingErrorException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.MarshallingErrorException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.MARSHALLINGERROR]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.MarshallingErrorException -->
+  <!-- start class org.apache.zookeeper.KeeperException.NoAuthException -->
+  <class name="KeeperException.NoAuthException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.NoAuthException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.NOAUTH]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.NoAuthException -->
+  <!-- start class org.apache.zookeeper.KeeperException.NoChildrenForEphemeralsException -->
+  <class name="KeeperException.NoChildrenForEphemeralsException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.NoChildrenForEphemeralsException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.NOCHILDRENFOREPHEMERALS]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.NoChildrenForEphemeralsException -->
+  <!-- start class org.apache.zookeeper.KeeperException.NodeExistsException -->
+  <class name="KeeperException.NodeExistsException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.NodeExistsException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.NODEEXISTS]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.NodeExistsException -->
+  <!-- start class org.apache.zookeeper.KeeperException.NoNodeException -->
+  <class name="KeeperException.NoNodeException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.NoNodeException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.NONODE]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.NoNodeException -->
+  <!-- start class org.apache.zookeeper.KeeperException.NotEmptyException -->
+  <class name="KeeperException.NotEmptyException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.NotEmptyException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.NOTEMPTY]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.NotEmptyException -->
+  <!-- start class org.apache.zookeeper.KeeperException.OperationTimeoutException -->
+  <class name="KeeperException.OperationTimeoutException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.OperationTimeoutException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.OPERATIONTIMEOUT]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.OperationTimeoutException -->
+  <!-- start class org.apache.zookeeper.KeeperException.RuntimeInconsistencyException -->
+  <class name="KeeperException.RuntimeInconsistencyException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.RuntimeInconsistencyException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.RUNTIMEINCONSISTENCY]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.RuntimeInconsistencyException -->
+  <!-- start class org.apache.zookeeper.KeeperException.SessionExpiredException -->
+  <class name="KeeperException.SessionExpiredException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.SessionExpiredException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.SESSIONEXPIRED]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.SessionExpiredException -->
+  <!-- start class org.apache.zookeeper.KeeperException.SystemErrorException -->
+  <class name="KeeperException.SystemErrorException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.SystemErrorException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.SYSTEMERROR]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.SystemErrorException -->
+  <!-- start class org.apache.zookeeper.KeeperException.UnimplementedException -->
+  <class name="KeeperException.UnimplementedException" extends="org.apache.zookeeper.KeeperException"
+    abstract="false"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="KeeperException.UnimplementedException"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <doc>
+    <![CDATA[@see Code.UNIMPLEMENTED]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.KeeperException.UnimplementedException -->
+  <!-- start class org.apache.zookeeper.Quotas -->
+  <class name="Quotas" extends="java.lang.Object"
+    abstract="false"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="Quotas"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <method name="quotaPath" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <doc>
+      <![CDATA[return the quota path associated with this
+ prefix
+ @param path the actual path in zookeeper.
+ @return the limit quota path]]>
+      </doc>
+    </method>
+    <method name="statPath" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <doc>
+      <![CDATA[return the stat quota path associated with this
+ prefix.
+ @param path the actual path in zookeeper
+ @return the stat quota path]]>
+      </doc>
+    </method>
+    <field name="procZookeeper" type="java.lang.String"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[the zookeeper nodes that acts as the management and status node]]>
+      </doc>
+    </field>
+    <field name="quotaZookeeper" type="java.lang.String"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[the zookeeper quota node that acts as the quota
+ management node for zookeeper]]>
+      </doc>
+    </field>
+    <field name="limitNode" type="java.lang.String"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[the limit node that has the limit of
+ a subtree]]>
+      </doc>
+    </field>
+    <field name="statNode" type="java.lang.String"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[the stat node that monitors the limit of
+ a subtree.]]>
+      </doc>
+    </field>
+    <doc>
+    <![CDATA[this class manages quotas
+ and has many other utils
+ for quota]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.Quotas -->
+  <!-- start class org.apache.zookeeper.ServerAdminClient -->
+  <class name="ServerAdminClient" extends="java.lang.Object"
+    abstract="false"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="ServerAdminClient"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <method name="ruok"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="host" type="java.lang.String"/>
+      <param name="port" type="int"/>
+    </method>
+    <method name="dump"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="host" type="java.lang.String"/>
+      <param name="port" type="int"/>
+    </method>
+    <method name="stat"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="host" type="java.lang.String"/>
+      <param name="port" type="int"/>
+    </method>
+    <method name="kill"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="host" type="java.lang.String"/>
+      <param name="port" type="int"/>
+    </method>
+    <method name="setTraceMask"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="host" type="java.lang.String"/>
+      <param name="port" type="int"/>
+      <param name="traceMaskStr" type="java.lang.String"/>
+    </method>
+    <method name="getTraceMask"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="host" type="java.lang.String"/>
+      <param name="port" type="int"/>
+    </method>
+    <method name="main"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="args" type="java.lang.String[]"/>
+    </method>
+  </class>
+  <!-- end class org.apache.zookeeper.ServerAdminClient -->
+  <!-- start class org.apache.zookeeper.StatsTrack -->
+  <class name="StatsTrack" extends="java.lang.Object"
+    abstract="false"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="StatsTrack"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[a default constructor for
+ stats]]>
+      </doc>
+    </constructor>
+    <constructor name="StatsTrack" type="java.lang.String"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[the stat string should be of the form count=int,bytes=long
+ if stats is called with null the count and bytes are initialized
+ to -1.
+ @param stats the stat string to be intialized with]]>
+      </doc>
+    </constructor>
+    <method name="getCount" return="int"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[get the count of nodes allowed as part of quota
+
+ @return the count as part of this string]]>
+      </doc>
+    </method>
+    <method name="setCount"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="count" type="int"/>
+      <doc>
+      <![CDATA[set the count for this stat tracker.
+
+ @param count
+            the count to set with]]>
+      </doc>
+    </method>
+    <method name="getBytes" return="long"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[get the count of bytes allowed as part of quota
+
+ @return the bytes as part of this string]]>
+      </doc>
+    </method>
+    <method name="setBytes"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="bytes" type="long"/>
+      <doc>
+      <![CDATA[set teh bytes for this stat tracker.
+
+ @param bytes
+            the bytes to set with]]>
+      </doc>
+    </method>
+    <method name="toString" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <doc>
+    <![CDATA[a class that represents the stats associated with quotas]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.StatsTrack -->
+  <!-- start class org.apache.zookeeper.Version -->
+  <class name="Version" extends="java.lang.Object"
+    abstract="false"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <implements name="org.apache.zookeeper.version.Info"/>
+    <constructor name="Version"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <method name="getRevision" return="int"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="getBuildDate" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="getVersion" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="getVersionRevision" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="getFullVersion" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="printUsage"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="main"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="args" type="java.lang.String[]"/>
+      <doc>
+      <![CDATA[Prints the current version, revision and build date to the standard out.
+ 
+ @param args
+            <ul>
+            <li> --short - prints a short version string "1.2.3"
+            <li> --revision - prints a short version string with the SVN
+            repository revision "1.2.3-94"
+            <li> --full - prints the revision and the build date
+            </ul>]]>
+      </doc>
+    </method>
+  </class>
+  <!-- end class org.apache.zookeeper.Version -->
+  <!-- start class org.apache.zookeeper.WatchedEvent -->
+  <class name="WatchedEvent" extends="java.lang.Object"
+    abstract="false"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="WatchedEvent" type="org.apache.zookeeper.Watcher.Event.EventType, org.apache.zookeeper.Watcher.Event.KeeperState, java.lang.String"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Create a WatchedEvent with specified type, state and path]]>
+      </doc>
+    </constructor>
+    <constructor name="WatchedEvent" type="org.apache.zookeeper.proto.WatcherEvent"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Convert a WatcherEvent sent over the wire into a full-fledged WatcherEvent]]>
+      </doc>
+    </constructor>
+    <method name="getState" return="org.apache.zookeeper.Watcher.Event.KeeperState"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="getType" return="org.apache.zookeeper.Watcher.Event.EventType"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="getPath" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="toString" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="getWrapper" return="org.apache.zookeeper.proto.WatcherEvent"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Convert WatchedEvent to type that can be sent over network]]>
+      </doc>
+    </method>
+    <doc>
+    <![CDATA[A WatchedEvent represents a change on the ZooKeeper that a Watcher
+  is able to respond to.  The WatchedEvent includes exactly what happened,
+  the current state of the ZooKeeper, and the path of the znode that
+  was involved in the event.]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.WatchedEvent -->
+  <!-- start interface org.apache.zookeeper.Watcher -->
+  <interface name="Watcher"    abstract="true"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <method name="process"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="event" type="org.apache.zookeeper.WatchedEvent"/>
+    </method>
+    <doc>
+    <![CDATA[This interface specifies the public interface an event handler class must
+ implement. A ZooKeeper client will get various events from the ZooKeepr
+ server it connects to. An application using such a client handles these
+ events by registering a callback object with the client. The callback object
+ is expected to be an instance of a class that implements Watcher interface.]]>
+    </doc>
+  </interface>
+  <!-- end interface org.apache.zookeeper.Watcher -->
+  <!-- start interface org.apache.zookeeper.Watcher.Event -->
+  <interface name="Watcher.Event"    abstract="true"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <doc>
+    <![CDATA[This interface defines the possible states an Event may represent]]>
+    </doc>
+  </interface>
+  <!-- end interface org.apache.zookeeper.Watcher.Event -->
+  <!-- start class org.apache.zookeeper.Watcher.Event.EventType -->
+  <class name="Watcher.Event.EventType" extends="java.lang.Enum"
+    abstract="false"
+    static="true" final="true" visibility="public"
+    deprecated="not deprecated">
+    <method name="values" return="org.apache.zookeeper.Watcher.Event.EventType[]"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="valueOf" return="org.apache.zookeeper.Watcher.Event.EventType"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="name" type="java.lang.String"/>
+    </method>
+    <method name="getIntValue" return="int"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="fromInt" return="org.apache.zookeeper.Watcher.Event.EventType"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="intValue" type="int"/>
+    </method>
+    <field name="None" type="org.apache.zookeeper.Watcher.Event.EventType"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="NodeCreated" type="org.apache.zookeeper.Watcher.Event.EventType"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="NodeDeleted" type="org.apache.zookeeper.Watcher.Event.EventType"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="NodeDataChanged" type="org.apache.zookeeper.Watcher.Event.EventType"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="NodeChildrenChanged" type="org.apache.zookeeper.Watcher.Event.EventType"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <doc>
+    <![CDATA[Enumeration of types of events that may occur on the ZooKeeper]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.Watcher.Event.EventType -->
+  <!-- start class org.apache.zookeeper.Watcher.Event.KeeperState -->
+  <class name="Watcher.Event.KeeperState" extends="java.lang.Enum"
+    abstract="false"
+    static="true" final="true" visibility="public"
+    deprecated="not deprecated">
+    <method name="values" return="org.apache.zookeeper.Watcher.Event.KeeperState[]"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="valueOf" return="org.apache.zookeeper.Watcher.Event.KeeperState"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="name" type="java.lang.String"/>
+    </method>
+    <method name="getIntValue" return="int"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="fromInt" return="org.apache.zookeeper.Watcher.Event.KeeperState"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="intValue" type="int"/>
+    </method>
+    <field name="Unknown" type="org.apache.zookeeper.Watcher.Event.KeeperState"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Unused, this state is never generated by the server]]>
+      </doc>
+    </field>
+    <field name="Disconnected" type="org.apache.zookeeper.Watcher.Event.KeeperState"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[The client is in the disconnected state - it is not connected
+ to any server in the ensemble.]]>
+      </doc>
+    </field>
+    <field name="NoSyncConnected" type="org.apache.zookeeper.Watcher.Event.KeeperState"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Unused, this state is never generated by the server]]>
+      </doc>
+    </field>
+    <field name="SyncConnected" type="org.apache.zookeeper.Watcher.Event.KeeperState"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[The client is in the connected state - it is connected
+ to a server in the ensemble (one of the servers specified
+ in the host connection parameter during ZooKeeper client
+ creation).]]>
+      </doc>
+    </field>
+    <field name="Expired" type="org.apache.zookeeper.Watcher.Event.KeeperState"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[The serving cluster has expired this session. The ZooKeeper
+ client connection (the session) is no longer valid. You must
+ create a new client connection (instantiate a new ZooKeeper
+ instance) if you with to access the ensemble.]]>
+      </doc>
+    </field>
+    <doc>
+    <![CDATA[Enumeration of states the ZooKeeper may be at the event]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.Watcher.Event.KeeperState -->
+  <!-- start class org.apache.zookeeper.ZooDefs -->
+  <class name="ZooDefs" extends="java.lang.Object"
+    abstract="false"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="ZooDefs"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <field name="opNames" type="java.lang.String[]"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+  </class>
+  <!-- end class org.apache.zookeeper.ZooDefs -->
+  <!-- start interface org.apache.zookeeper.ZooDefs.Ids -->
+  <interface name="ZooDefs.Ids"    abstract="true"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <field name="ANYONE_ID_UNSAFE" type="org.apache.zookeeper.data.Id"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[This Id represents anyone.]]>
+      </doc>
+    </field>
+    <field name="AUTH_IDS" type="org.apache.zookeeper.data.Id"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[This Id is only usable to set ACLs. It will get substituted with the
+ Id's the client authenticated with.]]>
+      </doc>
+    </field>
+    <field name="OPEN_ACL_UNSAFE" type="java.util.ArrayList"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[This is a completely open ACL with the exception of ADMIN permission.]]>
+      </doc>
+    </field>
+    <field name="CREATOR_ALL_ACL" type="java.util.ArrayList"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[This ACL gives the creators authentication id's all permissions.]]>
+      </doc>
+    </field>
+    <field name="READ_ACL_UNSAFE" type="java.util.ArrayList"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[This ACL gives the world the ability to read.]]>
+      </doc>
+    </field>
+  </interface>
+  <!-- end interface org.apache.zookeeper.ZooDefs.Ids -->
+  <!-- start interface org.apache.zookeeper.ZooDefs.OpCode -->
+  <interface name="ZooDefs.OpCode"    abstract="true"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <field name="notification" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="create" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="delete" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="exists" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="getData" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="setData" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="getACL" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="setACL" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="getChildren" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="sync" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="ping" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="auth" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="setWatches" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="createSession" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="closeSession" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="error" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+  </interface>
+  <!-- end interface org.apache.zookeeper.ZooDefs.OpCode -->
+  <!-- start interface org.apache.zookeeper.ZooDefs.Perms -->
+  <interface name="ZooDefs.Perms"    abstract="true"
+    static="true" final="false" visibility="public"
+    deprecated="not deprecated">
+    <field name="READ" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="WRITE" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="CREATE" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="DELETE" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="ADMIN" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="ALL" type="int"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+  </interface>
+  <!-- end interface org.apache.zookeeper.ZooDefs.Perms -->
+  <!-- start class org.apache.zookeeper.ZooKeeper -->
+  <class name="ZooKeeper" extends="java.lang.Object"
+    abstract="false"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="ZooKeeper" type="java.lang.String, int, org.apache.zookeeper.Watcher"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <exception name="IOException" type="java.io.IOException"/>
+      <doc>
+      <![CDATA[To create a client(ZooKeeper) object, the application needs to pass a
+ string containing a comma separated list of host:port pairs, each 
+ corresponding to a ZooKeeper server.
+ <p>
+ The client object will pick an arbitrary server and try to connect to it.
+ If failed, it will try the next one in the list, until a connection is
+ established, or all the servers have been tried.
+
+ @param host
+            comma separated host:port pairs, each corresponding to a zk
+            server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"
+ @param sessionTimeout
+            session timeout in milliseconds
+ @param watcher
+            a watcher object which will be notified of state changes, may
+            also be notified for node events
+
+ @throws IOException in cases of network failure]]>
+      </doc>
+    </constructor>
+    <constructor name="ZooKeeper" type="java.lang.String, int, org.apache.zookeeper.Watcher, long, byte[]"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <exception name="IOException" type="java.io.IOException"/>
+      <doc>
+      <![CDATA[To create a client(ZooKeeper) object, the application needs to pass a
+ string containing a comma separated list of host:port pairs, each
+ corresponding to a ZooKeeper server.
+ <p>
+ The client object will pick an arbitrary server and try to connect to it.
+ If failed, it will try the next one in the list, until a connection is
+ established, or all the servers have been tried.
+ <p>
+ Use {@link #getSessionId} and {@link #getSessionPasswd} on an established
+ client connection, these values must be passed as sessionId and
+ sessionPasswd respectively if reconnecting. Otherwise, if not
+ reconnecting, use the other constructor which does not require these
+ parameters.
+
+ @param host
+            comma separated host:port pairs, each corresponding to a zk
+            server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"
+ @param sessionTimeout
+            session timeout in milliseconds
+ @param watcher
+            a watcher object which will be notified of state changes, may
+            also be notified for node events
+ @param sessionId
+            specific session id to use if reconnecting
+ @param sessionPasswd
+            password for this session
+
+ @throws IOException in cases of network failure]]>
+      </doc>
+    </constructor>
+    <method name="getSessionId" return="long"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[The session id for this ZooKeeper client instance. The value returned is
+ not valid until the client connects to a server and may change after a
+ re-connect.
+
+ @return current session id]]>
+      </doc>
+    </method>
+    <method name="getSessionPasswd" return="byte[]"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[The session password for this ZooKeeper client instance. The value
+ returned is not valid until the client connects to a server and may
+ change after a re-connect.
+
+ @return current session password]]>
+      </doc>
+    </method>
+    <method name="addAuthInfo"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="scheme" type="java.lang.String"/>
+      <param name="auth" type="byte[]"/>
+    </method>
+    <method name="register"
+      abstract="false" native="false" synchronized="true"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="watcher" type="org.apache.zookeeper.Watcher"/>
+    </method>
+    <method name="close"
+      abstract="false" native="false" synchronized="true"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[Close this client object. Once the client is closed, its session becomes
+ invalid. All the ephemeral nodes in the ZooKeeper server associated with
+ the session will be removed. The watches left on those nodes (and on
+ their parents) will be triggered.
+
+ @throws InterruptedException
+
+ @throws IOException
+ @throws InterruptedException]]>
+      </doc>
+    </method>
+    <method name="create" return="java.lang.String"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="data" type="byte[]"/>
+      <param name="acl" type="java.util.List"/>
+      <param name="createMode" type="org.apache.zookeeper.CreateMode"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[Create a node with the given path. The node data will be the given data,
+ and node acl will be the given acl.
+ <p>
+ The flags argument specifies whether the created node will be ephemeral
+ or not.
+ <p>
+ An ephemeral node will be removed by the ZooKeeper automatically when the
+ session associated with the creation of the node expires.
+ <p>
+ The flags argument can also specify to create a sequential node. The
+ actual path name of a sequential node will be the given path plus a
+ suffix "_i" where i is the current sequential number of the node. Once
+ such a node is created, the sequential number will be incremented by one.
+ <p>
+ If a node with the same actual path already exists in the ZooKeeper, a
+ KeeperException with error code KeeperException.NodeExists will be
+ thrown. Note that since a different actual path is used for each
+ invocation of creating sequential node with the same path argument, the
+ call will never throw "file exists" KeeperException.
+ <p>
+ If the parent node does not exist in the ZooKeeper, a KeeperException
+ with error code KeeperException.NoNode will be thrown.
+ <p>
+ An ephemeral node cannot have children. If the parent node of the given
+ path is ephemeral, a KeeperException with error code
+ KeeperException.NoChildrenForEphemerals will be thrown.
+ <p>
+ This operation, if successful, will trigger all the watches left on the
+ node of the given path by exists and getData API calls, and the watches
+ left on the parent node by getChildren API calls.
+ <p>
+ If a node is created successfully, the ZooKeeper server will trigger the
+ watches on the path left by exists calls, and the watches on the parent
+ of the node by getChildren calls.
+ <p>
+ The maximum allowable size of the data array is 1 MB (1,048,576 bytes).
+ Arrays larger than this will cause a KeeperExecption to be thrown.
+
+ @param path
+                the path for the node
+ @param data
+                the initial data for the node
+ @param acl
+                the acl for the node
+ @param flags
+                specifying whether the node to be created is ephemeral
+                and/or sequential
+ @return the actual path of the created node
+ @throws KeeperException if the server returns a non-zero error code
+ @throws org.apache.zookeeper.KeeperException.InvalidACLException if the ACL is invalid
+ @throws InterruptedException if the transaction is interrupted
+ @throws IllegalArgumentException if an invalid path is specified]]>
+      </doc>
+    </method>
+    <method name="validatePath"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <exception name="IllegalArgumentException" type="java.lang.IllegalArgumentException"/>
+      <doc>
+      <![CDATA[Validate the provided znode path string
+ @param path znode path string
+ @throws IllegalArgumentException if the path is invalid]]>
+      </doc>
+    </method>
+    <method name="create"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="data" type="byte[]"/>
+      <param name="acl" type="java.util.List"/>
+      <param name="createMode" type="org.apache.zookeeper.CreateMode"/>
+      <param name="cb" type="org.apache.zookeeper.AsyncCallback.StringCallback"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <doc>
+      <![CDATA[The Asynchronous version of create. The request doesn't actually until
+ the asynchronous callback is called.
+
+ @see #create(String, byte[], List<ACL>, CreateMode)]]>
+      </doc>
+    </method>
+    <method name="delete"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="version" type="int"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <doc>
+      <![CDATA[Delete the node with the given path. The call will succeed if such a node
+ exists, and the given version matches the node's version (if the given
+ version is -1, it matches any node's versions).
+ <p>
+ A KeeperException with error code KeeperException.NoNode will be thrown
+ if the nodes does not exist.
+ <p>
+ A KeeperException with error code KeeperException.BadVersion will be
+ thrown if the given version does not match the node's version.
+ <p>
+ A KeeperException with error code KeeperException.NotEmpty will be thrown
+ if the node has children.
+ <p>
+ This operation, if successful, will trigger all the watches on the node
+ of the given path left by exists API calls, and the watches on the parent
+ node left by getChildren API calls.
+
+ @param path
+                the path of the node to be deleted.
+ @param version
+                the expected node version.
+ @throws InterruptedException IF the server transaction is interrupted
+ @throws KeeperException If the server signals an error with a non-zero return code.
+ @throws IllegalArgumentException if an invalid path is specified]]>
+      </doc>
+    </method>
+    <method name="delete"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="version" type="int"/>
+      <param name="cb" type="org.apache.zookeeper.AsyncCallback.VoidCallback"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <doc>
+      <![CDATA[The Asynchronous version of delete. The request doesn't actually until
+ the asynchronous callback is called.
+
+ @see #delete(String, int)]]>
+      </doc>
+    </method>
+    <method name="exists" return="org.apache.zookeeper.data.Stat"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="watcher" type="org.apache.zookeeper.Watcher"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[Return the stat of the node of the given path. Return null if no such a
+ node exists.
+ <p>
+ If the watch is non-null and the call is successful (no exception is thrown),
+ a watch will be left on the node with the given path. The watch will be
+ triggered by a successful operation that creates/delete the node or sets
+ the data on the node.
+
+ @param path the node path
+ @param watcher explicit watcher
+ @return the stat of the node of the given path; return null if no such a
+         node exists.
+ @throws KeeperException If the server signals an error
+ @throws InterruptedException If the server transaction is interrupted.
+ @throws IllegalArgumentException if an invalid path is specified]]>
+      </doc>
+    </method>
+    <method name="exists" return="org.apache.zookeeper.data.Stat"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="watch" type="boolean"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[Return the stat of the node of the given path. Return null if no such a
+ node exists.
+ <p>
+ If the watch is true and the call is successful (no exception is thrown),
+ a watch will be left on the node with the given path. The watch will be
+ triggered by a successful operation that creates/delete the node or sets
+ the data on the node.
+
+ @param path
+                the node path
+ @param watch
+                whether need to watch this node
+ @return the stat of the node of the given path; return null if no such a
+         node exists.
+ @throws KeeperException If the server signals an error
+ @throws InterruptedException If the server transaction is interrupted.]]>
+      </doc>
+    </method>
+    <method name="exists"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="watcher" type="org.apache.zookeeper.Watcher"/>
+      <param name="cb" type="org.apache.zookeeper.AsyncCallback.StatCallback"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <doc>
+      <![CDATA[The Asynchronous version of exists. The request doesn't actually until
+ the asynchronous callback is called.
+
+ @see #exists(String, boolean)]]>
+      </doc>
+    </method>
+    <method name="exists"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="watch" type="boolean"/>
+      <param name="cb" type="org.apache.zookeeper.AsyncCallback.StatCallback"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <doc>
+      <![CDATA[The Asynchronous version of exists. The request doesn't actually until
+ the asynchronous callback is called.
+
+ @see #exists(String, boolean)]]>
+      </doc>
+    </method>
+    <method name="getData" return="byte[]"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="watcher" type="org.apache.zookeeper.Watcher"/>
+      <param name="stat" type="org.apache.zookeeper.data.Stat"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[Return the data and the stat of the node of the given path.
+ <p>
+ If the watch is non-null and the call is successful (no exception is
+ thrown), a watch will be left on the node with the given path. The watch
+ will be triggered by a successful operation that sets data on the node, or
+ deletes the node.
+ <p>
+ A KeeperException with error code KeeperException.NoNode will be thrown
+ if no node with the given path exists.
+
+ @param path the given path
+ @param watcher explicit watcher
+ @param stat the stat of the node
+ @return the data of the node
+ @throws KeeperException If the server signals an error with a non-zero error code
+ @throws InterruptedException If the server transaction is interrupted.
+ @throws IllegalArgumentException if an invalid path is specified]]>
+      </doc>
+    </method>
+    <method name="getData" return="byte[]"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="watch" type="boolean"/>
+      <param name="stat" type="org.apache.zookeeper.data.Stat"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[Return the data and the stat of the node of the given path.
+ <p>
+ If the watch is true and the call is successful (no exception is
+ thrown), a watch will be left on the node with the given path. The watch
+ will be triggered by a successful operation that sets data on the node, or
+ deletes the node.
+ <p>
+ A KeeperException with error code KeeperException.NoNode will be thrown
+ if no node with the given path exists.
+
+ @param path the given path
+ @param watch whether need to watch this node
+ @param stat the stat of the node
+ @return the data of the node
+ @throws KeeperException If the server signals an error with a non-zero error code
+ @throws InterruptedException If the server transaction is interrupted.]]>
+      </doc>
+    </method>
+    <method name="getData"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="watcher" type="org.apache.zookeeper.Watcher"/>
+      <param name="cb" type="org.apache.zookeeper.AsyncCallback.DataCallback"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <doc>
+      <![CDATA[The Asynchronous version of getData. The request doesn't actually until
+ the asynchronous callback is called.
+
+ @see #getData(String, Watcher, Stat)]]>
+      </doc>
+    </method>
+    <method name="getData"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="watch" type="boolean"/>
+      <param name="cb" type="org.apache.zookeeper.AsyncCallback.DataCallback"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <doc>
+      <![CDATA[The Asynchronous version of getData. The request doesn't actually until
+ the asynchronous callback is called.
+
+ @see #getData(String, boolean, Stat)]]>
+      </doc>
+    </method>
+    <method name="setData" return="org.apache.zookeeper.data.Stat"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="data" type="byte[]"/>
+      <param name="version" type="int"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[Set the data for the node of the given path if such a node exists and the
+ given version matches the version of the node (if the given version is
+ -1, it matches any node's versions). Return the stat of the node.
+ <p>
+ This operation, if successful, will trigger all the watches on the node
+ of the given path left by getData calls.
+ <p>
+ A KeeperException with error code KeeperException.NoNode will be thrown
+ if no node with the given path exists.
+ <p>
+ A KeeperException with error code KeeperException.BadVersion will be
+ thrown if the given version does not match the node's version.
+ <p>
+ The maximum allowable size of the data array is 1 MB (1,048,576 bytes).
+ Arrays larger than this will cause a KeeperExecption to be thrown.
+
+ @param path
+                the path of the node
+ @param data
+                the data to set
+ @param version
+                the expected matching version
+ @return the state of the node
+ @throws InterruptedException If the server transaction is interrupted.
+ @throws KeeperException If the server signals an error with a non-zero error code.
+ @throws IllegalArgumentException if an invalid path is specified]]>
+      </doc>
+    </method>
+    <method name="setData"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="data" type="byte[]"/>
+      <param name="version" type="int"/>
+      <param name="cb" type="org.apache.zookeeper.AsyncCallback.StatCallback"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <doc>
+      <![CDATA[The Asynchronous version of setData. The request doesn't actually until
+ the asynchronous callback is called.
+
+ @see #setData(String, byte[], int)]]>
+      </doc>
+    </method>
+    <method name="getACL" return="java.util.List"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="stat" type="org.apache.zookeeper.data.Stat"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[Return the ACL and stat of the node of the given path.
+ <p>
+ A KeeperException with error code KeeperException.NoNode will be thrown
+ if no node with the given path exists.
+
+ @param path
+                the given path for the node
+ @param stat
+                the stat of the node will be copied to this parameter.
+ @return the ACL array of the given node.
+ @throws InterruptedException If the server transaction is interrupted.
+ @throws KeeperException If the server signals an error with a non-zero error code.
+ @throws IllegalArgumentException if an invalid path is specified]]>
+      </doc>
+    </method>
+    <method name="getACL"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="stat" type="org.apache.zookeeper.data.Stat"/>
+      <param name="cb" type="org.apache.zookeeper.AsyncCallback.ACLCallback"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <doc>
+      <![CDATA[The Asynchronous version of getACL. The request doesn't actually until
+ the asynchronous callback is called.
+
+ @see #getACL(String, Stat)]]>
+      </doc>
+    </method>
+    <method name="setACL" return="org.apache.zookeeper.data.Stat"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="acl" type="java.util.List"/>
+      <param name="version" type="int"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[Set the ACL for the node of the given path if such a node exists and the
+ given version matches the version of the node. Return the stat of the
+ node.
+ <p>
+ A KeeperException with error code KeeperException.NoNode will be thrown
+ if no node with the given path exists.
+ <p>
+ A KeeperException with error code KeeperException.BadVersion will be
+ thrown if the given version does not match the node's version.
+
+ @param path
+ @param acl
+ @param version
+ @return the stat of the node.
+ @throws InterruptedException If the server transaction is interrupted.
+ @throws KeeperException If the server signals an error with a non-zero error code.
+ @throws org.apache.zookeeper.KeeperException.InvalidACLException If the acl is invalide.
+ @throws IllegalArgumentException if an invalid path is specified]]>
+      </doc>
+    </method>
+    <method name="setACL"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="acl" type="java.util.List"/>
+      <param name="version" type="int"/>
+      <param name="cb" type="org.apache.zookeeper.AsyncCallback.StatCallback"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <doc>
+      <![CDATA[The Asynchronous version of setACL. The request doesn't actually until
+ the asynchronous callback is called.
+
+ @see #setACL(String, List, int)]]>
+      </doc>
+    </method>
+    <method name="getChildren" return="java.util.List"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="watcher" type="org.apache.zookeeper.Watcher"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[Return the list of the children of the node of the given path.
+ <p>
+ If the watch is non-null and the call is successful (no exception is thrown),
+ a watch will be left on the node with the given path. The watch willbe
+ triggered by a successful operation that deletes the node of the given
+ path or creates/delete a child under the node.
+ <p>
+ The list of children returned is not sorted and no guarantee is provided
+ as to its natural or lexical order.
+ <p>
+ A KeeperException with error code KeeperException.NoNode will be thrown
+ if no node with the given path exists.
+
+ @param path
+ @param watcher explicit watcher
+ @return an unordered array of children of the node with the given path
+ @throws InterruptedException If the server transaction is interrupted.
+ @throws KeeperException If the server signals an error with a non-zero error code.
+ @throws IllegalArgumentException if an invalid path is specified]]>
+      </doc>
+    </method>
+    <method name="getChildren" return="java.util.List"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="watch" type="boolean"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[Return the list of the children of the node of the given path.
+ <p>
+ If the watch is true and the call is successful (no exception is thrown),
+ a watch will be left on the node with the given path. The watch willbe
+ triggered by a successful operation that deletes the node of the given
+ path or creates/delete a child under the node.
+ <p>
+ The list of children returned is not sorted and no guarantee is provided
+ as to its natural or lexical order.
+ <p>
+ A KeeperException with error code KeeperException.NoNode will be thrown
+ if no node with the given path exists.
+
+ @param path
+ @param watch
+ @return an unordered array of children of the node with the given path
+ @throws InterruptedException If the server transaction is interrupted.
+ @throws KeeperException If the server signals an error with a non-zero error code.]]>
+      </doc>
+    </method>
+    <method name="getChildren"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="watcher" type="org.apache.zookeeper.Watcher"/>
+      <param name="cb" type="org.apache.zookeeper.AsyncCallback.ChildrenCallback"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <doc>
+      <![CDATA[The Asynchronous version of getChildren. The request doesn't actually
+ until the asynchronous callback is called.
+
+ @see #getChildren(String, Watcher)]]>
+      </doc>
+    </method>
+    <method name="getChildren"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="watch" type="boolean"/>
+      <param name="cb" type="org.apache.zookeeper.AsyncCallback.ChildrenCallback"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <doc>
+      <![CDATA[The Asynchronous version of getChildren. The request doesn't actually
+ until the asynchronous callback is called.
+
+ @see #getChildren(String, boolean)]]>
+      </doc>
+    </method>
+    <method name="sync"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="path" type="java.lang.String"/>
+      <param name="cb" type="org.apache.zookeeper.AsyncCallback.VoidCallback"/>
+      <param name="ctx" type="java.lang.Object"/>
+      <doc>
+      <![CDATA[Asynchronous sync. Flushes channel between process and leader.
+ @param path
+ @param cb a handler for the callback
+ @param ctx context to be provided to the callback
+ @throws IllegalArgumentException if an invalid path is specified]]>
+      </doc>
+    </method>
+    <method name="getState" return="org.apache.zookeeper.ZooKeeper.States"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <field name="cnxn" type="org.apache.zookeeper.ClientCnxn"
+      transient="false" volatile="false"
+      static="false" final="true" visibility="protected"
+      deprecated="not deprecated">
+    </field>
+    <doc>
+    <![CDATA[This is the main class of ZooKeeper client library. To use a ZooKeeper
+ service, an application must first instantiate an object of ZooKeeper class.
+ All the iterations will be done by calling the methods of ZooKeeper class.
+ <p>
+ Once a connection to a server is established, a session ID is assigned to the
+ client. The client will send heart beats to the server periodically to keep
+ the session valid.
+ <p>
+ The application can call ZooKeeper APIs through a client as long as the
+ session ID of the client remains valid.
+ <p>
+ If for some reason, the client fails to send heart beats to the server for a
+ prolonged period of time (exceeding the sessionTimeout value, for instance),
+ the server will expire the session, and the session ID will become invalid.
+ The client object will no longer be usable. To make ZooKeeper API calls, the
+ application must create a new client object.
+ <p>
+ If the ZooKeeper server the client currently connects to fails or otherwise
+ does not respond, the client will automatically try to connect to another
+ server before its session ID expires. If successful, the application can
+ continue to use the client.
+ <p>
+ Some successful ZooKeeper API calls can leave watches on the "data nodes" in
+ the ZooKeeper server. Other successful ZooKeeper API calls can trigger those
+ watches. Once a watch is triggered, an event will be delivered to the client
+ which left the watch at the first place. Each watch can be triggered only
+ once. Thus, up to one event will be delivered to a client for every watch it
+ leaves.
+ <p>
+ A client needs an object of a class implementing Watcher interface for
+ processing the events delivered to the client.
+
+ When a client drops current connection and re-connects to a server, all the
+ existing watches are considered as being triggered but the undelivered events
+ are lost. To emulate this, the client will generate a special event to tell
+ the event handler a connection has been dropped. This special event has type
+ EventNone and state sKeeperStateDisconnected.]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.ZooKeeper -->
+  <!-- start class org.apache.zookeeper.ZooKeeper.States -->
+  <class name="ZooKeeper.States" extends="java.lang.Enum"
+    abstract="false"
+    static="true" final="true" visibility="public"
+    deprecated="not deprecated">
+    <method name="values" return="org.apache.zookeeper.ZooKeeper.States[]"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="valueOf" return="org.apache.zookeeper.ZooKeeper.States"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="name" type="java.lang.String"/>
+    </method>
+    <method name="isAlive" return="boolean"
+      abstract="false" native="false" synchronized="false"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <field name="CONNECTING" type="org.apache.zookeeper.ZooKeeper.States"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="ASSOCIATING" type="org.apache.zookeeper.ZooKeeper.States"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="CONNECTED" type="org.apache.zookeeper.ZooKeeper.States"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="CLOSED" type="org.apache.zookeeper.ZooKeeper.States"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+    <field name="AUTH_FAILED" type="org.apache.zookeeper.ZooKeeper.States"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+    </field>
+  </class>
+  <!-- end class org.apache.zookeeper.ZooKeeper.States -->
+  <!-- start class org.apache.zookeeper.ZooKeeperMain -->
+  <class name="ZooKeeperMain" extends="java.lang.Object"
+    abstract="false"
+    static="false" final="false" visibility="public"
+    deprecated="not deprecated">
+    <constructor name="ZooKeeperMain"
+      static="false" final="false" visibility="public"
+      deprecated="not deprecated">
+    </constructor>
+    <method name="main"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="args" type="java.lang.String[]"/>
+      <exception name="NumberFormatException" type="java.lang.NumberFormatException"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="IOException" type="java.io.IOException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+    </method>
+    <method name="delQuota" return="boolean"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="zk" type="org.apache.zookeeper.ZooKeeper"/>
+      <param name="path" type="java.lang.String"/>
+      <param name="bytes" type="boolean"/>
+      <param name="numNodes" type="boolean"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="IOException" type="java.io.IOException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[this method deletes quota for a node.
+ @param zk the zookeeper client
+ @param path the path to delete quota for
+ @param bytes true if number of bytes needs to
+ be unset
+ @param numNodes true if number of nodes needs 
+ to be unset
+ @return true if quota deletion is successful
+ @throws KeeperException
+ @throws IOException
+ @throws InterruptedException]]>
+      </doc>
+    </method>
+    <method name="createQuota" return="boolean"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="zk" type="org.apache.zookeeper.ZooKeeper"/>
+      <param name="path" type="java.lang.String"/>
+      <param name="bytes" type="long"/>
+      <param name="numNodes" type="int"/>
+      <exception name="KeeperException" type="org.apache.zookeeper.KeeperException"/>
+      <exception name="IOException" type="java.io.IOException"/>
+      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
+      <doc>
+      <![CDATA[this method creates a quota node for the path
+ @param zk the ZooKeeper client
+ @param path the path for which quota needs to be created
+ @param bytes the limit of bytes on this path
+ @param numNodes the limit of number of nodes on this path
+ @return true if its successful and false if not.]]>
+      </doc>
+    </method>
+    <doc>
+    <![CDATA[The command line client to ZooKeeper.]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.zookeeper.ZooKeeperMain -->
+</package>
+
+</api>