ZOOKEEPER-3155: Remove Forrest XMLs and their build process from the …

…project (branch 3.4)

In this commit I've removed the forrest XML files and their result from the 
repository.
I've also removed the process to generate HTML and PDF files from the forrest 
files, since it's not needed anymore.

It also effects the test-github-pr.sh and test-patch.sh, since we do have less 
parameters for them (FORREST_HOME).

Change-Id: I30ecdb181f19eed05d86838b12c75e0c03e33710

Author: Tamas Penzes <[email protected]>

Reviewers: [email protected]

Closes #698 from tamaashu/ZOOKEEPER-3155-3.4


Project: http://git-wip-us.apache.org/repos/asf/zookeeper/repo
Commit: http://git-wip-us.apache.org/repos/asf/zookeeper/commit/cf24deb2
Tree: http://git-wip-us.apache.org/repos/asf/zookeeper/tree/cf24deb2
Diff: http://git-wip-us.apache.org/repos/asf/zookeeper/diff/cf24deb2

Branch: refs/heads/branch-3.4
Commit: cf24deb2def2d8264150f1e3fd94adbfb0018b4b
Parents: bb90e9e
Author: Tamas Penzes <[email protected]>
Authored: Fri Nov 9 16:09:58 2018 -0800
Committer: Andor Molnar <[email protected]>
Committed: Fri Nov 9 16:09:58 2018 -0800

----------------------------------------------------------------------
 build.xml                                       |   29 +-
 docs/bookkeeperConfig.html                      |  384 ---
 docs/bookkeeperConfig.pdf                       |  Bin 13793 -> 0 bytes
 docs/bookkeeperOverview.html                    |  694 ------
 docs/bookkeeperOverview.pdf                     |  Bin 147554 -> 0 bytes
 docs/bookkeeperProgrammer.html                  | 1083 ---------
 docs/bookkeeperProgrammer.pdf                   |  Bin 24945 -> 0 bytes
 docs/bookkeeperStarted.html                     |  448 ----
 docs/bookkeeperStarted.pdf                      |  Bin 17103 -> 0 bytes
 docs/bookkeeperStream.html                      |  612 -----
 docs/bookkeeperStream.pdf                       |  Bin 13188 -> 0 bytes
 docs/broken-links.xml                           |    2 -
 docs/images/2pc.jpg                             |  Bin 15174 -> 0 bytes
 docs/images/bk-overview.jpg                     |  Bin 124211 -> 0 bytes
 docs/images/built-with-forrest-button.png       |  Bin 1936 -> 0 bytes
 docs/images/favicon.ico                         |  Bin 766 -> 0 bytes
 docs/images/hadoop-logo.jpg                     |  Bin 9443 -> 0 bytes
 docs/images/instruction_arrow.png               |  Bin 285 -> 0 bytes
 docs/images/state_dia.jpg                       |  Bin 51364 -> 0 bytes
 docs/images/zkcomponents.jpg                    |  Bin 30831 -> 0 bytes
 docs/images/zknamespace.jpg                     |  Bin 35414 -> 0 bytes
 docs/images/zkperfRW-3.2.jpg                    |  Bin 41948 -> 0 bytes
 docs/images/zkperfRW.jpg                        |  Bin 161542 -> 0 bytes
 docs/images/zkperfreliability.jpg               |  Bin 69825 -> 0 bytes
 docs/images/zkservice.jpg                       |  Bin 86790 -> 0 bytes
 docs/images/zookeeper_small.gif                 |  Bin 4847 -> 0 bytes
 docs/index.html                                 |  391 ---
 docs/index.pdf                                  |  Bin 13511 -> 0 bytes
 docs/javaExample.html                           |  908 -------
 docs/javaExample.pdf                            |  Bin 33763 -> 0 bytes
 docs/linkmap.html                               |  434 ----
 docs/linkmap.pdf                                |  Bin 12455 -> 0 bytes
 docs/recipes.html                               |  974 --------
 docs/recipes.pdf                                |  Bin 31017 -> 0 bytes
 docs/releasenotes.html                          | 1822 --------------
 docs/skin/CommonMessages_de.xml                 |   23 -
 docs/skin/CommonMessages_en_US.xml              |   23 -
 docs/skin/CommonMessages_es.xml                 |   23 -
 docs/skin/CommonMessages_fr.xml                 |   23 -
 docs/skin/basic.css                             |  167 --
 docs/skin/breadcrumbs-optimized.js              |   90 -
 docs/skin/breadcrumbs.js                        |  237 --
 docs/skin/fontsize.js                           |  166 --
 docs/skin/getBlank.js                           |   40 -
 docs/skin/getMenu.js                            |   45 -
 docs/skin/images/README.txt                     |    1 -
 docs/skin/images/add.jpg                        |  Bin 1142 -> 0 bytes
 docs/skin/images/apache-thanks.png              |  Bin 4840 -> 0 bytes
 docs/skin/images/built-with-cocoon.gif          |  Bin 2252 -> 0 bytes
 docs/skin/images/built-with-forrest-button.png  |  Bin 1936 -> 0 bytes
 docs/skin/images/chapter.gif                    |  Bin 49 -> 0 bytes
 docs/skin/images/chapter_open.gif               |  Bin 49 -> 0 bytes
 docs/skin/images/current.gif                    |  Bin 54 -> 0 bytes
 docs/skin/images/error.png                      |  Bin 1709 -> 0 bytes
 docs/skin/images/external-link.gif              |  Bin 71 -> 0 bytes
 docs/skin/images/fix.jpg                        |  Bin 932 -> 0 bytes
 docs/skin/images/forrest-credit-logo.png        |  Bin 4633 -> 0 bytes
 docs/skin/images/hack.jpg                       |  Bin 743 -> 0 bytes
 docs/skin/images/header_white_line.gif          |  Bin 37 -> 0 bytes
 docs/skin/images/info.png                       |  Bin 1320 -> 0 bytes
 docs/skin/images/instruction_arrow.png          |  Bin 285 -> 0 bytes
 docs/skin/images/label.gif                      |  Bin 54 -> 0 bytes
 docs/skin/images/page.gif                       |  Bin 79 -> 0 bytes
 docs/skin/images/pdfdoc.gif                     |  Bin 1008 -> 0 bytes
 docs/skin/images/poddoc.png                     |  Bin 856 -> 0 bytes
 docs/skin/images/printer.gif                    |  Bin 603 -> 0 bytes
 .../skin/images/rc-b-l-15-1body-2menu-3menu.png |  Bin 348 -> 0 bytes
 .../skin/images/rc-b-r-15-1body-2menu-3menu.png |  Bin 319 -> 0 bytes
 ...-r-5-1header-2tab-selected-3tab-selected.png |  Bin 200 -> 0 bytes
 .../rc-t-l-5-1header-2searchbox-3searchbox.png  |  Bin 199 -> 0 bytes
 ...-l-5-1header-2tab-selected-3tab-selected.png |  Bin 209 -> 0 bytes
 ...-1header-2tab-unselected-3tab-unselected.png |  Bin 199 -> 0 bytes
 .../skin/images/rc-t-r-15-1body-2menu-3menu.png |  Bin 390 -> 0 bytes
 .../rc-t-r-5-1header-2searchbox-3searchbox.png  |  Bin 214 -> 0 bytes
 ...-r-5-1header-2tab-selected-3tab-selected.png |  Bin 215 -> 0 bytes
 ...-1header-2tab-unselected-3tab-unselected.png |  Bin 214 -> 0 bytes
 docs/skin/images/remove.jpg                     |  Bin 1251 -> 0 bytes
 docs/skin/images/rss.png                        |  Bin 360 -> 0 bytes
 docs/skin/images/spacer.gif                     |  Bin 43 -> 0 bytes
 docs/skin/images/success.png                    |  Bin 1291 -> 0 bytes
 docs/skin/images/txtdoc.png                     |  Bin 784 -> 0 bytes
 docs/skin/images/update.jpg                     |  Bin 990 -> 0 bytes
 docs/skin/images/valid-html401.png              |  Bin 2948 -> 0 bytes
 docs/skin/images/vcss.png                       |  Bin 1134 -> 0 bytes
 docs/skin/images/warning.png                    |  Bin 1215 -> 0 bytes
 docs/skin/images/xmldoc.gif                     |  Bin 992 -> 0 bytes
 docs/skin/menu.js                               |   48 -
 docs/skin/note.txt                              |   50 -
 docs/skin/print.css                             |   54 -
 docs/skin/profile.css                           |  168 --
 docs/skin/prototype.js                          | 1257 ----------
 docs/skin/screen.css                            |  587 -----
 docs/zookeeperAdmin.html                        | 2231 -----------------
 docs/zookeeperAdmin.pdf                         |  Bin 86044 -> 0 bytes
 docs/zookeeperHierarchicalQuorums.html          |  276 ---
 docs/zookeeperHierarchicalQuorums.pdf           |  Bin 6650 -> 0 bytes
 docs/zookeeperInternals.html                    |  805 ------
 docs/zookeeperInternals.pdf                     |  Bin 48806 -> 0 bytes
 docs/zookeeperJMX.html                          |  479 ----
 docs/zookeeperJMX.pdf                           |  Bin 16471 -> 0 bytes
 docs/zookeeperObservers.html                    |  366 ---
 docs/zookeeperObservers.pdf                     |  Bin 12867 -> 0 bytes
 docs/zookeeperOtherInfo.html                    |  230 --
 docs/zookeeperOtherInfo.pdf                     |  151 --
 docs/zookeeperOver.html                         |  704 ------
 docs/zookeeperOver.pdf                          |  Bin 302479 -> 0 bytes
 docs/zookeeperProgrammers.html                  | 2285 ------------------
 docs/zookeeperProgrammers.pdf                   |  Bin 134096 -> 0 bytes
 docs/zookeeperQuotas.html                       |  290 ---
 docs/zookeeperQuotas.pdf                        |  Bin 11180 -> 0 bytes
 docs/zookeeperReconfig.pdf                      |  Bin 62192 -> 0 bytes
 docs/zookeeperStarted.html                      |  629 -----
 docs/zookeeperStarted.pdf                       |  Bin 28069 -> 0 bytes
 docs/zookeeperTutorial.html                     |  937 -------
 docs/zookeeperTutorial.pdf                      |  Bin 34208 -> 0 bytes
 zookeeper-docs/forrest.properties               |  109 -
 zookeeper-docs/src/documentation/README.txt     |    7 -
 zookeeper-docs/src/documentation/TODO.txt       |  227 --
 .../classes/CatalogManager.properties           |   37 -
 zookeeper-docs/src/documentation/conf/cli.xconf |  328 ---
 .../content/xdocs/bookkeeperConfig.xml          |  156 --
 .../content/xdocs/bookkeeperOverview.xml        |  419 ----
 .../content/xdocs/bookkeeperProgrammer.xml      |  678 ------
 .../content/xdocs/bookkeeperStarted.xml         |  208 --
 .../content/xdocs/bookkeeperStream.xml          |  331 ---
 .../src/documentation/content/xdocs/index.xml   |   98 -
 .../documentation/content/xdocs/javaExample.xml |  663 -----
 .../src/documentation/content/xdocs/recipes.xml |  637 -----
 .../src/documentation/content/xdocs/site.xml    |  103 -
 .../src/documentation/content/xdocs/tabs.xml    |   36 -
 .../content/xdocs/zookeeperAdmin.xml            | 1861 --------------
 .../xdocs/zookeeperHierarchicalQuorums.xml      |   75 -
 .../content/xdocs/zookeeperInternals.xml        |  487 ----
 .../content/xdocs/zookeeperJMX.xml              |  236 --
 .../content/xdocs/zookeeperObservers.xml        |  145 --
 .../content/xdocs/zookeeperOtherInfo.xml        |   46 -
 .../content/xdocs/zookeeperOver.xml             |  464 ----
 .../content/xdocs/zookeeperProgrammers.xml      | 1640 -------------
 .../content/xdocs/zookeeperQuotas.xml           |   71 -
 .../content/xdocs/zookeeperStarted.xml          |  418 ----
 .../content/xdocs/zookeeperTutorial.xml         |  712 ------
 .../src/documentation/resources/images/2pc.jpg  |  Bin 15174 -> 0 bytes
 .../resources/images/bk-overview.jpg            |  Bin 124211 -> 0 bytes
 .../documentation/resources/images/favicon.ico  |  Bin 766 -> 0 bytes
 .../resources/images/hadoop-logo.jpg            |  Bin 9443 -> 0 bytes
 .../resources/images/state_dia.dia              |  Bin 2597 -> 0 bytes
 .../resources/images/state_dia.jpg              |  Bin 51364 -> 0 bytes
 .../documentation/resources/images/zkarch.jpg   |  Bin 24535 -> 0 bytes
 .../resources/images/zkcomponents.jpg           |  Bin 30831 -> 0 bytes
 .../resources/images/zknamespace.jpg            |  Bin 35414 -> 0 bytes
 .../resources/images/zkperfRW-3.2.jpg           |  Bin 41948 -> 0 bytes
 .../documentation/resources/images/zkperfRW.jpg |  Bin 161542 -> 0 bytes
 .../resources/images/zkperfreliability.jpg      |  Bin 69825 -> 0 bytes
 .../resources/images/zkservice.jpg              |  Bin 86790 -> 0 bytes
 .../resources/images/zookeeper_small.gif        |  Bin 4847 -> 0 bytes
 zookeeper-docs/src/documentation/skinconf.xml   |  360 ---
 zookeeper-docs/status.xml                       |   74 -
 .../src/test/resources/test-github-pr.sh        |   42 +-
 .../src/test/resources/test-patch.sh            |   44 +-
 159 files changed, 45 insertions(+), 30833 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cf24deb2/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 01a2a9f..9762956 100644
--- a/build.xml
+++ b/build.xml
@@ -514,24 +514,6 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle">
     <!-- ====================================================== -->
     <!-- Documentation                                          -->
     <!-- ====================================================== -->
-    <target name="docs" depends="forrest.check" description="Generate 
forrest-based documentation. To use, specify -Dforrest.home=&lt;base of Apache 
Forrest installation&gt; on the command line." if="forrest.home">
-      <condition property="forrest.exec" value="forrest.bat" else="forrest">
-       <os family="windows"/>
-      </condition>
-      <exec dir="${docs.src}" executable="${forrest.home}/bin/${forrest.exec}"
-            failonerror="true">
-      </exec>
-      <copy todir="${docs.dir}">
-        <fileset dir="${docs.src}/build/site/" />
-      </copy>
-      <style basedir="${conf.dir}" destdir="${docs.dir}"
-             includes="zookeeper-default.xml" style="conf/configuration.xsl"/>
-    </target>
-
-    <target name="forrest.check" unless="forrest.home">
-      <fail message="'forrest.home' is not defined. Please pass 
-Dforrest.home=&lt;base of Apache Forrest installation&gt; to Ant on the 
command-line." />
-    </target>
-
     <!-- Javadoc -->
     <target name="javadoc-dev" depends="jar"
             description="Generate javadoc for zookeeper developers">
@@ -1864,7 +1846,7 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle">
                to Ant on the command-line." />
     </target>
 
-    <target name="test-patch" 
depends="patch.check,findbugs.check,forrest.check">
+    <target name="test-patch" depends="patch.check,findbugs.check">
        <exec executable="bash" failonerror="true">
                <arg value="${test_patch_sh}"/>
                <arg value="DEVELOPER"/>
@@ -1874,13 +1856,12 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle">
                <arg value="${grep.cmd}"/>
                <arg value="${patch.cmd}"/>
                <arg value="${findbugs.home}"/>
-               <arg value="${forrest.home}"/>
                <arg value="${basedir}"/>
                <arg value="${java5.home}"/>
        </exec>
     </target>
 
-    <target name="hudson-test-patch" depends="findbugs.check,forrest.check">
+    <target name="hudson-test-patch" depends="findbugs.check">
        <exec executable="bash" failonerror="true">
                <arg value="${test_patch_sh}"/>
                <arg value="HUDSON"/>
@@ -1892,7 +1873,6 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle">
                <arg value="${grep.cmd}"/>
                <arg value="${patch.cmd}"/>
                <arg value="${findbugs.home}"/>
-               <arg value="${forrest.home}"/>
                <arg value="${basedir}"/>
                <arg value="${jira.passwd}"/>
                <arg value="${java5.home}"/>
@@ -1901,7 +1881,7 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle">
        </exec>
      </target>
 
-   <target name="qa-test-pullrequest" depends="findbugs.check,forrest.check">
+     <target name="qa-test-pullrequest" depends="findbugs.check">
         <exec executable="bash" failonerror="true">
                 <arg value="${test_pullrequest_sh}"/>
                 <arg value="QABUILD"/>
@@ -1913,7 +1893,6 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle">
                 <arg value="${grep.cmd}"/>
                 <arg value="${patch.cmd}"/>
                 <arg value="${findbugs.home}"/>
-                <arg value="${forrest.home}"/>
                 <arg value="${basedir}"/>
                 <arg value="${jira.passwd}"/>
                 <arg value="${java5.home}"/>
@@ -1923,7 +1902,7 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle">
 
 
      <!-- this target runs the hudson trunk build -->
-     <target name="hudson-test-trunk" depends="docs,tar,findbugs"/>
+     <target name="hudson-test-trunk" depends="tar,findbugs"/>
 
      <target name="api-xml" depends="ivy-retrieve-jdiff, javadoc, write-null">
        <javadoc>

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cf24deb2/docs/bookkeeperConfig.html
----------------------------------------------------------------------
diff --git a/docs/bookkeeperConfig.html b/docs/bookkeeperConfig.html
deleted file mode 100644
index ff8d4e8..0000000
--- a/docs/bookkeeperConfig.html
+++ /dev/null
@@ -1,384 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
-<meta name="Forrest-skin-name" content="pelt">
-<title>BookKeeper Administrator's Guide</title>
-<link type="text/css" href="skin/basic.css" rel="stylesheet">
-<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
-<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
-<link type="text/css" href="skin/profile.css" rel="stylesheet">
-<script src="skin/getBlank.js" language="javascript" 
type="text/javascript"></script><script src="skin/getMenu.js" 
language="javascript" type="text/javascript"></script><script 
src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
-<link rel="shortcut icon" href="images/favicon.ico">
-</head>
-<body onload="init()">
-<script type="text/javascript">ndeSetTextSize();</script>
-<div id="top">
-<!--+
-    |breadtrail
-    +-->
-<div class="breadtrail">
-<a href="http://www.apache.org/";>Apache</a> &gt; <a 
href="http://zookeeper.apache.org/";>ZooKeeper</a> &gt; <a 
href="http://zookeeper.apache.org/";>ZooKeeper</a><script 
src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
-</div>
-<!--+
-    |header
-    +-->
-<div class="header">
-<!--+
-    |start group logo
-    +-->
-<div class="grouplogo">
-<a href="http://hadoop.apache.org/";><img class="logoImage" alt="Hadoop" 
src="images/hadoop-logo.jpg" title="Apache Hadoop"></a>
-</div>
-<!--+
-    |end group logo
-    +-->
-<!--+
-    |start Project Logo
-    +-->
-<div class="projectlogo">
-<a href="http://zookeeper.apache.org/";><img class="logoImage" alt="ZooKeeper" 
src="images/zookeeper_small.gif" title="ZooKeeper: distributed 
coordination"></a>
-</div>
-<!--+
-    |end Project Logo
-    +-->
-<!--+
-    |start Search
-    +-->
-<div class="searchbox">
-<form action="http://www.google.com/search"; method="get" class="roundtopsmall">
-<input value="zookeeper.apache.org" name="sitesearch" type="hidden"><input 
onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" 
id="query" type="text" value="Search the site with google">&nbsp; 
-                    <input name="Search" value="Search" type="submit">
-</form>
-</div>
-<!--+
-    |end search
-    +-->
-<!--+
-    |start Tabs
-    +-->
-<ul id="tabs">
-<li>
-<a class="unselected" href="http://zookeeper.apache.org/";>Project</a>
-</li>
-<li>
-<a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
-</li>
-<li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
-</li>
-</ul>
-<!--+
-    |end Tabs
-    +-->
-</div>
-</div>
-<div id="main">
-<div id="publishedStrip">
-<!--+
-    |start Subtabs
-    +-->
-<div id="level2tabs"></div>
-<!--+
-    |end Endtabs
-    +-->
-<script type="text/javascript"><!--
-document.write("Last Published: " + document.lastModified);
-//  --></script>
-</div>
-<!--+
-    |breadtrail
-    +-->
-<div class="breadtrail">
-
-             &nbsp;
-           </div>
-<!--+
-    |start Menu, mainarea
-    +-->
-<!--+
-    |start Menu
-    +-->
-<div id="menu">
-<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" 
class="menutitle">Overview</div>
-<div id="menu_1.1" class="menuitemgroup">
-<div class="menuitem">
-<a href="index.html">Welcome</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperOver.html">Overview</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperStarted.html">Getting Started</a>
-</div>
-<div class="menuitem">
-<a href="releasenotes.html">Release Notes</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" 
class="menutitle">Developer</div>
-<div id="menu_1.2" class="menuitemgroup">
-<div class="menuitem">
-<a href="api/index.html">API Docs</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperProgrammers.html">Programmer's Guide</a>
-</div>
-<div class="menuitem">
-<a href="javaExample.html">Java Example</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperTutorial.html">Barrier and Queue Tutorial</a>
-</div>
-<div class="menuitem">
-<a href="recipes.html">Recipes</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_selected_1.3', 'skin/')" 
id="menu_selected_1.3Title" class="menutitle" style="background-image: 
url('skin/images/chapter_open.gif');">BookKeeper</div>
-<div id="menu_selected_1.3" class="selectedmenuitemgroup" style="display: 
block;">
-<div class="menuitem">
-<a href="bookkeeperStarted.html">Getting started</a>
-</div>
-<div class="menuitem">
-<a href="bookkeeperOverview.html">Overview</a>
-</div>
-<div class="menupage">
-<div class="menupagetitle">Setup guide</div>
-</div>
-<div class="menuitem">
-<a href="bookkeeperProgrammer.html">Programmer's guide</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" 
class="menutitle">Admin &amp; Ops</div>
-<div id="menu_1.4" class="menuitemgroup">
-<div class="menuitem">
-<a href="zookeeperAdmin.html">Administrator's Guide</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperQuotas.html">Quota Guide</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperJMX.html">JMX</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperObservers.html">Observers Guide</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_1.5', 'skin/')" id="menu_1.5Title" 
class="menutitle">Contributor</div>
-<div id="menu_1.5" class="menuitemgroup">
-<div class="menuitem">
-<a href="zookeeperInternals.html">ZooKeeper Internals</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_1.6', 'skin/')" id="menu_1.6Title" 
class="menutitle">Miscellaneous</div>
-<div id="menu_1.6" class="menuitemgroup">
-<div class="menuitem">
-<a href="https://cwiki.apache.org/confluence/display/ZOOKEEPER";>Wiki</a>
-</div>
-<div class="menuitem">
-<a href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/FAQ";>FAQ</a>
-</div>
-<div class="menuitem">
-<a href="http://zookeeper.apache.org/mailing_lists.html";>Mailing Lists</a>
-</div>
-</div>
-<div id="credit"></div>
-<div id="roundbottom">
-<img style="display: none" class="corner" height="15" width="15" alt="" 
src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
-<!--+
-  |alternative credits
-  +-->
-<div id="credit2"></div>
-</div>
-<!--+
-    |end Menu
-    +-->
-<!--+
-    |start content
-    +-->
-<div id="content">
-<div title="Portable Document Format" class="pdflink">
-<a class="dida" href="bookkeeperConfig.pdf"><img alt="PDF -icon" 
src="skin/images/pdfdoc.gif" class="skin"><br>
-        PDF</a>
-</div>
-<h1>BookKeeper Administrator's Guide</h1>
-<h3>Setup Guide</h3>
-<div id="front-matter">
-<div id="minitoc-area">
-<ul class="minitoc">
-<li>
-<a href="#bk_deployment">Deployment</a>
-<ul class="minitoc">
-<li>
-<a href="#bk_sysReq">System requirements</a>
-</li>
-<li>
-<a href="#bk_runningBookies">Running bookies</a>
-</li>
-<li>
-<a href="#bk_zkMetadata">ZooKeeper Metadata</a>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-  
-
-  
-
-  
-
-  
-<a name="bk_deployment"></a>
-<h2 class="h3">Deployment</h2>
-<div class="section">
-<p>This section contains information about deploying BookKeeper and
-    covers these topics:</p>
-<ul>
-      
-<li>
-        
-<p>
-<a href="#bk_sysReq">System requirements</a>
-</p>
-      
-</li>
-
-      
-<li>
-        
-<p>
-<a href="#bk_runningBookies">Running bookies</a>
-</p>
-      
-</li>
-
-      
-<li>
-        
-<p>
-<a href="#bk_zkMetadata">ZooKeeper Metadata</a>
-</p>
-      
-</li>
-    
-</ul>
-<p> The first section tells you how many machines you need. The second 
explains how to bootstrap bookies
-     (BookKeeper storage servers). The third section explains how we use 
ZooKeeper and our requirements with
-     respect to ZooKeeper.
-    </p>
-<a name="bk_sysReq"></a>
-<h3 class="h4">System requirements</h3>
-<p> A typical BookKeeper installation comprises a set of bookies and a set of 
ZooKeeper replicas. The exact number of bookies
-          depends on the quorum mode, desired throughput, and number of 
clients using this installation simultaneously. The minimum number of
-          bookies is three for self-verifying (stores a message authentication 
code along with each entry) and four for generic (does not
-          store a message authentication codewith each entry), and there is no 
upper limit on the number of bookies. Increasing the number of 
-          bookies, in fact, enables higher throughput.
-          </p>
-<p> For performance, we require each server to have at least two disks. It is 
possible to run a bookie with a single disk, but 
-          performance will be significantly lower in this case. Of course, it 
works with one disk, but performance is significantly lower. 
-          </p>
-<p> For ZooKeeper, there is no constraint with respect to the number of 
replicas. Having a single machine running ZooKeeper
-          in standalone mode is sufficient for BookKeeper. For resilience 
purposes, it might be a good idea to run ZooKeeper in quorum 
-          mode with multiple servers. Please refer to the ZooKeeper 
documentation for detail on how to configure ZooKeeper with multiple
-          replicas
-          </p>
-<a name="bk_runningBookies"></a>
-<h3 class="h4">Running bookies</h3>
-<p>
-          To run a bookie, we execute the following command:
-          </p>
-<p>
-<span class="codefrag computeroutput">
-               java -cp 
.:./zookeeper-&lt;version&gt;-bookkeeper.jar:./zookeeper-&lt;version&gt;.jar\
-               :../log4j/apache-log4j-1.2.15/log4j-1.2.15.jar 
-Dlog4j.configuration=log4j.properties\ 
-               org.apache.bookkeeper.proto.BookieServer 3181 127.0.0.1:2181 
/path_to_log_device/\
-               /path_to_ledger_device/
-          </span>
-</p>
-<p>
-          The parameters are:
-          </p>
-<ul>
-               
-<li>
-               
-<p>
-                       Port number that the bookie listens on;
-               </p>
-               
-</li>
-               
-               
-<li>
-               
-<p>
-                       Comma separated list of ZooKeeper servers with a 
hostname:port format;
-               </p>
-               
-</li>
-               
-               
-<li>
-               
-<p>
-                       Path for Log Device (stores bookie write-ahead log);
-               </p>
-               
-</li>
-               
-               
-<li>
-               
-<p>
-                       Path for Ledger Device (stores ledger entries);
-               </p>
-               
-</li>
-          
-</ul>
-<p>
-          Ideally, <span class="codefrag computeroutput">/path_to_log_device/ 
</span> and <span class="codefrag computeroutput">/path_to_ledger_device/ 
</span> are each
-          in a different device. 
-          </p>
-<a name="bk_zkMetadata"></a>
-<h3 class="h4">ZooKeeper Metadata</h3>
-<p>
-          For BookKeeper, we require a ZooKeeper installation to store 
metadata, and to pass the list
-          of ZooKeeper servers as parameter to the constructor of the 
BookKeeper class (<span class="codefrag computeroutput">
-          org.apache.bookkeeper.client,BookKeeper</span>).
-          To setup ZooKeeper, please check the <a href="index.html">
-          ZooKeeper documentation</a>.
-          </p>
-</div>
-
-<p align="right">
-<font size="-2"></font>
-</p>
-</div>
-<!--+
-    |end content
-    +-->
-<div class="clearboth">&nbsp;</div>
-</div>
-<div id="footer">
-<!--+
-    |start bottomstrip
-    +-->
-<div class="lastmodified">
-<script type="text/javascript"><!--
-document.write("Last Published: " + document.lastModified);
-//  --></script>
-</div>
-<div class="copyright">
-        Copyright &copy;
-          <a href="http://www.apache.org/licenses/";>The Apache Software 
Foundation.</a>
-</div>
-<!--+
-    |end bottomstrip
-    +-->
-</div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cf24deb2/docs/bookkeeperConfig.pdf
----------------------------------------------------------------------
diff --git a/docs/bookkeeperConfig.pdf b/docs/bookkeeperConfig.pdf
deleted file mode 100644
index f084b5f..0000000
Binary files a/docs/bookkeeperConfig.pdf and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cf24deb2/docs/bookkeeperOverview.html
----------------------------------------------------------------------
diff --git a/docs/bookkeeperOverview.html b/docs/bookkeeperOverview.html
deleted file mode 100644
index 4765e59..0000000
--- a/docs/bookkeeperOverview.html
+++ /dev/null
@@ -1,694 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
-<meta name="Forrest-skin-name" content="pelt">
-<title>BookKeeper overview</title>
-<link type="text/css" href="skin/basic.css" rel="stylesheet">
-<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
-<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
-<link type="text/css" href="skin/profile.css" rel="stylesheet">
-<script src="skin/getBlank.js" language="javascript" 
type="text/javascript"></script><script src="skin/getMenu.js" 
language="javascript" type="text/javascript"></script><script 
src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
-<link rel="shortcut icon" href="images/favicon.ico">
-</head>
-<body onload="init()">
-<script type="text/javascript">ndeSetTextSize();</script>
-<div id="top">
-<!--+
-    |breadtrail
-    +-->
-<div class="breadtrail">
-<a href="http://www.apache.org/";>Apache</a> &gt; <a 
href="http://zookeeper.apache.org/";>ZooKeeper</a> &gt; <a 
href="http://zookeeper.apache.org/";>ZooKeeper</a><script 
src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
-</div>
-<!--+
-    |header
-    +-->
-<div class="header">
-<!--+
-    |start group logo
-    +-->
-<div class="grouplogo">
-<a href="http://hadoop.apache.org/";><img class="logoImage" alt="Hadoop" 
src="images/hadoop-logo.jpg" title="Apache Hadoop"></a>
-</div>
-<!--+
-    |end group logo
-    +-->
-<!--+
-    |start Project Logo
-    +-->
-<div class="projectlogo">
-<a href="http://zookeeper.apache.org/";><img class="logoImage" alt="ZooKeeper" 
src="images/zookeeper_small.gif" title="ZooKeeper: distributed 
coordination"></a>
-</div>
-<!--+
-    |end Project Logo
-    +-->
-<!--+
-    |start Search
-    +-->
-<div class="searchbox">
-<form action="http://www.google.com/search"; method="get" class="roundtopsmall">
-<input value="zookeeper.apache.org" name="sitesearch" type="hidden"><input 
onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" 
id="query" type="text" value="Search the site with google">&nbsp; 
-                    <input name="Search" value="Search" type="submit">
-</form>
-</div>
-<!--+
-    |end search
-    +-->
-<!--+
-    |start Tabs
-    +-->
-<ul id="tabs">
-<li>
-<a class="unselected" href="http://zookeeper.apache.org/";>Project</a>
-</li>
-<li>
-<a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
-</li>
-<li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
-</li>
-</ul>
-<!--+
-    |end Tabs
-    +-->
-</div>
-</div>
-<div id="main">
-<div id="publishedStrip">
-<!--+
-    |start Subtabs
-    +-->
-<div id="level2tabs"></div>
-<!--+
-    |end Endtabs
-    +-->
-<script type="text/javascript"><!--
-document.write("Last Published: " + document.lastModified);
-//  --></script>
-</div>
-<!--+
-    |breadtrail
-    +-->
-<div class="breadtrail">
-
-             &nbsp;
-           </div>
-<!--+
-    |start Menu, mainarea
-    +-->
-<!--+
-    |start Menu
-    +-->
-<div id="menu">
-<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" 
class="menutitle">Overview</div>
-<div id="menu_1.1" class="menuitemgroup">
-<div class="menuitem">
-<a href="index.html">Welcome</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperOver.html">Overview</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperStarted.html">Getting Started</a>
-</div>
-<div class="menuitem">
-<a href="releasenotes.html">Release Notes</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" 
class="menutitle">Developer</div>
-<div id="menu_1.2" class="menuitemgroup">
-<div class="menuitem">
-<a href="api/index.html">API Docs</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperProgrammers.html">Programmer's Guide</a>
-</div>
-<div class="menuitem">
-<a href="javaExample.html">Java Example</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperTutorial.html">Barrier and Queue Tutorial</a>
-</div>
-<div class="menuitem">
-<a href="recipes.html">Recipes</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_selected_1.3', 'skin/')" 
id="menu_selected_1.3Title" class="menutitle" style="background-image: 
url('skin/images/chapter_open.gif');">BookKeeper</div>
-<div id="menu_selected_1.3" class="selectedmenuitemgroup" style="display: 
block;">
-<div class="menuitem">
-<a href="bookkeeperStarted.html">Getting started</a>
-</div>
-<div class="menupage">
-<div class="menupagetitle">Overview</div>
-</div>
-<div class="menuitem">
-<a href="bookkeeperConfig.html">Setup guide</a>
-</div>
-<div class="menuitem">
-<a href="bookkeeperProgrammer.html">Programmer's guide</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" 
class="menutitle">Admin &amp; Ops</div>
-<div id="menu_1.4" class="menuitemgroup">
-<div class="menuitem">
-<a href="zookeeperAdmin.html">Administrator's Guide</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperQuotas.html">Quota Guide</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperJMX.html">JMX</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperObservers.html">Observers Guide</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_1.5', 'skin/')" id="menu_1.5Title" 
class="menutitle">Contributor</div>
-<div id="menu_1.5" class="menuitemgroup">
-<div class="menuitem">
-<a href="zookeeperInternals.html">ZooKeeper Internals</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_1.6', 'skin/')" id="menu_1.6Title" 
class="menutitle">Miscellaneous</div>
-<div id="menu_1.6" class="menuitemgroup">
-<div class="menuitem">
-<a href="https://cwiki.apache.org/confluence/display/ZOOKEEPER";>Wiki</a>
-</div>
-<div class="menuitem">
-<a href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/FAQ";>FAQ</a>
-</div>
-<div class="menuitem">
-<a href="http://zookeeper.apache.org/mailing_lists.html";>Mailing Lists</a>
-</div>
-</div>
-<div id="credit"></div>
-<div id="roundbottom">
-<img style="display: none" class="corner" height="15" width="15" alt="" 
src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
-<!--+
-  |alternative credits
-  +-->
-<div id="credit2"></div>
-</div>
-<!--+
-    |end Menu
-    +-->
-<!--+
-    |start content
-    +-->
-<div id="content">
-<div title="Portable Document Format" class="pdflink">
-<a class="dida" href="bookkeeperOverview.pdf"><img alt="PDF -icon" 
src="skin/images/pdfdoc.gif" class="skin"><br>
-        PDF</a>
-</div>
-<h1>BookKeeper overview</h1>
-<div id="front-matter">
-<div id="minitoc-area">
-<ul class="minitoc">
-<li>
-<a href="#bk_Overview">BookKeeper overview</a>
-<ul class="minitoc">
-<li>
-<a href="#bk_Intro">BookKeeper introduction</a>
-</li>
-<li>
-<a href="#bk_moreDetail">In slightly more detail...</a>
-</li>
-<li>
-<a href="#bk_basicComponents">Bookkeeper elements and concepts</a>
-</li>
-<li>
-<a href="#bk_initialDesign">Bookkeeper initial design</a>
-</li>
-<li>
-<a href="#bk_metadata">Bookkeeper metadata management</a>
-</li>
-<li>
-<a href="#bk_closingOut">Closing out ledgers</a>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-  
-
-  
-  
-<a name="bk_Overview"></a>
-<h2 class="h3">BookKeeper overview</h2>
-<div class="section">
-<a name="bk_Intro"></a>
-<h3 class="h4">BookKeeper introduction</h3>
-<p>
-       BookKeeper is a replicated service to reliably log streams of records. 
In BookKeeper, 
-       servers are "bookies", log streams are "ledgers", and each unit of a 
log (aka record) is a 
-       "ledger entry". BookKeeper is designed to be reliable; bookies, the 
servers that store 
-       ledgers, can crash, corrupt data, discard data, but as long as there 
are enough bookies 
-       behaving correctly the service as a whole behaves correctly.
-       </p>
-<p>
-    The initial motivation for BookKeeper comes from the namenode of HDFS. 
Namenodes have to 
-    log operations in a reliable fashion so that recovery is possible in the 
case of crashes. 
-    We have found the applications for BookKeeper extend far beyond HDFS, 
however. Essentially, 
-    any application that requires an append storage can replace their 
implementations with
-    BookKeeper. BookKeeper has the advantage of scaling throughput with the 
number of servers. 
-    </p>
-<p>
-    At a high level, a bookkeeper client receives entries from a client 
application and stores it to
-    sets of bookies, and there are a few advantages in having such a service:
-       </p>
-<ul>
-    
-<li>
-    
-<p>
-       We can use hardware that is optimized for such a service. We currently 
believe that such a
-       system has to be optimized only for disk I/O;
-    </p>
-    
-</li>
-    
-    
-<li>
-    
-<p>
-       We can have a pool of servers implementing such a log system, and 
shared among a number of servers;
-    </p>
-    
-</li>
-    
-    
-<li>
-    
-<p>
-       We can have a higher degree of replication with such a pool, which 
makes sense if the hardware necessary for it is cheaper compared to the one the 
application uses. 
-       </p>
-       
-</li>
-       
-</ul>
-<a name="bk_moreDetail"></a>
-<h3 class="h4">In slightly more detail...</h3>
-<p> BookKeeper implements highly available logs, and it has been designed with 
write-ahead logging in mind. Besides high availability
-    due to the replicated nature of the service, it provides high throughput 
due to striping. As we write entries in a subset of bookies of an
-    ensemble and rotate writes across available quorums, we are able to 
increase throughput with the number of servers for both reads and writes. 
-    Scalability is a property that is possible to achieve in this case due to 
the use of quorums. Other replication techniques, such as 
-    state-machine replication, do not enable such a property. 
-    </p>
-<p> An application first creates a ledger before writing to bookies through a 
local BookKeeper client instance.   
-       Upon creating a ledger, a BookKeeper client writes metadata about the 
ledger to ZooKeeper. Each ledger currently 
-       has a single writer. This writer has to execute a close ledger 
operation before any other client can read from it. 
-       If the writer of a ledger does not close a ledger properly because, for 
example, it has crashed before having the 
-       opportunity of closing the ledger, then the next client that tries to 
open a ledger executes a procedure to recover
-       it. As closing a ledger consists essentially of writing the last entry 
written to a ledger to ZooKeeper, the recovery
-       procedure simply finds the last entry written correctly and writes it 
to ZooKeeper.     
-       </p>
-<p>
-       Note that currently this recovery procedure is executed automatically 
upon trying to open a ledger and no explicit action is necessary. 
-       Although two clients may try to recover a ledger concurrently, only one 
will succeed, the first one that is able to create the close znode
-       for the ledger.
-       </p>
-<a name="bk_basicComponents"></a>
-<h3 class="h4">Bookkeeper elements and concepts</h3>
-<p> 
-       BookKeeper uses four basic elements:
-       </p>
-<ul>
-      
-<li>
-      
-<p> 
-               
-<strong>Ledger</strong>: A ledger is a sequence of entries, and each entry is 
a sequence of bytes. Entries are
-               written sequentially to a ledger and at most once. 
Consequently, ledgers have an append-only semantics;
-         </p>
-         
-</li>
-       
-         
-<li>
-         
-<p> 
-               
-<strong>BookKeeper client</strong>: A client runs along with a BookKeeper 
application, and it enables applications
-               to execute operations on ledgers, such as creating a ledger and 
writing to it; 
-         </p>
-         
-</li> 
-       
-         
-<li>
-         
-<p>
-               
-<strong>Bookie</strong>: A bookie is a BookKeeper storage server. Bookies 
store the content of ledgers. For any given
-               ledger L, we call an <em>ensemble</em> the group of bookies 
storing the content of L. For performance, we store on
-               each bookie of an ensemble only a fragment of a ledger. That 
is, we stripe when writing entries to a ledger such that
-               each entry is written to sub-group of bookies of the ensemble.
-         </p>
-         
-</li>
-
-         
-<li>
-         
-<p>    
-               
-<strong>Metadata storage service</strong>: BookKeeper requires a metadata 
storage service to store information related 
-               to ledgers and available bookies. We currently use ZooKeeper 
for such a task.     
-         </p>
-         
-</li>
-    
-</ul>
-<a name="bk_initialDesign"></a>
-<h3 class="h4">Bookkeeper initial design</h3>
-<p>
-    A set of bookies implements BookKeeper, and we use a quorum-based protocol 
to replicate data across the bookies. 
-    There are basically two operations to an existing ledger: read and append. 
Here is the complete API list 
-    (mode detail <a href="bookkeeperProgrammer.html">
-             here</a>):
-       </p>
-<ul>
-       
-<li>
-       
-<p>
-       Create ledger: creates a new empty ledger; 
-    </p>
-    
-</li>
-    
-    
-<li>
-       
-<p>
-       Open ledger: opens an existing ledger for reading;
-    </p>
-    
-</li>
-    
-    
-<li>
-       
-<p>
-       Add entry: adds a record to a ledger either synchronously or 
asynchronously;
-    </p>
-    
-</li>
-    
-    
-<li>
-       
-<p>
-    Read entries: reads a sequence of entries from a ledger either 
synchronously or asynchronously 
-       </p>
-    
-</li>
-       
-</ul>
-<p>
-       There is only a single client that can write to a ledger. Once that 
ledger is closed or the client fails, 
-       no more entries can be added. (We take advantage of this behavior to 
provide our strong guarantees.) 
-       There will not be gaps in the ledger. Fingers get broken, people get 
roughed up or end up in prison when
-       books are manipulated, so there is no deleting or changing of entries.
-       </p>
-<table class="ForrestTable" cellspacing="1" cellpadding="4">
-<tr>
-<td>BookKeeper Overview</td>
-</tr>
-<tr>
-<td>
-        
-            <img alt="" src="images/bk-overview.jpg">
-        
-        </td>
-</tr>
-</table>
-<p>
-    A simple use of BooKeeper is to implement a write-ahead transaction log. A 
server maintains an in-memory data structure
-    (with periodic snapshots for example) and logs changes to that structure 
before it applies the change. The application 
-    server creates a ledger at startup and store the ledger id and password in 
a well known place (ZooKeeper maybe). When 
-    it needs to make a change, the server adds an entry with the change 
information to a ledger and apply the change when 
-    BookKeeper adds the entry successfully. The server can even use 
asyncAddEntry to queue up many changes for high change
-    throughput. BooKeeper meticulously logs the changes in order and call the 
completion functions in order.
-       </p>
-<p>
-    When the application server dies, a backup server will come online, get 
the last snapshot and then it will open the 
-    ledger of the old server and read all the entries from the time the 
snapshot was taken. (Since it doesn't know the 
-    last entry number it will use MAX_INTEGER). Once all the entries have been 
processed, it will close the ledger and 
-    start a new one for its use. 
-       </p>
-<p>
-       A client library takes care of communicating with bookies and managing 
entry numbers. An entry has the following fields:
-       </p>
-<table class="ForrestTable" cellspacing="1" cellpadding="4">
-<caption>Entry fields</caption>
-<title>Entry fields</title>
-       
-       
-<tr>
-       
-<th>Field</th>
-       <th>Type</th>
-       <th>Description</th>
-       
-</tr>
-       
-       
-<tr>
-       
-<td>Ledger number</td>
-       <td>long</td>
-       <td>The id of the ledger of this entry</td>
-       
-</tr>
-       
-<tr>
-       
-<td>Entry number</td>
-       <td>long</td>
-       <td>The id of this entry</td>
-       
-</tr>
-       
-       
-<tr>
-       
-<td>last confirmed (<em>LC</em>)</td>
-       <td>long</td>
-       <td>id of the last recorded entry</td>
-       
-</tr>
-       
-<tr>
-       
-<td>data</td>
-       <td>byte[]</td>
-       <td>the entry data (supplied by application)</td>
-       
-</tr>
-       
-<tr>
-       
-<td>authentication code</td>
-       <td>byte[]</td>
-       <td>Message authentication code that includes all other fields of the 
entry</td>
-       
-</tr>
-       
-       
-       
-</table>
-<p>
-       The client library generates a ledger entry. None of the fields are 
modified by the bookies and only the first three 
-       fields are interpreted by the bookies.
-       </p>
-<p>
-       To add to a ledger, the client generates the entry above using the 
ledger number. The entry number will be one more 
-       than the last entry generated. The <em>LC</em> field contains the last 
entry that has been successfully recorded by BookKeeper. 
-       If the client writes entries one at a time, <em>LC</em> is the last 
entry id. But, if the client is using asyncAddEntry, there 
-       may be many entries in flight. An entry is considered recorded when 
both of the following conditions are met:
-       </p>
-<ul>
-       
-<li>
-    
-<p>
-       the entry has been accepted by a quorum of bookies
-    </p>
-    
-</li>
-    
-    
-<li>
-    
-<p>
-       all entries with a lower entry id have been accepted by a quorum of 
bookies 
-       </p>
-       
-</li>
-    
-</ul>
-<p>
-       
-<em>LC</em> seems mysterious right now, but it is too early to explain how we 
use it; just smile and move on.
-       </p>
-<p>
-       Once all the other fields have been field in, the client generates an 
authentication code with all of the previous fields. 
-       The entry is then sent to a quorum of bookies to be recorded. Any 
failures will result in the entry being sent to a new
-       quorum of bookies.
-       </p>
-<p>
-       To read, the client library initially contacts a bookie and starts 
requesting entries. If an entry is missing or 
-       invalid (a bad MAC for example), the client will make a request to a 
different bookie. By using quorum writes, 
-       as long as enough bookies are up we are guaranteed to eventually be 
able to read an entry.
-       </p>
-<a name="bk_metadata"></a>
-<h3 class="h4">Bookkeeper metadata management</h3>
-<p>
-       There are some meta data that needs to be made available to BookKeeper 
clients:
-       </p>
-<ul>
-       
-<li>
-       
-<p>
-               The available bookies;
-       </p>
-       
-</li>
-       
-       
-<li>
-       
-<p>
-       The list of ledgers;
-    </p>
-    
-</li>
-    
-    
-<li>
-       
-<p>
-       The list of bookies that have been used for a given ledger;
-    </p>
-    
-</li>
-    
-    
-<li>
-       
-<p>
-       The last entry of a ledger; 
-       </p>
-       
-</li>
-       
-</ul>
-<p>
-       We maintain this information in ZooKeeper. Bookies use ephemeral nodes 
to indicate their availability. Clients 
-       use znodes to track ledger creation and deletion and also to know the 
end of the ledger and the bookies that 
-       were used to store the ledger. Bookies also watch the ledger list so 
that they can cleanup ledgers that get deleted.
-       </p>
-<a name="bk_closingOut"></a>
-<h3 class="h4">Closing out ledgers</h3>
-<p>
-       The process of closing out the ledger and finding the last ledger is 
difficult due to the durability guarantees of BookKeeper:
-       </p>
-<ul>
-       
-<li>
-       
-<p>
-       If an entry has been successfully recorded, it must be readable.
-    </p>
-    
-</li>
-    
-    
-<li>
-       
-<p>
-       If an entry is read once, it must always be available to be read. 
-       </p>
-       
-</li>
-       
-</ul>
-<p>
-       If the ledger was closed gracefully, ZooKeeper will have the last entry 
and everything will work well. But, if the 
-       BookKeeper client that was writing the ledger dies, there is some 
recovery that needs to take place.
-       </p>
-<p>
-       The problematic entries are the ones at the end of the ledger. There 
can be entries in flight when a BookKeeper client 
-       dies. If the entry only gets to one bookie, the entry should not be 
readable since the entry will disappear if that bookie
-       fails. If the entry is only on one bookie, that doesn't mean that the 
entry has not been recorded successfully; the other
-       bookies that recorded the entry might have failed.
-       </p>
-<p>
-       The trick to making everything work is to have a correct idea of a last 
entry. We do it in roughly three steps:
-       </p>
-<ol>
-       
-<li>
-       
-<p>
-               Find the entry with the highest last recorded entry, 
<em>LC</em>;
-       </p>
-       
-</li>
-       
-       
-<li>
-       
-<p>
-               Find the highest consecutively recorded entry, <em>LR</em>;
-       </p>
-       
-</li>
-       
-       
-<li>
-       
-<p>
-               Make sure that all entries between <em>LC</em> and <em>LR</em> 
are on a quorum of bookies; 
-       </p>
-       
-</li>
-       
-       
-</ol>
-</div>  
-
-<p align="right">
-<font size="-2"></font>
-</p>
-</div>
-<!--+
-    |end content
-    +-->
-<div class="clearboth">&nbsp;</div>
-</div>
-<div id="footer">
-<!--+
-    |start bottomstrip
-    +-->
-<div class="lastmodified">
-<script type="text/javascript"><!--
-document.write("Last Published: " + document.lastModified);
-//  --></script>
-</div>
-<div class="copyright">
-        Copyright &copy;
-          <a href="http://www.apache.org/licenses/";>The Apache Software 
Foundation.</a>
-</div>
-<!--+
-    |end bottomstrip
-    +-->
-</div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cf24deb2/docs/bookkeeperOverview.pdf
----------------------------------------------------------------------
diff --git a/docs/bookkeeperOverview.pdf b/docs/bookkeeperOverview.pdf
deleted file mode 100644
index d7f88bd..0000000
Binary files a/docs/bookkeeperOverview.pdf and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cf24deb2/docs/bookkeeperProgrammer.html
----------------------------------------------------------------------
diff --git a/docs/bookkeeperProgrammer.html b/docs/bookkeeperProgrammer.html
deleted file mode 100644
index 36c34bd..0000000
--- a/docs/bookkeeperProgrammer.html
+++ /dev/null
@@ -1,1083 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
-<meta name="Forrest-skin-name" content="pelt">
-<title>BookKeeper Getting Started Guide</title>
-<link type="text/css" href="skin/basic.css" rel="stylesheet">
-<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
-<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
-<link type="text/css" href="skin/profile.css" rel="stylesheet">
-<script src="skin/getBlank.js" language="javascript" 
type="text/javascript"></script><script src="skin/getMenu.js" 
language="javascript" type="text/javascript"></script><script 
src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
-<link rel="shortcut icon" href="images/favicon.ico">
-</head>
-<body onload="init()">
-<script type="text/javascript">ndeSetTextSize();</script>
-<div id="top">
-<!--+
-    |breadtrail
-    +-->
-<div class="breadtrail">
-<a href="http://www.apache.org/";>Apache</a> &gt; <a 
href="http://zookeeper.apache.org/";>ZooKeeper</a> &gt; <a 
href="http://zookeeper.apache.org/";>ZooKeeper</a><script 
src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
-</div>
-<!--+
-    |header
-    +-->
-<div class="header">
-<!--+
-    |start group logo
-    +-->
-<div class="grouplogo">
-<a href="http://hadoop.apache.org/";><img class="logoImage" alt="Hadoop" 
src="images/hadoop-logo.jpg" title="Apache Hadoop"></a>
-</div>
-<!--+
-    |end group logo
-    +-->
-<!--+
-    |start Project Logo
-    +-->
-<div class="projectlogo">
-<a href="http://zookeeper.apache.org/";><img class="logoImage" alt="ZooKeeper" 
src="images/zookeeper_small.gif" title="ZooKeeper: distributed 
coordination"></a>
-</div>
-<!--+
-    |end Project Logo
-    +-->
-<!--+
-    |start Search
-    +-->
-<div class="searchbox">
-<form action="http://www.google.com/search"; method="get" class="roundtopsmall">
-<input value="zookeeper.apache.org" name="sitesearch" type="hidden"><input 
onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" 
id="query" type="text" value="Search the site with google">&nbsp; 
-                    <input name="Search" value="Search" type="submit">
-</form>
-</div>
-<!--+
-    |end search
-    +-->
-<!--+
-    |start Tabs
-    +-->
-<ul id="tabs">
-<li>
-<a class="unselected" href="http://zookeeper.apache.org/";>Project</a>
-</li>
-<li>
-<a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
-</li>
-<li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
-</li>
-</ul>
-<!--+
-    |end Tabs
-    +-->
-</div>
-</div>
-<div id="main">
-<div id="publishedStrip">
-<!--+
-    |start Subtabs
-    +-->
-<div id="level2tabs"></div>
-<!--+
-    |end Endtabs
-    +-->
-<script type="text/javascript"><!--
-document.write("Last Published: " + document.lastModified);
-//  --></script>
-</div>
-<!--+
-    |breadtrail
-    +-->
-<div class="breadtrail">
-
-             &nbsp;
-           </div>
-<!--+
-    |start Menu, mainarea
-    +-->
-<!--+
-    |start Menu
-    +-->
-<div id="menu">
-<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" 
class="menutitle">Overview</div>
-<div id="menu_1.1" class="menuitemgroup">
-<div class="menuitem">
-<a href="index.html">Welcome</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperOver.html">Overview</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperStarted.html">Getting Started</a>
-</div>
-<div class="menuitem">
-<a href="releasenotes.html">Release Notes</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" 
class="menutitle">Developer</div>
-<div id="menu_1.2" class="menuitemgroup">
-<div class="menuitem">
-<a href="api/index.html">API Docs</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperProgrammers.html">Programmer's Guide</a>
-</div>
-<div class="menuitem">
-<a href="javaExample.html">Java Example</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperTutorial.html">Barrier and Queue Tutorial</a>
-</div>
-<div class="menuitem">
-<a href="recipes.html">Recipes</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_selected_1.3', 'skin/')" 
id="menu_selected_1.3Title" class="menutitle" style="background-image: 
url('skin/images/chapter_open.gif');">BookKeeper</div>
-<div id="menu_selected_1.3" class="selectedmenuitemgroup" style="display: 
block;">
-<div class="menuitem">
-<a href="bookkeeperStarted.html">Getting started</a>
-</div>
-<div class="menuitem">
-<a href="bookkeeperOverview.html">Overview</a>
-</div>
-<div class="menuitem">
-<a href="bookkeeperConfig.html">Setup guide</a>
-</div>
-<div class="menupage">
-<div class="menupagetitle">Programmer's guide</div>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" 
class="menutitle">Admin &amp; Ops</div>
-<div id="menu_1.4" class="menuitemgroup">
-<div class="menuitem">
-<a href="zookeeperAdmin.html">Administrator's Guide</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperQuotas.html">Quota Guide</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperJMX.html">JMX</a>
-</div>
-<div class="menuitem">
-<a href="zookeeperObservers.html">Observers Guide</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_1.5', 'skin/')" id="menu_1.5Title" 
class="menutitle">Contributor</div>
-<div id="menu_1.5" class="menuitemgroup">
-<div class="menuitem">
-<a href="zookeeperInternals.html">ZooKeeper Internals</a>
-</div>
-</div>
-<div onclick="SwitchMenu('menu_1.6', 'skin/')" id="menu_1.6Title" 
class="menutitle">Miscellaneous</div>
-<div id="menu_1.6" class="menuitemgroup">
-<div class="menuitem">
-<a href="https://cwiki.apache.org/confluence/display/ZOOKEEPER";>Wiki</a>
-</div>
-<div class="menuitem">
-<a href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/FAQ";>FAQ</a>
-</div>
-<div class="menuitem">
-<a href="http://zookeeper.apache.org/mailing_lists.html";>Mailing Lists</a>
-</div>
-</div>
-<div id="credit"></div>
-<div id="roundbottom">
-<img style="display: none" class="corner" height="15" width="15" alt="" 
src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
-<!--+
-  |alternative credits
-  +-->
-<div id="credit2"></div>
-</div>
-<!--+
-    |end Menu
-    +-->
-<!--+
-    |start content
-    +-->
-<div id="content">
-<div title="Portable Document Format" class="pdflink">
-<a class="dida" href="bookkeeperProgrammer.pdf"><img alt="PDF -icon" 
src="skin/images/pdfdoc.gif" class="skin"><br>
-        PDF</a>
-</div>
-<h1>BookKeeper Getting Started Guide</h1>
-<div id="front-matter">
-<div id="minitoc-area">
-<ul class="minitoc">
-<li>
-<a href="#bk_GettingStarted">Programming with BookKeeper</a>
-<ul class="minitoc">
-<li>
-<a href="#bk_instance"> Instantiating BookKeeper.</a>
-</li>
-<li>
-<a href="#bk_createLedger"> Creating a ledger. </a>
-</li>
-<li>
-<a href="#bk_writeLedger"> Adding entries to a ledger. </a>
-</li>
-<li>
-<a href="#bk_closeLedger"> Closing a ledger. </a>
-</li>
-<li>
-<a href="#bk_openLedger"> Opening a ledger. </a>
-</li>
-<li>
-<a href="#bk_readLedger"> Reading from ledger </a>
-</li>
-<li>
-<a href="#bk_deleteLedger"> Deleting a ledger </a>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-  
-
-  
-  
-<a name="bk_GettingStarted"></a>
-<h2 class="h3">Programming with BookKeeper</h2>
-<div class="section">
-<ul>
-      
-<li>
-        
-<p>
-<a href="#bk_instance"> Instantiating BookKeeper.</a>
-</p>
-      
-</li>
-
-      
-<li>
-        
-<p>
-<a href="#bk_createLedger"> Creating a ledger. </a>
-</p>
-      
-</li>
-
-      
-<li>
-        
-<p>
-<a href="#bk_writeLedger"> Adding entries to a ledger. </a>
-</p>
-      
-</li>
-
-      
-<li>
-        
-<p>
-<a href="#bk_closeLedger"> Closing a ledger. </a>
-</p>
-      
-</li>
-      
-         
-<li>
-        
-<p>
-<a href="#bk_openLedger"> Opening a ledger. </a>
-</p>
-      
-</li>
-      
-      
-<li>
-        
-<p>
-<a href="#bk_readLedger"> Reading from ledger </a>
-</p>
-      
-</li>
-      
-      
-<li>
-        
-<p>
-<a href="#bk_deleteLedger"> Deleting a ledger </a>
-</p>
-      
-</li>
-      
-    
-</ul>
-<a name="bk_instance"></a>
-<h3 class="h4"> Instantiating BookKeeper.</h3>
-<p>
-    The first step to use BookKeeper is to instantiate a BookKeeper object:
-    </p>
-<p>
-    
-<span class="codefrag computeroutput">
-    org.apache.bookkeeper.BookKeeper
-    </span>
-    
-</p>
-<p>
-    There are three BookKeeper constructors:
-    </p>
-<p>
-    
-<span class="codefrag computeroutput">
-       public BookKeeper(String servers) 
-       throws KeeperException, IOException    
-    </span>
-       
-</p>
-<p>
-    where:
-    </p>
-<ul>
-       
-<li>
-       
-<p> 
-        
-<span class="codefrag computeroutput">servers</span> is a comma-separated list 
of ZooKeeper servers.
-       </p>
-       
-</li>
-    
-</ul>
-<p>
-    
-<span class="codefrag computeroutput">
-       public BookKeeper(ZooKeeper zk) 
-       throws InterruptedException, KeeperException    
-    </span>
-       
-</p>
-<p>
-    where:
-    </p>
-<ul>
-       
-<li>
-       
-<p> 
-        
-<span class="codefrag computeroutput">zk</span> is a ZooKeeper object. This 
constructor is useful when
-        the application also using ZooKeeper and wants to have a single 
instance of ZooKeeper.  
-       </p>
-       
-</li>
-    
-</ul>
-<p>
-    
-<span class="codefrag computeroutput">
-       public BookKeeper(ZooKeeper zk, ClientSocketChannelFactory 
channelFactory) 
-       throws InterruptedException, KeeperException    
-    </span>
-       
-</p>
-<p>
-    where:
-    </p>
-<ul>
-       
-<li>
-       
-<p> 
-        
-<span class="codefrag computeroutput">zk</span> is a ZooKeeper object. This 
constructor is useful when
-        the application also using ZooKeeper and wants to have a single 
instance of ZooKeeper.  
-       </p>
-       
-</li>
-       
-       
-<li>
-       
-<p> 
-        
-<span class="codefrag computeroutput">channelFactory</span> is a netty channel 
object 
-        (<span class="codefrag 
computeroutput">org.jboss.netty.channel.socket</span>).  
-       </p>
-       
-</li>
-    
-</ul>
-<a name="bk_createLedger"></a>
-<h3 class="h4"> Creating a ledger. </h3>
-<p> Before writing entries to BookKeeper, it is necessary to create a ledger. 
-    With the current BookKeeper API, it is possible to create a ledger both 
synchronously
-    or asynchronously. The following methods belong
-    to <span class="codefrag 
computeroutput">org.apache.bookkeeper.client.BookKeeper</span>.
-    </p>
-<p>
-       
-<strong>Synchronous call:</strong>
-       
-</p>
-<p>
-    
-<span class="codefrag computeroutput">
-    public LedgerHandle createLedger(int ensSize, int qSize, DigestType type,  
byte passwd[])
-        throws KeeperException, InterruptedException, 
-        IOException, BKException
-    </span>
-       
-</p>
-<p>
-    where:
-    </p>
-<ul>
-       
-<li>
-       
-<p> 
-       
-<span class="codefrag computeroutput">ensSize</span> is the number of bookies 
(ensemble size);
-       </p>
-       
-</li>
-    
-       
-<li> 
-       
-<p>
-       
-<span class="codefrag computeroutput">qSize</span> is the write quorum size;
-       </p>
-       
-</li>
-    
-       
-<li> 
-       
-<p>
-       
-<span class="codefrag computeroutput">type</span> is the type of digest used 
with entries: either MAC or CRC32.  
-       </p>
-       
-</li>
-       
-       
-<li>
-       
-<p>
-       
-<span class="codefrag computeroutput">passwd</span> is a password that 
authorizes the client to write to the
-       ledger being created.
-       </p>
-       
-</li>
-    
-</ul>
-<p>
-    All further operations on a ledger are invoked through the <span 
class="codefrag computeroutput">LedgerHandle</span>
-    object returned.
-    </p>
-<p>
-    As a convenience, we provide a <span class="codefrag 
computeroutput">createLedger</span> with default parameters (3,2,VERIFIABLE), 
-    and the only two input parameters it requires are a digest type and a 
password.
-    </p>
-<p>
-       
-<strong>Asynchronous call:</strong>
-       
-</p>
-<p>
-    
-<span class="codefrag computeroutput">
-    public void asyncCreateLedger(int ensSize, 
-            int qSize, 
-            DigestType type,  
-            byte passwd[],
-            CreateCallback cb,
-            Object ctx
-            )
-    </span>
-       
-</p>
-<p>
-       The parameters are the same of the synchronous version, with the
-       exception of <span class="codefrag computeroutput">cb</span> and <span 
class="codefrag computeroutput">ctx</span>. <span class="codefrag 
computeroutput">CreateCallback</span>
-       is an interface in <span class="codefrag 
computeroutput">org.apache.bookkeeper.client.AsyncCallback</span>, and
-       a class implementing it has to implement a method called <span 
class="codefrag computeroutput">createComplete</span>
-       that has the following signature: 
-    </p>
-<p>
-       
-<span class="codefrag computeroutput">
-       void createComplete(int rc, LedgerHandle lh, Object ctx);
-       </span>    
-       
-</p>
-<p>
-       where:
-       </p>
-<ul>
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">rc</span> is a return code (please refer 
to <span class="codefrag 
computeroutput">org.apache.bookeeper.client.BKException</span> for a list);
-               </p>
-               
-</li>
-       
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">lh</span> is a <span class="codefrag 
computeroutput">LedgerHandle</span> object to manipulate a ledger;
-               </p>
-               
-</li>
-               
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">ctx</span> is a control object for 
accountability purposes. It can be essentially any object the application is 
happy with.
-               </p>
-               
-</li>
-       
-</ul>
-<p>
-       The <span class="codefrag computeroutput">ctx</span> object passed as a 
parameter to the call to create a ledger
-       is the one same returned in the callback.
-    </p>
-<a name="bk_writeLedger"></a>
-<h3 class="h4"> Adding entries to a ledger. </h3>
-<p>
-    Once we have a ledger handle <span class="codefrag 
computeroutput">lh</span> obtained through a call to create a ledger, we
-    can start writing entries. As with creating ledgers, we can write both 
synchronously and 
-    asynchronously. The following methods belong
-    to <span class="codefrag 
computeroutput">org.apache.bookkeeper.client.LedgerHandle</span>.
-    </p>
-<p>
-       
-<strong>Synchronous call:</strong>
-       
-</p>
-<p>
-    
-<span class="codefrag computeroutput">
-       public long addEntry(byte[] data)
-       throws InterruptedException
-    </span>
-       
-</p>
-<p>
-    where:
-    </p>
-<ul>
-       
-<li>
-       
-<p> 
-       
-<span class="codefrag computeroutput">data</span> is a byte array;
-       </p>
-       
-</li>
-    
-</ul>
-<p>
-       A call to <span class="codefrag computeroutput">addEntry</span> returns 
the status of the operation (please refer to <span class="codefrag 
computeroutput">org.apache.bookeeper.client.BKDefs</span> for a list);
-    </p>
-<p>
-       
-<strong>Asynchronous call:</strong>
-       
-</p>
-<p>
-    
-<span class="codefrag computeroutput">
-       public void asyncAddEntry(byte[] data, AddCallback cb, Object ctx)
-    </span>
-       
-</p>
-<p>
-    It also takes a byte array as the sequence of bytes to be stored as an 
entry. Additionaly, it takes
-    a callback object <span class="codefrag computeroutput">cb</span> and a 
control object <span class="codefrag computeroutput">ctx</span>. The callback 
object must implement
-    the <span class="codefrag computeroutput">AddCallback</span> interface in 
<span class="codefrag 
computeroutput">org.apache.bookkeeper.client.AsyncCallback</span>, and
-       a class implementing it has to implement a method called <span 
class="codefrag computeroutput">addComplete</span>
-       that has the following signature: 
-    </p>
-<p>
-       
-<span class="codefrag computeroutput">
-       void addComplete(int rc, LedgerHandle lh, long entryId, Object ctx);
-       </span>    
-       
-</p>
-<p>
-       where:
-       </p>
-<ul>
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">rc</span> is a return code (please refer 
to <span class="codefrag 
computeroutput">org.apache.bookeeper.client.BKDefs</span> for a list);
-               </p>
-               
-</li>
-       
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">lh</span> is a <span class="codefrag 
computeroutput">LedgerHandle</span> object to manipulate a ledger;
-               </p>
-               
-</li>
-               
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">entryId</span> is the identifier of 
entry associated with this request;
-               </p>
-               
-</li>
-               
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">ctx</span> is control object used for 
accountability purposes. It can be any object the application is happy with.
-               </p>
-               
-</li>
-       
-</ul>
-<a name="bk_closeLedger"></a>
-<h3 class="h4"> Closing a ledger. </h3>
-<p>
-    Once a client is done writing, it closes the ledger. The following methods 
belong
-    to <span class="codefrag 
computeroutput">org.apache.bookkeeper.client.LedgerHandle</span>.
-    </p>
-<p>
-       
-<strong>Synchronous close:</strong>
-       
-</p>
-<p>
-    
-<span class="codefrag computeroutput">
-       public void close() 
-    throws InterruptedException
-    </span>
-       
-</p>
-<p>
-    It takes no input parameters.
-    </p>
-<p>
-       
-<strong>Asynchronous close:</strong>
-       
-</p>
-<p>
-    
-<span class="codefrag computeroutput">
-       public void asyncClose(CloseCallback cb, Object ctx)
-    throws InterruptedException
-    </span>
-       
-</p>
-<p>
-    It takes a callback object <span class="codefrag computeroutput">cb</span> 
and a control object <span class="codefrag computeroutput">ctx</span>. The 
callback object must implement
-    the <span class="codefrag computeroutput">CloseCallback</span> interface 
in <span class="codefrag 
computeroutput">org.apache.bookkeeper.client.AsyncCallback</span>, and
-       a class implementing it has to implement a method called <span 
class="codefrag computeroutput">closeComplete</span>
-       that has the following signature: 
-    </p>
-<p>
-       
-<span class="codefrag computeroutput">
-       void closeComplete(int rc, LedgerHandle lh, Object ctx)
-       </span>    
-       
-</p>
-<p>
-       where:
-       </p>
-<ul>
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">rc</span> is a return code (please refer 
to <span class="codefrag 
computeroutput">org.apache.bookeeper.client.BKDefs</span> for a list);
-               </p>
-               
-</li>
-       
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">lh</span> is a <span class="codefrag 
computeroutput">LedgerHandle</span> object to manipulate a ledger;
-               </p>
-               
-</li>
-               
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">ctx</span> is control object used for 
accountability purposes. 
-               </p>
-               
-</li>
-       
-</ul>
-<a name="bk_openLedger"></a>
-<h3 class="h4"> Opening a ledger. </h3>
-<p>
-    To read from a ledger, a client must open it first. The following methods 
belong
-    to <span class="codefrag 
computeroutput">org.apache.bookkeeper.client.BookKeeper</span>.
-    </p>
-<p>
-       
-<strong>Synchronous open:</strong>
-       
-</p>
-<p>
-    
-<span class="codefrag computeroutput">
-       public LedgerHandle openLedger(long lId, DigestType type, byte passwd[])
-    throws InterruptedException, BKException
-    </span>
-       
-</p>
-<ul>
-       
-<li>
-       
-<p>
-       
-<span class="codefrag computeroutput">ledgerId</span> is the ledger identifier;
-       </p>
-       
-</li>
-       
-       
-<li> 
-    
-<p>
-    
-<span class="codefrag computeroutput">type</span> is the type of digest used 
with entries: either MAC or CRC32.  
-    </p>
-    
-</li>
-       
-       
-<li>
-       
-<p>
-       
-<span class="codefrag computeroutput">passwd</span> is a password to access 
the ledger (used only in the case of <span class="codefrag 
computeroutput">VERIFIABLE</span> ledgers);
-       </p>
-       
-</li>
-       
-</ul>
-<p>
-       
-<strong>Asynchronous open:</strong>
-       
-</p>
-<p>
-    
-<span class="codefrag computeroutput">
-       public void asyncOpenLedger(long lId, DigestType type, byte passwd[], 
OpenCallback cb, Object ctx)
-    </span>
-       
-</p>
-<p>
-    It also takes a a ledger identifier and a password. Additionaly, it takes 
a callback object 
-    <span class="codefrag computeroutput">cb</span> and a control object <span 
class="codefrag computeroutput">ctx</span>. The callback object must implement
-    the <span class="codefrag computeroutput">OpenCallback</span> interface in 
<span class="codefrag 
computeroutput">org.apache.bookkeeper.client.AsyncCallback</span>, and
-       a class implementing it has to implement a method called <span 
class="codefrag computeroutput">openComplete</span>
-       that has the following signature: 
-    </p>
-<p>
-       
-<span class="codefrag computeroutput">
-       public void openComplete(int rc, LedgerHandle lh, Object ctx)
-       </span>    
-       
-</p>
-<p>
-       where:
-       </p>
-<ul>
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">rc</span> is a return code (please refer 
to <span class="codefrag 
computeroutput">org.apache.bookeeper.client.BKDefs</span> for a list);
-               </p>
-               
-</li>
-       
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">lh</span> is a <span class="codefrag 
computeroutput">LedgerHandle</span> object to manipulate a ledger;
-               </p>
-               
-</li>
-               
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">ctx</span> is control object used for 
accountability purposes. 
-               </p>
-               
-</li>
-       
-</ul>
-<a name="bk_readLedger"></a>
-<h3 class="h4"> Reading from ledger </h3>
-<p>
-    Read calls may request one or more consecutive entries. The following 
methods belong
-    to <span class="codefrag 
computeroutput">org.apache.bookkeeper.client.LedgerHandle</span>.
-    </p>
-<p>
-       
-<strong>Synchronous read:</strong>
-       
-</p>
-<p>
-    
-<span class="codefrag computeroutput">
-       public Enumeration&lt;LedgerEntry&gt; readEntries(long firstEntry, long 
lastEntry) 
-    throws InterruptedException, BKException
-    </span>
-       
-</p>
-<ul>
-       
-<li>
-       
-<p>
-       
-<span class="codefrag computeroutput">firstEntry</span> is the identifier of 
the first entry in the sequence of entries to read;
-       </p>
-       
-</li>
-       
-       
-<li>
-       
-<p>
-       
-<span class="codefrag computeroutput">lastEntry</span> is the identifier of 
the last entry in the sequence of entries to read.
-       </p>
-       
-</li>
-       
-</ul>
-<p>
-       
-<strong>Asynchronous read:</strong>
-       
-</p>
-<p>
-    
-<span class="codefrag computeroutput">
-       public void asyncReadEntries(long firstEntry, 
-            long lastEntry, ReadCallback cb, Object ctx)
-    throws BKException, InterruptedException
-    </span>
-       
-</p>
-<p>
-    It also takes a first and a last entry identifiers. Additionaly, it takes 
a callback object 
-    <span class="codefrag computeroutput">cb</span> and a control object <span 
class="codefrag computeroutput">ctx</span>. The callback object must implement
-    the <span class="codefrag computeroutput">ReadCallback</span> interface in 
<span class="codefrag 
computeroutput">org.apache.bookkeeper.client.AsyncCallback</span>, and
-       a class implementing it has to implement a method called <span 
class="codefrag computeroutput">readComplete</span>
-       that has the following signature: 
-    </p>
-<p>
-       
-<span class="codefrag computeroutput">
-       void readComplete(int rc, LedgerHandle lh, 
Enumeration&lt;LedgerEntry&gt; seq, Object ctx)
-       </span>    
-       
-</p>
-<p>
-       where:
-       </p>
-<ul>
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">rc</span> is a return code (please refer 
to <span class="codefrag 
computeroutput">org.apache.bookeeper.client.BKDefs</span> for a list);
-               </p>
-               
-</li>
-       
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">lh</span> is a <span class="codefrag 
computeroutput">LedgerHandle</span> object to manipulate a ledger;
-               </p>
-               
-</li>
-               
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">seq</span> is a <span class="codefrag 
computeroutput">Enumeration&lt;LedgerEntry&gt; </span> object to containing the 
list of entries requested;
-               </p>
-               
-</li>
-
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">ctx</span> is control object used for 
accountability purposes. 
-               </p>
-               
-</li>
-       
-</ul>
-<a name="bk_deleteLedger"></a>
-<h3 class="h4"> Deleting a ledger </h3>
-<p>
-    Once a client is done with a ledger and is sure that nobody will ever need 
to read from it again, they can delete the ledger.
-    The following methods belong to <span class="codefrag 
computeroutput">org.apache.bookkeeper.client.BookKeeper</span>.
-    </p>
-<p>
-       
-<strong>Synchronous delete:</strong>
-       
-</p>
-<p>
-    
-<span class="codefrag computeroutput">
-        public void deleteLedger(long lId) throws InterruptedException, 
BKException
-    </span>
-    
-</p>
-<ul>
-       
-<li>
-       
-<p>
-       
-<span class="codefrag computeroutput">lId</span> is the ledger identifier;
-       </p>
-       
-</li>
-       
-</ul>
-<p>
-       
-<strong>Asynchronous delete:</strong>
-    
-</p>
-<p>
-      
-<span class="codefrag computeroutput">
-        public void asyncDeleteLedger(long lId, DeleteCallback cb, Object ctx) 
-      </span>
-    
-</p>
-<p>
-    It takes a ledger identifier. Additionally, it takes a callback object 
-    <span class="codefrag computeroutput">cb</span> and a control object <span 
class="codefrag computeroutput">ctx</span>. The callback object must implement
-    the <span class="codefrag computeroutput">DeleteCallback</span> interface 
in <span class="codefrag 
computeroutput">org.apache.bookkeeper.client.AsyncCallback</span>, and
-       a class implementing it has to implement a method called <span 
class="codefrag computeroutput">deleteComplete</span>
-       that has the following signature: 
-    </p>
-<p>
-       
-<span class="codefrag computeroutput">
-       void deleteComplete(int rc, Object ctx)
-       </span>    
-       
-</p>
-<p>
-       where:
-       </p>
-<ul>
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">rc</span> is a return code (please refer 
to <span class="codefrag 
computeroutput">org.apache.bookeeper.client.BKDefs</span> for a list);
-               </p>
-               
-</li>
-       
-               
-<li>
-               
-<p>
-               
-<span class="codefrag computeroutput">ctx</span> is control object used for 
accountability purposes. 
-               </p>
-               
-</li>
-       
-</ul>
-</div>
-
-<p align="right">
-<font size="-2"></font>
-</p>
-</div>
-<!--+
-    |end content
-    +-->
-<div class="clearboth">&nbsp;</div>
-</div>
-<div id="footer">
-<!--+
-    |start bottomstrip
-    +-->
-<div class="lastmodified">
-<script type="text/javascript"><!--
-document.write("Last Published: " + document.lastModified);
-//  --></script>
-</div>
-<div class="copyright">
-        Copyright &copy;
-          <a href="http://www.apache.org/licenses/";>The Apache Software 
Foundation.</a>
-</div>
-<!--+
-    |end bottomstrip
-    +-->
-</div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cf24deb2/docs/bookkeeperProgrammer.pdf
----------------------------------------------------------------------
diff --git a/docs/bookkeeperProgrammer.pdf b/docs/bookkeeperProgrammer.pdf
deleted file mode 100644
index 73f151f..0000000
Binary files a/docs/bookkeeperProgrammer.pdf and /dev/null differ

Reply via email to