Sfoglia il codice sorgente

ZOOKEEPER-529. Use Ivy to pull dependencies and also generate pom (phunt via mahadev)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/zookeeper/trunk@817885 13f79535-47bb-0310-9956-ffa450edef68
Mahadev Konar 15 anni fa
parent
commit
e1af106bfb

+ 3 - 0
CHANGES.txt

@@ -80,6 +80,9 @@ IMPROVEMENTS:
 
 
   ZOOKEEPER-516. add support for 10 minute test ie "pre-commit" test (phunt)
   ZOOKEEPER-516. add support for 10 minute test ie "pre-commit" test (phunt)
 
 
+  ZOOKEEPER-529. Use Ivy to pull dependencies and also generate pom (phunt
+  via mahadev)
+
 NEW FEATURES:
 NEW FEATURES:
 
 
 
 

+ 5 - 2
NOTICE.txt

@@ -1,2 +1,5 @@
-This product includes software developed by The Apache Software
-Foundation (http://www.apache.org/).
+Apache ZooKeeper
+Copyright 2009 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).

+ 8 - 0
bin/zkEnv.sh

@@ -65,6 +65,14 @@ do
     CLASSPATH="$CLASSPATH:$i"
     CLASSPATH="$CLASSPATH:$i"
 done
 done
 #make it work for developers
 #make it work for developers
+for d in ${ZOOBINDIR}/../build/classes
+do
+   CLASSPATH="$CLASSPATH:$d"
+done
+for d in ${ZOOBINDIR}/../build/lib/*.jar
+do
+   CLASSPATH="$CLASSPATH:$d"
+done
 for d in ${ZOOBINDIR}/../src/java/lib/*.jar
 for d in ${ZOOBINDIR}/../src/java/lib/*.jar
 do
 do
    CLASSPATH="$CLASSPATH:$d"
    CLASSPATH="$CLASSPATH:$d"

+ 182 - 146
build.xml

@@ -17,7 +17,7 @@
    limitations under the License.
    limitations under the License.
 -->
 -->
 
 
-<project name="ZooKeeper" default="jar">
+<project name="ZooKeeper" default="jar" xmlns:ivy="antlib:org.apache.ivy.ant">
 
 
     <property name="Name" value="ZooKeeper" />
     <property name="Name" value="ZooKeeper" />
     <property name="name" value="zookeeper" />
     <property name="name" value="zookeeper" />
@@ -36,28 +36,30 @@
 
 
     <property name="src.dir" value="${basedir}/src" />
     <property name="src.dir" value="${basedir}/src" />
     <property name="java.src.dir" value="${src.dir}/java/main" />
     <property name="java.src.dir" value="${src.dir}/java/main" />
-    <property name="jmx.src.dir" value="${src.dir}/java/jmx" />
     <property name="lib.dir" value="${src.dir}/java/lib" />
     <property name="lib.dir" value="${src.dir}/java/lib" />
     <property name="build.dir" value="${basedir}/build" />
     <property name="build.dir" value="${basedir}/build" />
     <property name="distribution" value="${basedir}/distribution" />
     <property name="distribution" value="${basedir}/distribution" />
     <property name="src_generated.dir" value="${src.dir}/java/generated" />
     <property name="src_generated.dir" value="${src.dir}/java/generated" />
     <property name="c.src.dir" value="${src.dir}/c" />    
     <property name="c.src.dir" value="${src.dir}/c" />    
     <property name="csrc_generated.dir" value="${c.src.dir}/generated" />
     <property name="csrc_generated.dir" value="${c.src.dir}/generated" />
-    <property name="build.classes" value="${build.dir}/classes" />
-    <property name="jar.name" value="zookeeper-dev.jar" />
 
 
     <property name="jute.file" value="${src.dir}/zookeeper.jute" />
     <property name="jute.file" value="${src.dir}/zookeeper.jute" />
 
 
-    <property name="build.testclasses" value="${build.dir}/testclasses"/>
-    <property name="test.build.dir" value="${build.dir}/test" />
+    <property name="build.classes" value="${build.dir}/classes"/>
+    <property name="build.docs" value="${build.dir}/docs" />
+    <property name="build.javadoc" value="${build.docs}/api" />
+    <property name="build.javadoc.dev" value="${build.docs}/dev-api"/>
+
+    <property name="test.java.build.dir" value="${build.dir}/test"/>
+    <property name="test.java.classes" value="${test.java.build.dir}/classes"/>
     <property name="test.src.dir" value="${src.dir}/java/test"/>
     <property name="test.src.dir" value="${src.dir}/java/test"/>
     <property name="systest.src.dir" value="${src.dir}/java/systest"/>
     <property name="systest.src.dir" value="${src.dir}/java/systest"/>
-    <property name="test.log.dir" value="${test.build.dir}/logs" />
-    <property name="test.data.dir" value="${test.build.dir}/data" />
+    <property name="test.log.dir" value="${test.java.build.dir}/logs" />
+    <property name="test.data.dir" value="${test.java.build.dir}/data" />
     <property name="test.data.upgrade.dir" value="${test.data.dir}/upgrade" />
     <property name="test.data.upgrade.dir" value="${test.data.dir}/upgrade" />
     <property name="test.data.invalid.dir" value="${test.data.dir}/invalidsnap" />
     <property name="test.data.invalid.dir" value="${test.data.dir}/invalidsnap" />
-    <property name="test.cppunit.dir" value="${test.build.dir}/test-cppunit"/>
-    <property name="test.tmp.dir" value="${test.build.dir}/tmp" />
+    <property name="test.cppunit.dir" value="${test.java.build.dir}/test-cppunit"/>
+    <property name="test.tmp.dir" value="${test.java.build.dir}/tmp" />
     <property name="test.output" value="no" />
     <property name="test.output" value="no" />
     <property name="test.timeout" value="900000" />
     <property name="test.timeout" value="900000" />
     <property name="test.junit.output.format" value="plain" />
     <property name="test.junit.output.format" value="plain" />
@@ -74,21 +76,25 @@
               value="http://java.sun.com/javase/6/docs/api/" />
               value="http://java.sun.com/javase/6/docs/api/" />
     <property name="javadoc.packages" value="org.apache.*" />
     <property name="javadoc.packages" value="org.apache.*" />
 
 
-    <property name="build.docs" value="${build.dir}/docs" />
-    <property name="build.javadoc" value="${build.docs}/api" />
-    <property name="build.javadoc.dev" value="${build.docs}/dev-api"/>
-
     <property name="dist.dir" value="${build.dir}/${final.name}"/>
     <property name="dist.dir" value="${build.dir}/${final.name}"/>
 
 
     <property name="clover.home" location="${env.CLOVER_HOME}"/>
     <property name="clover.home" location="${env.CLOVER_HOME}"/>
     <property name="clover.jar" location="${clover.home}/lib/clover.jar" />
     <property name="clover.jar" location="${clover.home}/lib/clover.jar" />
-    <property name="clover.db.dir" location="${test.build.dir}/clover/db"/>
+    <property name="clover.db.dir" location="${test.java.build.dir}/clover/db"/>
     <property name="clover.report.dir"
     <property name="clover.report.dir"
-              location="${test.build.dir}/clover/reports"/>
+              location="${test.java.build.dir}/clover/reports"/>
 
 
     <property name="contrib.dir" value="${src.dir}/contrib"/>
     <property name="contrib.dir" value="${src.dir}/contrib"/>
     <property name="recipes.dir" value="${src.dir}/recipes"/>
     <property name="recipes.dir" value="${src.dir}/recipes"/>
 
 
+    <property name="ivy.version" value="2.1.0-rc2"/>
+    <property name="ivy.url"
+              value="http://repo2.maven.org/maven2/org/apache/ivy/ivy" />
+    <property name="ivy.home" value="${user.home}/.ant" />
+    <property name="ivy.lib" value="${build.dir}/lib"/>
+    <property name="ivy.test.lib" value="${build.dir}/test/lib"/>
+    <property name="ivy.jdiff.lib" value="${build.dir}/jdiff/lib"/>
+
     <available property="clover.present"
     <available property="clover.present"
                classname="com.cenqua.clover.CloverInstr"
                classname="com.cenqua.clover.CloverInstr"
                classpath="${clover.home}/lib/clover.jar"/>
                classpath="${clover.home}/lib/clover.jar"/>
@@ -120,22 +126,12 @@
     <property name="test_patch_sh" value="${test.src.dir}/bin/test-patch.sh"/>
     <property name="test_patch_sh" value="${test.src.dir}/bin/test-patch.sh"/>
 
 
 	<!-- jdiff.home property set -->
 	<!-- 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.home" value="${ivy.jdiff.lib}"/>
     <property name="jdiff.build.dir" value="${build.docs}/jdiff"/>
     <property name="jdiff.build.dir" value="${build.docs}/jdiff"/>
     <property name="jdiff.xml.dir" value="${lib.dir}/jdiff"/>
     <property name="jdiff.xml.dir" value="${lib.dir}/jdiff"/>
     <property name="jdiff.stable" value="3.1.1"/>
     <property name="jdiff.stable" value="3.1.1"/>
     <property name="jdiff.stable.javadoc" 
     <property name="jdiff.stable.javadoc" 
             value="http://hadoop.apache.org/zookeeper/docs/r${jdiff.stable}/api/"/>
             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                                      -->
     <!-- Macro definitions                                      -->
@@ -151,27 +147,46 @@
       </sequential>
       </sequential>
     </macrodef>
     </macrodef>
 
 
+    <!-- the normal classpath -->
+    <path id="java.classpath">
+      <pathelement location="${build.classes}"/>
+      <fileset dir="${lib.dir}">
+        <include name="**/*.jar" />
+        <exclude name="**/excluded/" />
+      </fileset>
+      <fileset dir="${ant.home}/lib">
+        <include name="ant.jar" />
+      </fileset>
+      <fileset dir="${ivy.lib}">
+        <include name="**/*.jar" />
+      </fileset>
+      <pathelement path="${clover.jar}" />
+    </path>
+
+    <path id="test.java.classpath">
+      <pathelement location="${test.java.classes}" />
+      <fileset dir="${ivy.test.lib}">
+        <include name="**/*.jar" />
+      </fileset>
+      <path refid="java.classpath"/>
+    </path>
+
     <!-- ====================================================== -->
     <!-- ====================================================== -->
     <!-- Generate and compile the Java files                    -->
     <!-- Generate and compile the Java files                    -->
     <!-- ====================================================== -->
     <!-- ====================================================== -->
     <target name="init">    
     <target name="init">    
         <mkdir dir="${build.classes}" />
         <mkdir dir="${build.classes}" />
+
+        <mkdir dir="${ivy.lib}"/>
+        <mkdir dir="${ivy.test.lib}"/>
+        <condition property="ivy.jar.exists">
+          <available file="${lib.dir}/ivy-${ivy.version}.jar"/>
+        </condition>
+
         <tstamp>
         <tstamp>
             <format property="build.time" pattern="MM/dd/yyyy HH:mm zz" timezone="GMT"/>
             <format property="build.time" pattern="MM/dd/yyyy HH:mm zz" timezone="GMT"/>
             <format property="year" pattern="yyyy" timezone="GMT"/>
             <format property="year" pattern="yyyy" timezone="GMT"/>
         </tstamp>
         </tstamp>
-        <condition property="extra.src.dir" value="${jmx.src.dir}">
-            <and>
-                <equals arg1="${target.jdk}" arg2="1.6"/>
-                <available file="${jmx.src.dir}" type="dir"/>
-            </and>
-        </condition>
-        <path id="project.classpath">
-            <fileset dir="${build.classes}" />
-            <pathelement path="${lib.dir}/log4j-1.2.15.jar" />
-            <pathelement path="${clover.jar}" />
-            <pathelement path="${lib.dir}/jline-0.9.94.jar" />
-        </path>
     </target>
     </target>
     
     
     <target name="jute" depends="init">
     <target name="jute" depends="init">
@@ -247,20 +262,38 @@
             target="${target.jdk}" debug="on" />
             target="${target.jdk}" debug="on" />
     </target>
     </target>
     
     
-    <target name="compile-extra" depends="compile-main" if="extra.src.dir">
-         <javac srcdir="${extra.src.dir}" destdir="${build.classes}" 
-                target="${target.jdk}" debug="on">
-            <classpath refid="project.classpath"/>
-        </javac>
-        <copy todir="${build.classes}">
-            <fileset dir="${extra.src.dir}"/>
-        </copy>
-   </target>
-    
-    <target name="compile-main" depends="build-generated">
+    <target name="ivy-download" unless="ivy.jar.exists" depends="init">
+      <delete dir="${lib.dir}"
+              includes="ivy-*.jar" excludes="ivy-${ivy.version}.jar"/>
+      <get src="${ivy.url}/${ivy.version}/ivy-${ivy.version}.jar"
+           dest="${lib.dir}/ivy-${ivy.version}.jar" usetimestamp="true"/>
+    </target>
+
+    <target name="ivy-init" depends="ivy-download">
+      <taskdef resource="org/apache/ivy/ant/antlib.xml"
+               uri="antlib:org.apache.ivy.ant" classpathref="java.classpath"/>
+    </target>
+
+    <target name="ivy-retrieve" depends="init,ivy-init">
+      <ivy:retrieve type="jar" conf="default"
+                    pattern="${ivy.lib}/[artifact]-[revision].[ext]"/>
+    </target>
+
+    <target name="ivy-retrieve-test" depends="init,ivy-init">
+      <ivy:retrieve type="jar" conf="test"
+                    pattern="${ivy.test.lib}/[artifact]-[revision].[ext]"/>
+    </target>
+
+    <target name="ivy-retrieve-jdiff" depends="init,ivy-init">
+      <mkdir dir="${ivy.jdiff.lib}"/>
+      <ivy:retrieve type="jar" conf="jdiff"
+                    pattern="${ivy.jdiff.lib}/[artifact]-[revision].[ext]"/>
+    </target>
+
+    <target name="compile" depends="ivy-retrieve,clover,build-generated">
         <javac srcdir="${java.src.dir}" destdir="${build.classes}" 
         <javac srcdir="${java.src.dir}" destdir="${build.classes}" 
                target="${target.jdk}" debug="on">
                target="${target.jdk}" debug="on">
-            <classpath refid="project.classpath"/>
+            <classpath refid="java.classpath"/>
             <compilerarg value="-Xlint:all"/>
             <compilerarg value="-Xlint:all"/>
             <compilerarg value="-Xlint:-path"/>
             <compilerarg value="-Xlint:-path"/>
         </javac>
         </javac>
@@ -270,29 +303,15 @@
         </copy>
         </copy>
     </target>
     </target>
 
 
-    <target name="compile" depends="clover,compile-main,compile-extra"/>
-
-    <target name="test-classpath">
-      <path id="test.classpath">
-        <fileset dir="${basedir}">
-           <include name="*.jar"/>
-        </fileset>
-        <fileset dir="${lib.dir}">
-          <include name="*.jar"/>
-        </fileset>
-        <pathelement path="${clover.jar}" />
-      </path>
-    </target>
-
-    <target name="compile-test" depends="jar,test-classpath">
-      <mkdir dir="${build.testclasses}"/>
-      <javac srcdir="${test.src.dir}" destdir="${build.testclasses}"
+    <target name="compile-test" depends="ivy-retrieve-test,compile">
+      <mkdir dir="${test.java.classes}"/>
+      <javac srcdir="${test.src.dir}" destdir="${test.java.classes}"
              target="${target.jdk}" debug="on">
              target="${target.jdk}" debug="on">
-        <classpath refid="test.classpath"/>
+        <classpath refid="test.java.classpath"/>
       </javac>
       </javac>
-      <javac srcdir="${systest.src.dir}" destdir="${build.testclasses}"
+      <javac srcdir="${systest.src.dir}" destdir="${test.java.classes}"
              target="${target.jdk}" debug="on">
              target="${target.jdk}" debug="on">
-        <classpath refid="test.classpath"/>
+        <classpath refid="test.java.classpath"/>
       </javac>
       </javac>
     </target>
     </target>
 
 
@@ -343,7 +362,7 @@
     	</packageset>
     	</packageset>
     	<packageset dir="${src_generated.dir}"/>
     	<packageset dir="${src_generated.dir}"/>
         <link href="${javadoc.link.java}"/>
         <link href="${javadoc.link.java}"/>
-        <classpath refid="project.classpath"/>
+        <classpath refid="java.classpath"/>
       </javadoc>
       </javadoc>
     </target>	
     </target>	
 
 
@@ -385,7 +404,7 @@
 		<fileset dir="${basedir}">
 		<fileset dir="${basedir}">
 			<include name="${jar.name}"/>
 			<include name="${jar.name}"/>
 		</fileset> 
 		</fileset> 
-        <path refid="project.classpath"/>
+        <path refid="java.classpath"/>
 	</classpath>
 	</classpath>
       </javadoc>
       </javadoc>
     </target>	
     </target>	
@@ -403,7 +422,7 @@
             </classpath>
             </classpath>
         </java>
         </java>
         <exec executable="hostname" outputproperty="host.name"/>
         <exec executable="hostname" outputproperty="host.name"/>
-        <jar jarfile="${jar.name}"> 
+        <jar jarfile="${build.dir}/${final.name}.jar">
             <fileset file="LICENSE" />
             <fileset file="LICENSE" />
             <fileset dir="${build.classes}" excludes="**/.generated"/>
             <fileset dir="${build.classes}" excludes="**/.generated"/>
             <manifest>
             <manifest>
@@ -417,12 +436,6 @@
             </manifest>
             </manifest>
         </jar>
         </jar>
     </target>
     </target>
-
-    <target name="release-jar">
-        <antcall target="jar">
-            <param name="jar.name" value="${build.dir}/${final.name}.jar" />
-        </antcall>
-    </target>
     
     
     <!-- ================================================================== -->
     <!-- ================================================================== -->
     <!-- D I S T R I B U T I O N                                            -->
     <!-- D I S T R I B U T I O N                                            -->
@@ -430,7 +443,7 @@
     <!--                                                                    -->
     <!--                                                                    -->
     <!-- ================================================================== -->
     <!-- ================================================================== -->
     <target name="package"
     <target name="package"
-            depends="release-jar,api-report,compile-test,create-cppunit-configure"
+            depends="jar,api-report,create-cppunit-configure,compile-test"
             description="Build distribution">
             description="Build distribution">
       <mkdir dir="${dist.dir}"/>
       <mkdir dir="${dist.dir}"/>
       <mkdir dir="${dist.dir}/lib"/>
       <mkdir dir="${dist.dir}/lib"/>
@@ -442,7 +455,10 @@
       <mkdir dir="${dist.dir}/docs/api"/>
       <mkdir dir="${dist.dir}/docs/api"/>
 
 
       <copy todir="${dist.dir}/lib" includeEmptyDirs="false">
       <copy todir="${dist.dir}/lib" includeEmptyDirs="false">
-        <fileset dir="${lib.dir}"/>
+        <fileset dir="${lib.dir}">
+          <exclude name="**/ivy*.jar" />
+        </fileset>
+        <fileset dir="${ivy.lib}"/>
       </copy>
       </copy>
 
 
       <subant target="package">
       <subant target="package">
@@ -458,6 +474,18 @@
         <fileset file="${build.dir}/${final.name}.jar"/>
         <fileset file="${build.dir}/${final.name}.jar"/>
       </copy>
       </copy>
       
       
+      <checksum file="${dist.dir}/${final.name}.jar" algorithm="md5"/>
+      <checksum file="${dist.dir}/${final.name}.jar" algorithm="sha1"/>
+
+      <ivy:makepom ivyfile="${basedir}/ivy.xml"
+                   pomfile="${dist.dir}/${final.name}.pom">
+        <mapping conf="default" scope="compile"/>
+        <mapping conf="test" scope="test"/>
+      </ivy:makepom>
+
+      <checksum file="${dist.dir}/${final.name}.pom" algorithm="md5"/>
+      <checksum file="${dist.dir}/${final.name}.pom" algorithm="sha1"/>
+
       <copy todir="${dist.dir}/bin">
       <copy todir="${dist.dir}/bin">
         <fileset dir="bin"/>
         <fileset dir="bin"/>
       </copy>
       </copy>
@@ -475,14 +503,14 @@
         <fileset dir=".">
         <fileset dir=".">
           <include name="*.txt" />
           <include name="*.txt" />
         </fileset>
         </fileset>
+        <fileset file="build.xml"/>
+        <fileset file="ivy.xml"/>
       </copy>
       </copy>
 
 
       <copy todir="${dist.dir}/src" includeEmptyDirs="true">
       <copy todir="${dist.dir}/src" includeEmptyDirs="true">
-        <fileset dir="src" excludes="**/*.template **/docs/build/**/*"/>
+        <fileset dir="src" excludes="**/*.template **/docs/build/**/* **/ivy*.jar"/>
       </copy>
       </copy>
   	  
   	  
-      <copy todir="${dist.dir}/" file="build.xml"/>
-
       <chmod perm="ugo+x" type="file" parallel="false">
       <chmod perm="ugo+x" type="file" parallel="false">
         <fileset dir="${dist.dir}/bin"/>
         <fileset dir="${dist.dir}/bin"/>
         <fileset dir="${dist.dir}/src/contrib/">
         <fileset dir="${dist.dir}/src/contrib/">
@@ -568,8 +596,6 @@
       <delete dir="${docs.src}/build"/>
       <delete dir="${docs.src}/build"/>
       <delete dir="${src_generated.dir}" />
       <delete dir="${src_generated.dir}" />
       <delete dir="${csrc_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}/Null.java"/>
       <delete file="${lib.dir}/rats.jar" />
       <delete file="${lib.dir}/rats.jar" />
       <delete file="${jdiff.xml.dir}/${name}_${version}.xml"/>	
       <delete file="${jdiff.xml.dir}/${name}_${version}.xml"/>	
@@ -652,9 +678,9 @@
                with junit fork mode set to "once")-->
                with junit fork mode set to "once")-->
           <sysproperty key="zookeeper.DigestAuthenticationProvider.superDigest"
           <sysproperty key="zookeeper.DigestAuthenticationProvider.superDigest"
                        value="super:D/InIHSb7yEEbrWz8b9l71RjZJU=" />
                        value="super:D/InIHSb7yEEbrWz8b9l71RjZJU=" />
-          <classpath refid="test.classpath"/>
+          <classpath refid="test.java.classpath"/>
           <classpath>
           <classpath>
-            <pathelement path="${build.testclasses}" />
+            <pathelement path="${test.java.classes}" />
           </classpath>
           </classpath>
           <formatter type="${test.junit.output.format}" />
           <formatter type="${test.junit.output.format}" />
           <batchtest todir="${test.log.dir}" if="quicktest">
           <batchtest todir="${test.log.dir}" if="quicktest">
@@ -826,7 +852,7 @@
     <!-- Run with 'ant -Dfindbugs.home="path to Findbugs directory" findbugs -->
     <!-- Run with 'ant -Dfindbugs.home="path to Findbugs directory" findbugs -->
     <property name="findbugs.home" value="" />
     <property name="findbugs.home" value="" />
     <target name="findbugs" depends="check-for-findbugs, jar" if="findbugs.present">
     <target name="findbugs" depends="check-for-findbugs, jar" if="findbugs.present">
-        <property name="findbugs.out.dir" value="${test.build.dir}/findbugs" />
+        <property name="findbugs.out.dir" value="${test.java.build.dir}/findbugs" />
         <property name="findbugs.exclude.file" value="${config.dir}/findbugsExcludeFile.xml" />
         <property name="findbugs.exclude.file" value="${config.dir}/findbugsExcludeFile.xml" />
         <property name="findbugs.report.htmlfile" value="${findbugs.out.dir}/zookeeper-findbugs-report.html" />
         <property name="findbugs.report.htmlfile" value="${findbugs.out.dir}/zookeeper-findbugs-report.html" />
         <property name="findbugs.report.xmlfile" value="${findbugs.out.dir}/zookeeper-findbugs-report.xml" />
         <property name="findbugs.report.xmlfile" value="${findbugs.out.dir}/zookeeper-findbugs-report.xml" />
@@ -835,9 +861,9 @@
         <mkdir dir="${findbugs.out.dir}" />
         <mkdir dir="${findbugs.out.dir}" />
         <findbugs home="${findbugs.home}" output="xml:withMessages" excludeFilter="${findbugs.exclude.file}" 
         <findbugs home="${findbugs.home}" output="xml:withMessages" excludeFilter="${findbugs.exclude.file}" 
                 outputFile="${findbugs.report.xmlfile}" effort="max" jvmargs="-Xmx512M">
                 outputFile="${findbugs.report.xmlfile}" effort="max" jvmargs="-Xmx512M">
-            <auxClasspath path="${lib.dir}/log4j-1.2.15.jar" />
+            <auxClasspath path="${ivy.lib}/log4j-1.2.15.jar" />
             <sourcePath path="${java.src.dir}" />
             <sourcePath path="${java.src.dir}" />
-            <class location="${basedir}/${jar.name}" />
+            <class location="${build.dir}/${final.name}.jar" />
         </findbugs>
         </findbugs>
         <xslt style="${findbugs.home}/src/xsl/default.xsl" in="${findbugs.report.xmlfile}" 
         <xslt style="${findbugs.home}/src/xsl/default.xsl" in="${findbugs.report.xmlfile}" 
                 out="${findbugs.report.htmlfile}" />
                 out="${findbugs.report.htmlfile}" />
@@ -858,6 +884,9 @@
           <fileset dir="${lib.dir}">
           <fileset dir="${lib.dir}">
             <include name="*.jar"/>
             <include name="*.jar"/>
           </fileset>
           </fileset>
+          <fileset dir="${ivy.lib}">
+            <include name="**/*.jar" />
+          </fileset>
         </classpath>
         </classpath>
       </taskdef>
       </taskdef>
 
 
@@ -885,11 +914,14 @@
                 <fileset dir="${lib.dir}">
                 <fileset dir="${lib.dir}">
                     <include name="*.jar"/>
                     <include name="*.jar"/>
                 </fileset>
                 </fileset>
+                <fileset dir="${ivy.lib}">
+                  <include name="**/*.jar" />
+                </fileset>
             </classpath>
             </classpath>
             <classpath>
             <classpath>
-                <pathelement path="${build.testclasses}" />
+                <pathelement path="${test.java.classes}" />
             </classpath>
             </classpath>
-            <classpath refid="test.classpath"/>
+            <classpath refid="test.java.classpath"/>
             <classpath>
             <classpath>
                 <pathelement path="${build.classes}" />
                 <pathelement path="${build.classes}" />
             </classpath>
             </classpath>
@@ -923,13 +955,13 @@
     	<taskdef resource="checkstyletask.properties">
     	<taskdef resource="checkstyletask.properties">
         	<classpath refid="checkstyle-classpath"/>
         	<classpath refid="checkstyle-classpath"/>
         </taskdef>
         </taskdef>
-        <mkdir dir="${test.build.dir}"/>
+        <mkdir dir="${test.java.build.dir}"/>
         <checkstyle config="${test.src.dir}/checkstyle.xml" failOnViolation="false">
         <checkstyle config="${test.src.dir}/checkstyle.xml" failOnViolation="false">
         	<fileset dir="${src.dir}/java" includes="**/*.java" excludes="**/generated/**"/>
         	<fileset dir="${src.dir}/java" includes="**/*.java" excludes="**/generated/**"/>
-        	<formatter type="xml" toFile="${test.build.dir}/checkstyle-errors.xml"/>
+        	<formatter type="xml" toFile="${test.java.build.dir}/checkstyle-errors.xml"/>
         </checkstyle>
         </checkstyle>
-        <xslt style="${test.src.dir}/checkstyle-noframes-sorted.xsl" in="${test.build.dir}/checkstyle-errors.xml"
-        	out="${test.build.dir}/checkstyle-errors.html"/>
+        <xslt style="${test.src.dir}/checkstyle-noframes-sorted.xsl" in="${test.java.build.dir}/checkstyle-errors.xml"
+        	out="${test.java.build.dir}/checkstyle-errors.html"/>
     </target>
     </target>
 
 
     <target name="checkstyle.check" unless="checkstyle.home">
     <target name="checkstyle.check" unless="checkstyle.home">
@@ -1012,59 +1044,63 @@
     	</exec>
     	</exec>
      </target>
      </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 name="api-xml" depends="ivy-retrieve-jdiff, javadoc, write-null">
+       <javadoc>
+         <doclet name="jdiff.JDiff"
+                 path="${ivy.jdiff.lib}/jdiff-1.0.9.jar:${ivy.jdiff.lib}/xerces-1.4.4.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>
+           <pathelement location="${build.classes}"/>
+           <fileset dir="${lib.dir}">
+             <include name="**/*.jar" />
+             <exclude name="**/excluded/" />
+           </fileset>
+           <fileset dir="${ivy.lib}">
+             <include name="**/*.jar" />
+           </fileset>
+         </classpath>
+       </javadoc>
      </target>
      </target>
-	
+     
      <target name="write-null">
      <target name="write-null">
-	<exec executable="touch">
-		<arg value="${jdiff.home}/Null.java"/>
-        </exec>
+       <exec executable="touch">
+         <arg value="${jdiff.home}/Null.java"/>
+       </exec>
      </target> 
      </target> 
 
 
      <target name="api-report" depends="api-xml">
      <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>
+       <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="${ivy.jdiff.lib}/jdiff-1.0.9.jar:${ivy.jdiff.lib}/xerces-1.4.4.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>
+           <pathelement location="${build.classes}"/>
+           <fileset dir="${lib.dir}">
+             <include name="**/*.jar" />
+             <exclude name="**/excluded/" />
+           </fileset>
+           <fileset dir="${ivy.lib}">
+             <include name="**/*.jar" />
+           </fileset>
+         </classpath>
        </javadoc>
        </javadoc>
-  </target>
+     </target>
 
 
 </project>
 </project>

+ 23 - 2
src/c/tests/zkServer.sh

@@ -47,18 +47,39 @@ kill -9 $pid
 rm -f ${base_dir}/build/tmp/zk.pid
 rm -f ${base_dir}/build/tmp/zk.pid
 fi
 fi
 
 
+if [ "x${base_dir}" == "x" ]	
+then
+zk_base="../../"
+else
+zk_base="${base_dir}"
+fi
+
+CLASSPATH="$CLASSPATH:${zk_base}/build/classes"
+CLASSPATH="$CLASSPATH:${zk_base}/conf"
+
+for i in "${zk_base}"/build/lib/*.jar
+do
+    CLASSPATH="$CLASSPATH:$i"
+done
+
+for i in "${zk_base}"/src/java/lib/*.jar
+do
+    CLASSPATH="$CLASSPATH:$i"
+done
+
+CLASSPATH="$CLASSPATH:${CLOVER_HOME}/lib/clover.jar"
 
 
 case $1 in
 case $1 in
 start|startClean)
 start|startClean)
 	if [ "x${base_dir}" == "x" ]
 	if [ "x${base_dir}" == "x" ]
         then
         then
       	mkdir -p /tmp/zkdata
       	mkdir -p /tmp/zkdata
-        java -cp ../../zookeeper-dev.jar:../../src/java/lib/log4j-1.2.15.jar:${CLOVER_HOME}/lib/clover.jar org.apache.zookeeper.server.ZooKeeperServerMain 22181 /tmp/zkdata 3000 $ZKMAXCNXNS &> /tmp/zk.log &
+        java -cp $CLASSPATH org.apache.zookeeper.server.ZooKeeperServerMain 22181 /tmp/zkdata 3000 $ZKMAXCNXNS &> /tmp/zk.log &
         pid=$!
         pid=$!
         echo $! > /tmp/zk.pid        
         echo $! > /tmp/zk.pid        
         else
         else
         mkdir -p ${base_dir}/build/tmp/zkdata
         mkdir -p ${base_dir}/build/tmp/zkdata
-        java -cp ${base_dir}/zookeeper-dev.jar:${base_dir}/src/java/lib/log4j-1.2.15.jar:${base_dir}/conf:${CLOVER_HOME}/lib/clover.jar org.apache.zookeeper.server.ZooKeeperServerMain 22181 ${base_dir}/build/tmp/zkdata 3000 $ZKMAXCNXNS &> ${base_dir}/build/tmp/zk.log &
+        java -cp $CLASSPATH org.apache.zookeeper.server.ZooKeeperServerMain 22181 ${base_dir}/build/tmp/zkdata 3000 $ZKMAXCNXNS &> ${base_dir}/build/tmp/zk.log &
         echo $! > ${base_dir}/build/tmp/zk.pid
         echo $! > ${base_dir}/build/tmp/zk.pid
 	fi
 	fi
         sleep 5
         sleep 5

+ 1 - 1
src/contrib/bookkeeper/README.txt

@@ -19,7 +19,7 @@ A typical BookKeeper configuration includes a set of bookies and a ZooKeeper ens
 
 
 To set up BookKeeper, follow these steps:
 To set up BookKeeper, follow these steps:
 * Once bookies and ZooKeeper servers are running, create two znodes: "/ledgers" and "/ledgers/available". 
 * Once bookies and ZooKeeper servers are running, create two znodes: "/ledgers" and "/ledgers/available". 
-* To run a bookie, run the java class "org.apache.bookkeeper.proto.BookieServer". It takes 3 parameters: a port, one directory path for transaction logs, and one directory path for indexes and data. Here is an example: java -cp .:bookkeeper.jar:../ZooKeeper/zookeeper-dev.jar:/usr/local/apache-log4j-1.2.15/log4j-1.2.15.jar -Dlog4j.configuration=log4j.properties org.apache.bookkeeper.proto.BookieServer 3181 /disk1/bk/ /disk2/bk/
+* To run a bookie, run the java class "org.apache.bookkeeper.proto.BookieServer". It takes 3 parameters: a port, one directory path for transaction logs, and one directory path for indexes and data. Here is an example: java -cp .:bookkeeper.jar:../ZooKeeper/zookeeper-<version>.jar:/usr/local/apache-log4j-1.2.15/log4j-1.2.15.jar -Dlog4j.configuration=log4j.properties org.apache.bookkeeper.proto.BookieServer 3181 /disk1/bk/ /disk2/bk/
 * For each bookie b, if <host> is the host name of b and <port> is the bookie port, then create a znode "/ledgers/available/<host>:<port>".
 * For each bookie b, if <host> is the host name of b and <port> is the bookie port, then create a znode "/ledgers/available/<host>:<port>".
 * It is ready to run! 
 * It is ready to run! 
 
 

+ 1 - 8
src/contrib/bookkeeper/build.xml

@@ -41,18 +41,11 @@
     <fail message="ZooKeeper main must first be compiled (toplevel build.xml)"/>
     <fail message="ZooKeeper main must first be compiled (toplevel build.xml)"/>
   </target>
   </target>
 
 
-  <target name="versionedjarname" if="version">
+  <target name="setjarname">
     <property name="jarname"
     <property name="jarname"
               value="${build.dir}/zookeeper-${version}-${name}.jar"/>
               value="${build.dir}/zookeeper-${version}-${name}.jar"/>
   </target>
   </target>
 
 
-  <target name="unversionedjarname" unless="version">
-    <property name="jarname"
-              value="${build.dir}/zookeeper-dev-${name}.jar"/>
-  </target>
-
-  <target name="setjarname" depends="versionedjarname, unversionedjarname"/>
-
   <!-- Override jar target to specify main class -->
   <!-- Override jar target to specify main class -->
   <target name="jar" depends="checkMainCompiled, setjarname, compile">
   <target name="jar" depends="checkMainCompiled, setjarname, compile">
     <echo message="contrib: ${name}"/>
     <echo message="contrib: ${name}"/>

+ 6 - 0
src/contrib/build-contrib.xml

@@ -48,6 +48,12 @@
     <pathelement location="${build.classes}"/>
     <pathelement location="${build.classes}"/>
     <fileset refid="lib.jars"/>
     <fileset refid="lib.jars"/>
     <pathelement location="${zk.root}/build/classes"/>
     <pathelement location="${zk.root}/build/classes"/>
+    <fileset dir="${zk.root}/build/lib">
+      <include name="**/*.jar" />
+    </fileset>
+    <fileset dir="${zk.root}/build/test/lib">
+      <include name="**/*.jar" />
+    </fileset>
     <fileset dir="${zk.root}/src/java/lib">
     <fileset dir="${zk.root}/src/java/lib">
       <include name="**/*.jar" />
       <include name="**/*.jar" />
     </fileset>
     </fileset>

+ 2 - 9
src/contrib/fatjar/build.xml

@@ -28,18 +28,11 @@
     <fail message="ZooKeeper main must first be compiled (toplevel build.xml)"/>
     <fail message="ZooKeeper main must first be compiled (toplevel build.xml)"/>
   </target>
   </target>
 
 
-  <target name="versionedjarname" if="version">
+  <target name="setjarname">
     <property name="jarname"
     <property name="jarname"
               value="${build.dir}/zookeeper-${version}-${name}.jar"/>
               value="${build.dir}/zookeeper-${version}-${name}.jar"/>
   </target>
   </target>
 
 
-  <target name="unversionedjarname" unless="version">
-    <property name="jarname"
-              value="${build.dir}/zookeeper-dev-${name}.jar"/>
-  </target>
-
-  <target name="setjarname" depends="versionedjarname, unversionedjarname"/>
-
   <!-- Override jar target to specify main class -->
   <!-- Override jar target to specify main class -->
   <target name="jar" depends="checkMainCompiled, setjarname, compile">
   <target name="jar" depends="checkMainCompiled, setjarname, compile">
     <echo message="contrib: ${name}"/>
     <echo message="contrib: ${name}"/>
@@ -59,7 +52,7 @@
       <fileset file="${zk.root}/LICENSE.txt" />
       <fileset file="${zk.root}/LICENSE.txt" />
       <fileset file="${zk.root}/conf/log4j.properties" />
       <fileset file="${zk.root}/conf/log4j.properties" />
       <fileset dir="${zk.root}/build/classes" excludes="**/.generated"/>
       <fileset dir="${zk.root}/build/classes" excludes="**/.generated"/>
-      <fileset dir="${zk.root}/build/testclasses"/>
+      <fileset dir="${zk.root}/build/test/classes"/>
       <zipgroupfileset dir="${zk.root}/src/java/lib" includes="*.jar" />
       <zipgroupfileset dir="${zk.root}/src/java/lib" includes="*.jar" />
     </jar>
     </jar>
   </target>
   </target>

+ 1 - 10
src/contrib/rest/build.xml

@@ -42,20 +42,13 @@
     <fail message="ZooKeeper main must first be compiled (toplevel build.xml)"/>
     <fail message="ZooKeeper main must first be compiled (toplevel build.xml)"/>
   </target>
   </target>
 
 
-  <target name="versionedjarname" if="version">
+  <target name="setjarname">
     <property name="main.jarname"
     <property name="main.jarname"
               value="${zk.root}/build/zookeeper-${version}.jar"/>
               value="${zk.root}/build/zookeeper-${version}.jar"/>
     <property name="jarname"
     <property name="jarname"
               value="${build.dir}/zookeeper-${version}-${name}.jar"/>
               value="${build.dir}/zookeeper-${version}-${name}.jar"/>
   </target>
   </target>
 
 
-  <target name="unversionedjarname" unless="version">
-    <property name="main.jarname"
-              value="${zk.root}/zookeeper-dev.jar"/>
-    <property name="jarname"
-              value="${build.dir}/zookeeper-dev-${name}.jar"/>
-  </target>
-
   <target name="test"
   <target name="test"
           depends="compile-test,test-init,test-category,test-start,junit.run,test-stop" />
           depends="compile-test,test-init,test-category,test-start,junit.run,test-stop" />
 
 
@@ -126,8 +119,6 @@
        <fail if="tests.failed">Tests failed!</fail>
        <fail if="tests.failed">Tests failed!</fail>
     </target>
     </target>
 
 
-  <target name="setjarname" depends="versionedjarname, unversionedjarname"/>
-
   <target name="jar" depends="checkMainCompiled, setjarname, compile">
   <target name="jar" depends="checkMainCompiled, setjarname, compile">
     <echo message="contrib: ${name}"/>
     <echo message="contrib: ${name}"/>
     <jar jarfile="${jarname}">
     <jar jarfile="${jarname}">

+ 22 - 2
src/contrib/rest/src/test/zkServer.sh

@@ -47,16 +47,36 @@ kill -9 $pid
 rm -f ${base_dir}/build/tmp/zk.pid
 rm -f ${base_dir}/build/tmp/zk.pid
 fi
 fi
 
 
+if [ "x${base_dir}" == "x" ]	
+then
+zk_base="../../../"
+else
+zk_base="${base_dir}"
+fi
+
+CLASSPATH="$CLASSPATH:${zk_base}/build/classes"
+CLASSPATH="$CLASSPATH:${zk_base}/conf"
+
+for i in "${zk_base}"/build/lib/*.jar
+do
+    CLASSPATH="$CLASSPATH:$i"
+done
+
+for i in "${zk_base}"/src/java/lib/*.jar
+do
+    CLASSPATH="$CLASSPATH:$i"
+done
+
 case $1 in
 case $1 in
 start|startClean)
 start|startClean)
     if [ "x${base_dir}" == "x" ]
     if [ "x${base_dir}" == "x" ]
         then
         then
         mkdir -p /tmp/zkdata
         mkdir -p /tmp/zkdata
-        java -cp ../../../zookeeper-dev.jar:../../../src/java/lib/log4j-1.2.15.jar:../../../conf org.apache.zookeeper.server.ZooKeeperServerMain 22182 /tmp/zkdata &> /tmp/zk.log &
+        java -cp $CLASSPATH org.apache.zookeeper.server.ZooKeeperServerMain 22182 /tmp/zkdata &> /tmp/zk.log &
         echo $! > /tmp/zk.pid
         echo $! > /tmp/zk.pid
         else
         else
         mkdir -p ${base_dir}/build/tmp/zkdata
         mkdir -p ${base_dir}/build/tmp/zkdata
-        java -cp ${base_dir}/zookeeper-dev.jar:${base_dir}/src/java/lib/log4j-1.2.15.jar:${base_dir}/conf org.apache.zookeeper.server.ZooKeeperServerMain 22182 ${base_dir}/build/tmp/zkdata &> ${base_dir}/build/tmp/zk.log &
+        java -cp $CLASSPATH org.apache.zookeeper.server.ZooKeeperServerMain 22182 ${base_dir}/build/tmp/zkdata &> ${base_dir}/build/tmp/zk.log &
         echo $! > ${base_dir}/build/tmp/zk.pid
         echo $! > ${base_dir}/build/tmp/zk.pid
     fi
     fi
         sleep 5
         sleep 5

+ 22 - 2
src/contrib/zkpython/src/test/zkServer.sh

@@ -32,6 +32,26 @@ then
     fi
     fi
 fi
 fi
 
 
+if [ "x${base_dir}" == "x" ]	
+then
+zk_base="../../../"
+else
+zk_base="${base_dir}"
+fi
+
+CLASSPATH="$CLASSPATH:${zk_base}/build/classes"
+CLASSPATH="$CLASSPATH:${zk_base}/conf"
+
+for i in "${zk_base}"/build/lib/*.jar
+do
+    CLASSPATH="$CLASSPATH:$i"
+done
+
+for i in "${zk_base}"/src/java/lib/*.jar
+do
+    CLASSPATH="$CLASSPATH:$i"
+done
+
 # Make sure nothing is left over from before
 # Make sure nothing is left over from before
 #fuser -skn tcp 22182/tcp
 #fuser -skn tcp 22182/tcp
 
 
@@ -40,10 +60,10 @@ start|startClean)
     if [ "x${base_dir}" == "x" ]
     if [ "x${base_dir}" == "x" ]
         then
         then
         mkdir -p /tmp/zkdata
         mkdir -p /tmp/zkdata
-        java -cp ../../../zookeeper-dev.jar:../../../src/java/lib/log4j-1.2.15.jar:../../../conf org.apache.zookeeper.server.ZooKeeperServerMain 22182 /tmp/zkdata &> /tmp/zk.log &
+        java -cp $CLASSPATH org.apache.zookeeper.server.ZooKeeperServerMain 22182 /tmp/zkdata &> /tmp/zk.log &
         else
         else
         mkdir -p ${base_dir}/build/tmp/zkdata
         mkdir -p ${base_dir}/build/tmp/zkdata
-        java -cp ${base_dir}/zookeeper-dev.jar:${base_dir}/src/java/lib/log4j-1.2.15.jar:${base_dir}/conf org.apache.zookeeper.server.ZooKeeperServerMain 22182 ${base_dir}/build/tmp/zkdata &> ${base_dir}/build/tmp/zk.log &
+        java -cp $CLASSPATH org.apache.zookeeper.server.ZooKeeperServerMain 22182 ${base_dir}/build/tmp/zkdata &> ${base_dir}/build/tmp/zk.log &
     fi
     fi
         sleep 5
         sleep 5
     ;;
     ;;

+ 1 - 1
src/docs/src/documentation/content/xdocs/bookkeeperConfig.xml

@@ -100,7 +100,7 @@
  	   </para>
  	   </para>
  	   
  	   
  	   <para><computeroutput>
  	   <para><computeroutput>
-		java -cp .:./zookeeper-dev-bookkeeper.jar:./zookeeper-dev.jar:../log4j/apache-log4j-1.2.15/log4j-1.2.15.jar\
+		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 /path_to_log_device/\
 		-Dlog4j.configuration=log4j.properties org.apache.bookkeeper.proto.BookieServer 3181 /path_to_log_device/\
 		/path_to_ledger_device/
 		/path_to_ledger_device/
 	   </computeroutput></para>
 	   </computeroutput></para>

+ 1 - 1
src/docs/src/documentation/content/xdocs/bookkeeperStarted.xml

@@ -87,7 +87,7 @@
 		</para>
 		</para>
 		
 		
 		<para><computeroutput>
 		<para><computeroutput>
-		java -cp .:./zookeeper-dev-bookkeeper.jar:./zookeeper-dev.jar:../log4j/apache-log4j-1.2.15/log4j-1.2.15.jar\
+		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 /path_to_log_device/\
 		-Dlog4j.configuration=log4j.properties org.apache.bookkeeper.proto.BookieServer 3181 /path_to_log_device/\
 		/path_to_ledger_device/
 		/path_to_ledger_device/
 		</computeroutput></para>
 		</computeroutput></para>

+ 0 - 4
src/java/lib/README.txt

@@ -1,4 +0,0 @@
-Folowing is the list of external jars contained in this directory and the sources from where they were obtained:
----------------------------------------------------------------------------------------------------------------
-
-* jline-0.9.94.jar - http://jline.sourceforge.net/

BIN
src/java/lib/jline-0.9.94.jar


+ 0 - 27
src/java/lib/junit-4.4.LICENSE.txt

@@ -1,27 +0,0 @@
-BSD License
-
-Copyright (c) 2000-2006, www.hamcrest.org
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this list of
-conditions and the following disclaimer. Redistributions in binary form must reproduce
-the above copyright notice, this list of conditions and the following disclaimer in
-the documentation and/or other materials provided with the distribution.
-
-Neither the name of Hamcrest nor the names of its contributors may be used to endorse
-or promote products derived from this software without specific prior written
-permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
-SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
-WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.

BIN
src/java/lib/junit-4.4.jar


+ 0 - 5
src/java/lib/log4j-1.2.15.NOTICE.txt

@@ -1,5 +0,0 @@
-Apache log4j
-Copyright 2007 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).

BIN
src/java/lib/log4j-1.2.15.jar


+ 3 - 3
src/java/systest/README.txt

@@ -30,14 +30,14 @@ zkHostPort : the host:port of the server from step 2)
 
 
 4) initiate the system test using the fatjar:
 4) initiate the system test using the fatjar:
 
 
-java -jar build/contrib/fatjar/zookeeper-dev-fatjar.jar systest org.apache.zookeeper.test.system.SimpleSysTest
+java -jar build/contrib/fatjar/zookeeper-<version>-fatjar.jar systest org.apache.zookeeper.test.system.SimpleSysTest
 
 
 by default it will access the zk server started in 2) on localhost:2181 
 by default it will access the zk server started in 2) on localhost:2181 
 
 
 or you can specify a remote host:port using
 or you can specify a remote host:port using
   -DsysTest.zkHostPort=<host>:<port>,<host>:<port>,...
   -DsysTest.zkHostPort=<host>:<port>,<host>:<port>,...
 
 
-java -DsysTest.zkHostPort=hostA:2181  -jar build/contrib/fatjar/zookeeper-dev-fatjar.jar systest org.apache.zookeeper.test.system.SimpleSysTest
+java -DsysTest.zkHostPort=hostA:2181  -jar build/contrib/fatjar/zookeeper-<version>-fatjar.jar systest org.apache.zookeeper.test.system.SimpleSysTest
 
 
 where hostA is running the zk server started in step 2) above
 where hostA is running the zk server started in step 2) above
 
 
@@ -53,7 +53,7 @@ sure the system test isn't running when you run the benchmark.
 
 
 4) run GenerateLoad using the following
 4) run GenerateLoad using the following
 
 
-java -jar build/contrib/fatjar/zookeeper-dev-fatjar.jar generateLoad <zkHostPort> <prefix> #servers #clients
+java -jar build/contrib/fatjar/zookeeper-<version>-fatjar.jar generateLoad <zkHostPort> <prefix> #servers #clients
 
 
 Once GenerateLoad is started, it will read commands from stdin. Usually
 Once GenerateLoad is started, it will read commands from stdin. Usually
 the only command you need to know is "percentage" which sets the percentage
 the only command you need to know is "percentage" which sets the percentage

+ 3 - 0
src/recipes/build-recipes.xml

@@ -48,6 +48,9 @@
     <pathelement location="${build.classes}"/>
     <pathelement location="${build.classes}"/>
     <fileset refid="lib.jars"/>
     <fileset refid="lib.jars"/>
     <pathelement location="${zk.root}/build/classes"/>
     <pathelement location="${zk.root}/build/classes"/>
+    <fileset dir="${zk.root}/build/lib">
+      <include name="**/*.jar" />
+    </fileset>
     <fileset dir="${zk.root}/src/java/lib">
     <fileset dir="${zk.root}/src/java/lib">
       <include name="**/*.jar" />
       <include name="**/*.jar" />
     </fileset>
     </fileset>

+ 2 - 9
src/recipes/lock/build.xml

@@ -17,7 +17,7 @@
 
 
 <project name="lock" default="jar">
 <project name="lock" default="jar">
   <import file="../build-recipes.xml"/>
   <import file="../build-recipes.xml"/>
-    <property name="test.main.classes" value="${zk.root}/build/testclasses"/>
+    <property name="test.main.classes" value="${zk.root}/build/test/classes"/>
     <property name="test.build.dir" value="${build.test}" />
     <property name="test.build.dir" value="${build.test}" />
     <property name="test.src.dir" value="test"/>
     <property name="test.src.dir" value="test"/>
     <property name="test.log.dir" value="${test.build.dir}/logs" />
     <property name="test.log.dir" value="${test.build.dir}/logs" />
@@ -41,18 +41,11 @@
     <fail message="ZooKeeper main must first be compiled (toplevel build.xml)"/>
     <fail message="ZooKeeper main must first be compiled (toplevel build.xml)"/>
   </target>
   </target>
 
 
-  <target name="versionedjarname" if="version">
+  <target name="setjarname">
     <property name="jarname"
     <property name="jarname"
               value="${build.dir}/zookeeper-${version}-recipes-${name}.jar"/>
               value="${build.dir}/zookeeper-${version}-recipes-${name}.jar"/>
   </target>
   </target>
 
 
-  <target name="unversionedjarname" unless="version">
-    <property name="jarname"
-              value="${build.dir}/zookeeper-dev-recipes-${name}.jar"/>
-  </target>
-
-  <target name="setjarname" depends="versionedjarname, unversionedjarname"/>
-
   <!-- Override jar target to specify main class -->
   <!-- Override jar target to specify main class -->
   <target name="jar" depends="checkMainCompiled, setjarname, compile">
   <target name="jar" depends="checkMainCompiled, setjarname, compile">
     <echo message="recipes: ${name}"/>
     <echo message="recipes: ${name}"/>

+ 17 - 1
src/recipes/lock/src/c/tests/zkServer.sh

@@ -36,11 +36,27 @@ kill -9 $pid
 rm -f /tmp/zk.pid
 rm -f /tmp/zk.pid
 fi
 fi
 
 
+base_dir = "../../../../.."
+
+CLASSPATH="$CLASSPATH:${base_dir}/build/classes"
+CLASSPATH="$CLASSPATH:${base_dir}/conf"
+
+for i in "${base_dir}"/build/lib/*.jar
+do
+    CLASSPATH="$CLASSPATH:$i"
+done
+
+for i in "${base_dir}"/src/java/lib/*.jar
+do
+    CLASSPATH="$CLASSPATH:$i"
+done
+
+CLASSPATH="$CLASSPATH:${CLOVER_HOME}/lib/clover.jar"
 
 
 case $1 in
 case $1 in
 start|startClean)
 start|startClean)
 	mkdir -p /tmp/zkdata
 	mkdir -p /tmp/zkdata
-	java -cp ../../../../../zookeeper-dev.jar:../../../../../src/java/lib/log4j-1.2.15.jar:../../../../../conf/ org.apache.zookeeper.server.ZooKeeperServerMain 22181 /tmp/zkdata &> /tmp/zk.log &
+	java -cp $CLASSPATH org.apache.zookeeper.server.ZooKeeperServerMain 22181 /tmp/zkdata &> /tmp/zk.log &
         echo $! > /tmp/zk.pid
         echo $! > /tmp/zk.pid
         sleep 5
         sleep 5
 	;;
 	;;