<!--
   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="Pig" default="jar-all"
         xmlns:artifact="urn:maven-artifact-ant"
         xmlns:ivy="antlib:org.apache.ivy.ant">
    <!-- Load all the default properties, and any the user wants    -->
    <!-- to contribute (without having to type -D or edit this file -->
    <property file="${user.home}/build.properties" />
    <property file="${basedir}/build.properties" />

    <!-- name and version properties -->
    <property name="name" value="pig" />
    <property name="Name" value="Pig" />
    <property name="ant-task.version" value="2.0.10" />
    <property name="pig.pom" value="${basedir}/ivy/pig.pom" />
    <property name="pigsmoke.pom" value="${basedir}/ivy/pigsmoke.pom" />
    <property name="pigunit.pom" value="${basedir}/ivy/pigunit.pom" />
    <property name="piggybank.pom" value="${basedir}/ivy/piggybank.pom" />
    <property name="pig.version" value="0.12.2" />
    <property name="pig.version.suffix" value="-SNAPSHOT" />
    <property name="version" value="${pig.version}${pig.version.suffix}" />
    <property name="final.name" value="${name}-${version}" />
    <property name="year" value="2007-2012" />

    <!-- source properties -->
    <property name="lib.dir" value="${basedir}/lib" />
    <property name="src.dir" value="${basedir}/src" />
    <property name="python.src.dir" value="${src.dir}/python" />
    <property name="src.lib.dir" value="${basedir}/lib-src" />
    <property name="src.gen.dir" value="${basedir}/src-gen" />
    <property name="docs.dir" value="${basedir}/src/docs" />


    <!-- build properties -->
    <property name="build.dir" value="${basedir}/build" />
    <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="tar.dist.dir" value="${build.dir}/tar/${final.name}" />

    <!-- property name="build.encoding" value="ISO-8859-1" / -->
    <property name="build.encoding" value="UTF8" />

    <!-- javac properties -->
    <property name="javac.debug" value="on" />
    <property name="javac.optimize" value="on" />
    <property name="javac.deprecation" value="off" />
    <property name="javac.version" value="1.5" />
    <property name="javac.args" value="" />
    <condition property="javac.args.warnings" value="-Xmaxwarns 1000000 -Xlint -Xlint:-deprecation" else="-Xmaxwarns 1000000">
        <isset property="all.warnings" />
    </condition>

    <!-- artifact jar file names -->
    <property name="artifact.pig.jar" value="${final.name}.jar"/>
    <property name="artifact.pig-h2.jar" value="${final.name}-h2.jar"/>
    <property name="artifact.pig-withouthadoop.jar" value="${final.name}-withouthadoop.jar"/>
    <property name="artifact.pig-withouthadoop-h2.jar" value="${final.name}-withouthadoop-h2.jar"/>
    <property name="artifact.pig-withdependencies.jar" value="${final.name}-withdependencies.jar"/>
    <property name="artifact.pig-sources.jar" value="${final.name}-sources.jar"/>
    <property name="artifact.pig-javadoc.jar" value="${final.name}-javadoc.jar"/>
    <property name="artifact.pig.tar" value="${final.name}.tar.gz"/>

    <!-- jar names. TODO we might want to use the svn reversion name in the name in case it is a dev version -->
    <property name="output.jarfile.withdependencies" value="${build.dir}/${artifact.pig-withdependencies.jar}" />
    <property name="output.stage.jarfile.withdependencies" value="${build.dir}/${final.name}-withdependencies.stage.jar" />
    <property name="output.jarfile.withouthadoop" value="${build.dir}/${artifact.pig-withouthadoop.jar}" />
    <property name="output.jarfile.withouthadoop-h2" value="${build.dir}/${artifact.pig-withouthadoop-h2.jar}" />
    <property name="output.jarfile.core" value="${build.dir}/${artifact.pig.jar}" />
    <property name="output.jarfile.core-h2" value="${build.dir}/${artifact.pig-h2.jar}" />
    <property name="output.jarfile.sources" value="${build.dir}/${artifact.pig-sources.jar}" />
    <property name="output.jarfile.javadoc" value="${build.dir}/${artifact.pig-javadoc.jar}" />
    <!-- Maintain old pig.jar in top level directory. -->
    <property name="output.jarfile.backcompat" value="${basedir}/${name}.jar" />
    <property name="output.jarfile.backcompat.withouthadoop" value="${basedir}/${name}-withouthadoop.jar" />

    <!-- test properties -->
    <property name="test.src.dir" value="${basedir}/test" />
    <property name="test.build.dir" value="${build.dir}/test" />
    <property name="test.build.classes" value="${test.build.dir}/classes" />
    <property name="test.log.dir" value="${test.build.dir}/logs" />
    <property name="test.timeout" value="7200000" />
    <property name="test.junit.output.format" value="plain" />
    <property name="test.commit.file" value="${test.src.dir}/commit-tests"/>
    <property name="test.unit.file" value="${test.src.dir}/unit-tests"/>
    <property name="test.smoke.file" value="${test.src.dir}/smoke-tests"/>
    <property name="test.all.file" value="${test.src.dir}/all-tests"/>
    <property name="test.exclude.file" value="${test.src.dir}/excluded-tests"/>
    <property name="test.exclude.file.23" value="${test.src.dir}/excluded-tests-23"/>
    <property name="pigunit.jarfile" value="pigunit.jar" />
    <property name="piggybank.jarfile" value="${basedir}/contrib/piggybank/java/piggybank.jar" />
    <property name="smoke.tests.jarfile" value="${build.dir}/${final.name}-smoketests.jar" />
    <property name="test.pigunit.src.dir" value="${test.src.dir}/org/apache/pig/test/pigunit" />
    <property name="test.pigunit.file" value="${test.src.dir}/pigunit-tests"/>


    <!-- test configuration, use ${user.home}/build.properties to configure values  -->
    <property name="ssh.gateway" value="" />
    <property name="hod.server" value="" />
    <property name="test.log.dir" value="${basedir}/test/logs"/>
    <property name="test.output" value="no"/>

    <!-- e2e test properties -->
    <property name="test.e2e.dir" value="${basedir}/test/e2e/pig"/>

    <!-- pigmix properties -->
    <property name="pigmix.dir" value="${basedir}/test/perf/pigmix"/>

    <!-- parser properties -->
    <property name="src.gen.query.parser.dir" value="${src.gen.dir}/org/apache/pig/impl/logicalLayer/parser" />
    <property name="src.gen.script.parser.dir" value="${src.gen.dir}/org/apache/pig/tools/pigscript/parser" />
    <property name="src.gen.param.parser.dir" value="${src.gen.dir}/org/apache/pig/tools/parameters" />
    <property name="src.gen.dot.parser.dir" value="${test.src.dir}/org/apache/pig/test/utils/dotGraph/parser" />
    <property name="src.gen.textdata.parser.dir" value="${src.gen.dir}/org/apache/pig/data/parser" />

    <!-- Antlr properties -->
    <property name="grammar.name" value="Query"/>
    <property name="grammar.name.lower" value="query"/>
    <property name="grammar.package" value="org.apache.pig.parser"/>
    <property name="grammar.package.dir" value="org/apache/pig/parser"/>
    <property name="grammar.src.dir" value="${src.dir}/${grammar.package.dir}"/>

    <!-- rats properties -->
    <property name="rat.reporting.classname" value="rat.Report"/>

    <!-- javadoc properties  -->
    <property name="javadoc.link.java" value="http://download.oracle.com/javase/1.5.0/docs/api/" />

    <!-- 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="${test.src.dir}/bin/test-patch.sh"/>

    <property name="clover.db.dir" location="${build.dir}/test/clover/db"/>
    <property name="clover.report.dir" location="${build.dir}/test/clover/reports"/>
    <property name="clover.pdf.report.dir" location="${build.dir}/test/clover/pdf/reports"/>
    <property name="clover.jar" location="${clover.home}/lib/clover.jar"/>
    <available property="clover.present" file="${clover.jar}" />

    <!-- check if clover reports should be generated -->
    <condition property="clover.enabled">
        <and>
            <isset property="run.clover"/>
            <isset property="clover.present"/>
        </and>
    </condition>
    <condition property="staging">
        <equals arg1="${repo}" arg2="staging"/>
    </condition>
    <!-- IVY properteis set here -->
    <property name="ivy.repo.dir" value="${user.home}/ivyrepo" />
    <property name="ivy.dir" location="ivy" />
    <loadproperties srcfile="${ivy.dir}/libraries.properties"/>

    <!--propertyregex property="hadoopversion"
           input="${hadoop-core.version}"
           regexp="\d+\.(\d+)\.\d+"
           select="\1" /-->
    <property name="hadoopversion" value="20" />

    <condition property="isHadoop23">
        <equals arg1="${hadoopversion}" arg2="23"/>
    </condition>

    <!--
      HBase master version
      Denotes how the HBase dependencies are layout. Value "94" denotes older
      format where all HBase code is present in one single jar, which is the
      way HBase is available up to version 0.94. Value "95" denotes new format
      where HBase is cut into multiple dependencies per each major subsystem,
      e.g. "client", "server", ... . Only values "94" and "95" are supported
      at the moment.
    -->
    <property name="hbaseversion" value="94" />

    <property name="src.shims.dir" value="${basedir}/shims/src/hadoop${hadoopversion}" />
    <property name="src.shims.test.dir" value="${basedir}/shims/test/hadoop${hadoopversion}" />

    <property name="hadoop.jar" value="hadoop-core-${hadoop-core.version}.jar" />
    <property name="asfrepo" value="https://repository.apache.org"/>
    <property name="asfsnapshotrepo" value="${asfrepo}/content/repositories/snapshots"/>
    <property name="mvnrepo" value="http://repo2.maven.org/maven2"/>
    <property name="asfstagingrepo" value="${asfrepo}/service/local/staging/deploy/maven2"/>
    <property name="staging_repo_id" value="apache.staging.https"/>
    <property name="snapshots_repo_id" value="apache.snapshots.https"/>
    <property name="ivy.jar" location="${ivy.dir}/ivy-${ivy.version}.jar"/>
    <property name="ant_task.jar" location="${ivy.dir}/maven-ant-tasks-${ant-task.version}.jar"/>
    <property name="ant_task_repo_url"   value="${mvnrepo}/org/apache/maven/maven-ant-tasks/${ant-task.version}/maven-ant-tasks-${ant-task.version}.jar"/>
    <property name="ivy_repo_url" value="${mvnrepo}/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/>
    <property name="ivysettings.xml" location="${ivy.dir}/ivysettings.xml" />
    <property name="ivy.org" value="org.apache.pig"/>
    <property name="build.dir" location="build" />
    <property name="build.ivy.dir" location="${build.dir}/ivy" />
    <property name="build.ivy.lib.dir" location="${build.ivy.dir}/lib" />
    <property name="ivy.lib.dir" location="${build.ivy.lib.dir}/${ant.project.name}"/>
    <property name="build.ivy.report.dir" location="${build.ivy.dir}/report" />
    <property name="build.ivy.maven.dir" location="${build.ivy.dir}/maven" />
    <property name="pom.xml" location="${build.ivy.maven.dir}/pom.xml"/>
    <property name="build.ivy.maven.pom" location="${build.ivy.maven.dir}/pig-${version}.pom" />
    <property name="build.ivy.maven.jar" location="${build.ivy.maven.dir}/pig-${version}-core.jar" />
    <property name="javacc.home" location="${ivy.lib.dir}" />
    <property name="jackson_core.jar" location="${test.src.dir}/resources/jackson-core-asl-${jackson-pig-3039-test.version}.jar"/>
    <property name="jackson_mapper.jar" location="${test.src.dir}/resources/jackson-mapper-asl-${jackson-pig-3039-test.version}.jar"/>
    <property name="jackson_core_repo_url"
              value="${mvnrepo}/org/codehaus/jackson/jackson-core-asl/${jackson-pig-3039-test.version}/jackson-core-asl-${jackson-pig-3039-test.version}.jar"/>
    <property name="jackson_mapper_repo_url"
              value="${mvnrepo}/org/codehaus/jackson/jackson-mapper-asl/${jackson-pig-3039-test.version}/jackson-mapper-asl-${jackson-pig-3039-test.version}.jar"/>

    <!--this is the naming policy for artifacts we want pulled down-->
    <property name="ivy.artifact.retrieve.pattern" value="${ant.project.name}/[artifact]-[revision](-[classifier]).[ext]"/>

    <!--this is how artifacts that get built are named-->
    <property name="ivy.publish.pattern" value="[artifact]-[revision].[ext]"/>

    <!-- jdiff properties -->
    <property name="jdiff.jar" value="${ivy.lib.dir}/jdiff-${jdiff.version}.jar"/>
    <property name="xerces.jar" value="${ivy.lib.dir}/xercesImpl-${xerces.version}.jar"/>
    <property name="jdiff.build.dir" value="${build.docs}/jdiff"/>
    <property name="jdiff.xml.dir" value="${lib.dir}/jdiff"/>
    <property name="jdiff.stable" value="0.11.1"/>
    <property name="jdiff.stable.javadoc" value="http://hadoop.apache.org/${name}/docs/r${jdiff.stable}/api/"/>

    <!-- Packaging properties -->
    <property name="package.release" value="1"/>
    <property name="package.prefix" value="/usr"/>
    <property name="package.conf.dir" value="/etc/pig"/>
    <property name="package.log.dir" value="/var/log/pig"/>
    <property name="package.buildroot" value="/tmp/pig_package_build_${user.name}"/>
    <property name="package.build.dir" value="/tmp/pig_package_build_${user.name}/BUILD"/>

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

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

    <target name="ant-eclipse-download" unless="ant-eclipse.jar.exists"
            description="Downloads the ant-eclipse binary.">
        <get src="http://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"
             dest="${build.dir}/ant-eclipse-1.0.bin.tar.bz2" usetimestamp="false" />
        <untar src="${build.dir}/ant-eclipse-1.0.bin.tar.bz2"
               dest="${build.dir}" compression="bzip2">
            <patternset>
                <include name="lib/ant-eclipse-1.0-jvm1.2.jar"/>
            </patternset>
        </untar>
        <delete file="${build.dir}/ant-eclipse-1.0.bin.tar.bz2" />
    </target>

    <target name="eclipse-files"
            depends="init,ant-eclipse-download,ivy-compile,ivy-test"
            description="Create eclipse project files">
        <pathconvert property="eclipse.project">
            <path path="${basedir}"/>
            <regexpmapper from="^.*/([^/]+)$$" to="\1" handledirsep="yes"/>
        </pathconvert>
        <path id="eclipse.classpath">
            <fileset dir="${ivy.lib.dir}">
                <include name="**.*jar"/>
            </fileset>
            <fileset dir="${lib.dir}">
                <include name="**.*jar"/>
            </fileset>
        </path>
        <taskdef name="eclipse"
                 classname="prantl.ant.eclipse.EclipseTask"
                 classpath="${build.dir}/lib/ant-eclipse-1.0-jvm1.2.jar" />
        <eclipse updatealways="true" mode="java">
            <project name="${eclipse.project}" />
            <classpath>
                <source path="${src.dir}"/>
                <source path="${src.gen.dir}"/>
                <source path="${src.lib.dir}/bzip2"/>
                <source path="${src.lib.dir}/shock"/>
                <source path="${test.e2e.dir}/udfs/java"/>
                <source path="${src.shims.dir}"/>
                <source path="${src.shims.test.dir}"/>
                <source path="tutorial/src"/>
                <source path="${test.src.dir}" excluding="e2e/pig/udfs/java/|resources/"/>
                <output path="${build.dir.eclipse-main-classes}" />
                <library pathref="eclipse.classpath" exported="true" />
                <!--library pathref="classpath" exported="false"/-->
            </classpath>
        </eclipse>
    </target>


    <!-- ====================================================== -->
    <!-- Stuff needed by all targets                            -->
    <!-- ====================================================== -->
    <!-- setup the classpath -->
    <path id="classpath">
        <path refid="compile.classpath"/>
        <fileset dir="${lib.dir}" includes="*.jar"/>
        <fileset file="${ivy.lib.dir}/${zookeeper.jarfile}"/>
        <fileset dir="${ivy.lib.dir}" includes="*.jar"/>
    </path>

    <!-- javadoc-classpath -->
    <path id="javadoc-classpath">
        <path refid="javadoc.classpath"/>
    </path>

    <path id="test.classpath">
        <!-- need to put this first, otherwise junit-3 testcases can break -->
        <pathelement location="${ivy.lib.dir}/junit-3.8.1.jar"/>
        <pathelement location="${build.classes}"/>
        <pathelement location="${test.src.dir}"/>
        <pathelement location="${piggybank.jarfile}"/>
        <path refid="classpath"/>
    </path>

    <fileset dir="${ivy.lib.dir}" id="runtime.dependencies-withouthadoop.jar">
        <patternset id="pattern.runtime.dependencies-withouthadoop.jar">
            <include name="antlr-runtime-${antlr.version}.jar"/>
            <include name="ST4-${stringtemplate.version}.jar"/>
            <include name="jline-${jline.version}.jar"/>
            <include name="jackson-mapper-asl-${jackson.version}.jar"/>
            <include name="jackson-core-asl-${jackson.version}.jar"/>
            <include name="joda-time-${joda-time.version}.jar"/>
            <include name="guava-${guava.version}.jar"/>
            <include name="automaton-${automaton.version}.jar"/>
            <include name="jansi-${jansi.version}.jar"/>
            <include name="avro-${avro.version}.jar"/>     
            <include name="avro-mapred-${avro.version}.jar"/>     
            <include name="trevni-core-${avro.version}.jar"/>     
            <include name="trevni-avro-${avro.version}.jar"/>
            <include name="snappy-java-${snappy.version}.jar"/>
            <include name="asm*.jar"/>
        </patternset>
    </fileset>

    <fileset dir="${ivy.lib.dir}" id="runtime.dependencies.jar">
        <patternset id="pattern.runtime.dependencies.jar">
            <patternset refid="pattern.runtime.dependencies-withouthadoop.jar"/>
            <include name="hadoop-core-${hadoop-core.version}.jar" unless="isHadoop23"/>
            <include name="hadoop-*-${hadoop-common.version}.jar" if="isHadoop23"/>
            <exclude name="hadoop-hdfs-${hadoop-hdfs.version}.jar"/>
            <include name="junit-${junit.version}.jar"/>
            <include name="jsch-${jsch.version}.jar"/>
            <include name="protobuf-java-${protobuf-java.version}.jar"/>
            <include name="commons*.jar"/>
            <include name="log4j*.jar"/>
            <include name="slf4j*.jar"/>
            <include name="jsp-api*.jar"/>
            <include name="avro-${avro.version}.jar"/>
            <include name="avro-mapred-${avro.version}.jar"/>    
            <include name="trevni-core-${avro.version}.jar"/>    
            <include name="trevni-avro-${avro.version}.jar"/>
            <include name="snappy-java-${snappy.version}.jar"/>
            <include name="asm*.jar"/>
        </patternset>
    </fileset>

    <fileset dir="${ivy.lib.dir}" id="core.dependencies.jar">
        <exclude name="**.*jar"/>
    </fileset>

    <target name="init" depends="ivy-compile" >
        <mkdir dir="${src.gen.query.parser.dir}" />
        <mkdir dir="${src.gen.script.parser.dir}" />
        <mkdir dir="${src.gen.param.parser.dir}" />
        <mkdir dir="${build.classes}" />
        <mkdir dir="${test.build.classes}" />
        <mkdir dir="${src.gen.dot.parser.dir}" />
        <mkdir dir="${src.gen.textdata.parser.dir}" />
        <move file="${ivy.lib.dir}/javacc-${javacc.version}.jar" tofile="${javacc.home}/javacc.jar"/>
        <tstamp>
            <format property="timestamp" pattern="MMM dd yyyy, HH:mm:ss" />
        </tstamp>
        <svnversion outputproperty="svn.revision"/>
        <!-- properties are immutable in Ant, so this gets set only if we get nothing out of svnversion -->
        <property name="svn.revision" value=": unknown"/>
    </target>

    <macrodef name="svnversion">
        <!-- the path needs to be small content otherwise it will take AGES ! -->
        <attribute name="wcpath" default="${basedir}" />
        <attribute name="outputproperty" />
        <sequential>
            <exec executable="svnversion" outputproperty="@{outputproperty}" failonerror="false" failifexecutionfails="false" >
                <arg value="@{wcpath}" />
                <redirector>
                    <outputfilterchain>
                        <tokenfilter>
                            <!-- version can be xxxx, xxxx:yyyy, xxxxM, xxxxS or xxxx:yyyyMS , ... just get the working copy one -->
                            <replaceregex pattern="((\d+).*)" replace="\2" />
                        </tokenfilter>
                    </outputfilterchain>
                </redirector>
            </exec>
        </sequential>
    </macrodef>


    <!-- ================================================================== -->
    <!-- Clean.  Delete the build files, and their directories              -->
    <!-- ================================================================== -->
    <target name="clean" description="Cleanup build artifacts">
        <delete dir="${src.gen.dir}" />
        <delete dir="${docs.dir}/build" />
        <delete file="${jdiff.xml.dir}\${name}_${version}.xml" />
        <delete dir="${build.dir}" />
        <delete dir="${src.gen.dot.parser.dir}" />
        <delete file="${output.jarfile.backcompat}" />
        <delete file="${output.jarfile.backcompat.withouthadoop}" />
        <ant dir="${test.e2e.dir}" target="clean"/>
    </target>

    <target name="very-clean" unless="offline" depends="ivy-clean-cache,jackson-pig-3039-test-clean,clean"
            description="Clean build artifacts and flush Ivy cache" />

    <target name="clean-piggybank" description="Cleanup piggybank">
        <ant target="clean" dir="contrib/piggybank/java" inheritAll="false"/>
    </target>

    <target name="clean-zebra" description="Cleanup Zebra">
        <ant target="clean" dir="contrib/zebra" inheritAll="false"/>
    </target>

    <target name="clean-tutorial" description="Cleanup Tutorial">
        <ant target="clean" dir="tutorial" inheritAll="false"/>
    </target>

    <target name="clean-test-e2e" description="Cleanup e2e tests">
        <ant target="clean" dir="test/e2e/harness" inheritAll="false"/>
        <ant target="clean" dir="test/e2e/pig" inheritAll="false"/>
        <ant target="clean" dir="test/e2e/pig/udfs/java" inheritAll="false"/>
    </target>

    <!--target name="eclipse-files" depends="compile, ivy-buildJar"
         description="Generate files for Eclipse">
        <pathconvert property="eclipse.project">
            <path path="${basedir}"/>
            <regexpmapper from="^.*/([^/]+)$$" to="\1" handledirsep="yes"/>
        </pathconvert>
        <copy todir="." overwrite="true">
            <fileset dir=".eclipse.templates">
                <exclude name="**/README.txt"/>
            </fileset>
            <filterset>
                <filter token="PROJECT" value="${eclipse.project}"/>
            </filterset>
        </copy>
    </target-->

    <!-- ================================================================== -->
    <!-- Java Compiler Compiler, generate Parsers                           -->
    <!-- ================================================================== -->
    <target name="cc-compile" depends="init, ivy-compile" description="Create and Compile Parser">
        <javacc target="${src.dir}/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj" outputdirectory="${src.gen.script.parser.dir}" javacchome="${javacc.home}" />
        <javacc target="${src.dir}/org/apache/pig/tools/parameters/PigFileParser.jj" outputdirectory="${src.gen.param.parser.dir}" javacchome="${javacc.home}" />
        <javacc target="${src.dir}/org/apache/pig/tools/parameters/ParamLoader.jj" outputdirectory="${src.gen.param.parser.dir}" javacchome="${javacc.home}" />
        <jjtree target="${test.src.dir}/org/apache/pig/test/utils/dotGraph/DOTParser.jjt" outputdirectory="${src.gen.dot.parser.dir}" javacchome="${javacc.home}" />
        <javacc target="${src.gen.dot.parser.dir}/DOTParser.jj" outputdirectory="${src.gen.dot.parser.dir}" javacchome="${javacc.home}" />
    </target>

    <target name="gen" depends="genTreeParser"
       description="generates lexer and parser code from an ANTLR grammar">
       <!-- Move generated Java code to the correct package directory. -->
       <move todir="${src.gen.dir}${grammar.package.dir}">
         <fileset dir="${src.gen.dir}" includes="*.java"/>
       </move>
       <!-- Copy generated .token files to current directory. -->
       <copy todir=".">
         <fileset dir="${src.gen.dir}" includes="*.tokens"/>
       </copy>
    </target>

    <target name="genLexer" depends="prepare, init, ivy-compile"
       unless="lexerGrammarProcessed"
       description="generates lexer class from an ANTLR grammar">
       <java classname="org.antlr.Tool"
         classpathref="classpath" fork="true" failonerror="true">
         <arg line="-o ${src.gen.dir}/${grammar.package.dir} ${src.dir}/${grammar.package.dir}/${grammar.name}Lexer.g"/>
       </java>
    </target>

    <target name="genParser" depends="genLexer"
       unless="parserGrammarProcessed"
       description="generates token parser class from an ANTLR grammar">
       <java classname="org.antlr.Tool"
         classpathref="classpath" fork="true" failonerror="true">
         <arg line="-o ${src.gen.dir}/${grammar.package.dir} ${src.dir}/${grammar.package.dir}/${grammar.name}Parser.g"/>
       </java>
    </target>

    <target name="genTreeParser" depends="genParser"
       unless="treeGrammarProcessed"
       description="generates tree parser class from an ANTLR grammar">
       <java classname="org.antlr.Tool"
         classpathref="classpath" fork="true" failonerror="true">
         <arg line="-o ${src.gen.dir}/${grammar.package.dir} ${src.dir}/${grammar.package.dir}/AstPrinter.g ${src.dir}/${grammar.package.dir}/AliasMasker.g ${src.dir}/${grammar.package.dir}/AstValidator.g ${src.dir}/${grammar.package.dir}/LogicalPlanGenerator.g"/>
       </java>
    </target>

    <target name="prepare">
       <uptodate property="lexerGrammarProcessed" srcfile="${grammar.src.dir}/${grammar.name}Lexer.g">
         <mapper type="merge" to="${src.gen.dir}/${grammar.package.dir}/${grammar.name}Lexer.java"/>
       </uptodate><!--
       <uptodate property="parserGrammarProcessed" srcfile="${grammar.src.dir}/${grammar.name}Parser.g">
         <mapper type="merge" to="${src.gen.dir}/${grammar.package.dir}/${grammar.name}Parser.java"/>
       </uptodate>
       <uptodate property="treeGrammarProcessed" srcfile="${grammar.src.dir}/${grammar.name}Tree.g">
         <mapper type="merge" to="${src.gen.dir}/${gramar.package.dir}/${grammar.name}Tree.java"/>
       </uptodate>-->
       <!--mkdir dir="build/classes"/-->
       <mkdir dir="${src.gen.dir}/${grammar.package.dir}"/>
    </target>

    <!-- ================================================================== -->
    <!-- Build sources                                                      -->
    <!-- ================================================================== -->
    <target name="compile" depends="cc-compile, gen" description="Compile all artifacts">
        <echo>*** Building Main Sources ***</echo>
        <echo>*** To compile with all warnings enabled, supply -Dall.warnings=1 on command line ***</echo>
        <echo>*** Else, you will only be warned about deprecations ***</echo>
        <compileSources sources="${src.dir};${src.gen.dir};${src.lib.dir}/shock;${src.lib.dir}/bzip2;${src.shims.dir}"
            excludes="" dist="${build.classes}" cp="classpath" warnings="${javac.args.warnings}" />
    </target>

    <target name="compile-test" depends="compile, ivy-test">
        <echo>*** Building Test Sources ***</echo>
        <echo>*** To compile with all warnings enabled, supply -Dall.warnings=1 on command line ***</echo>
        <echo>*** Else, you will only be warned about deprecations ***</echo>
        <compileSources sources="${test.src.dir};${src.shims.test.dir}"
            excludes="**/PigTestLoader.java **/resources/** perf/**" dist="${test.build.classes}" cp="test.classpath" warnings="${javac.args.warnings}" />
        <copy file="${basedir}/test/hbase-site.xml" tofile="${test.build.classes}/hbase-site.xml"/>

        <ivy:cachepath pathid="mr-apps-test-ivy.classpath" conf="test" />
        <path id="mr-apps-test.classpath">
            <fileset dir="${clover.home}" erroronmissingdir="false">
                <include name="lib/clover.jar"/>
            </fileset>
            <path refid="mr-apps-test-ivy.classpath"/>
        </path>
        <property name="mr-apps-classpath" refid="mr-apps-test.classpath" />
        <!-- Remove jython jar from mrapp-generated-classpath -->
        <script language="javascript">
          project.setProperty('mr-apps-classpath', project.getProperty('mr-apps-classpath').
           replace(":" + project.getProperty('ivy.default.ivy.user.dir') + "/cache/org.python/jython-standalone/jars/jython-standalone-" + project.getProperty('jython.version') + ".jar", ""));
        </script>
        <echo file="${test.build.classes}/mrapp-generated-classpath" message="${mr-apps-classpath}" />
    </target>

    <macrodef name="compileSources">
        <attribute name="sources"/>
        <attribute name="excludes"/>
        <attribute name="dist"/>
        <attribute name="cp"/>
        <attribute name="warnings"/>
        <sequential>
            <javac encoding="${build.encoding}" srcdir="@{sources}" excludes="@{excludes}"
                    includes="**/*.java" destdir="@{dist}" debug="${javac.debug}"
                    optimize="${javac.optimize}" target="${javac.version}"
                    source="${javac.version}" deprecation="${javac.deprecation}"
                    includeantruntime="false">
                <compilerarg line="${javac.args} @{warnings}"/>
                <classpath refid="@{cp}" />
            </javac>
            <copy file="${src.dir}/org/apache/pig/tools/grunt/autocomplete" todir="${build.classes}/org/apache/pig/tools/grunt"/>
            <copy file="${src.dir}/org/apache/pig/tools/grunt/autocomplete_aliases" todir="${build.classes}/org/apache/pig/tools/grunt"/>
            <copy todir="${build.classes}/python">
                <fileset dir="${python.src.dir}"/>
            </copy>
        </sequential>
    </macrodef>

    <!-- ================================================================== -->
    <!-- Documentation                                                      -->
    <!-- ================================================================== -->
    <target name="javadoc" depends="jar-withouthadoop, ivy-javadoc" description="Create documentation">
        <mkdir dir="${build.javadoc}" />
        <javadoc overview="${src.dir}/overview.html" packagenames="org.apache.pig.*" destdir="${build.javadoc}" 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="${src.dir}" />
            <link href="${javadoc.link.java}" />
            <classpath>
                <path refid="javadoc-classpath" />
                <pathelement path="${output.jarfile.core}" />
            </classpath>
            <group title="pig" packages="org.apache.*" />
        </javadoc>
    </target>

    <target name="javadoc-all" depends="jar-withouthadoop, piggybank, zebra, ivy-javadoc" description="Create documentation including all contrib projects">
        <mkdir dir="${build.javadoc}" />
        <javadoc overview="${src.dir}/overview.html" packagenames="org.apache.pig*,org.apache.hadoop.zebra*" destdir="${build.javadoc}" 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="${src.dir}" />
            <packageset dir="contrib/piggybank/java/src/main/java"/>
            <packageset dir="contrib/zebra/src/java"/>
            <link href="${javadoc.link.java}" />
            <classpath>
                <path refid="javadoc-classpath" />
                <pathelement path="${output.jarfile.withdependencies}" />
                <pathelement path="${piggybank.jarfile}"/>
                <fileset dir="build">
                    <include name="**/zebra-*-dev.jar"/>
                </fileset>
            </classpath>
            <group title="pig" packages="org.apache.pig*" />
            <group title="contrib: Piggybank" packages="org.apache.pig.piggybank*" />
            <group title="contrib: Zebra" packages="org.apache.hadoop.zebra*"/>
        </javadoc>
    </target>

    <!-- ================================================================== -->
    <!-- @deprecated, Documentation                                         -->
    <!-- ================================================================== -->
    <target name="docs" depends="forrest.check, javadoc-all" description="Generate forrest-based documentation.
      To use, specify -Dforrest.home=&lt;base of Apache Forrest installation&gt; on the command line." if="forrest.home">
       <exec dir="${docs.dir}" executable="${forrest.home}/bin/forrest" failonerror="true">
       </exec>
       <copy todir="${build.docs}">
            <fileset dir="${docs.dir}/build/site/" />
       </copy>
    </target>

    <target name="forrest.check" unless="forrest.home">
       <fail message="'forrest.home' is not defined.
      Please pass -Dforrest.home=&lt;base of Apache Forrest installation&gt; to Ant on the command-line." />
    </target>

    <target name="source-jar" depends="cc-compile">
       <jar duplicate="preserve" jarfile="${output.jarfile.sources}" basedir="${src.dir}/" excludes="docs/**, overview.html">
            <manifest>
                <section name="org/apache/pig">
                    <attribute name="Implementation-Vendor" value="Apache" />
                    <attribute name="Implementation-Title" value="Pig" />
                    <attribute name="Implementation-Version" value="${version}" />
                </section>
            </manifest>
            <fileset dir="${src.lib.dir}/shock"/>
            <fileset dir="${src.lib.dir}/bzip2"/>
            <fileset dir="${python.src.dir}"/>
        </jar>
    </target>
    <target name="javadoc-jar" depends="cc-compile, javadoc">
        <jar duplicate="preserve" jarfile="${output.jarfile.javadoc}" basedir="${build.javadoc}/">
            <manifest>
                <section name="org/apache/pig">
                    <attribute name="Implementation-Vendor" value="Apache" />
                    <attribute name="Implementation-Title" value="Pig" />
                    <attribute name="Implementation-Version" value="${version}" />
                </section>
            </manifest>
        </jar>
    </target>

    <!-- ================================================================== -->
    <!-- Facede to build pig.jar and pig-withouthadoop.jar                  -->
    <!-- ================================================================== -->
    <target name="jar-all" depends="jar,jar-withouthadoop" description="Create pig, pig withdependencies and pig withouthadoop jar" />

    <!-- ================================================================== -->
    <!-- Make pig.jar                                                       -->
    <!-- ================================================================== -->
    <!-- TODO we should also exclude test here...                           -->
    <!-- ================================================================== -->
    <target name="jar" depends="compile,ivy-buildJar" description="Create pig withdependecies jar">
        <buildJar svnString="${svn.revision}" outputFile="${output.jarfile.core}" includedJars="core.dependencies.jar"/>
        <buildJar svnString="${svn.revision}" outputFile="${output.jarfile.withdependencies}" includedJars="runtime.dependencies.jar"/>
        <copy file="${output.jarfile.withdependencies}" tofile="${output.jarfile.backcompat}"/>
        <antcall target="include-meta" inheritRefs="true" inheritall="true"/>
    </target>

    <target name="include-meta" if="isHadoop23">
        <copy todir="${build.classes}/META-INF">
            <fileset dir="${src.dir}/META-INF" includes="**"/>
        </copy>
        <move file="${output.jarfile.withdependencies}" tofile="${output.stage.jarfile.withdependencies}"/>
        <sleep seconds="1"/>
        <jar jarfile="${output.jarfile.withdependencies}">
            <manifest>
                <attribute name="Main-Class" value="org.apache.pig.Main" />
                <section name="org/apache/pig">
                    <attribute name="Implementation-Vendor" value="Apache" />
                    <attribute name="Implementation-Title" value="Pig" />
                    <attribute name="Implementation-Version" value="${version}" />
                    <attribute name="Build-TimeStamp" value="${timestamp}" />
                    <attribute name="Svn-Revision" value="${svnString}" />
                </section>
            </manifest>
            <zipfileset src="${output.stage.jarfile.withdependencies}"/>
            <fileset dir="${build.classes}" includes="META-INF/**" />
        </jar>
    </target>

    <!-- ================================================================== -->
    <!-- Make pig-withouthadoop.jar                                         -->
    <!-- ================================================================== -->
    <target name="jar-withouthadoop" depends="compile,ivy-buildJar" description="Create pig withouthadoop jar">
        <buildJar svnString="${svn.revision}" outputFile="${output.jarfile.core}" includedJars="core.dependencies.jar"/>
        <buildJar svnString="${svn.revision}" outputFile="${output.jarfile.withouthadoop}" includedJars="runtime.dependencies-withouthadoop.jar"/>
        <copy file="${output.jarfile.withouthadoop}" tofile="${output.jarfile.backcompat.withouthadoop}"/>
    </target>

    <scriptdef name="propertyreset" language="javascript"
        description="Allows to assign @{property} new value">
        <attribute name="name"/>
        <attribute name="value"/>
           project.setProperty(attributes.get("name"), attributes.get("value"));
    </scriptdef>

    <target name="mvn-jar" description="Create pig.jar for maven deploy for Hadoop2/23 and Hadoop1/20">
        <propertyreset name="hadoopversion" value="23" />
        <propertyreset name="isHadoop" value="true" />
        <propertyreset name="src.shims.dir" value="${basedir}/shims/src/hadoop${hadoopversion}" />
        <antcall target="clean" inheritRefs="true" inheritall="true"/>
        <antcall target="jar" inheritRefs="true" inheritall="true"/>
        <antcall target="jar-withouthadoop" inheritRefs="true" inheritall="true"/>
        <!-- Move and rename pig jar for Hadoop2/23 to a different location before compiling for Hadoop1/20 -->
        <move file="${output.jarfile.core}" tofile="${basedir}/${artifact.pig-h2.jar}"/>
        <move file="${output.jarfile.withouthadoop}" tofile="${basedir}/${artifact.pig-withouthadoop-h2.jar}"/>
        <antcall target="clean" inheritRefs="true" inheritall="true"/>
        <propertyreset name="hadoopversion" value="20" />
        <propertyreset name="isHadoop" value="" />
        <propertyreset name="src.shims.dir" value="${basedir}/shims/src/hadoop${hadoopversion}" />
        <antcall target="jar" inheritRefs="true" inheritall="true"/>
        <antcall target="jar-withouthadoop" inheritRefs="true" inheritall="true"/>
        <move file="${basedir}/${artifact.pig-h2.jar}" tofile="${output.jarfile.core-h2}"/>
        <move file="${basedir}/${artifact.pig-withouthadoop-h2.jar}" tofile="${output.jarfile.withouthadoop-h2}"/>
    </target>

    <!-- ================================================================== -->
    <!-- macrodef: buildJar                                                 -->
    <!-- ================================================================== -->
    <macrodef name="buildJar">
        <attribute name="svnString"/>
        <attribute name="outputFile"/>
        <attribute name="includedJars"/>
        <sequential>
            <echo>svnString @{svnString}</echo>
            <jar jarfile="@{outputFile}" basedir="${build.classes}">
                <manifest>
                    <attribute name="Main-Class" value="org.apache.pig.Main" />
                    <section name="org/apache/pig">
                        <attribute name="Implementation-Vendor" value="Apache" />
                        <attribute name="Implementation-Title" value="Pig" />
                        <attribute name="Implementation-Version" value="${version}" />
                        <attribute name="Build-TimeStamp" value="${timestamp}" />
                        <attribute name="Svn-Revision" value="@{svnString}" />
                    </section>
                </manifest>
                <zipgroupfileset refid="@{includedJars}" />
                <fileset file="${basedir}/src/pig-default.properties" />
                <fileset file="${basedir}/src/main/jruby/pigudf.rb" />
                <exclude name="hadoop-site.xml" />
            </jar>
        </sequential>
    </macrodef>

    <!-- ================================================================== -->
    <!-- Smoke tests                                                        -->
    <!-- ================================================================== -->
    <target name="smoketests-jar" depends="pigunit-jar"
        description="Creating jar file for smoke tests">
        <echo> *** Creating smoke tests jar for pigunit ***</echo>
        <jar jarfile="${smoke.tests.jarfile}" basedir="${test.build.classes}"
             includes="org/apache/pig/test/pigunit/**/*">
            <fileset dir="${basedir}" includes="test/data/pigunit/**/*"/>
            <manifest>
                <section name="org/apache/pig/test/pigunit">
                     <attribute name="Implementation-Vendor" value="Apache" />
                     <attribute name="Implementation-Title" value="Pig" />
                     <attribute name="Implementation-Version" value="${version}" />
                     <attribute name="Build-TimeStamp" value="${timestamp}" />
                     <attribute name="Svn-Revision" value="${svnString}" />
                </section>
            </manifest>
        </jar>
    </target>

    <!-- ================================================================== -->
    <!-- Make pigperf.jar                                                   -->
    <!-- ================================================================== -->
    <target name="pigperf" depends="compile-test" description="Create pigperf.jar">
        <jar jarfile="pigperf.jar">
            <fileset dir="${test.build.dir}/classes">
                <include name="org/apache/pig/test/pigmix/**"/>
                <include name="org/apache/pig/test/utils/datagen/*"/>
                <include name="org/apache/pig/test/udf/storefunc/*"/>
            </fileset>
            <zipfileset src="${lib.dir}/sdsuLibJKD12.jar" />
        </jar>
    </target>

    <!-- ================================================================== -->
    <!-- Run unit tests                                                     -->
    <!-- ================================================================== -->
    <target name="test-core" depends="compile-test,jar-withouthadoop,debugger.check,jackson-pig-3039-test-download" description="Run full set of unit tests">
        <macro-test-runner test.file="${test.all.file}" />
    </target>

    <target name="test-commit" depends="compile-test,jar-withouthadoop,debugger.check" description="Run approximate 10-minute set of unit tests prior to commiting">
        <macro-test-runner test.file="${test.commit.file}" />
    </target>

    <target name="test-unit" depends="compile-test,jar-withouthadoop,debugger.check" description="Run all true unit tests">
        <macro-test-runner test.file="${test.unit.file}" />
    </target>

    <target name="test-smoke" depends="compile-test,jar-withouthadoop,debugger.check" description="Run 30 min smoke tests">
        <macro-test-runner test.file="${test.smoke.file}" />
    </target>

    <target name="debugger.check" depends="debugger.set,debugger.unset"/>
    <target name="debugger.set" if="debugPort">
        <property name="debugArgs" value="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${debugPort}"/>
        <echo>debugArgs: ${debugArgs}</echo>
    </target>
    <target name="debugger.unset" unless="debugPort">
        <property name="debugArgs" value=""/>
    </target>

    <macrodef name="macro-test-runner">
      <attribute name="test.file" />
      <sequential>
        <delete dir="${test.log.dir}"/>
        <mkdir dir="${test.log.dir}"/>
        <tempfile property="junit.tmp.dir" prefix="pig_junit_tmp" destDir="${java.io.tmpdir}" />
        <mkdir dir="${junit.tmp.dir}/"/>
        <junit showoutput="${test.output}" printsummary="yes" haltonfailure="no" fork="yes" maxmemory="1024m" dir="${basedir}" timeout="${test.timeout}" errorProperty="tests.failed" failureProperty="tests.failed">
            <sysproperty key="ssh.gateway" value="${ssh.gateway}" />
            <sysproperty key="hod.server" value="${hod.server}" />
            <sysproperty key="java.io.tmpdir" value="${junit.tmp.dir}" />
            <sysproperty key="hadoop.log.dir" value="${test.log.dir}"/>
            <jvmarg line="${debugArgs}"/>
            <sysproperty key="java.security.krb5.realm" value="" />
            <sysproperty key="java.security.krb5.kdc" value="" />
            <sysproperty key="log4j.configuration" value="file:${basedir}/conf/test-log4j.properties"/>
            <env key="MALLOC_ARENA_MAX" value="4"/>
            <classpath>
                <pathelement location="${output.jarfile.withouthadoop}" />
                <pathelement location="${test.build.classes}" />
                <pathelement location="." />
                <pathelement path="${clover.jar}"/>
                <path refid="test.classpath"/>
            </classpath>
            <formatter type="${test.junit.output.format}" />

            <batchtest fork="yes" todir="${test.log.dir}" unless="testcase">
                <fileset dir="test">
                    <patternset>
                       <includesfile name="@{test.file}"/>
                       <excludesfile name="${test.exclude.file}" if="test.exclude.file"/>
                       <excludesfile name="${test.exclude.file.23}" if="isHadoop23" />
                    </patternset>
                    <exclude name="**/${exclude.testcase}.java" if="exclude.testcase" />
                    <exclude name="**/TestRegisteredJarVisibility.java" if="offline"/>
                    <exclude name="**/TestInvokerSpeed.java" if="clover.enabled"/>
                </fileset>
            </batchtest>
            <batchtest fork="yes" todir="${test.log.dir}" if="testcase">
                <fileset dir="test" includes="**/${testcase}.java"/>
            </batchtest>

            <assertions>
                <enable />
            </assertions>

        </junit>
        <delete dir="${junit.tmp.dir}/"/>
        <fail if="tests.failed">Tests failed!</fail>
      </sequential>
    </macrodef>

    <target name="test" description="to call the test-core and test-contrib target">
        <antcall target="test-core" inheritRefs="true" inheritall="true"/>
    </target>

    <target name="test-contrib-internal" unless="testcase">
        <antcall target="test-contrib" inheritRefs="true" inheritall="true"/>
    </target>

    <target name="test-contrib" depends="compile-test" description="to call contrib tests">
        <subant target="pigtest" buildpath="contrib/zebra" antfile="build.xml"/>
    </target>

    <!-- ================================================================== -->
    <!-- End to end tests                                                   -->
    <!-- ================================================================== -->

    <target name="test-e2e" depends="jar, jar-withouthadoop, piggybank" description="run end-to-end tests">
        <ant dir="${test.e2e.dir}"/>
    </target>

    <target name="test-e2e-deploy" depends="jar, jar-withouthadoop" description="deploy end-to-end tests to existing cluster">
        <ant dir="${test.e2e.dir}" target="deploy"/>
    </target>

    <target name="test-e2e-undeploy" depends="jar, jar-withouthadoop" description="undeploy end-to-end tests from existing cluster">
        <ant dir="${test.e2e.dir}" target="undeploy"/>
    </target>

    <target name="test-e2e-local" depends="jar, jar-withouthadoop, piggybank" description="run end-to-end tests in local mode">
        <ant dir="${test.e2e.dir}" target="test-local"/>
    </target>

    <target name="test-e2e-deploy-local" depends="jar, jar-withouthadoop" description="create files needed by local mode end-to-end tests">
        <ant dir="${test.e2e.dir}" target="deploy-local"/>
    </target>

    <target name="pigmix-deploy" depends="jar, jar-withouthadoop" description="deploy end-to-end tests to existing cluster">
        <ant dir="${pigmix.dir}" target="deploy"/>
    </target>

    <target name="pigmix" depends="jar, jar-withouthadoop, piggybank" description="run end-to-end tests">
        <ant dir="${pigmix.dir}" target="test"/>
    </target>

    <!-- ================================================================== -->
    <!-- Pigunit                                                            -->
    <!-- ================================================================== -->

    <target name="pigunit-jar" depends="compile-test, ivy-test" description="create the pigunit jar file">
        <echo> *** Creating pigunit.jar ***</echo>
        <jar destfile="${pigunit.jarfile}">
            <fileset dir="${test.build.classes}">
                <include name="**/org/apache/pig/pigunit/**"/>
                <include name="**/org/apache/pig/test/Util.**"/>
            </fileset>
            <zipfileset src="${ivy.lib.dir}/commons-lang-${commons-lang.version}.jar" />
        </jar>
    </target>

    <target name="test-pigunit" depends="compile-test,jar-withouthadoop, pigunit-jar" description="Run tests that test PigUnit">
        <macro-test-runner test.file="${test.pigunit.file}" />
    </target>

    <!-- ================================================================== -->
    <!-- Distribution                                                       -->
    <!-- ================================================================== -->
    <target name="package" depends="docs, api-report, jar, piggybank" description="Create a Pig tar release">
        <mkdir dir="${tar.dist.dir}" />
        <mkdir dir="${tar.dist.dir}/lib" />
        <mkdir dir="${tar.dist.dir}/conf" />
        <mkdir dir="${tar.dist.dir}/scripts" />
        <mkdir dir="${tar.dist.dir}/docs" />
        <mkdir dir="${tar.dist.dir}/docs/api" />
        <mkdir dir="${tar.dist.dir}/docs/jdiff"/>
        <mkdir dir="${tar.dist.dir}/license" />

        <copy todir="${tar.dist.dir}/lib" includeEmptyDirs="false">
            <fileset dir="${lib.dir}"/>
        </copy>

        <copy todir="${tar.dist.dir}/lib">
            <fileset dir="${ivy.lib.dir}" includes="jython*.jar"/>
        </copy>

        <copy file="${output.jarfile.backcompat.withouthadoop}" tofile="${tar.dist.dir}/${final.name}-withouthadoop.jar" />

        <copy file="${output.jarfile.backcompat}" tofile="${tar.dist.dir}/${final.name}.jar" />

        <copy todir="${tar.dist.dir}/" file="ivy.xml" />

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

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

        <copy todir="${tar.dist.dir}/docs">
            <fileset dir="${build.docs}" />
        </copy>

        <copy todir="${tar.dist.dir}/conf" file="conf/pig.properties"/>

        <copy todir="${tar.dist.dir}/conf" file="conf/log4j.properties.template"/>

        <copy todir="${tar.dist.dir}/conf" file="conf/test-log4j.properties"/>

        <copy todir="${tar.dist.dir}/src" includeEmptyDirs="true">
            <fileset dir="${src.dir}" />
        </copy>

        <copy todir="${tar.dist.dir}/shims" includeEmptyDirs="true">
            <fileset dir="${basedir}/shims" />
        </copy>

        <copy todir="${tar.dist.dir}/lib-src" includeEmptyDirs="true">
            <fileset dir="${src.lib.dir}" />
        </copy>

        <copy todir="${tar.dist.dir}/test" includeEmptyDirs="true">
            <fileset dir="${test.src.dir}" />
        </copy>

        <copy todir="${tar.dist.dir}/tutorial" includeEmptyDirs="true">
            <fileset dir="tutorial" />
        </copy>

        <copy todir="${tar.dist.dir}/contrib" includeEmptyDirs="true">
            <fileset dir="contrib" />
        </copy>

        <copy todir="${tar.dist.dir}/" file="build.xml" />

        <copy todir="${tar.dist.dir}">
            <fileset dir=".">
                <include name="*.txt" />
            </fileset>
        </copy>

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

        <chmod perm="ugo+x" type="file">
            <fileset dir="${tar.dist.dir}/bin" />
        </chmod>
    </target>

    <!-- ================================================================== -->
    <!-- Make release packages                                              -->
    <!-- ================================================================== -->
    <target name="tar" depends="package" description="Source distribution">
        <tar compression="gzip" longfile="gnu" destfile="${build.dir}/${artifact.pig.tar}">
            <tarfileset dir="${build.dir}/tar/" mode="664">
                <exclude name="${final.name}/bin/*" />
                <include name="${final.name}/**" />
            </tarfileset>
            <tarfileset dir="${build.dir}/tar" mode="755">
                <include name="${final.name}/bin/*" />
            </tarfileset>
        </tar>
    </target>

    <!-- ================================================================== -->
    <!-- Make release tarball                                               -->
    <!-- ================================================================== -->
    <target name="src-release" depends="clean, clean-piggybank, clean-zebra, clean-test-e2e, clean-tutorial" description="Source distribution">
        <mkdir dir="${build.dir}"/>
        <tar compression="gzip" longfile="gnu"
             destfile="${build.dir}/${final.name}-src.tar.gz">
            <tarfileset dir="${basedir}" mode="644" prefix="${final.name}-src">
                <include name="conf/**"/>
                <include name="contrib/**"/>
                <include name="ivy/**"/>
                <exclude name="ivy/*.jar"/>
                <include name="lib/**"/>
                <include name="lib-src/**"/>
                <include name="license/**"/>
                <include name="shims/**"/>
                <include name="src/**"/>
                <include name="test/**"/>
                <exclude name="test/**/*.jar"/>
                <include name="tutorial/**"/>
                <include name="*.txt"/>
                <include name="*.xml"/>
                <include name="doap_Pig.rdf"/>
                <include name="KEYS"/>
                <include name="autocomplete"/>
            </tarfileset>
            <tarfileset dir="" mode="755" prefix="${final.name}-src">
                <include name="bin/**"/>
            </tarfileset>
        </tar>
    </target>

    <!-- ================================================================== -->
    <!-- Findbugs                                                           -->
    <!-- ================================================================== -->

    <property name="findbugs.home" value=""/>
    <target name="findbugs" depends="check-for-findbugs, jar" if="findbugs.present" description="Run findbugs if present">
       <property name="findbugs.out.dir" value="${test.build.dir}/findbugs"/>
       <property name="findbugs.exclude.file" value="${test.src.dir}/findbugsExcludeFile.xml"/>
       <property name="findbugs.report.htmlfile" value="${findbugs.out.dir}/pig-findbugs-report.html"/>
       <property name="findbugs.report.xmlfile" value="${findbugs.out.dir}/pig-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"
                 outputFile="${findbugs.report.xmlfile}" effort="max" timeout="2400000"
                 excludeFilter="${findbugs.exclude.file}" jvmargs="-Xmx1024M">
            <auxClasspath>
              <fileset dir="${lib.dir}">
                   <include name="**/*.jar"/>
              </fileset>
            </auxClasspath>
            <sourcePath path="${src.dir}"/>
            <class location="${output.jarfile.core}" />
       </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>
    <target name="ant-task-download" description="To download mvn-ant-task" unless="offline">
       <get src="${ant_task_repo_url}" dest="${ant_task.jar}" usetimestamp="true"/>
    </target>
    <target name="mvn-taskdef" depends="ant-task-download">
      <path id="mvn-ant-task.classpath" path="${ant_task.jar}"/>
      <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
          uri="urn:maven-artifact-ant"
          classpathref="mvn-ant-task.classpath"/>
    </target>
    <target name="mvn-install" depends="mvn-taskdef,jar, set-version, source-jar,
      javadoc-jar, pigunit-jar, smoketests-jar, piggybank"
         description="To install pig to local filesystem's m2 cache">
         <artifact:pom file="${pig.pom}" id="pig"/>
          <artifact:install file="${output.jarfile.core}">
               <pom refid="pig"/>
           <attach file="${output.jarfile.sources}" classifier="sources" />
           <attach file="${output.jarfile.javadoc}" classifier="javadoc" />
          </artifact:install>
         <artifact:pom file="${pigunit.pom}" id="pigunit"/>
          <artifact:install file="${pigunit.jarfile}">
               <pom refid="pigunit"/>
           </artifact:install>
         <artifact:pom file="${pigsmoke.pom}" id="pigsmoke"/>
          <artifact:install file="${smoke.tests.jarfile}">
               <pom refid="pigsmoke"/>
         </artifact:install>
         <artifact:pom file="${piggybank.pom}" id="piggybank"/>
         <artifact:install file="${piggybank.jarfile}">
               <pom refid="piggybank"/>
         </artifact:install>
    </target>

    <target name="mvn-build" depends="mvn-jar, source-jar,
                                      javadoc-jar, smoketests-jar, pigunit-jar, piggybank"
         description="To build the pig jar artifacts to be deployed to apache maven repository">
    </target>

    <!-- Expects that mvn-build has already been run but does not run it. In some cases building
    might happen on one host and signing/uploading on another. Hence the decoupled tasks. -->
    <target name="mvn-publish" depends="mvn-taskdef, set-version, signanddeploy, simpledeploy"
        description="To publish the pig jar artifacts to the apache maven repository">
    </target>

    <target name="mvn-deploy" depends="mvn-build, mvn-publish"
         description="To build and upload pig jar to apache maven repository">
    </target>

    <target name="signanddeploy" if="staging" depends="sign">
        <artifact:pom file="${pig.pom}" id="pig"/>
        <artifact:install-provider artifactId="wagon-http" version="${wagon-http.version}"/>
        <artifact:deploy file="${output.jarfile.core}">
           <remoteRepository id="${staging_repo_id}" url="${asfstagingrepo}"/>
           <pom refid="pig"/>
           <attach file="${output.jarfile.core}.asc" type="jar.asc"/>
           <attach file="${pig.pom}.asc" type="pom.asc"/>
           <attach file="${output.jarfile.core-h2}.asc" type="jar.asc" classifier="h2"/>
           <attach file="${output.jarfile.core-h2}" classifier="h2" />
           <attach file="${output.jarfile.sources}.asc" type="jar.asc" classifier="sources"/>
           <attach file="${output.jarfile.sources}" classifier="sources" />
           <attach file="${output.jarfile.javadoc}.asc" type="jar.asc"  classifier="javadoc"/>
           <attach file="${output.jarfile.javadoc}" classifier="javadoc" />
        </artifact:deploy>
        <artifact:pom file="${pigunit.pom}" id="pigunit"/>
        <artifact:deploy file="${pigunit.jarfile}">
           <remoteRepository id="${staging_repo_id}" url="${asfstagingrepo}"/>
           <pom refid="pigunit"/>
           <attach file="${pigunit.jarfile}.asc" type="jar.asc"/>
           <attach file="${pigunit.pom}.asc" type="pom.asc"/>
        </artifact:deploy>
        <artifact:pom file="${pigsmoke.pom}" id="pigsmoke"/>
        <artifact:deploy file="${smoke.tests.jarfile}">
           <remoteRepository id="${staging_repo_id}" url="${asfstagingrepo}"/>
           <pom refid="pigsmoke"/>
           <attach file="${smoke.tests.jarfile}.asc" type="jar.asc"/>
           <attach file="${pigsmoke.pom}.asc" type="pom.asc"/>
        </artifact:deploy>
        <artifact:pom file="${piggybank.pom}" id="piggybank"/>
        <artifact:deploy file="${piggybank.jarfile}">
           <remoteRepository id="${staging_repo_id}" url="${asfstagingrepo}"/>
           <pom refid="piggybank"/>
           <attach file="${piggybank.jarfile}.asc" type="jar.asc"/>
           <attach file="${piggybank.pom}.asc" type="pom.asc"/>
        </artifact:deploy>
    </target>

    <target name="simpledeploy" unless="staging">
      <artifact:pom file="${pig.pom}" id="pig"/>
      <artifact:install-provider artifactId="wagon-http" version="${wagon-http.version}"/>
      <artifact:deploy file="${output.jarfile.core}">
              <remoteRepository id="${snapshots_repo_id}" url="${asfsnapshotrepo}"/>
              <pom refid="pig"/>
              <attach file="${output.jarfile.core-h2}" classifier="h2" />
              <attach file="${output.jarfile.sources}" classifier="sources" />
              <attach file="${output.jarfile.javadoc}" classifier="javadoc" />
      </artifact:deploy>
      <artifact:pom file="${pigunit.pom}" id="pigunit"/>
      <artifact:deploy file="${pigunit.jarfile}">
              <remoteRepository id="${snapshots_repo_id}" url="${asfsnapshotrepo}"/>
              <pom refid="pigunit"/>
      </artifact:deploy>
      <artifact:pom file="${pigsmoke.pom}" id="pigsmoke"/>
      <artifact:deploy file="${smoke.tests.jarfile}">
              <remoteRepository id="${snapshots_repo_id}" url="${asfsnapshotrepo}"/>
              <pom refid="pigsmoke"/>
      </artifact:deploy>
      <artifact:pom file="${piggybank.pom}" id="piggybank"/>
      <artifact:deploy file="${piggybank.jarfile}">
              <remoteRepository id="${snapshots_repo_id}" url="${asfsnapshotrepo}"/>
              <pom refid="piggybank"/>
      </artifact:deploy>
    </target>

    <target name="sign" depends="clean-sign" if="staging">
       <input message="password:>" addproperty="gpg.passphrase">
         <handler classname="org.apache.tools.ant.input.SecureInputHandler" />
       </input>
       <macrodef name="sign-artifact" description="Signs the artifact">
         <attribute name="input.file"/>
         <attribute name="output.file" default="@{input.file}.asc"/>
         <attribute name="gpg.passphrase"/>
         <sequential>
           <echo>Signing @{input.file} Sig File: @{output.file}</echo>
           <exec executable="gpg" >
             <arg value="--armor"/>
             <arg value="--output"/>
             <arg value="@{output.file}"/>
             <arg value="--passphrase"/>
             <arg value="@{gpg.passphrase}"/>
             <arg value="--detach-sig"/>
             <arg value="@{input.file}"/>
           </exec>
         </sequential>
       </macrodef>
       <sign-artifact input.file="${output.jarfile.core}"
        output.file="${output.jarfile.core}.asc" gpg.passphrase="${gpg.passphrase}"/>
       <sign-artifact input.file="${output.jarfile.core-h2}"
        output.file="${output.jarfile.core-h2}.asc" gpg.passphrase="${gpg.passphrase}"/>
       <sign-artifact input.file="${output.jarfile.sources}"
        output.file="${output.jarfile.sources}.asc" gpg.passphrase="${gpg.passphrase}"/>
       <sign-artifact input.file="${output.jarfile.javadoc}"
        output.file="${output.jarfile.javadoc}.asc" gpg.passphrase="${gpg.passphrase}"/>
       <sign-artifact input.file="${pig.pom}"
        output.file="${pig.pom}.asc" gpg.passphrase="${gpg.passphrase}"/>
       <sign-artifact input.file="${pigunit.pom}"
        output.file="${pigunit.pom}.asc" gpg.passphrase="${gpg.passphrase}"/>
       <sign-artifact input.file="${pigunit.jarfile}"
        output.file="${pigunit.jarfile}.asc" gpg.passphrase="${gpg.passphrase}"/>
       <sign-artifact input.file="${pigsmoke.pom}"
        output.file="${pigsmoke.pom}.asc" gpg.passphrase="${gpg.passphrase}"/>
       <sign-artifact input.file="${smoke.tests.jarfile}"
        output.file="${smoke.tests.jarfile}.asc" gpg.passphrase="${gpg.passphrase}"/>
       <sign-artifact input.file="${piggybank.jarfile}"
        output.file="${piggybank.jarfile}.asc" gpg.passphrase="${gpg.passphrase}"/>
       <sign-artifact input.file="${piggybank.pom}"
        output.file="${piggybank.pom}.asc" gpg.passphrase="${gpg.passphrase}"/>
    </target>

    <target name="clean-sign" description="Clean.  Delete .asc files">
       <delete>
         <fileset dir="." includes="**/**/*.asc"/>
       </delete>
    </target>
    <target name="set-version">
       <delete file="${pig.pom}"/>
       <delete file="${pigunit.pom}"/>
       <delete file="${pigsmoke.pom}"/>
       <delete file="${piggybank.pom}"/>
       <copy file="${basedir}/ivy/pig-template.xml" tofile="${pig.pom}"/>
       <copy file="${basedir}/ivy/pigunit-template.xml" tofile="${pigunit.pom}"/>
       <copy file="${basedir}/ivy/pigsmoke-template.xml" tofile="${pigsmoke.pom}"/>
       <copy file="${basedir}/ivy/piggybank-template.xml" tofile="${piggybank.pom}"/>
       <replaceregexp byline="true">
         <regexp pattern="@version"/>
         <substitution expression="${version}"/>
         <fileset dir="${basedir}/ivy">
           <include name="*.pom"/>
         </fileset>
       </replaceregexp>
    </target>

    <!-- ================================================================== -->
    <!-- Perform audit activities for the release                           -->
    <!-- ================================================================== -->

    <target name="releaseaudit" depends="ivy-releaseaudit" description="generate a release audit report">
        <get src="${mvnrepo}/org/apache/rat/apache-rat/${apacherat.version}/apache-rat-${apacherat.version}.jar"
             dest="${basedir}/build/apache-rat-${apacherat.version}.jar"
             usetimestamp="true"
             skipexisting="true"/>
        <java jar="${basedir}/build/apache-rat-${apacherat.version}.jar"
              fork="true"
              output="${basedir}/build/releaseaudit_report.txt">
            <arg value="--dir"/>
            <arg value="${basedir}"/>
            <arg value="-e"/>
            <arg value=".svn"/>
            <arg value=".git"/>
            <arg value=".gitignore"/>
            <arg value=".*/build/.*"/>
        </java>
        <echo message="releaseaudit report generated at ${basedir}/build/releaseaudit_report.txt"/>
    </target>

    <!--target name="checkstyle" depends="checkstyle.check, set-checkstyle-classpath" if="checkstyle.home"  -->
    <target name="checkstyle" depends="jar, ivy-checkstyle" description="Run optional third-party tool targets">
       <taskdef resource="checkstyletask.properties">
           <classpath refid="checkstyle-classpath"/>
       </taskdef>
       <mkdir dir="${test.build.dir}"/>
       <checkstyle config="${test.src.dir}/checkstyle.xml" failOnViolation="false">
           <fileset dir="${src.dir}" includes="**/*.java" excludes="**/generated/**"/>
           <formatter type="xml" toFile="${test.build.dir}/checkstyle-errors.xml"/>
       </checkstyle>
       <xslt style="${test.src.dir}/checkstyle-noframes-sorted.xsl" in="${test.build.dir}/checkstyle-errors.xml"
             out="${test.build.dir}/checkstyle-errors.html"/>
    </target>

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

    <!--
    <target name="set-checkstyle-classpath">
       <path id="checkstyle-classpath">
          <fileset dir="${checkstyle.home}">
             <include name="**/*.jar"/>
          </fileset>
       </path>
    </target>
    -->

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

    <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,forrest.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="${forrest.home}"/>
          <arg value="${basedir}"/>
          <arg value="${ant.project.name}"/>
        </exec>
    </target>

    <target name="hudson-test-patch" depends="findbugs.check,forrest.check">
        <exec executable="bash" failonerror="true">
          <arg value="${test_patch_sh}"/>
          <arg value="HUDSON"/>
          <arg value="${scratch.dir}"/>
          <arg value="${support.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="${forrest.home}"/>
          <arg value="${eclipse.home}"/>
          <arg value="${python.home}"/>
          <arg value="${basedir}"/>
          <arg value="${trigger.url}"/>
          <arg value="${jira.passwd}"/>
          <arg value="${curl.cmd}"/>
          <arg value="${defect}"/>
          <arg value="${ant.project.name}"/>
        </exec>
     </target>

     <target name="clover" depends="clover.setup, clover.info" description="Instrument the Unit tests using Clover.
      To use, specify -Dclover.home=&lt;base of clover installation&gt; -Drun.clover=true on the command line."/>

     <target name="clover.setup" if="clover.enabled">
        <taskdef resource="cloverlib.xml" classpath="${clover.jar}"/>
        <mkdir dir="${clover.db.dir}"/>
        <clover-setup initString="${clover.db.dir}/pig_coverage.db">
           <fileset dir="src" includes="**/*.java"/>
        </clover-setup>
     </target>

     <target name="clover.info" unless="clover.present">
          <echo>
           Clover not found. Code coverage reports disabled.
          </echo>
     </target>

     <target name="clover.check">
        <fail unless="clover.present">
          ##################################################################
           Clover not found.
           Please specify -Dclover.home=&lt;base of clover installation&gt;
           on the command line.
          ##################################################################
        </fail>
     </target>

     <target name="generate-clover-reports" depends="clover.check, clover">
        <mkdir dir="${clover.report.dir}"/>
        <clover-report>
            <current outfile="${clover.report.dir}" title="${final.name}">
                <format type="html"/>
            </current>
        </clover-report>
        <clover-report>
            <current outfile="${clover.report.dir}/clover.xml" title="${final.name}">
                <format type="xml"/>
            </current>
        </clover-report>
     </target>

     <target name="generate-pdf-clover-reports" depends="clover.check, clover">
        <mkdir dir="${clover.pdf.report.dir}"/>
        <clover-pdf-report outfile="${clover.pdf.report.dir}/clover_coverage.pdf" />
     </target>

     <target name="api-xml" depends="ivy-jdiff, javadoc-all, write-null">
        <javadoc>
            <doclet name="jdiff.JDiff"
                    path="${jdiff.jar}:${xerces.jar}">
                <param name="-apidir" value="${jdiff.xml.dir}"/>
                <param name="-apiname" value="${name} ${version}"/>
            </doclet>
            <packageset dir="${src.dir}"/>
            <classpath>
                <path refid="javadoc-classpath" />
                <pathelement path="${output.jarfile.withdependencies}" />
            </classpath>
        </javadoc>
    </target>

    <target name="write-null">
        <exec executable="touch">
            <arg value="${build.dir}/Null.java"/>
        </exec>
    </target>

    <target name="api-report" depends="api-xml">
        <mkdir dir="${jdiff.build.dir}"/>
        <javadoc sourcepath="${src.dir}"
                 destdir="${jdiff.build.dir}"
                 sourceFiles="${build.dir}/Null.java">
           <doclet name="jdiff.JDiff" path="${jdiff.jar}:${xerces.jar}">
              <param name="-oldapi" value="${name} ${jdiff.stable}"/>
              <param name="-newapi" value="${name} ${version}"/>
              <param name="-oldapidir" value="${jdiff.xml.dir}"/>
              <param name="-newapidir" value="${jdiff.xml.dir}"/>
              <param name="-javadocold" value="${jdiff.stable.javadoc}"/>
              <param name="-javadocnew" value="../../api/"/>
              <param name="-stats"/>
           </doclet>
           <classpath>
              <path refid="javadoc-classpath" />
              <pathelement path="${output.jarfile.withdependencies}" />
           </classpath>
        </javadoc>
     </target>

     <target name="ivy-init-dirs">
        <mkdir dir="${build.ivy.dir}" />
        <mkdir dir="${build.ivy.lib.dir}" />
        <mkdir dir="${build.ivy.report.dir}" />
        <mkdir dir="${build.ivy.maven.dir}" />
     </target>

     <target name="ivy-probe-antlib" >
        <condition property="ivy.found">
            <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
        </condition>
     </target>

     <target name="ivy-download" description="To download ivy" unless="offline">
        <get src="${ivy_repo_url}" dest="${ivy.jar}" usetimestamp="true"/>
     </target>

     <!--
     To avoid Ivy leaking things across big projects, always load Ivy in the same classloader.
     Also note how we skip loading Ivy if it is already there, just to make sure all is well.
     -->
     <target name="ivy-init-antlib" depends="ivy-download,ivy-init-dirs,ivy-probe-antlib" unless="ivy.found">
       <typedef uri="antlib:org.apache.ivy.ant" onerror="fail" loaderRef="ivyLoader">
         <classpath>
            <pathelement location="${ivy.jar}"/>
         </classpath>
       </typedef>
       <fail>
         <condition >
           <not>
             <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
           </not>
         </condition>
         You need Apache Ivy 2.0 or later from http://ant.apache.org/
         It could not be loaded from ${ivy_repo_url}
       </fail>
     </target>

     <target name="ivy-init" depends="ivy-init-antlib" >
       <!--Configure Ivy by reading in the settings file
       If anyone has already read in a settings file into this settings ID, it gets priority  -->
       <ivy:configure settingsid="${ant.project.name}.ivy.settings" file="${ivysettings.xml}" override='false'/>
     </target>

     <target name="ivy-resolve" depends="ivy-init" unless="ivy.resolved" description="Resolve Ivy dependencies">
       <property name="ivy.resolved" value="true"/>
       <ivy:resolve settingsRef="${ant.project.name}.ivy.settings"/>
     </target>

     <target name="ivy-compile" depends="ivy-resolve" description="Retrieve Ivy-managed artifacts for compile configuration">
       <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
                 pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" conf="compile"/>
       <ivy:cachepath pathid="compile.classpath" conf="compile"/>
     </target>

     <target name="ivy-test" depends="ivy-resolve" description="Retrieve Ivy-managed artifacts for test configuration">
       <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
                 pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" conf="test"/>
     </target>

     <target name="ivy-javadoc" depends="ivy-resolve" description="Retrieve Ivy-managed artifacts for javadoc configuration">
       <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
                 pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" conf="javadoc"/>
       <ivy:cachepath pathid="javadoc.classpath" conf="javadoc"/>
     </target>

     <target name="ivy-releaseaudit" depends="ivy-resolve" description="Retrieve Ivy-managed artifacts for releaseaudit configuration">
       <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
                 pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" conf="releaseaudit"/>
       <ivy:cachepath pathid="releaseaudit.classpath" conf="releaseaudit"/>
     </target>

     <target name="ivy-checkstyle" depends="ivy-resolve" description="Retrieve Ivy-managed artifacts for checkstyle configuration">
       <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
                 pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" conf="checkstyle"/>
       <ivy:cachepath pathid="checkstyle.classpath" conf="checkstyle"/>
     </target>

     <target name="ivy-buildJar" depends="ivy-resolve" description="Retrieve Ivy-managed artifacts for buildJar configuration">
       <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
                 pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" conf="buildJar"/>
       <ivy:cachepath pathid="buildJar.classpath" conf="buildJar"/>
     </target>

     <target name="ivy-jdiff" depends="ivy-resolve" description="Retrieve Ivy-managed artifacts for jdiff configuration">
       <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
                 pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" conf="jdiff"/>
       <ivy:cachepath pathid="jdiff.classpath" conf="jdiff"/>
     </target>

     <target name="ivy-clean-cache" depends="ivy-init-antlib"
             description="Clean the Ivy cache">
         <ivy:cleancache />
     </target>

     <target name="jackson-pig-3039-test-download" description="To download jackson" unless="offline">
        <get src="${jackson_core_repo_url}" dest="${jackson_core.jar}" usetimestamp="true"/>
        <get src="${jackson_mapper_repo_url}" dest="${jackson_mapper.jar}" usetimestamp="true"/>
     </target>

     <target name="jackson-pig-3039-test-clean" description="Clean the jackson jar files">
        <delete file="${jackson_core.jar}"/>
        <delete file="${jackson_mapper.jar}"/>
     </target>

     <target name="assert-pig-jar-exists" depends="ivy-init">
         <fail>
             <condition >
                 <not>
                     <available file="${output.jarfile.withdependencies}" />
                 </not>
             </condition>
             Not found: ${output.jarfile.withdependencies}
             Please run the target "jar" in the main build file
         </fail>
     </target>

     <target name="ready-to-publish" depends="jar, assert-pig-jar-exists, ivy-resolve"/>

     <target name="ivy-publish-local" depends="ready-to-publish,ivy-resolve">
        <ivy:publish settingsRef="${ant.project.name}.ivy.settings"
           resolver="local" pubrevision="${version}" overwrite="true"
           artifactspattern="${build.dir}/${ivy.publish.pattern}"/>
     </target>

     <!-- this is here for curiosity, to see how well the makepom task works
     makepom does not depend on the resolution as it translate the ivy file into a maven file
     we map ivy configurations to maven scopes
     -->
     <target name="makepom" depends="ivy-init">
        <ivy:makepom settingsRef="${ant.project.name}.ivy.settings"
           ivyfile="ivy.xml"
           pomfile="${build.ivy.maven.dir}/generated.pom"
           conf="compile,runtime,test">
        <ivy:mapping conf="compile" scope="compile"/>
        <ivy:mapping conf="test" scope="test"/>
        <ivy:mapping conf="runtime" scope="run"/>
        </ivy:makepom>
     </target>

     <target name="copy-jar-to-maven" depends="ready-to-publish">
        <copy file="${output.jarfile.core}" tofile="${build.ivy.maven.jar}"/>
        <checksum file="${build.ivy.maven.jar}" algorithm="md5"/>
     </target>

     <target name="copypom" depends="ivy-init-dirs">
        <presetdef name="expandingcopy">
           <copy overwrite="true">
              <filterchain>
                 <expandproperties/>
              </filterchain>
           </copy>
        </presetdef>
        <expandingcopy file="ivy/pig.pom" tofile="${build.ivy.maven.pom}"/>
        <checksum file="${build.ivy.maven.pom}" algorithm="md5"/>
     </target>

     <target name="maven-artifacts" depends="copy-jar-to-maven, copypom" />

     <target name="published" depends="ivy-publish-local, maven-artifacts"/>

     <target name="piggybank" depends="jar">
         <ant antfile="contrib/piggybank/java/build.xml" inheritAll="false"/>
     </target>

     <target name="zebra" depends="jar">
         <ant antfile="contrib/zebra/build.xml" inheritAll="false"/>
     </target>

     <import file="./build-site.xml" optional="true"/>

</project>
