<!--
   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.13.1" />
    <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-h1.jar" value="${final.name}-h1.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-h1.jar" value="${final.name}-withouthadoop-h1.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.jarfile.withouthadoop" value="${build.dir}/${artifact.pig-withouthadoop.jar}" />
    <property name="output.jarfile.withouthadoop-h1" value="${build.dir}/${artifact.pig-withouthadoop-h1.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-h1" value="${build.dir}/${artifact.pig-h1.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-h1" value="${basedir}/${name}-h1.jar" />
    <property name="output.jarfile.backcompat-h2" value="${basedir}/${name}-h2.jar" />
    <property name="output.jarfile.backcompat.withouthadoop" value="${basedir}/${name}-withouthadoop.jar" />
    <property name="output.jarfile.backcompat.withouthadoop-h1" value="${basedir}/${name}-withouthadoop-h1.jar" />
    <property name="output.jarfile.backcompat.withouthadoop-h2" value="${basedir}/${name}-withouthadoop-h2.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"/>

    <!-- env properties -->
    <property environment="env"/>
    <property name="windows" value="false"/>
    <condition property="isWindows">
      <equals arg1="${windows}" arg2="true" />
    </condition>

    <target name="setWindowsPath" if="${isWindows}">
      <property name="build.path" value="${env.Path};${hadoop.root}\bin" />
    </target>

    <target name="setLinuxPath" unless="${isWindows}">
      <property name="build.path" value="${env.PATH};" />
    </target>

    <!-- 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>

    <condition property="hbase.hadoop.version" value="hadoop1" else="hadoop2">
        <not>
            <equals arg1="${hadoopversion}" arg2="23"/>
        </not>
    </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.12.0"/>
    <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="${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="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>
            <fileset dir="${basedir}" includes="pig*.jar" />
        </delete>
        <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-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}/bzip2;${src.shims.dir}"
            excludes="" dist="${build.classes}" cp="classpath" warnings="${javac.args.warnings}" />
        <copy todir="${build.classes}/META-INF">
            <fileset dir="${src.dir}/META-INF" includes="**"/>
        </copy>
    </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, ivy-javadoc" description="Create documentation including all contrib projects">
        <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}" />
            <packageset dir="contrib/piggybank/java/src/main/java"/>
            <link href="${javadoc.link.java}" />
            <classpath>
                <path refid="javadoc-classpath" />
                <pathelement path="${output.jarfile.withdependencies}" />
                <pathelement path="${piggybank.jarfile}"/>
            </classpath>
            <group title="pig" packages="org.apache.pig*" />
            <group title="contrib: Piggybank" packages="org.apache.pig.piggybank*" />
        </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}/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" />

    <target name="jar-all-h12" description="Create pig, pig withdependencies and pig withouthadoop jar for both Hadoop 1 and Hadoop 2">
        <propertyreset name="hadoopversion" value="23" />
        <propertyreset name="src.shims.dir" value="${basedir}/shims/src/hadoop${hadoopversion}" />
        <antcall target="clean" inheritRefs="true" inheritall="true"/>
        <antcall target="jar-withouthadoop" inheritRefs="true" inheritall="true"/>
        <delete dir="${build.dir}" />
        <propertyreset name="hadoopversion" value="20" />
        <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"/>
    </target>

    <!-- ================================================================== -->
    <!-- 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"/>
        <antcall target="copyHadoop1">
            <param name="source" value="${output.jarfile.withdependencies}"/>
            <param name="dest" value="${output.jarfile.backcompat-h1}"/>
        </antcall>
        <antcall target="copyHadoop2">
            <param name="source" value="${output.jarfile.withdependencies}"/>
            <param name="dest" value="${output.jarfile.backcompat-h2}"/>
        </antcall>
    </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"/>
        <antcall target="copyHadoop1">
            <param name="source" value="${output.jarfile.withouthadoop}"/>
            <param name="dest" value="${output.jarfile.backcompat.withouthadoop-h1}"/>
        </antcall>
        <antcall target="copyHadoop2">
            <param name="source" value="${output.jarfile.withouthadoop}"/>
            <param name="dest" value="${output.jarfile.backcompat.withouthadoop-h2}"/>
        </antcall>
    </target>

    <target name="copyHadoop2" if="isHadoop23">
        <copy file="${source}" tofile="${dest}"/>
    </target>

    <target name="copyHadoop1" unless="isHadoop23">
        <copy file="${source}" tofile="${dest}"/>
    </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}"/>
        <delete dir="${build.dir}" />
        <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="${output.jarfile.core}" tofile="${output.jarfile.core-h1}"/>
        <move file="${output.jarfile.withouthadoop}" tofile="${output.jarfile.withouthadoop-h1}"/>
        <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}" duplicate="preserve">
                <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="test/perf/pigmix/lib/sdsuLibJKD12.jar" />
        </jar>
    </target>

    <!-- ================================================================== -->
    <!-- Run unit tests                                                     -->
    <!-- ================================================================== -->
    <target name="test-core" depends="setWindowsPath,setLinuxPath,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="setWindowsPath,setLinuxPath,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="setWindowsPath,setLinuxPath,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="setWindowsPath,setLinuxPath,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="hadoopversion" value="${hadoopversion}" />
            <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"/>
            <env key="PATH" path="${build.path}"/>
            <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>

    <!-- ================================================================== -->
    <!-- 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="setWindowsPath,setLinuxPath,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-h12" depends="jar-all-h12, docs, api-report, piggybank" description="Create a Pig tar release">
		<package-base/>
    </target>
	
    <target name="package" depends="jar-all, docs, api-report, piggybank" description="Create a Pig tar release">
		<package-base/>
    </target>
	
    <macrodef name="package-base">
      <sequential>
        <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"/>
            <fileset dir="${ivy.lib.dir}" includes="jruby-*.jar"/>
            <fileset dir="${ivy.lib.dir}" includes="groovy-*.jar"/>
            <fileset dir="${ivy.lib.dir}" includes="js-*.jar"/>
            <fileset dir="${ivy.lib.dir}" includes="hbase-*.jar" excludes="hbase-*tests.jar"/>
            <fileset dir="${ivy.lib.dir}" includes="protobuf-java-*.jar"/>
            <fileset dir="${ivy.lib.dir}" includes="zookeeper-*.jar"/>
            <fileset dir="${ivy.lib.dir}" includes="accumulo-*.jar" excludes="accumulo-minicluster*.jar"/>
            <fileset dir="${ivy.lib.dir}" includes="avro-*.jar" excludes="avro-*tests.jar"/>
            <fileset dir="${ivy.lib.dir}" includes="json-simple-*.jar"/>
        </copy>

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

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

        <copy todir="${tar.dist.dir}/lib" file="contrib/piggybank/java/piggybank.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>
      </sequential>
    </macrodef>

    <!-- ================================================================== -->
    <!-- Make release packages                                              -->
    <!-- ================================================================== -->
    <target name="tar" depends="package" description="Source distribution">
		<tar-base/>
    </target>

    <target name="tar-h12" depends="package-h12" description="Source distribution">
		<tar-base/>
    </target>

    <macrodef name="tar-base">
      <sequential>
        <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>
      </sequential>
    </macrodef>
    <!-- ================================================================== -->
    <!-- Make release tarball                                               -->
    <!-- ================================================================== -->
    <target name="src-release" depends="clean, clean-piggybank, 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,mvn-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-h1}">
               <pom refid="pig"/>
           <attach file="${output.jarfile.sources}" classifier="sources" />
           <attach file="${output.jarfile.javadoc}" classifier="javadoc" />
           <attach file="${output.jarfile.core-h2}" classifier="h2" />
          </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-h1}">
              <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" conf="compile"/>
     </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">
             <propertyset id="hadoop"> <propertyref name="hadoopversion"/> </propertyset>
         </ant>
     </target>

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

</project>
