<?xml version="1.0"?>

<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->

<project name="ZooKeeper" default="jar" 
xmlns:ivy="antlib:org.apache.ivy.ant"
xmlns:artifact="antlib:org.apache.maven.artifact.ant"
xmlns:maven="antlib:org.apache.maven.artifact.ant"
xmlns:cs="antlib:com.puppycrawl.tools.checkstyle">

    <!-- ====================================================== -->
    <!-- Dependency versions                                    -->
    <!-- ====================================================== -->
    <property name="slf4j.version" value="1.7.25"/>
    <property name="spotbugsannotations.version" value="3.1.9"/>

    <property name="wagon-http.version" value="2.4"/>
    <property name="maven-ant-tasks.version" value="2.1.3"/>
    <property name="log4j.version" value="1.2.17"/>
    <property name="jline.version" value="0.9.94"/>

    <property name="jdeb.version" value="0.8"/>

    <property name="audience-annotations.version" value="0.5.0" />

    <property name="netty.version" value="3.10.6.Final"/>

    <property name="junit.version" value="4.12"/>
    <property name="mockito.version" value="1.8.5"/>
    <property name="checkstyle.version" value="6.1.1"/>
    <property name="commons-collections.version" value="3.2.2"/>
    <property name="commons-io.version" value="2.6"/>
    <property name="kerby.version" value="1.1.0"/>

    <property name="apache-directory-server.version" value="2.0.0-M15"/>
    <property name="apache-directory-api.version" value="1.0.0-M20"/>

    <property name="jdiff.version" value="1.0.9"/>
    <property name="xerces.version" value="1.4.4"/>

    <property name="apache-rat-tasks.version" value="0.6"/>
    <property name="commons-lang.version" value="2.4"/>

    <property name="dependency-check-ant.version" value="4.0.2"/>

    <property name="hamcrest.version" value="1.3"/>

    <property name="clover.version" value="4.2.1" />


    <!-- ====================================================== -->
    <!-- Project properties                                     -->
    <!-- ====================================================== -->

    <!-- read build.properties from the basedir if any -->
    <property file="${basedir}/build.properties" />

    <property name="Name" value="ZooKeeper" />
    <property name="name" value="zookeeper" />

    <property environment="env"/>
    
    <property name="version" value="3.4.15-SNAPSHOT" />
    <property name="final.name" value="${name}-${version}"/>
    <property name="revision.dir" value="${basedir}/.revision" />
    <property name="revision.properties" value="revision.properties" />
    <property file="${basedir}/.revision/${revision.properties}" />
    
    <property name="javac.target" value="1.6" />
    <property name="javac.source" value="1.6" />

    <property name="src.dir" value="${basedir}/src" />
    <property name="java.server.src.dir" value="${basedir}/zookeeper-server/src/main/java" />
    <property name="java.server.resources.dir" value="${basedir}/zookeeper-server/src/main/resources" />
    <property name="jute.src.dir" value="${basedir}/zookeeper-jute/src/main/java" />

    <property name="lib.dir" value="${java.server.resources.dir}/lib" />
    <property name="lib.dir.includes" value="**/*.jar" />
    <property name="lib.dir.excludes" value="**/excluded/" />

    <!-- prior to ant 1.7.1 fileset always fails if dir doesn't exist
         so just point to bin directory and provide settings that exclude
         everything - user can change as appropriate -->
    <property name="additional.lib.dir" value="bin" />
    <property name="additional.lib.dir.includes" value="**/*.jar" />
    <property name="additional.lib.dir.excludes" value="**/*.jar" />

    <property name="build.dir" value="${basedir}/build" />
    <property name="distribution" value="${basedir}/distribution" />
    <property name="src_generated.dir" value="${basedir}/zookeeper-jute/target/main/java" />
    <property name="c.src.dir" value="${basedir}/zookeeper-client/zookeeper-client-c" />
    <property name="csrc_generated.dir" value="${c.src.dir}/generated" />

    <property name="jute.file" value="${basedir}/zookeeper-jute/src/main/resources/zookeeper.jute" />

    <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="java.server.test.dir" value="${basedir}/zookeeper-server/src/test/java"/>
    <property name="server.test.resource.dir" value="${basedir}/zookeeper-server/src/test/resources"/>
    <property name="jute.test.src.dir" value="${basedir}/zookeeper-jute/src/test/java" />
    <property name="systest.src.dir" value="${basedir}/zookeeper-it/src/test/java"/>
    <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.invalid.dir" value="${test.data.dir}/invalidsnap" />
    <property name="test.data.buffersize.dir" value="${test.data.dir}/buffersize" />
    <property name="test.data.kerberos.dir" value="${test.data.dir}/kerberos" />
    <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.timeout" value="900000" />
    <property name="test.junit.output.format" value="plain" />
    <property name="test.junit.fork.mode" value="perTest" />
    <property name="test.junit.printsummary" value="yes" />
    <property name="test.junit.haltonfailure" value="no" />
    <property name="test.junit.failbuild.ontestfailure" value="true" />
    <property name="test.junit.maxmem" value="512m" />
    <property name="test.quick" value="no" />
    <property name="conf.dir" value="${basedir}/conf"/>
    <property name="docs.dir" value="${basedir}/docs"/>
    <property name="docs.src" value="${basedir}/zookeeper-docs"/>
    <property name="javadoc.link.java"
              value="http://docs.oracle.com/javase/6/docs/api/" />
    <property name="javadoc.packages" value="org.apache.*" />

    <property name="dist.dir" value="${build.dir}/${final.name}"/>
    <property name="dist.maven.dir" value="${dist.dir}/dist-maven"/>

    <property name="contrib.dir" value="${basedir}/zookeeper-contrib"/>
    <property name="recipes.dir" value="${basedir}/zookeeper-recipes"/>

    <property name="ivy.version" value="2.4.0"/>
    <property name="ivy.url"
              value="https://repo1.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.package.lib" value="${build.dir}/package/lib"/>
    <property name="ivy.test.lib" value="${build.dir}/test/lib"/>
    <property name="ivy.jdiff.lib" value="${build.dir}/jdiff/lib"/>
    <property name="ivy.releaseaudit.lib" value="${build.dir}/releaseaudit/lib"/>
    <property name="ivy.owasp.lib" value="${build.dir}/owasp/lib"/>
    <property name="ivy.clover.lib" value="${build.dir}/clover/lib"/>
    <property name="ivysettings.xml" value="${basedir}/ivysettings.xml"/>

    <property name="mvnrepo" value="https://repo1.maven.org/maven2"/>
    <property name="tsk.org" value="/org/apache/maven/maven-ant-tasks/"/>
    <property name="ant-task.version" value="2.1.3"/>
    <property name="ant_task_repo_url"
        value="${mvnrepo}${tsk.org}${ant-task.version}/maven-ant-tasks-${ant-task.version}.jar"/>
    <property name="ant_task.jar" location="${ivy.lib}/maven-ant-tasks-${ant-task.version}.jar"/>

    <!-- clover property set -->
    <property name="clover.home" location="${build.dir}/clover"/>
    <property name="clover.jar" location="${clover.home}/lib/clover-${clover.version}.jar"/>
    <property name="clover.dest" location="${build.dir}/clover"/>
    <property name="clover.db.dir" location="${clover.dest}/db"/>
    <property name="clover.report.dir" location="${clover.dest}/reports"/>
    <property name="clover.db" location="${clover.db.dir}/zookeeper-coverage.db"/>

    <available file="${c.src.dir}/Makefile" property="Makefile.present"/>

    <property name="test.cobertura.output.format" value="html" />
    <property name="coveragereport.dir" value="${build.dir}/cobertura" />

    <!-- rats properties -->
    <property name="rats_url" value="http://arat.googlecode.com/files/rat-lib-all-0.5.1.jar" />
    <property name="rat.reporting.classname" value="rat.Report"/>

        <!-- test patch properties -->
    <property name="scratch.dir" value="${user.home}/tmp"/>
    <property name="svn.cmd" value="svn"/>
    <property name="grep.cmd" value="grep"/>
    <property name="patch.cmd" value="patch"/>
    <property name="make.cmd" value="make"/>
    <property name="test_patch_sh" value="${server.test.resource.dir}/test-patch.sh"/>
    <property name="test_pullrequest_sh" value="${server.test.resource.dir}/test-github-pr.sh"/>

	<!-- jdiff.home property set -->
    <property name="jdiff.home" value="${ivy.jdiff.lib}"/>
    <property name="jdiff.build.dir" value="${build.docs}/jdiff"/>
    <property name="jdiff.xml.dir" value="${lib.dir}/jdiff"/>
    <property name="jdiff.stable" value="3.1.1"/>
    <property name="jdiff.stable.javadoc" 
            value="http://hadoop.apache.org/zookeeper/docs/r${jdiff.stable}/api/"/>

    <!-- eclipse property set -->
    <property name="build.dir.eclipse" value=".eclipse"/>
    <property name="build.dir.eclipse-main-classes" value="${build.dir.eclipse}/classes-main"/>
    <property name="build.dir.eclipse-test-classes" value="${build.dir.eclipse}/classes-test"/>

    <!-- cppunit property set -->
    <property name="cppunit.lib" value="/usr/lib"/>
    <property name="cppunit.m4" value="/usr/share/aclocal"/>

    <!-- packaging property set -->
    <property name="package.release" value="1"/>
    <property name="package.prefix" value="/usr"/>
    <property name="package.conf.dir" value="/etc/zookeeper"/>
    <property name="package.log.dir" value="/var/log/zookeeper"/>
    <property name="package.pid.dir" value="/var/run/zookeeper"/>
    <property name="package.var.dir" value="/var/lib/zookeeper"/>
    <property name="package.share.dir" value="/share/zookeeper"/>
    <property name="package.buildroot" value="/tmp/zookeeper_package_build_${user.name}"/>
    <property name="package.build.dir" value="/tmp/zookeeper_package_build_${user.name}/BUILD"/>

    <!-- artifact publishing property set -->
    <property name="staging_repo_id" value="apache.staging.https"/>
    <property name="wagon-http.version" value="2.4"/>
    <property name="snapshots_repo_id" value="apache.snapshots.https"/>
    <property name="asfrepo" value="https://repository.apache.org"/> 
    <property name="snapshots_repo_url" 
      value="${asfrepo}/content/repositories/snapshots"/> 
    <property name="staging_repo_url"
      value="${asfrepo}/service/local/staging/deploy/maven2"/> 
    <property name="gpg-plugin" 
      value="org.apache.maven.plugins:maven-gpg-plugin:1.4:sign-and-deploy-file"/>
    <property name="deploy-plugin" 
      value="org.apache.maven.plugins:maven-deploy-plugin:2.8.1:deploy-file"/>
    <property name="main-jar" value="${dist.maven.dir}/${final.name}.jar"/>
    <property name="tests-jar" value="${dist.maven.dir}/${final.name}-tests.jar"/>
    <property name="sources-jar" value="${dist.maven.dir}/${final.name}-sources.jar"/>
    <property name="javadoc-jar" value="${dist.maven.dir}/${final.name}-javadoc.jar"/>

    <!-- ====================================================== -->
    <!-- Macro definitions                                      -->
    <!-- ====================================================== -->
    <macrodef name="macro_tar" description="Worker Macro for tar">
      <attribute name="param.destfile"/>
      <element name="param.listofitems"/>
      <sequential>
        <tar compression="gzip" longfile="gnu"
             destfile="@{param.destfile}">
          <param.listofitems/>
        </tar>
      </sequential>
    </macrodef>

    <path id="base.classpath">
      <pathelement location="${build.classes}"/>
      <!-- allow the user to override (e.g. if there are local versions) -->
      <fileset dir="${additional.lib.dir}">
          <include name="${additional.lib.dir.includes}" />
          <exclude name="${additional.lib.dir.excludes}" />
      </fileset>
      <fileset dir="${lib.dir}">
          <include name="${lib.dir.includes}" />
          <exclude name="${lib.dir.excludes}" />
      </fileset>
      <fileset dir="${ant.home}/lib">
          <include name="ant.jar" />
      </fileset>
      <fileset dir="${clover.home}/lib" erroronmissingdir="false">
          <include name="**/*.jar" if="run.clover" />
      </fileset>
    </path>

    <!-- the normal classpath -->
    <path id="java.classpath">
      <path refid="base.classpath"/>
      <fileset dir="${ivy.lib}">
        <include name="**/*.jar" />
      </fileset>
    </path>

    <path id="test.java.classpath">
      <path refid="base.classpath"/>
      <pathelement location="${test.java.classes}" />
      <fileset dir="${ivy.test.lib}">
        <include name="**/*.jar" />
      </fileset>
    </path>

    <path id="package.classpath">
      <fileset dir="${ivy.package.lib}">
        <include name="**/jdeb*.jar" />
      </fileset>
    </path>

    <!-- ====================================================== -->
    <!-- Generate and compile the Java files                    -->
    <!-- ====================================================== -->
    <target name="init">    
        <mkdir dir="${build.classes}" />

        <mkdir dir="${ivy.lib}"/>
        <mkdir dir="${ivy.package.lib}"/>
        <mkdir dir="${ivy.test.lib}"/>
        <condition property="ivy.jar.exists">
          <available file="${lib.dir}/ivy-${ivy.version}.jar"/>
        </condition>

        <tstamp>
            <format property="build.time" pattern="MM/dd/yyyy HH:mm zz" timezone="GMT"/>
            <format property="year" pattern="yyyy" timezone="GMT"/>
        </tstamp>
    </target>
    
    <target name="jute" depends="init">
        <javac srcdir="${jute.src.dir}" destdir="${build.classes}" includeantruntime="false"
            target="${javac.target}" source="${javac.source}"
            includes="org/apache/jute/**" debug="on" classpath="${ivy.lib}/audience-annotations-${audience-annotations.version}.jar" />
    </target>

    <target name="compile_jute_uptodate">
        <uptodate property="juteBuild.notRequired"
                  srcfile="${jute.file}"
                  targetfile="${src_generated.dir}/.generated"/>
    </target>

    <target name="compile_jute" depends="jute,compile_jute_uptodate" unless="juteBuild.notRequired">
        <mkdir dir="${src_generated.dir}" />
        <mkdir dir="${csrc_generated.dir}" />
        <java classname="org.apache.jute.compiler.generated.Rcc" fork="true" dir="${src_generated.dir}">
            <arg value="-l" />
            <arg value="java" />
            <arg value="../../../src/main/resources/zookeeper.jute" />
            <classpath>
                <pathelement path="${build.classes}" />
            </classpath>
        </java>
        
        <java classname="org.apache.jute.compiler.generated.Rcc" fork="true" dir="${csrc_generated.dir}">
            <arg value="-l" />
            <arg value="c" />
            <arg value="../../../zookeeper-jute/src/main/resources/zookeeper.jute" />
            <classpath>
                <pathelement path="${build.classes}" />
            </classpath>
        </java>

        <touch file="${src_generated.dir}/.generated"/>
    </target>

    <target name="ver-gen" depends="init">
        <javac destdir="${build.classes}" includeantruntime="false"
            target="${javac.target}" source="${javac.source}"
            includes="org/apache/zookeeper/version/util/**" debug="on">
            <src path="${java.server.src.dir}" />
        </javac>
    </target>
    
    <target name="git-revision" unless="lastRevision">
        <mkdir dir="${revision.dir}" />
        <condition property="shell.name" value="cmd" else="sh">
      	    <os family="windows"/>
        </condition>
        <condition property="revision.cmd.line" 
        	value="/c ${java.server.resources.dir}\lastRevision.bat" else="${java.server.resources.dir}/lastRevision.sh">
      	    <os family="windows"/>
        </condition>
        <exec executable="${shell.name}">
           <arg line="${revision.cmd.line} ${revision.dir}${file.separator}${revision.properties}"/>
        </exec>
        <property file="${revision.dir}/${revision.properties}" />
    </target>
    
    <target name="version-info" depends="ver-gen,git-revision">
        <mkdir dir="${src_generated.dir}" />
        <java classname="org.apache.zookeeper.version.util.VerGen" fork="true" 
                dir="${src_generated.dir}">
            <arg value="${version}" />
            <arg value="${lastRevision}" />
            <arg value="${build.time}" />
            <classpath>
                <pathelement path="${build.classes}" />
            </classpath>
        </java>
    </target>
    
    <target name="build-generated" depends="compile_jute,version-info,ivy-retrieve" >
        <javac srcdir="${src_generated.dir}" destdir="${build.classes}" includeantruntime="false"
            target="${javac.target}" source="${javac.source}" debug="on" classpath="${ivy.lib}/audience-annotations-${audience-annotations.version}.jar" />
    </target>
    
    <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-taskdef" unless="ivy.initialized">
      <taskdef resource="org/apache/ivy/ant/antlib.xml"
               uri="antlib:org.apache.ivy.ant" classpathref="java.classpath"/>
      <!-- ensure that ivy taskdef is only run once, otw ant will error -->
      <property name="ivy.initialized" value="true"/> 
    </target>

    <target name="ivy-init" depends="ivy-download,ivy-taskdef">
      <ivy:settings id="${ant.project.name}" file="${ivysettings.xml}"/>
    </target>

    <target name="ivy-retrieve" depends="init,ivy-init">
      <ivy:retrieve settingsRef="${ant.project.name}" conf="default"
                    pattern="${ivy.lib}/[artifact]-[revision].[ext]"/>
    </target>

    <target name="ivy-retrieve-test" depends="init,ivy-init">
      <ivy:retrieve settingsRef="${ant.project.name}" conf="test"
                    pattern="${ivy.test.lib}/[artifact]-[revision].[ext]"/>
    </target>

    <target name="ivy-retrieve-package" depends="init,ivy-init">
      <ivy:retrieve settingsRef="${ant.project.name}" conf="package"
                    pattern="${ivy.package.lib}/[artifact]-[revision].[ext]"/>
    </target>

    <target name="ivy-retrieve-jdiff" depends="init,ivy-init">
      <mkdir dir="${ivy.jdiff.lib}"/>
      <ivy:retrieve settingsRef="${ant.project.name}" conf="jdiff"
                    pattern="${ivy.jdiff.lib}/[artifact]-[revision].[ext]"/>
    </target>

    <target name="ivy-retrieve-releaseaudit" depends="init,ivy-init">
      <ivy:retrieve settingsRef="${ant.project.name}" conf="releaseaudit"
                    pattern="${ivy.releaseaudit.lib}/[artifact]-[revision].[ext]"/>
      <ivy:cachepath pathid="releaseaudit-classpath" conf="releaseaudit"/>
    </target>

    <target name="ivy-retrieve-owasp" depends="init,ivy-init">
        <ivy:retrieve settingsRef="${ant.project.name}" conf="owasp"
                      pattern="${ivy.owasp.lib}/[artifact]-[revision].[ext]"/>
        <ivy:cachepath pathid="owasp-classpath" conf="owasp"/>
    </target>

    <target name="ivy-retrieve-clover" if="run.clover" depends="init,ivy-init">
        <ivy:retrieve settingsRef="${ant.project.name}" conf="clover"
                      pattern="${ivy.clover.lib}/[artifact]-[revision].[ext]"/>
        <ivy:cachepath pathid="clover-classpath" conf="clover"/>
    </target>

    <target name="ivy-retrieve-mvn-ant-task" depends="init,ivy-init">
      <ivy:retrieve settingsRef="${ant.project.name}" conf="mvn-ant-task"
                    pattern="${ivy.lib}/[artifact]-[revision].[ext]"/>
      <ivy:cachepath pathid="mvn-ant-task-classpath" conf="mvn-ant-task"/>
    </target>

    <target name="dependency-report" depends="init,ivy-init">
        <ivy:resolve conf="*"/>
        <ivy:report conf="*" todir="${build.dir}/dependency-report"/>
    </target>

    <target name="compile" depends="ivy-retrieve,clover,build-generated">
        <javac destdir="${build.classes}" includeantruntime="false"
               target="${javac.target}" source="${javac.source}" debug="on">
            <src path="${java.server.src.dir}"/>
            <src path="${jute.src.dir}"/>
            <classpath refid="java.classpath"/>
            <compilerarg value="-Xlint:all"/>
            <compilerarg value="-Xlint:-path"/>
        </javac>
    </target>

    <target name="compile-test" depends="ivy-retrieve-test,compile">
      <mkdir dir="${test.java.classes}"/>
      <javac destdir="${test.java.classes}" includeantruntime="false"
             target="${javac.target}" source="${javac.source}" debug="on">
          <src path="${java.server.test.dir}"/>
        <src path="${jute.test.src.dir}"/>
        <classpath refid="test.java.classpath"/>
      </javac>
      <javac srcdir="${systest.src.dir}" destdir="${test.java.classes}" includeantruntime="false"
             target="${javac.target}" source="${javac.source}" debug="on">
        <classpath refid="test.java.classpath"/>
      </javac>
    </target>

    <target name="compile-native" depends="compile_jute" description="Make C binding">
      <exec executable="autoreconf" dir="${c.src.dir}" searchpath="yes"
            failonerror="yes">
        <arg value="-if"/>
        <env key="ACLOCAL" value="aclocal -I ${cppunit.m4}"/>
      </exec>
      <mkdir dir="${build.dir}/c" />
      <condition property="enable.gcov.arg" value="--enable-gcov" else="">
        <equals arg1="${enable.gcov}" arg2="true"/>
      </condition>
      <exec executable="${c.src.dir}/configure" dir="${build.dir}/c"
            failonerror="yes">
        <env key="base_dir" value="${basedir}"/>
        <env key="CALLER" value="ANT"/>
        <arg value="--prefix=${build.dir}/c/build/${package.prefix}"/>
        <arg line="${enable.gcov.arg}"/>
      </exec>
      <property name="c.build" value="${build.dir}/c/build"/>
      <exec dir="${build.dir}/c" executable="make" failonerror="true">
        <arg value="install"/>
        <env key="LD_LIBRARY_PATH" value="${env.LD_LIBRARY_PATH};${c.build}"/>
        <env key="PATH" path="${env.PATH};${c.src.dir};"/>
        <env key="CALLER" value="ANT"/>
        <env key="base_dir" value="${basedir}"/>
      </exec>
    </target>

    <!-- ====================================================== -->
    <!-- Documentation                                          -->
    <!-- ====================================================== -->
    <!-- Javadoc -->
    <target name="javadoc-dev" depends="jar"
            description="Generate javadoc for zookeeper developers">
      <mkdir dir="${build.javadoc.dev}"/>
      <javadoc
         overview="${java.server.resources.dir}/overview.html"
         packagenames="org.apache.zookeeper.*"
         destdir="${build.javadoc.dev}"
         author="true"
         version="true"
         use="true"
         windowtitle="${Name} ${version} API"
         doctitle="${Name} ${version} API"
         bottom="Copyright &amp;copy; ${year} The Apache Software Foundation"
         >
    	<packageset dir="${java.server.src.dir}">
          <include name="org/apache/**"/>
          <exclude name="org/apache/jute/**"/>
    	</packageset>
    	<packageset dir="${src_generated.dir}"/>
        <link href="${javadoc.link.java}"/>
        <classpath refid="java.classpath"/>
      </javadoc>
    </target>	

    <target name="javadoc" depends="jar" description="Generate javadoc">
      <mkdir dir="${build.javadoc}"/>
      <javadoc
         overview="${java.server.resources.dir}/overview.html"
         packagenames="org.apache.zookeeper.*"
         destdir="${build.javadoc}"
         author="true"
         version="true"
         use="true"
         Public="yes"
         windowtitle="${Name} ${version} API"
         doctitle="${Name} ${version} API"
         bottom="Copyright &amp;copy; ${year} The Apache Software Foundation"
         doclet="org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet"
         docletpath="${ivy.lib}/audience-annotations-${audience-annotations.version}.jar"
         >

        <fileset dir="${java.server.src.dir}">
          <include name="org/apache/zookeeper/server/quorum/QuorumPeerMain.java"/>
          <include name="org/apache/zookeeper/server/ZooKeeperServerMain.java"/>
          <include name="org/apache/zookeeper/server/LogFormatter.java"/>
          <include name="org/apache/zookeeper/server/PurgeTxnLog.java"/>
          <include name="org/apache/zookeeper/server/SnapshotFormatter.java"/>
          <include name="org/apache/zookeeper/server/upgrade/UpgradeMain.java"/>
        </fileset>
    	<packageset dir="${java.server.src.dir}">
          <include name="org/apache/**"/>
          <exclude name="org/apache/zookeeper/server/**"/>
    	</packageset>
        <packageset dir="${jute.src.dir}">
          <include name="org/apache/**"/>
        </packageset>
    	<packageset dir="${src_generated.dir}">
          <include name="org/apache/**"/>
          <exclude name="org/apache/zookeeper/proto"/>
          <exclude name="org/apache/zookeeper/txn"/>
          <exclude name="org/apache/zookeeper/version"/>
          <exclude name="org/apache/zookeeper/server/**"/>
    	</packageset>
        <link href="${javadoc.link.java}"/>
        <classpath>
		<fileset dir="${basedir}">
			<include name="${jar.name}"/>
		</fileset> 
        <path refid="java.classpath"/>
	</classpath>
      </javadoc>
    </target>	

    <!-- ====================================================== -->
    <!-- Make zookeeper.jar                                     -->
    <!-- ====================================================== -->
    <target name="jar" depends="compile">
        <java classname="org.apache.zookeeper.Version" fork="true"
              outputproperty="revision" errorproperty="revision.error" failonerror="true">
            <arg value="--revision" />
            <classpath>
                <pathelement path="${build.classes}" />
                <pathelement path="${clover.jar}" />
            </classpath>
        </java>
        <exec executable="hostname" outputproperty="host.name"/>
        <jar jarfile="${build.dir}/${final.name}.jar">
            <fileset file="LICENSE.txt" />
            <fileset dir="${build.classes}" excludes="**/.generated"/>
            <fileset dir="${java.server.src.dir}"/>
            <fileset dir="${jute.src.dir}"/>
            <fileset dir="${src_generated.dir}" excludes="**/.generated"/>
            <manifest>
                <attribute name="Main-Class" value="org.apache.zookeeper.server.quorum.QuorumPeerMain" />
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Built-At" value="${build.time}"/>
                <attribute name="Built-On" value="${host.name}" />
                <attribute name="Implementation-Title" value="org.apache.zookeeper"/>
                <attribute name="Implementation-Version" value="${revision}"/> 
                <attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
            	
            	<!-- The following are OSGi manifest headers -->
            	<!-- currently hardcoded, when things get more complicated we could use BND 
            	http://www.aqute.biz/Code/Bnd to generate them -->
                <attribute name="Bundle-Vendor" value="The Apache Software Foundation"/>
                <attribute name="Bundle-Name" value="ZooKeeper Bundle"/>
                <attribute name="Bundle-SymbolicName" value="org.apache.hadoop.zookeeper"/>
                <attribute name="Bundle-ManifestVersion" value="2"/>
                <attribute name="Bundle-Version" value="${version}"/>
                <attribute name="Bundle-License" value="http://www.apache.org/licenses/LICENSE-2.0.txt"/>
                <attribute name="Bundle-DocURL" value="http://hadoop.apache.org/zookeeper"/>
                <attribute name="Import-Package" value='javax.management;resolution:=optional,javax.security.auth.callback,javax.security.auth.login,javax.security.sasl,org.slf4j;version="[1.6,2)",org.jboss.netty.buffer;resolution:=optional;version="[3.2,4)",org.jboss.netty.channel;resolution:=optional;version="[3.2,4)",org.jboss.netty.channel.group;resolution:=optional;version="[3.2,4)",org.jboss.netty.channel.socket.nio;resolution:=optional;version="[3.2,4)",org.osgi.framework;resolution:=optional;version="[1.5,2)",org.osgi.util.tracker;resolution:=optional;version="[1.4,2)",org.ietf.jgss'/>
                <attribute name="Export-Package" value='org.apache.zookeeper;version="${version}",org.apache.zookeeper.client;version="${version}",org.apache.zookeeper.data;version="${version}",org.apache.zookeeper.version;version="${version}",org.apache.zookeeper.server;version="${version}",org.apache.zookeeper.server.auth;version="${version}",org.apache.zookeeper.server.persistence;version="${version}",org.apache.zookeeper.server.quorum;version="${version}",org.apache.zookeeper.common;version="${version}",org.apache.jute;version="${version}",org.apache.zookeeper.server.quorum.flexible;version="${version}",org.apache.zookeeper.proto;version="${version}"'/>
            </manifest>
        </jar>
    </target>
    
    <!-- ====================================================== -->
    <!-- Make zookeeper-bin.jar                                 -->
    <!-- ====================================================== -->
    <target name="bin-jar" depends="compile">
        <java classname="org.apache.zookeeper.Version" fork="true"
              outputproperty="revision" failonerror="true">
            <arg value="--revision" />
            <classpath>
                <pathelement path="${build.classes}" />
                <pathelement path="${clover.jar}" />
            </classpath>
        </java>
        <exec executable="hostname" outputproperty="host.name"/>
        <jar jarfile="${build.dir}/${final.name}-bin.jar">
            <fileset file="LICENSE.txt" />
            <fileset dir="${build.classes}" excludes="**/.generated"/>
            <manifest>
                <attribute name="Main-Class" value="org.apache.zookeeper.server.quorum.QuorumPeerMain" />
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Built-At" value="${build.time}"/>
                <attribute name="Built-On" value="${host.name}" />
                <attribute name="Implementation-Title" value="org.apache.zookeeper"/>
                <attribute name="Implementation-Version" value="${revision}"/> 
                <attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
            	
            	<!-- The following are OSGi manifest headers -->
            	<!-- currently hardcoded, when things get more complicated we could use BND 
            	http://www.aqute.biz/Code/Bnd to generate them -->
                <attribute name="Bundle-Vendor" value="The Apache Software Foundation"/>
                <attribute name="Bundle-Name" value="ZooKeeper Bundle"/>
                <attribute name="Bundle-SymbolicName" value="org.apache.hadoop.zookeeper"/>
                <attribute name="Bundle-ManifestVersion" value="2"/>
                <attribute name="Bundle-Version" value="${version}"/>
                <attribute name="Bundle-License" value="http://www.apache.org/licenses/LICENSE-2.0.txt"/>
                <attribute name="Bundle-DocURL" value="http://hadoop.apache.org/zookeeper"/>
                <attribute name="Import-Package" value='javax.management;resolution:=optional,javax.security.auth.callback,javax.security.auth.login,javax.security.sasl,org.slf4j;version="[1.6,2)",org.jboss.netty.buffer;resolution:=optional;version="[3.2,4)",org.jboss.netty.channel;resolution:=optional;version="[3.2,4)",org.jboss.netty.channel.group;resolution:=optional;version="[3.2,4)",org.jboss.netty.channel.socket.nio;resolution:=optional;version="[3.2,4)",org.osgi.framework;resolution:=optional;version="[1.5,2)",org.osgi.util.tracker;resolution:=optional;version="[1.4,2)",org.ietf.jgss'/>
                <attribute name="Export-Package" value='org.apache.zookeeper;version="${version}",org.apache.zookeeper.client;version="${version}",org.apache.zookeeper.data;version="${version}",org.apache.zookeeper.version;version="${version}",org.apache.zookeeper.server;version="${version}",org.apache.zookeeper.server.auth;version="${version}",org.apache.zookeeper.server.persistence;version="${version}",org.apache.zookeeper.server.quorum;version="${version}",org.apache.zookeeper.common;version="${version}"'/>
            </manifest>
        </jar>
    </target>

    <!-- ====================================================== -->
    <!-- Make zookeeper-sources.jar                                 -->
    <!-- ====================================================== -->
    <target name="src-jar" depends="build-generated">
        <jar jarfile="${build.dir}/${final.name}-sources.jar">
            <fileset file="LICENSE.txt" />
            <fileset dir="${java.server.src.dir}"/>
            <fileset dir="${jute.src.dir}"/>
            <fileset dir="${src_generated.dir}" excludes="**/.generated"/>
            <manifest>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Built-At" value="${build.time}"/>
                <attribute name="Built-On" value="${host.name}" />
                <attribute name="Implementation-Title" value="org.apache.zookeeper"/>
                <attribute name="Implementation-Version" value="${revision}"/> 
                <attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
            </manifest>
        </jar>
    </target>

	<!-- ====================================================== -->
    <!-- Make zookeeper-javadoc.jar                                 -->
    <!-- ====================================================== -->
    <target name="javadoc-jar" depends="javadoc">
        <jar jarfile="${build.dir}/${final.name}-javadoc.jar">
            <fileset file="LICENSE.txt" />
            <fileset dir="${build.javadoc}"/>
            <manifest>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Built-At" value="${build.time}"/>
                <attribute name="Built-On" value="${host.name}" />
                <attribute name="Implementation-Title" value="org.apache.zookeeper"/>
                <attribute name="Implementation-Version" value="${revision}"/> 
                <attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
            </manifest>
        </jar>
    </target>

    <!-- ====================================================== -->
    <!-- Make zookeeper-test.jar                                -->
    <!-- ====================================================== -->
    <target name="test-jar" depends="compile-test">
        <jar jarfile="${build.dir}/${final.name}-test.jar">
            <fileset file="LICENSE.txt" />
            <fileset dir="${test.java.classes}"/>
            <manifest>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Built-At" value="${build.time}"/>
                <attribute name="Built-On" value="${host.name}" />
                <attribute name="Implementation-Title" value="org.apache.zookeeper"/>
                <attribute name="Implementation-Version" value="${revision}"/> 
                <attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
            </manifest>
        </jar>
    </target>

	<!-- ================================================================== -->
    <!-- D I S T R I B U T I O N                                            -->
    <!-- ================================================================== -->
    <!--                                                                    -->
    <!-- ================================================================== -->
    <target name="package" 
            depends="jar,bin-jar,src-jar,javadoc-jar,test-jar,api-report,create-cppunit-configure,compile-test"
            description="Build distribution">
      <mkdir dir="${dist.dir}"/>
      <mkdir dir="${dist.dir}/lib"/>
      <mkdir dir="${dist.dir}/bin"/>

      <copy todir="${dist.dir}/lib" includeEmptyDirs="false">
        <fileset dir="${lib.dir}">
          <exclude name="**/ivy*.jar" />
        </fileset>
        <fileset dir="${ivy.lib}">
          <exclude name="**/jsr305*.jar" />
          <exclude name="**/spotbugs-annotations*.jar" />
        </fileset>
      </copy>

      <subant target="package">
        <!--Pass down the version in case its needed again and the target
            distribution directory so contribs know where to install to.-->
        <property name="version" value="${version}"/>
        <property name="dist.dir" value="${dist.dir}"/>
        <property name="package.share" value=""/>
        <fileset file="${contrib.dir}/build.xml"/>
        <fileset file="${recipes.dir}/build.xml"/>
      </subant>  	

      <copy todir="${dist.dir}"> 
        <fileset file="${build.dir}/${final.name}.jar"/>
      </copy>

      <checksum file="${dist.dir}/${final.name}.jar" algorithm="md5"/>
      <checksum file="${dist.dir}/${final.name}.jar" algorithm="sha1"/>

      <mkdir dir="${dist.maven.dir}"/>

      <copy file="${build.dir}/${final.name}-bin.jar"
            tofile="${dist.maven.dir}/${final.name}.jar"/> 
      <copy todir="${dist.maven.dir}"> 
        <fileset file="${build.dir}/${final.name}-sources.jar"/>
        <fileset file="${build.dir}/${final.name}-javadoc.jar"/>
      </copy>

      <checksum file="${dist.maven.dir}/${final.name}.jar" algorithm="md5"/>
      <checksum file="${dist.maven.dir}/${final.name}.jar" algorithm="sha1"/>
      <checksum file="${dist.maven.dir}/${final.name}-sources.jar" algorithm="md5"/>
      <checksum file="${dist.maven.dir}/${final.name}-sources.jar" algorithm="sha1"/>
      <checksum file="${dist.maven.dir}/${final.name}-javadoc.jar" algorithm="md5"/>
      <checksum file="${dist.maven.dir}/${final.name}-javadoc.jar" algorithm="sha1"/>

      <ivy:makepom settingsRef="${ant.project.name}" ivyfile="${basedir}/ivy.xml"
                   pomfile="${dist.maven.dir}/${final.name}.pom"
                   templatefile="${java.server.resources.dir}/pom.template" >
        <mapping conf="default" scope="compile"/>
        <mapping conf="test" scope="test"/>
      </ivy:makepom>
      <checksum file="${dist.maven.dir}/${final.name}.pom" algorithm="md5"/>
      <checksum file="${dist.maven.dir}/${final.name}.pom" algorithm="sha1"/>

      <copy file="${build.dir}/${final.name}-test.jar"
            tofile="${dist.maven.dir}/${final.name}-tests.jar"/> 
      <checksum file="${dist.maven.dir}/${final.name}-tests.jar" algorithm="sha1"/>
      <checksum file="${dist.maven.dir}/${final.name}-tests.jar" algorithm="md5"/>

      <copy todir="${dist.dir}/bin">
        <fileset dir="bin"/>
      </copy>

      <copy todir="${dist.dir}/conf">
        <fileset dir="${conf.dir}" excludes="**/*.template"/>
      </copy>

      <copy todir="${dist.dir}/zookeeper-docs">
          <fileset dir="zookeeper-docs/src/main/resources/markdown/" includes="**">
              <exclude name="html/**" />
          </fileset>
          <fileset dir="${build.docs}"/>
      </copy>

      <copy todir="${dist.dir}">
        <fileset file="CHANGES.txt"/>
        <fileset file="README.md"/>
        <fileset file="README_packaging.txt"/>
        <fileset file="build.xml"/>
        <fileset file="ivy.xml"/>
        <fileset file="ivysettings.xml"/>
        <fileset file="${java.server.resources.dir}/NOTICE.txt"/>
        <fileset file="${java.server.resources.dir}/LICENSE.txt"/>
        <fileset file="pom.xml"/>
      </copy>

      <copy todir="${dist.dir}" includeEmptyDirs="true">
        <fileset dir="${basedir}" excludes="**/*.template **/docs/build/**/* **/ivy*.jar">
          <include name="zookeeper-recipes/**"/>
          <include name="zookeeper-docs/**"/>
          <include name="zookeeper-contrib/**"/>
          <include name="zookeeper-client/**"/>
          <include name="zookeeper-jute/**"/>
          <include name="zookeeper-server/**"/>
          <include name="zookeeper-it/**"/>
        </fileset>
      </copy>

      <copy todir="${dist.dir}/zookeeper-server/src/main/resources">
        <fileset file="${java.server.resources.dir}/pom.template"/>
      </copy>

      <copy todir="${dist.dir}/src" includeEmptyDirs="true">
        <fileset dir="src" excludes="**/*.template **/docs/build/**/* **/ivy*.jar"/>
      </copy>

      <chmod perm="ugo+x" type="file" parallel="false">
        <fileset dir="${dist.dir}/bin"/>
        <fileset dir="${dist.dir}/zookeeper-contrib/">
          <include name="*/bin/*" />
        </fileset>
      </chmod>
    </target>

    <target name="bin-package"
            depends="jar,bin-jar,src-jar,javadoc-jar,test-jar,api-report,create-cppunit-configure,compile-test"
            description="Build binary distribution">
      <delete dir="${dist.dir}"/>
      <mkdir dir="${dist.dir}"/>
      <mkdir dir="${dist.dir}/lib"/>
      <mkdir dir="${dist.dir}/libexec"/>
      <mkdir dir="${dist.dir}/share/zookeeper/contrib"/>
      <mkdir dir="${dist.dir}/share/zookeeper/recipes"/>
      <mkdir dir="${dist.dir}/bin"/>
      <mkdir dir="${dist.dir}/share/zookeeper/templates/conf"/>
      <mkdir dir="${dist.dir}/sbin"/>

      <copy todir="${dist.dir}/share/zookeeper" includeEmptyDirs="false">
        <fileset dir="${lib.dir}">
          <exclude name="**/ivy*.jar" />
          <exclude name="**/deb*.jar" />
        </fileset>
        <fileset dir="${ivy.lib}"/>
      </copy>

      <copy file="${basedir}/src/packages/update-zookeeper-env.sh" tofile="${dist.dir}/sbin/update-zookeeper-env.sh"/>
      <subant target="package">
        <!--Pass down the version in case its needed again and the target
            distribution directory so contribs know where to install to.-->
        <property name="version" value="${version}"/>
        <property name="dist.dir" value="${dist.dir}"/>
        <property name="package.share" value="/share/zookeeper"/>
        <fileset file="${contrib.dir}/build.xml"/>
        <fileset file="${recipes.dir}/build.xml"/>
      </subant>

      <copy todir="${dist.dir}/share/zookeeper"> 
        <fileset file="${build.dir}/${final.name}.jar"/>
      </copy>

      <checksum file="${dist.dir}/share/zookeeper/${final.name}.jar" algorithm="md5"/>
      <checksum file="${dist.dir}/share/zookeeper/${final.name}.jar" algorithm="sha1"/>

      <mkdir dir="${dist.maven.dir}"/>

      <copy file="${build.dir}/${final.name}-bin.jar"
            tofile="${dist.maven.dir}/${final.name}.jar"/> 
      <copy todir="${dist.maven.dir}"> 
        <fileset file="${build.dir}/${final.name}-sources.jar"/>
        <fileset file="${build.dir}/${final.name}-javadoc.jar"/>
      </copy>
      
      <checksum file="${dist.maven.dir}/${final.name}.jar" algorithm="md5"/>
      <checksum file="${dist.maven.dir}/${final.name}.jar" algorithm="sha1"/>
      <checksum file="${dist.maven.dir}/${final.name}-sources.jar" algorithm="md5"/>
      <checksum file="${dist.maven.dir}/${final.name}-sources.jar" algorithm="sha1"/>
      <checksum file="${dist.maven.dir}/${final.name}-javadoc.jar" algorithm="md5"/>
      <checksum file="${dist.maven.dir}/${final.name}-javadoc.jar" algorithm="sha1"/>

      <ivy:makepom settingsRef="${ant.project.name}" ivyfile="${basedir}/ivy.xml"
                   pomfile="${dist.maven.dir}/${name}.pom"
                   templatefile="${java.server.resources.dir}/pom.template">
        <mapping conf="default" scope="compile"/>
        <mapping conf="test" scope="test"/>
      </ivy:makepom>
      <checksum file="${dist.maven.dir}/${name}.pom" algorithm="md5"/>
      <checksum file="${dist.maven.dir}/${name}.pom" algorithm="sha1"/>
      
      
      <copy file="${build.dir}/${final.name}-test.jar"
            tofile="${dist.maven.dir}/${final.name}-tests.jar"/>
      <checksum file="${dist.maven.dir}/${final.name}-tests.jar" algorithm="sha1"/>
      <checksum file="${dist.maven.dir}/${final.name}-tests.jar" algorithm="md5"/>


      <copy todir="${dist.dir}/bin">
        <fileset dir="bin" includes="zkCli*"/>
      </copy>

      <copy todir="${dist.dir}/libexec">
        <fileset dir="bin" includes="zkEnv*"/>
      </copy>

      <copy todir="${dist.dir}/sbin">
        <fileset dir="bin" includes="zkServer*"/>
      </copy>

      <copy todir="${dist.dir}/conf">
        <fileset dir="${conf.dir}" excludes="**/*.template"/>
      </copy>

      <copy todir="${dist.dir}/docs">
          <fileset dir="zookeeper-docs/src/main/resources/markdown/" includes="**">
              <exclude name="html/**" />
          </fileset>
          <fileset dir="${build.docs}" />
      </copy>

      <copy todir="${dist.dir}">
        <fileset file="CHANGES.txt"/>
        <fileset file="README.md"/>
        <fileset file="README_packaging.txt"/>
        <fileset file="build.xml"/>
        <fileset file="ivy.xml"/>
        <fileset file="ivysettings.xml"/>
        <fileset file="${java.server.resources.dir}/NOTICE.txt"/>
        <fileset file="${java.server.resources.dir}/LICENSE.txt"/>
      </copy>

      <copy todir="${dist.dir}" includeEmptyDirs="true">
        <fileset dir="${basedir}" excludes="**/*.template **/docs/build/**/* **/ivy*.jar">
          <include name="zookeeper-recipes/**"/>
          <include name="zookeeper-docs/**"/>
          <include name="zookeeper-contrib/**"/>
          <include name="zookeeper-client/**"/>
          <include name="zookeeper-jute/**"/>
          <include name="zookeeper-server/**"/>
          <include name="zookeeper-it/**"/>
        </fileset>
      </copy>

      <copy todir="${dist.dir}/zookeeper-server/src/main/resources">
        <fileset file="${java.server.resources.dir}/pom.template"/>
      </copy>

      <copy todir="${dist.dir}/${package.share.dir}/templates/conf">
        <fileset dir="src/packages/templates/conf"/>
      </copy>

      <copy file="${basedir}/conf/zoo_sample.cfg" tofile="${dist.dir}/${package.share.dir}/templates/conf/zoo.cfg" />
      <replace file="${dist.dir}/${package.share.dir}/templates/conf/zoo.cfg">
        <replacetoken>/tmp/zookeeper</replacetoken>
        <replacevalue>${VAR_DIR}/data</replacevalue>
      </replace>

      <chmod perm="ugo+x" type="file" parallel="false">
        <fileset dir="${dist.dir}/bin"/>
        <fileset dir="${dist.dir}/sbin"/>
        <fileset dir="${dist.dir}/zookeeper-contrib/">
          <include name="**/*.sh" />
          <include name="**/*.py" />
        </fileset>
      </chmod>
    </target>

    <!-- ================================================================== -->
    <!-- Make release tarball                                               -->
    <!-- ================================================================== -->
    <target name="tar" depends="package" description="Make release tarball">
      <macro_tar param.destfile="${build.dir}/${final.name}.tar.gz">
        <param.listofitems>
          <!-- it's unfortunate that the binaries have to be duplicated
               however that's the only way ant currently supports afaik -->
          <tarfileset dir="${build.dir}" mode="664">
            <exclude name="${final.name}/bin/*" />
            <exclude name="${final.name}/zookeeper-contrib/*/bin/*" />

            <exclude name="${final.name}/**/compile" />
            <exclude name="${final.name}/**/config.guess" />
            <exclude name="${final.name}/**/config.sub" />
            <exclude name="${final.name}/**/configure" />
            <exclude name="${final.name}/**/depcomp" />
            <exclude name="${final.name}/**/install-sh" />
            <exclude name="${final.name}/**/ltmain.sh" />
            <exclude name="${final.name}/**/missing" />

            <exclude name="${final.name}/**/*.sh" />

            <include name="${final.name}/**" />
          </tarfileset>
          <tarfileset dir="${build.dir}" mode="755">
            <!-- be sure to add to exclude list above if you add here -->
            <include name="${final.name}/bin/*" />
            <include name="${final.name}/zookeeper-contrib/*/bin/*" />

            <!-- autotools related commands -->
            <include name="${final.name}/**/compile" />
            <include name="${final.name}/**/config.guess" />
            <include name="${final.name}/**/config.sub" />
            <include name="${final.name}/**/configure" />
            <include name="${final.name}/**/depcomp" />
            <include name="${final.name}/**/install-sh" />
            <include name="${final.name}/**/ltmain.sh" />
            <include name="${final.name}/**/missing" />

            <!-- any shell scripts -->
            <include name="${final.name}/**/*.sh" />
          </tarfileset>
        </param.listofitems>
      </macro_tar>
    </target>

    <target name="binary" depends="bin-package"
            description="Make tarball without source and documentation">
      <macro_tar param.destfile="${build.dir}/${final.name}-bin.tar.gz">
        <param.listofitems>
          <tarfileset dir="${build.dir}" mode="664">
            <include name="${final.name}/zookeeper-client/zookeeper-client-c/**" />
            <exclude name="${final.name}/zookeeper-client/zookeeper-client-c/generated/**" />
          </tarfileset>
          <tarfileset dir="${build.dir}" mode="664">
            <exclude name="${final.name}/bin/*" />
            <exclude name="${final.name}/src/**" />
            <exclude name="${final.name}/docs/**" />
            <include name="${final.name}/**" />
          </tarfileset>
          <tarfileset dir="${build.dir}" mode="755">
            <include name="${final.name}/bin/*" />
          </tarfileset>
        </param.listofitems>
      </macro_tar>
    </target>

    <target name="package-native" depends="compile-native, bin-package" description="Make C binding tarball">
      <!-- For Unix platforms only, use OS native tar to preserve symlinks -->
      <exec executable="tar" dir="${build.dir}/c/build">
        <arg value="cfzv" />
        <arg value="${build.dir}/${final.name}-lib.tar.gz" />
        <arg value="." />
      </exec>
      <subant target="package">
        <!--Pass down the version in case its needed again and the target
            distribution directory so contribs know where to install to.-->
        <property name="version" value="${version}"/>
        <property name="dist.dir" value="${dist.dir}"/>
        <fileset file="${contrib.dir}/build.xml"/>
        <fileset file="${recipes.dir}/build.xml"/>
      </subant>
    </target>

    <target name="rpm" depends="package-native, tar" description="Make rpm package">
      <!--The RPM spec file format disallows hyphen in the version.  Replace with
          underscore to support version tags like -alpha or -SNAPSHOT.-->
      <loadresource property="rpm.version">
        <propertyresource name="version" />
        <filterchain>
          <tokenfilter>
            <replacestring from="-" to="_" />
          </tokenfilter>
        </filterchain>
      </loadresource>
      <subant target="rpm">
        <!--Pass down the version in case its needed again and the target
            distribution directory so contribs know where to install to.-->
        <property name="version" value="${version}"/>
        <property name="rpm.version" value="${rpm.version}"/>
        <property name="dist.dir" value="${dist.dir}"/>
        <fileset file="${contrib.dir}/build.xml"/>
        <fileset file="${recipes.dir}/build.xml"/>
      </subant>
      <path id="c.lib">
        <fileset dir="${build.dir}">
          <include name="${final.name}-lib.tar.gz"/>
        </fileset>
      </path>
      <property name="c.lib" refid="c.lib"/>
      <mkdir dir="${package.buildroot}/BUILD" />
      <mkdir dir="${package.buildroot}/RPMS" />
      <mkdir dir="${package.buildroot}/SRPMS" />
      <mkdir dir="${package.buildroot}/SOURCES" />
      <mkdir dir="${package.buildroot}/SPECS" />
      <copy todir="${package.buildroot}/SOURCES">
        <fileset dir="${build.dir}">
          <include name="${final.name}.tar.gz" />
        </fileset>
        <fileset file="${c.lib}" />
      </copy>
      <copy file="${src.dir}/packages/rpm/spec/zookeeper.spec" todir="${package.buildroot}/SPECS">
        <filterchain>
          <replacetokens>
            <token key="final.name" value="${final.name}" />
            <token key="version" value="${rpm.version}" />
            <token key="package.release" value="${package.release}" />
            <token key="package.build.dir" value="${package.build.dir}" />
            <token key="package.prefix" value="${package.prefix}" />
            <token key="package.conf.dir" value="${package.conf.dir}" />
            <token key="package.log.dir" value="${package.log.dir}" />
            <token key="package.pid.dir" value="${package.pid.dir}" />
            <token key="package.var.dir" value="${package.var.dir}" />
            <token key="c.lib" value="${c.lib}" />
          </replacetokens>
        </filterchain>
      </copy>
      <rpm specFile="zookeeper.spec" command="-ba --buildroot=${package.buildroot}/BUILD" topDir="${package.buildroot}" cleanBuildDir="true" failOnError="true"
/>
      <copy todir="${build.dir}/" flatten="true">
        <fileset dir="${package.buildroot}/RPMS">
          <include name="**/${name}*.rpm" />
        </fileset>
        <fileset dir="${package.buildroot}/SRPMS">
          <include name="**/${name}*.rpm" />
        </fileset>
      </copy>
      <delete dir="${package.buildroot}" quiet="true" verbose="false"/>
    </target>

    <target name="deb" depends="ivy-retrieve-package, package-native, tar" description="Make deb package">
      <subant target="deb">
        <!--Pass down the version in case its needed again and the target
            distribution directory so contribs know where to install to.-->
        <property name="version" value="${version}"/>
        <property name="dist.dir" value="${dist.dir}"/>
        <fileset file="${contrib.dir}/build.xml"/>
        <fileset file="${recipes.dir}/build.xml"/>
      </subant>
      <taskdef name="deb" classname="org.vafer.jdeb.ant.DebAntTask">
        <classpath refid="java.classpath"/>
        <classpath refid="package.classpath"/>
      </taskdef>

      <mkdir dir="${package.build.dir}/zookeeper.control" />
      <copy todir="${package.buildroot}/${package.prefix}">
        <fileset dir="${build.dir}/${final.name}">
          <include name="bin/**" />
          <include name="conf/**" />
          <include name="sbin/**" />
          <include name="share/**" />
        </fileset>
      </copy>
      <copy todir="${package.build.dir}/zookeeper.control">
        <fileset dir="${src.dir}/packages/deb/zookeeper.control">
          <exclude name="control" />
        </fileset>
      </copy>
      <copy file="${src.dir}/packages/deb/zookeeper.control/control" todir="${package.build.dir}/zookeeper.control">
        <filterchain>
          <replacetokens>
            <token key="final.name" value="${final.name}" />
            <token key="version" value="${version}" />
            <token key="package.release" value="${package.release}" />
            <token key="package.build.dir" value="${package.build.dir}" />
            <token key="package.prefix" value="${package.prefix}" />
            <token key="package.conf.dir" value="${package.conf.dir}" />
            <token key="package.log.dir" value="${package.log.dir}" />
            <token key="package.pid.dir" value="${package.pid.dir}" />
            <token key="package.var.dir" value="${package.var.dir}" />
          </replacetokens>
        </filterchain>
      </copy>
      <deb destfile="${package.buildroot}/${name}_${version}-${package.release}_${os.arch}.deb" control="${package.build.dir}/zookeeper.control">
        <tarfileset dir="${build.dir}/${final.name}/share/zookeeper" filemode="644" prefix="${package.prefix}/share/zookeeper">
          <include name="**" />
        </tarfileset>
        <tarfileset dir="${build.dir}/${final.name}/bin" filemode="755" prefix="${package.prefix}/bin">
          <include name="zkCli.sh" />
        </tarfileset>
        <tarfileset dir="${build.dir}/${final.name}/sbin" filemode="755" prefix="${package.prefix}/sbin">
          <include name="**.sh" />
        </tarfileset>
        <tarfileset dir="${build.dir}/${final.name}/libexec" filemode="755" prefix="${package.prefix}/libexec">
          <include name="zkEnv.sh" />
        </tarfileset>
        <tarfileset dir="${build.dir}/c/build/${package.prefix}/include" prefix="${package.prefix}/include">
          <include name="**" />
        </tarfileset>
        <tarfileset dir="${build.dir}/c/build/${package.prefix}/lib" filemode="755" prefix="${package.prefix}/lib">
          <include name="**" />
        </tarfileset>
        <tarfileset dir="${build.dir}/${final.name}/conf" filemode="644" prefix="${package.conf.dir}">
          <include name="**" />
        </tarfileset>
        <tarfileset dir="${build.dir}/${final.name}/src/packages/deb/init.d" filemode="755" prefix="/etc/init.d">
          <include name="**" />
        </tarfileset>
      </deb>

      <copy todir="${build.dir}/" flatten="true">
        <fileset dir="${package.buildroot}">
          <include name="**/${name}*.deb" />
        </fileset>
      </copy>
      <delete dir="${package.buildroot}" quiet="true" verbose="false"/>

    </target>

    <!-- ====================================================== -->
    <!-- mvn-deploy. Publishing jars to nexus -->
    <!-- ====================================================== -->

    <macrodef name="deploy" description="macro definition for publishing artifacts to nexus snapshots">
      <attribute name="jars" default="${tests-jar},${sources-jar},${javadoc-jar}"/>
      <attribute name="maven-jar" default="${main-jar}"/>
      <attribute name="repo-url" default="${snapshots_repo_url}"/>
      <attribute name="repo-id" default="${snapshots_repo_id}"/>
      <attribute name="profile" default="-P!gpg"/>
      <attribute name="plugin" default="${deploy-plugin}"/>
      <attribute name="attachas" default="tests,sources,javadoc"/>
      <sequential>
	<artifact:mvn>
	  <arg value="@{plugin}"/>
	  <arg value="-Durl=@{repo-url}"/>
	  <arg value="-DrepositoryId=@{repo-id}"/>
	  <arg value="-Dfiles=@{jars}"/>
	  <arg value="-Dfile=@{maven-jar}"/>
	  <arg value="-Dpackaging=jar"/>
	  <arg value="-DpomFile=${dist.maven.dir}/${name}.pom"/>
	  <arg value="-Dclassifiers=@{attachas}"/>
	  <arg value="-Dtype=jar"/>
	  <arg value="-Dtypes=jar,jar,jar"/>
	  <arg value="@{profile}"/>
	</artifact:mvn>
      </sequential>
    </macrodef>

    <target name="mvn-deploy" depends="mvn-taskdef, bin-package, simpledeploy, signanddeploy"
     description="To deploy jar's to a maven repository"/>

    <target name="signanddeploy" if="staging">
      <deploy repo-url="${staging_repo_url}" repo-id="${staging_repo_id}" plugin="${gpg-plugin}" profile="-Pgpg"/>
    </target> 

    <target name="simpledeploy" unless="staging">
      <deploy plugin="${deploy-plugin}"/>
    </target>

    <!-- ====================================================== -->
    <!-- mvn-install. Installing the jar and pom file to .m2    -->
    <!-- ====================================================== -->
     
     <target name="mvn-taskdef" depends="ivy-retrieve-mvn-ant-task">
        <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
        uri="antlib:org.apache.maven.artifact.ant" classpathref="mvn-ant-task-classpath"/>
     </target>

     <target name="mvn-install" depends="bin-package, mvn-taskdef">
       <echo message="${dist.maven.dir}/${final.name}.pom" />
       <echo message="${dist.maven.dir}/${final.name}.jar" />
       <echo message="${dist.maven.dir}/${final.name}-sources.jar" />
       <echo message="${dist.maven.dir}/${final.name}-javadoc.jar" />
       <echo message="${dist.maven.dir}/${final.name}-tests.jar" />
  
       <artifact:pom id="zookeeper-pom" file="${dist.maven.dir}/${name}.pom"/>
       <echo>The version is ${zookeeper-pom.version}</echo>
       <echo message="${dist.maven.dir}/${final.name}.jar" />
     
       <artifact:install file="${dist.maven.dir}/${final.name}.jar">
         <pom refid="zookeeper-pom" />
         <attach file="${dist.maven.dir}/${final.name}.jar" type="jar"/>
         <attach file="${dist.maven.dir}/${final.name}-sources.jar" type="jar" classifier="sources"/>
         <attach file="${dist.maven.dir}/${final.name}-javadoc.jar" type="jar" classifier="javadoc"/>
         <attach file="${dist.maven.dir}/${final.name}-tests.jar" type="jar" classifier="tests"/>
       </artifact:install>
    </target>

    <!-- ====================================================== -->
    <!-- Clean.  Delete the build files, and their directories  -->
    <!-- ====================================================== -->
    <target name="clean" depends="clean-contrib,clean-recipes"
            description="Clean.  Delete the build files, and their directories">
      <delete dir="${build.dir}"/>
      <delete dir="${docs.src}/build"/>
      <delete dir="${src_generated.dir}" />
      <delete dir="${csrc_generated.dir}" />
      <delete file="${lib.dir}/Null.java"/>
      <delete file="${lib.dir}/rats.jar" />
      <delete file="${jdiff.xml.dir}/${name}_${version}.xml"/>	
      <delete file="${jar.name}" />
      <delete dir="${distribution}"/>
      <delete dir="${revision.dir}"/>
      <delete>
        <fileset dir="${basedir}" includes="*.jar,*.tar.gz"/>
      </delete>
      <delete dir="${package.buildroot}" />
    </target>

    <target name="clean-contrib">
      <subant target="clean">        
        <fileset file="${contrib.dir}/build.xml"/>
      </subant>  	
    </target>

   <target name="clean-recipes">
     <subant target="clean">
       <fileset file="${recipes.dir}/build.xml"/>
     </subant>
   </target>

    <!-- ====================================================== -->
    <!-- Run unit tests                                         -->
    <!-- ====================================================== -->
    <target name="test-init" depends="jar,compile-test">
        <delete dir="${test.log.dir}" />
        <delete dir="${test.tmp.dir}" />
        <delete dir="${test.data.upgrade.dir}" />
        <delete dir="${test.data.invalid.dir}" />
        <delete dir="${test.data.buffersize.dir}" />
        <delete dir="${test.data.kerberos.dir}" />
        <delete dir="${test.data.dir}" />
        <mkdir dir="${test.log.dir}" />
        <mkdir dir="${test.tmp.dir}" />
        <mkdir dir="${test.data.dir}" />
        <mkdir dir="${test.data.upgrade.dir}" />
        <mkdir dir="${test.data.invalid.dir}" />
        <copy todir="${test.data.upgrade.dir}">
            <fileset dir="${server.test.resource.dir}/data/upgrade"/>
        </copy>
        <copy todir="${test.data.invalid.dir}">
            <fileset dir="${server.test.resource.dir}/data/invalidsnap"/>
        </copy>
        <mkdir dir="${test.data.buffersize.dir}" />
        <copy todir="${test.data.buffersize.dir}">
            <fileset dir="${server.test.resource.dir}/data/buffersize"/>
        </copy>
        <mkdir dir="${test.data.kerberos.dir}" />
        <copy todir="${test.data.kerberos.dir}">
            <fileset dir="${server.test.resource.dir}/data/kerberos"/>
        </copy>
    </target>

    <condition property="quicktest">
      <and>
        <equals arg1="${test.quick}" arg2="yes"/>
        <not>
          <isset property="testcase"/>
        </not>
      </and>
    </condition>
    <condition property="fulltest">
      <and>
        <equals arg1="${test.quick}" arg2="no"/>
        <not>
          <isset property="testcase"/>
        </not>
      </and>
    </condition>

    <target name="junit.run">
        <junit showoutput="${test.output}"
               printsummary="${test.junit.printsummary}"
               haltonfailure="${test.junit.haltonfailure}"
               fork="yes"
               forkmode="${test.junit.fork.mode}"
               maxmemory="${test.junit.maxmem}"
               dir="${basedir}" timeout="${test.timeout}"
               errorProperty="tests.failed" failureProperty="tests.failed">
          <sysproperty key="build.test.dir" value="${test.tmp.dir}" />
          <sysproperty key="test.data.dir" value="${test.data.dir}" />
          <sysproperty key="log4j.configuration"
                       value="file:${basedir}/conf/log4j.properties" />
          <!-- superDigest is used by the tests/main code. If this is not set
               as part of starting the jvm there is no guarantee that the static
               initializers in the java code will see this (esp when running
               with junit fork mode set to "once")-->
          <sysproperty key="zookeeper.DigestAuthenticationProvider.superDigest"
                       value="super:D/InIHSb7yEEbrWz8b9l71RjZJU=" />
          <classpath refid="test.java.classpath"/>
          <classpath>
            <pathelement path="${test.java.classes}" />
          </classpath>
          <formatter type="${test.junit.output.format}" />
          <batchtest todir="${test.log.dir}" if="quicktest">
            <fileset dir="${java.server.test.dir}">
              <include name="**/*${test.category}Test.java"/>
              <exclude name="**/*HammerTest.java"/>
            </fileset>
            <fileset dir="${jute.test.src.dir}">
              <include name="**/*${test.category}Test.java" />
            </fileset>
          </batchtest>
          <batchtest todir="${test.log.dir}" if="fulltest">
            <fileset dir="${java.server.test.dir}">
              <include name="**/*${test.category}Test.java"/>
            </fileset>
            <fileset dir="${jute.test.src.dir}">
              <include name="**/*${test.category}Test.java" />
            </fileset>
          </batchtest>
          <batchtest todir="${test.log.dir}" if="testcase">
            <fileset dir="${java.server.test.dir}" includes="**/${testcase}.java"/>
            <fileset dir="${jute.test.src.dir}" includes="**/${testcase}.java"/>
          </batchtest>
        </junit>
        <antcall target="fail.build.on.test.failure"/>
    </target>
    <target name="fail.build.on.test.failure" if="${test.junit.failbuild.ontestfailure}" >
        <fail if="tests.failed">Tests failed!</fail>
    </target>

    <target name="check-cppunit-configure" depends="init" >
      <condition property="need.cppunit.configure">
        <not> <available file="${c.src.dir}/configure"/> </not>
      </condition>
    </target>	

    <target name="verify-cppunit-makefile-gcov">
      <fileset id="fileset.makefile.gcov.enabled" dir="${test.cppunit.dir}" erroronmissingdir="false">
        <include name="Makefile"/>
        <containsregexp expression="^[^#]+-ftest-coverage.*$"/>
      </fileset>
      <condition property="makefile.gcov.enabled">
        <resourcecount when="greater" count="0" refid="fileset.makefile.gcov.enabled"/>
      </condition>
      <echo message="makefile.gcov.enabled = ${makefile.gcov.enabled}"/>
      <condition property="delete.cppunit.makefile">
        <and>
          <isset property="makefile.gcov.enabled"/>
          <not><equals arg1="${enable.gcov}" arg2="true"/></not>
        </and>
      </condition>
      <echo message="delete.cppunit.makefile = ${delete.cppunit.makefile}"/>
    </target>
    
    <target name="delete-cppunit-makefile" if="delete.cppunit.makefile">
      <delete file="${test.cppunit.dir}/Makefile"/>
    </target>
    
    <target name="check-cppunit-makefile" depends="init,verify-cppunit-makefile-gcov,delete-cppunit-makefile" >
    	<condition property="need.cppunit.makefile">
       		<not> <available file="${test.cppunit.dir}/Makefile"/> </not>
    	</condition>
    </target>

    <!--
       1. If we have a Makefile it will handle up-to-date check and also
          regenerate the configure script if missing. (done)
       2. If we don't have a Makefile use the configure script to 
          regenerate it. (done)
       3. If we don't have a Makefile nor a configure script then it's
          last resort and run autoreconf, then configure (done)
      -->

    <target name="create-cppunit-configure" depends="check-cppunit-configure"
            if="need.cppunit.configure">
      <exec executable="autoreconf" dir="${c.src.dir}" searchpath="yes"
            failonerror="yes">
        <arg value="-if"/>
        <env key="ACLOCAL" value="aclocal -I ${cppunit.m4}"/>
      </exec>
    </target>

    <target name="create-cppunit-makefile" depends="check-cppunit-makefile" 
                                           if="need.cppunit.makefile">
      <antcall target="create-cppunit-configure">
        <param name="cppunit" value="true"/>
      </antcall>
    	<mkdir dir="${test.cppunit.dir}"/>
        <condition property="enable.gcov.arg" value="--enable-gcov" else="">
          <equals arg1="${enable.gcov}" arg2="true"/>
        </condition>
    	<exec executable="${c.src.dir}/configure" dir="${test.cppunit.dir}"
          	failonerror="yes">
                <env key="base_dir" value="${basedir}"/>
                <env key="CALLER" value="ANT"/>
      		<arg value="--prefix=${test.cppunit.dir}"/>
            <arg line="${enable.gcov.arg}"/>
    	</exec>
    </target>

    <target name="call-test-cppunit" description="to execute cppunit tests">
	<antcall target="create-cppunit-makefile"/>
	<antcall target="test-cppunit">
		<param name="cppunit" value="true"/>
	</antcall>
    </target>			


    <target name="test-cppunit"
            depends="compile_jute, jar, create-cppunit-makefile"
            if="cppunit"
		description="to run cppunit test cases">
        <exec dir="${test.cppunit.dir}" executable="make" failonerror="true">
		<env key="LD_LIBRARY_PATH" value="${env.LD_LIBRARY_PATH};${cppunit.lib}"/>
		<env key="PATH" path="${env.PATH};${c.src.dir};"/>
                <env key="CALLER" value="ANT"/>
                <env key="CLOVER_HOME" value="${clover.home}"/>
                <env key="base_dir" value="${basedir}"/>
		<arg line="clean run-check"/>
	</exec>
    </target>
   
    <target name="test-unit-category">
      <property name="test.category" value="Unit"/>
    </target>
    <target name="test-unit" depends="test-init,test-unit-category,junit.run"/>

    <target name="test-func-category">
      <property name="test.category" value="Func"/>
    </target>
    <target name="test-func" depends="test-init,test-func-category,junit.run"/>

    <target name="test-perf-category">
      <property name="test.category" value="Perf"/>
    </target>
    <target name="test-perf" depends="test-init,test-perf-category,junit.run"/>

    <target name="test-category">
      <property name="test.category" value=""/>
    </target>

    <target name="test" description="to run core and contrib tests">
	<antcall target="test-core"/>
	<antcall target="test-contrib"/>
    </target>
 
    <target name="test-contrib" description="to run contrib tests">
	<!-- yet to implement -->
    </target>
    
    <target name="test-core-java" depends="test-init, test-category, junit.run"/>

    <target name="test-core-cppunit" depends="test-init, test-category, call-test-cppunit"/>

    <target name="test-core" depends="test-core-java, test-core-cppunit"/>

    <!-- ====================================================== -->
    <!-- Run optional third-party tool targets                  -->
    <!-- ====================================================== -->

    <!-- Clover code coverage -->
    <target name="test-coverage-clover-java"
            description="Runs Java tests with Clover and generates coverage report in HTML and XML.">
      <antcall target="test-core-java">
        <param name="run.clover" value="true"/>
      </antcall>
      <antcall target="clover-report"/>
    </target>

    <target name="clover" if="run.clover" depends="ivy-retrieve-clover,clover.check,clover.setup"
            description="Used in compile target to add source code instrumentation for Clover and sets up the Clover database."/>

    <target name="clover.check">
        <available property="clover.present"
                   classname="com.atlassian.clover.CloverInstr"
                   classpath="${clover.home}/lib/clover-${clover.version}.jar"/>
        <fail if="run.clover" unless="clover.present">
            Clover not found.
            Please make sure clover-${clover.version}.jar is in ${clover.home}/lib, or made available
            to Ant using other mechanisms like -lib or CLASSPATH.
        </fail>
    </target>

    <target name="clover.setup" if="run.clover">
      <taskdef resource="cloverlib.xml" classpath="${clover.jar}"/>
      <mkdir dir="${clover.db.dir}"/>
      <clover-setup initString="${clover.db}">
        <fileset dir="${java.server.src.dir}"
                 includes="org/apache/zookeeper/**/*"
                 excludes="org/apache/zookeeper/version/**/*">
        </fileset>
        <testsources dir="${java.server.test.dir}">
          <testclass package="org.apache.zookeeper.*" name=".*Test">
              <testmethod annotation="Test"/>
          </testclass>
        </testsources>
      </clover-setup>
    </target>

    <target name="clover-report" depends="ivy-retrieve-clover"
            description="Generates coverage report in HTML and XML. Run the tests first with 'ant -Drun.clover=true test-core-java' to generate coverage data.">
      <taskdef resource="cloverlib.xml" classpath="${clover.jar}"/>
      <mkdir dir="${clover.report.dir}"/>
      <clover-report initString="${clover.db}">
        <current outfile="${clover.report.dir}" title="${final.name}">
          <format type="html"/>
        </current>
      </clover-report>
      <clover-report initString="${clover.db}">
        <current outfile="${clover.report.dir}/clover.xml" title="${final.name}">
          <format type="xml"/>
        </current>
      </clover-report>
    </target>

    <target name="c_coverage_report" description="Runs coverage report for ZK C client code.">
      <!-- delete configure and make files so that they get regenerated with coverage enabled -->
      <delete file="${c.src.dir}/configure"/>
      <delete file="${test.cppunit.dir}/Makefile"/>
      <subant target="test-core-cppunit" failonerror="false">
        <property name="enable.gcov" value="true"/>
        <fileset dir="." file="build.xml"/>
      </subant>
      <mkdir dir="${build.dir}/c_coverage" />
      <copy todir="${build.dir}/c" verbose="true" overwrite="true" failonerror="true">
        <fileset dir="${build.dir}/test/test-cppunit/.libs">
          <include name="*.gcno"/>
          <include name="*.gcda"/>
        </fileset>
      </copy>
      <exec dir="${build.dir}/c" executable="lcov">
        <arg line="-t testname -o ZK_C_client.info -c -d ."/>
      </exec>
      <exec dir="${build.dir}/c_coverage" executable="genhtml">
        <arg line="-o report ${build.dir}/c/ZK_C_client.info"/>
      </exec>
    </target>

    <!-- Run with 'ant -Dfindbugs.home="path to Findbugs directory" findbugs -->
    <property name="findbugs.home" value="" />
    <target name="findbugs" depends="check-for-findbugs, jar" if="findbugs.present">
        <property name="findbugs.out.dir" value="${test.java.build.dir}/findbugs" />
        <property name="findbugs.exclude.file" value="${server.test.resource.dir}/findbugsExcludeFile.xml" />
        <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" />
        <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" 
                classpath="${findbugs.home}/lib/findbugs-ant.jar" />
        <mkdir dir="${findbugs.out.dir}" />
        <findbugs home="${findbugs.home}" output="xml:withMessages" excludeFilter="${findbugs.exclude.file}" 
                outputFile="${findbugs.report.xmlfile}" effort="max" jvmargs="-Xmx512M">
            <auxClasspath>
                <fileset dir="${ivy.lib}">
                    <include name="**/*.jar" />
                </fileset>
            </auxClasspath>
            <sourcePath path="${java.server.src.dir}" />
            <class location="${build.dir}/${final.name}.jar" />
        </findbugs>
        <xslt style="${findbugs.home}/src/xsl/default.xsl" in="${findbugs.report.xmlfile}" 
                out="${findbugs.report.htmlfile}" />
    </target>

    <target name="check-for-findbugs">
        <available property="findbugs.present" file="${findbugs.home}/lib/findbugs.jar" />
    </target>

    <!-- Code coverage -->
    <target name="cobertura-instrument" depends="compile-test">
      <taskdef resource="tasks.properties">
        <classpath>
          <pathelement path="${lib.dir}/cobertura/cobertura.jar" />
          <fileset dir="${lib.dir}/cobertura/lib">
            <include name="*.jar"/>
          </fileset>
          <fileset dir="${lib.dir}">
            <include name="*.jar"/>
          </fileset>
          <fileset dir="${ivy.lib}">
            <include name="**/*.jar" />
          </fileset>
        </classpath>
      </taskdef>

      <cobertura-instrument todir="${build.dir}/cobertura">
        <fileset dir="${build.classes}">
          <include name="org/apache/zookeeper/**/*.class"/>
        </fileset>
      </cobertura-instrument>
    </target>

    <target name="cobertura-test" depends="test-init,cobertura-instrument">
        <junit showoutput="${test.output}" printsummary="yes" haltonfailure="no" fork="yes" 
               maxmemory="${test.junit.maxmem}" dir="${basedir}" timeout="${test.timeout}"
               errorProperty="tests.failed" failureProperty="tests.failed">
            <sysproperty key="build.test.dir" value="${test.tmp.dir}" />
            <sysproperty key="test.data.dir" value="${test.data.dir}" />
            <sysproperty key="log4j.configuration"
                         value="file:${basedir}/conf/log4j.properties" />
            <classpath>
                <pathelement path="${build.dir}/cobertura" />
                <pathelement path="${lib.dir}/cobertura/cobertura.jar" />
                <fileset dir="${lib.dir}/cobertura/lib">
                    <include name="*.jar"/>
                </fileset>
                <fileset dir="${lib.dir}">
                    <include name="*.jar"/>
                </fileset>
                <fileset dir="${ivy.lib}">
                  <include name="**/*.jar" />
                </fileset>
            </classpath>
            <classpath>
                <pathelement path="${test.java.classes}" />
            </classpath>
            <classpath refid="test.java.classpath"/>
            <classpath>
                <pathelement path="${build.classes}" />
            </classpath>

            <formatter type="${test.junit.output.format}" />
            <batchtest todir="${test.log.dir}" unless="testcase">
                <fileset dir="${java.server.test.dir}"
                         includes="**/*Test.java"/>
            </batchtest>
            <batchtest todir="${test.log.dir}" if="testcase">
                <fileset dir="${java.server.test.dir}" includes="**/${testcase}.java"/>
            </batchtest>
        </junit>
        <antcall target="fail.build.on.test.failure"/>
    </target>

    <target name="cobertura-report" depends="cobertura-test">
        <cobertura-report format="${test.cobertura.output.format}"
                          destdir="${coveragereport.dir}" >
            <fileset dir="${java.server.src.dir}">
                <include name="**/*.java" />
            </fileset>
            <fileset dir="${jute.src.dir}">
                <include name="**/*.java" />
            </fileset>
            <fileset dir="${src_generated.dir}">
                <include name="**/*.java" />
            </fileset>
        </cobertura-report>
    </target>

    <target name="checkstyle" depends="ivy-retrieve-test" description="Run Checkstyle coding standard checks">
      <taskdef resource="checkstyletask.properties" uri="antlib:com.puppycrawl.tools.checkstyle">
        <classpath>
          <fileset dir="${ivy.test.lib}" includes="*.jar" />
        </classpath>
      </taskdef>
      <mkdir dir="${test.java.build.dir}"/>
      <cs:checkstyle config="${server.test.resource.dir}/checkstyle.xml" failOnViolation="false">
        <fileset dir="${basedir}/zookeeper-server" includes="**/*.java" excludes="**/generated/**"/>
        <formatter type="xml" toFile="${test.java.build.dir}/checkstyle-errors.xml"/>
      </cs:checkstyle>
      <xslt style="${server.test.resource.dir}/checkstyle-noframes-sorted.xsl" in="${test.java.build.dir}/checkstyle-errors.xml"
            out="${test.java.build.dir}/checkstyle-errors.html"/>
    </target>

    <!-- ================================================================== -->
    <!-- Perform audit activities for the release                           -->
    <!-- ================================================================== -->
    <target name="rats-taskdef" depends="ivy-retrieve-releaseaudit">
      <typedef format="xml" resource="org/apache/rat/anttasks/antlib.xml" uri="antlib:org.apache.rat.anttasks"
               classpathref="releaseaudit-classpath"/>
    </target>

    <target name="owasp-taskdef" depends="ivy-retrieve-owasp">
        <typedef format="properties" resource="dependency-check-taskdefs.properties" uri="antlib:org.owasp.dependencycheck.anttasks" classpathref="owasp-classpath"/>
    </target>

    <target name="owasp" depends="owasp-taskdef,ivy-retrieve" description="OWASP dependency check">
        <property name="owasp.out.dir" value="${test.java.build.dir}/owasp" />
        <owasp:dependency-check-update xmlns:owasp="antlib:org.owasp.dependencycheck.anttasks" />
        <owasp:dependency-check xmlns:owasp="antlib:org.owasp.dependencycheck.anttasks"
                          projectname="ZooKeeper"
                          reportoutputdirectory="${owasp.out.dir}"
                          reportformat="ALL"
                          failBuildOnCVSS="0">
            <suppressionfile path="${basedir}/owaspSuppressions.xml" />

            <fileset dir="${ivy.lib}">
                <include name="**/*.jar"/>
            </fileset>

            <fileset dir="${lib.dir}">
                <include name="**/*.jar"/>
            </fileset>
        </owasp:dependency-check>
    </target>

    <target name="releaseaudit" depends="package,rats-taskdef" description="Release Audit activities">
      <rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
        <fileset dir="${dist.dir}">
          <exclude name="**/*.cer"/>
          <exclude name="**/*.m4"/>
          <exclude name="**/*.md5"/>
          <exclude name="**/*.pom"/>
          <exclude name="**/*.sha1"/>
          <exclude name="**/.gitignore"/>
          <exclude name="**/Makefile**"/>
          <exclude name="**/winconfig.h"/>
          <exclude name="**/configure**"/>
          <exclude name="**/*Doxyfile"/>
          <exclude name="**/*.am"/>
          <exclude name="**/compile"/>
          <exclude name="**/depcomp"/>
          <exclude name="**/install-sh"/>
          <exclude name="**/log4j.properties"/>
          <exclude name="**/ltmain.sh"/>
          <exclude name="**/missing"/>
          <exclude name="**/wrappers*.opt"/>
          <exclude name="CHANGES.txt"/>
          <exclude name="**/README.md"/>
          <exclude name="README_packaging.txt"/>
          <exclude name="**/TODO"/>
          <exclude name="**/VERSION"/>
          <exclude name="**/ChangeLog"/>
          <exclude name="**/Changes"/>
          <exclude name="**/zookeeper-contrib/zookeeper-contrib-zkperl/MANIFEST"/>
          <exclude name="**/conf/*"/>
          <exclude name="**/zookeeper-docs/"/>
          <exclude name="**/lib/jdiff/"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-ZooInspector/src/main/java/com/nitido/utils/toaster/Toaster.java"/>
          <exclude name="zookeeper-client/zookeeper-client-c/*.la"/>
          <exclude name="zookeeper-client/zookeeper-client-c/*.lo"/>
          <exclude name="zookeeper-client/zookeeper-client-c/.libs/"/>
          <exclude name="zookeeper-client/zookeeper-client-c/autom4te.cache/**"/>
          <exclude name="zookeeper-client/zookeeper-client-c/config**"/>
          <exclude name="zookeeper-client/zookeeper-client-c/include/winstdint.h"/>
          <exclude name="zookeeper-client/zookeeper-client-c/src/hashtable/"/>
          <exclude name="zookeeper-client/zookeeper-client-c/test-driver"/>
          <exclude name="zookeeper-client/zookeeper-client-c/tests/quorum.cfg"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/main/resources/webapp/org/apache/zookeeper/graph/resources/date.format.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/main/resources/webapp/org/apache/zookeeper/graph/resources/g.bar.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/main/resources/webapp/org/apache/zookeeper/graph/resources/g.dot.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/main/resources/webapp/org/apache/zookeeper/graph/resources/g.line.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/main/resources/webapp/org/apache/zookeeper/graph/resources/g.pie.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/main/resources/webapp/org/apache/zookeeper/graph/resources/g.raphael.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/main/resources/webapp/org/apache/zookeeper/graph/resources/raphael.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/main/resources/webapp/org/apache/zookeeper/graph/resources/yui-min.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/resources/webapp/org/apache/zookeeper/graph/resources/date.format.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/resources/webapp/org/apache/zookeeper/graph/resources/g.bar.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/resources/webapp/org/apache/zookeeper/graph/resources/g.dot.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/resources/webapp/org/apache/zookeeper/graph/resources/g.line.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/resources/webapp/org/apache/zookeeper/graph/resources/g.pie.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/resources/webapp/org/apache/zookeeper/graph/resources/g.raphael.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/resources/webapp/org/apache/zookeeper/graph/resources/raphael.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-loggraph/src/resources/webapp/org/apache/zookeeper/graph/resources/yui-min.js"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-monitoring/JMX-RESOURCES"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-zooinspector/src/main/java/com/nitido/utils/toaster/Toaster.java"/>
          <exclude name="zookeeper-contrib/zookeeper-contrib-fatjar/src/main/resources/mainClasses"/>
          <exclude name="zookeeper-jute/target/main/java/.generated/"/>
          <exclude name="zookeeper-server/src/test/resources/checkstyle*.xml"/>
          <exclude name="zookeeper-server/src/test/resources/checkstyle*.xsl"/>
          <exclude name="zookeeper-server/src/test/resources/findbugs*.xml"/>
          <exclude name="**/*.vcproj"/>
          <exclude name="**/*.vcxproj*"/>
          <exclude name="**/*.sln"/>
        </fileset>
      </rat:report>
    </target>

    <target name="findbugs.check" depends="check-for-findbugs" unless="findbugs.present">
    	<fail message="'findbugs.home' is not defined. Please pass -Dfindbugs.home=&lt;base of Findbugs installation&gt; 
		to Ant on the command-line." />
    </target>

    <target name="patch.check" unless="patch.file">
  	<fail message="'patch.file' is not defined. Please pass -Dpatch.file=&lt;location of patch file&gt; 
		to Ant on the command-line." />
    </target>

    <target name="test-patch" depends="patch.check,findbugs.check">
  	<exec executable="bash" failonerror="true">
    		<arg value="${test_patch_sh}"/>
    		<arg value="DEVELOPER"/>
    		<arg value="${patch.file}"/>
    		<arg value="${scratch.dir}"/>
    		<arg value="${svn.cmd}"/>
    		<arg value="${grep.cmd}"/>
    		<arg value="${patch.cmd}"/>
    		<arg value="${findbugs.home}"/>
    		<arg value="${basedir}"/>
    		<arg value="${java5.home}"/>
  	</exec>
    </target>

    <target name="hudson-test-patch" depends="findbugs.check">
  	<exec executable="bash" failonerror="true">
    		<arg value="${test_patch_sh}"/>
    		<arg value="HUDSON"/>
    		<arg value="${scratch.dir}"/>
    		<arg value="${ps.cmd}"/>
    		<arg value="${wget.cmd}"/>
    		<arg value="${jiracli.cmd}"/>
    		<arg value="${svn.cmd}"/>
    		<arg value="${grep.cmd}"/>
    		<arg value="${patch.cmd}"/>
    		<arg value="${findbugs.home}"/>
    		<arg value="${basedir}"/>
    		<arg value="${jira.passwd}"/>
    		<arg value="${java5.home}"/>
    		<arg value="${curl.cmd}"/>
    		<arg value="${defect}"/>
    	</exec>
     </target>

     <target name="qa-test-pullrequest" depends="findbugs.check">
        <exec executable="bash" failonerror="true">
                <arg value="${test_pullrequest_sh}"/>
                <arg value="QABUILD"/>
                <arg value="${scratch.dir}"/>
                <arg value="${ps.cmd}"/>
                <arg value="${wget.cmd}"/>
                <arg value="${jiracli.cmd}"/>
                <arg value="${git.cmd}"/>
                <arg value="${grep.cmd}"/>
                <arg value="${patch.cmd}"/>
                <arg value="${findbugs.home}"/>
                <arg value="${basedir}"/>
                <arg value="${jira.passwd}"/>
                <arg value="${java5.home}"/>
                <arg value="${curl.cmd}"/>
        </exec>
     </target>


     <!-- this target runs the hudson trunk build -->
     <target name="hudson-test-trunk" depends="tar,findbugs"/>

     <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.server.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 name="write-null">
       <exec executable="touch">
         <arg value="${jdiff.home}/Null.java"/>
       </exec>
     </target> 

     <target name="api-report" depends="api-xml">
       <mkdir dir="${jdiff.build.dir}"/>
       <javadoc destdir="${jdiff.build.dir}"
                excludepackagenames="org.apache.jute"	
                sourceFiles="${jdiff.home}/Null.java">
         <fileset dir="${java.server.src.dir}"/>
         <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>
     </target>

     <condition property="ant-eclipse.jar.exists">
       <available file="${lib.dir}/ant-eclipse-1.0-jvm1.2.jar"/>
     </condition>

     <target name="ant-eclipse-download" unless="ant-eclipse.jar.exists">
       <get src="https://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"
            dest="${java.server.resources.dir}/ant-eclipse-1.0.bin.tar.bz2" usetimestamp="false" />

       <bunzip2 src="${java.server.resources.dir}/ant-eclipse-1.0.bin.tar.bz2"/>

       <untar src="${java.server.resources.dir}/ant-eclipse-1.0.bin.tar"
              dest="${java.server.resources.dir}">
         <patternset>
           <include name="lib/ant-eclipse-1.0-jvm1.2.jar"/>
         </patternset>
       </untar>

       <delete file="${java.server.resources.dir}/ant-eclipse-1.0.bin.tar" />
       <delete file="${java.server.resources.dir}/ant-eclipse-1.0.bin.tar.bz2" />
     </target>

     <target name="eclipse"
             depends="ant-eclipse-download,init,ivy-retrieve,build-generated,ivy-retrieve-test"
             description="Create eclipse project files">
       <ivy:resolve useOrigin="true" conf="test"/>
       <ivy:cachepath pathid="default.path.id" conf="default" />
       <ivy:cachepath pathid="junit.path.id" conf="test" />
       <taskdef name="eclipse"
                classname="prantl.ant.eclipse.EclipseTask"
                classpathref="java.classpath" />
       <eclipse updatealways="true">
         <settings>
           <jdtcore compilercompliance="6.0" />
           <resources encoding="UTF-8" />
         </settings>
         <project name="${ant.project.name}" />
         <classpath>
           <source path="${java.server.src.dir}"
                   output="${build.dir.eclipse-main-classes}" />
           <source path="${jute.src.dir}"
                   output="${build.dir.eclipse-main-classes}" />
           <source path="${src_generated.dir}"
                   output="${build.dir.eclipse-main-classes}" />
           <source path="${java.server.test.dir}"
                   output="${build.dir.eclipse-test-classes}" />
           <source path="${systest.src.dir}"
                   output="${build.dir.eclipse-test-classes}" />

           <output path="${build.dir.eclipse-main-classes}" />
           <library pathref="default.path.id" exported="true" />
           <library pathref="junit.path.id" exported="false" />
         </classpath>
       </eclipse>
     </target>

     <target name="clean-eclipse" description="Clean eclipse files">
       <delete file=".classpath" />
       <delete file=".eclipse" />
       <delete file=".project" />
       <delete dir=".settings" />
       <delete dir="${build.dir.eclipse}" />
     </target>

</project>
