<?xml version="1.0"?>

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

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

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

<project name="hcatalog" default="jar"
         xmlns:artifact="artifact:org.apache.maven.artifact.ant">

    <property name="path.to.basedir" location="${basedir}"/>

    <loadproperties srcfile="${basedir}/build.properties"/>

    <!--
    ================================================================================
    Properties and Classpaths Section
    ================================================================================
    -->

    <condition property="staging">
        <equals arg1="${repo}" arg2="staging"/>
    </condition>

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

    <!-- packaging properties -->
    <property name="package.prefix" value="/usr"/>
    <property name="package.conf.dir" value="/etc/hcatalog"/>
    <property name="package.log.dir" value="/var/log/hcatalog"/>
    <property name="package.pid.dir" value="/var/run/hcatalog"/>
    <property name="package.var.dir" value="/var/lib/hcatalog"/>
    <property name="package.share.dir" value="/share/hcatalog/${module}"/>
    <property name="package.buildroot" value="${build.dir}/rpm/hcatalog_package_build_${user.name}"/>
    <property name="package.build.dir" value="${build.dir}/rpm/hcatalog_package_build_${user.name}/BUILD"/>

    <target name="init">
        <mkdir dir="${dist.dir}"/>
    </target>

    <!--
    ================================================================================
    Build all jars
    ================================================================================
    -->
    <target name="jar" depends="init" description="build all jars">
        <ant target="jar" dir="core" inheritAll="false">
          <property name="_mvn.hadoop.profile" value="${mvn.hadoop.profile}"/>
        </ant>
        <ant target="jar" dir="hcatalog-pig-adapter" inheritAll="false">
          <property name="_mvn.hadoop.profile" value="${mvn.hadoop.profile}"/>
        </ant>
        <ant target="jar" dir="server-extensions" inheritAll="false">
          <property name="_mvn.hadoop.profile" value="${mvn.hadoop.profile}"/>
        </ant>
        <ant target="jar" dir="webhcat/svr" inheritAll="false">
          <property name="_mvn.hadoop.profile" value="${mvn.hadoop.profile}"/>
        </ant>
        <ant target="jar" dir="webhcat/java-client" inheritAll="false">
          <property name="_mvn.hadoop.profile" value="${mvn.hadoop.profile}"/>
        </ant>
        <ant target="jar" dir="storage-handlers/hbase" inheritAll="false">
          <property name="_mvn.hadoop.profile" value="${mvn.hadoop.profile}"/>
        </ant>
    </target>

    <!--
    ================================================================================
    Test Section
    ================================================================================
    -->

    <target name="test" depends="jar" description="run unit tests">
        <ant target="test" dir="core" inheritAll="false"/>
        <ant target="test" dir="hcatalog-pig-adapter" inheritAll="false"/>
        <ant target="test" dir="server-extensions" inheritAll="false"/>
        <ant target="test" dir="webhcat/svr" inheritAll="false"/>
        <ant target="test" dir="webhcat/java-client" inheritAll="false"/>
        <ant target="test" dir="storage-handlers/hbase" inheritAll="false"/>
        <!-- One checkstyle run for the whole repo. Runs after junit tests
        to piggyback on resolved jars. -->
        <path id="checkstyle.class.path">
          <fileset dir="core/build/lib/test"/>
        </path>
        <antcall target="checkstyle" inheritRefs="true"/>
    </target>

    <target name="test-with-clover" depends="clover-init"
            description="run unit tests and generate code coverage reports">
        <ant target="_test-with-clover" dir="core" inheritAll="false"/>
        <ant target="_test-with-clover" dir="hcatalog-pig-adapter" inheritAll="false"/>
        <ant target="_test-with-clover" dir="server-extensions" inheritAll="false"/>
        <ant target="_test-with-clover" dir="webhcat/svr" inheritAll="false"/>
        <ant target="_test-with-clover" dir="webhcat/java-client" inheritAll="false"/>
        <!-- storage-handlers do not have coverage as they have not
             yet been migrated to the new build files. -->
        <ant target="test" dir="storage-handlers/hbase" inheritAll="false"/>
    </target>


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

    <target name="findbugs" depends="init-findbugs,jar">
        <property name="findbugs.out.dir" value="${test.dir}/findbugs"/>
        <property name="findbugs.exclude.file" value="${test.src.dir}/findbugsExcludeFile.xml"/>
        <property name="findbugs.report.htmlfile"
                  value="${findbugs.out.dir}/hcat-findbugs-report.html"/>
        <property name="findbugs.report.xmlfile"
                  value="${findbugs.out.dir}/hcat-findbugs-report.xml"/>

        <ant target="findbugs" dir="core" inheritAll="false"/>
        <ant target="findbugs" dir="hcatalog-pig-adapter" inheritAll="false"/>
        <ant target="findbugs" dir="server-extensions" inheritAll="false"/>
        <ant target="findbugs" dir="webhcat/svr" inheritAll="false"/>
        <ant target="findbugs" dir="webhcat/java-client" inheritAll="false"/>
    </target>

    <!--
    ================================================================================
    Clean Section
    ================================================================================
    -->
    <!-- Clean up children -->
    <target name="clean" description="Cleanup all build artifacts">
        <echo message="${ant.project.name}"/>
        <delete dir="${build.dir}"/>
        <ant target="clean" dir="core" inheritAll="false"/>
        <ant target="clean" dir="hcatalog-pig-adapter" inheritAll="false"/>
        <ant target="clean" dir="server-extensions" inheritAll="false"/>
        <ant target="clean" dir="webhcat/svr" inheritAll="false"/>
        <ant target="clean" dir="webhcat/java-client" inheritAll="false"/>
        <ant target="clean" dir="storage-handlers/hbase" inheritAll="false"/>
        <ant target="clean" dir="shims" inheritAll="false"/>
    </target>

    <!--
    ================================================================================
    Docs Section
    ================================================================================
    -->
    <target name="docs" depends="forrest, javadoc"
            description="Generate Javadoc and Forrest documentation">
    </target>

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

    <target name="javadoc" depends="jar" description="Generate Javadoc documentation">
        <mkdir dir="${build.javadoc}"/>
        <record name="${build.dir}/javadoc.log" action="start"/>
        <javadoc overview="${src.dir}/../docs/overview.html"
                 packagenames="org.apache.hcatalog.*"
                 destdir="${build.javadoc}"
                 author="true"
                 version="true"
                 use="true"
                 noqualifier="all"
                 windowtitle="HCatalog ${hcatalog.version} API"
                 doctitle="HCatalog ${hcatalog.version} API"
                 failonerror="true">
            <packageset dir="core/src/main/java"/>
            <packageset dir="hcatalog-pig-adapter/src/main/java"/>
            <packageset dir="server-extensions/src/main/java"/>
            <packageset dir="storage-handlers/hbase/src/gen-java"/>
            <packageset dir="storage-handlers/hbase/src/java"/>
            <packageset dir="webhcat/svr/src/main/java"/>
            <packageset dir="webhcat/java-client/src/main/java"/>
            <classpath>
                <fileset dir="core/build/lib/test"/>
                <fileset dir="hcatalog-pig-adapter/build/lib/compile"/>
                <fileset dir="hcatalog-pig-adapter/build/lib/provided"/>
                <fileset dir="server-extensions/build/lib/compile"/>
                <fileset dir="server-extensions/build/lib/provided"/>
                <fileset dir="storage-handlers/hbase/build/lib/compile"/>
                <fileset dir="storage-handlers/hbase/build/lib/provided"/>
                <fileset dir="webhcat/svr/build/lib/compile"/>
                <fileset dir="webhcat/svr/build/lib/provided"/>
            </classpath>
            <group title="hcatalog" packages="org.apache.hcatalog.*"/>
        </javadoc>
        <record name="${build.dir}/javadoc.log" action="stop"/>
        <condition property="javadoc.warnings">
            <isfileselected file="${build.dir}/javadoc.log">
                <contains text="warnings"/>
            </isfileselected>
        </condition>
        <fail if="javadoc.warnings">Javadoc comments contain warnings.</fail>
    </target>

    <!--
    ===============================================================================
    Deploy Section
    ===============================================================================
    -->

    <target name="mvn-deploy" depends="mvn-init"
            description="Deploy artifacts to a Maven repository.">
        <artifact:deploy file="pom.xml">
            <artifact:pom file="pom.xml"/>
            <remoteRepository id="${mvn.deploy.repo.id}" url="${mvn.deploy.repo.url}"/>
        </artifact:deploy>
        <ant target="mvn-deploy" dir="core" inheritAll="false" useNativeBasedir="true"/>
        <ant target="mvn-deploy" dir="hcatalog-pig-adapter" inheritAll="false" useNativeBasedir="true"/>
        <ant target="mvn-deploy" dir="server-extensions" inheritAll="false" useNativeBasedir="true"/>
        <ant target="mvn-deploy" dir="webhcat/java-client" inheritAll="false" useNativeBasedir="true"/>
        <ant target="mvn-deploy" dir="webhcat/svr" inheritAll="false" useNativeBasedir="true"/>
    </target>

    <target name="mvn-deploy-signed" depends="mvn-init"
            description="Sign and deploy artifacts to a Maven repository.">

        <input message="Enter your gpg password (or just press return if using an agent): "
               addproperty="gpg.passphrase">
            <handler classname="org.apache.tools.ant.input.SecureInputHandler"/>
        </input>

        <_sign inputFile="pom.xml"/>
        <artifact:deploy file="pom.xml">
            <artifact:pom file="pom.xml"/>
            <attach file="pom.xml.asc" type="pom.asc"/>
            <remoteRepository id="${mvn.deploy.repo.id}" url="${mvn.deploy.repo.url}"/>
        </artifact:deploy>

        <ant target="mvn-deploy-signed" dir="core" inheritAll="false" useNativeBasedir="true">
            <property name="gpg.passphrase" value="${gpg.passphrase}"/>
        </ant>
        <ant target="mvn-deploy-signed" dir="hcatalog-pig-adapter" inheritAll="false" useNativeBasedir="true">
            <property name="gpg.passphrase" value="${gpg.passphrase}"/>
        </ant>
        <ant target="mvn-deploy-signed" dir="server-extensions" inheritAll="false" useNativeBasedir="true">
            <property name="gpg.passphrase" value="${gpg.passphrase}"/>
        </ant>
        <ant target="mvn-deploy-signed" dir="webhcat/java-client" inheritAll="false" useNativeBasedir="true">
            <property name="gpg.passphrase" value="${gpg.passphrase}"/>
        </ant>
        <ant target="mvn-deploy-signed" dir="webhcat/svr" inheritAll="false" useNativeBasedir="true">
            <property name="gpg.passphrase" value="${gpg.passphrase}"/>
        </ant>
    </target>

    <!--
    ===============================================================================
    Distribution Section
    ===============================================================================
    -->
    <target name="package" depends="jar, docs" description="Create an HCatalog release">
        <mkdir dir="${dist.dir}"/>
        <mkdir dir="${dist.dir}/share/${ant.project.name}/lib"/>
        <mkdir dir="${dist.dir}/etc/hcatalog"/>
        <mkdir dir="${dist.dir}/bin"/>
        <mkdir dir="${dist.dir}/sbin"/>
        <mkdir dir="${dist.dir}/share/${ant.project.name}/scripts"/>
        <mkdir dir="${dist.dir}/share/${ant.project.name}/templates/conf"/>
        <mkdir dir="${dist.dir}/share/doc/${ant.project.name}"/>
        <mkdir dir="${dist.dir}/share/doc/${ant.project.name}/api"/>
        <mkdir dir="${dist.dir}/share/doc/${ant.project.name}/jdiff"/>
        <mkdir dir="${dist.dir}/share/doc/${ant.project.name}/license"/>

        <copy todir="${dist.dir}/share/${ant.project.name}" includeEmptyDirs="false">
            <fileset dir="core/build">
                <include name="hcatalog-*.jar"/>
            </fileset>
            <fileset dir="hcatalog-pig-adapter/build">
                <include name="hcatalog-*.jar"/>
            </fileset>
            <fileset dir="server-extensions/build">
                <include name="hcatalog-*.jar"/>
            </fileset>
        </copy>
        <copy todir="${dist.dir}/share/webhcat/svr/" includeEmptyDirs="false">
            <fileset dir="webhcat/svr/build">
                <include name="webhcat-*.jar"/>
            </fileset>
        </copy>
        <copy todir="${dist.dir}/share/webhcat/svr/lib/" includeEmptyDirs="false">
            <fileset dir="webhcat/svr/build/lib/compile/">
                <include name="*.jar"/>
            </fileset>
        </copy>
        <copy todir="${dist.dir}/share/webhcat/java-client/" includeEmptyDirs="false">
            <fileset dir="webhcat/java-client/build">
                <include name="webhcat-java-client*.jar"/>
            </fileset>
        </copy>

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

        </copy>
        <copy todir="${dist.dir}/libexec">
            <fileset dir="bin">
                <include name="hcat-config.sh"/>
            </fileset>
        </copy>

        <copy todir="${dist.dir}/sbin">
            <fileset dir="${package.dir}">
                <include name="*.sh"/>
            </fileset>
        </copy>

        <copy todir="${dist.dir}/etc/${ant.project.name}">
            <fileset dir="conf"/>
        </copy>

        <copy todir="${dist.dir}/etc/webhcat">
            <fileset dir="webhcat/svr/src/main/config/" />
        </copy>

        <copy todir="${dist.dir}/share/${ant.project.name}/scripts">
            <fileset dir="scripts">
                <include name="*.sh"/>
            </fileset>
        </copy>

        <copy todir="${dist.dir}/share/${ant.project.name}/templates/conf">
            <fileset dir="src/packages/templates/conf">
                <include name="*"/>
            </fileset>
        </copy>

        <copy todir="${dist.dir}/sbin">
            <fileset dir="${package.dir}">
                <include name="*.sh"/>
            </fileset>
            <fileset dir="webhcat/svr/src/main/bin">
                <include name="*.sh"/>
            </fileset>
            <fileset dir="bin">
                <include name="hcat_server.sh"/>
            </fileset>
        </copy>

        <!-- Copy the licenses and such -->
        <copy todir="${dist.dir}/share/doc/${ant.project.name}">
            <fileset dir=".">
                <include name="*.txt"/>
            </fileset>
        </copy>

        <copy todir="${dist.dir}/share/doc/${ant.project.name}/license">
            <fileset dir="license"/>
        </copy>

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

        <!--package storage-handlers -->
        <property name="handlers.dir" value="${dist.dir}/share/hcatalog/storage-handlers"/>
        <mkdir dir="${handlers.dir}"/>
        <ant target="package" dir="storage-handlers/hbase" inheritAll="false">
            <property name="dist.handlers.dir" value="${handlers.dir}"/>
        </ant>

        <!--
        While ant has a native tar task, we call out to the command-line
        tar command because it preserves file permissions of our carefully
        constructed package dir.
        -->
        <exec executable="tar">
            <arg value="-C"/>
            <arg value="${build.dir}"/>
            <arg value="-czf"/>
            <arg value="${build.dir}/${final.name}.tar.gz"/>
            <arg value="${final.name}"/>
        </exec>
        <checksum file="${build.dir}/${final.name}.tar.gz" forceOverwrite="yes"/>
    </target>

    <target name="releaseaudit" depends="init" description="generate a release audit report">
        <get src="${mvnrepo}/org/apache/rat/apache-rat/${apache-rat.version}/apache-rat-${apache-rat.version}.jar"
             dest="${basedir}/build/apache-rat-${apache-rat.version}.jar"
             usetimestamp="true"
             skipexisting="true"/>
        <java jar="${basedir}/build/apache-rat-${apache-rat.version}.jar"
              fork="true"
              output="${basedir}/build/releaseaudit_report.txt">
            <arg value="--dir"/>
            <arg value="${basedir}"/>
            <arg value="--exclude-file"/>
            <arg value="build-support/conf/rat-excludes.txt"/>
        </java>
        <echo message="releaseaudit report generated at ${basedir}/build/releaseaudit_report.txt"/>
    </target>

    <!-- ================================================================== -->
    <!-- Make release tarball                                               -->
    <!-- ================================================================== -->
    <target name="src-release" depends="clean" description="Source distribution">
        <mkdir dir="${build.dir}"/>
        <property name="src-release-tarball"
                  value="${build.dir}/${ant.project.name}-src-${hcatalog.version}.tar.gz"/>
        <tar compression="gzip" longfile="gnu" destfile="${src-release-tarball}">
            <tarfileset dir="${basedir}" mode="644" prefix="${ant.project.name}-src-${hcatalog.version}">
                <include name="build-support/**"/>
                <exclude name="build-support/scripts/**"/>
                <include name="conf/**"/>
                <include name="core/**"/>
                <include name="hcatalog-pig-adapter/**"/>
                <include name="server-extensions/**"/>
                <include name="webhcat/**"/>
                <include name="license/**"/>
                <include name="shims/**"/>
                <include name="src/**"/>
                <include name="storage-handlers/**"/>
                <include name="*.properties"/>
                <include name="*.txt"/>
                <include name="*.xml"/>
                <include name="KEYS"/>
            </tarfileset>
            <tarfileset dir="${basedir}" mode="755" prefix="${ant.project.name}-src-${hcatalog.version}">
                <include name="bin/**"/>
                <include name="build-support/scripts/**"/>
                <include name="scripts/**"/>
            </tarfileset>
        </tar>
        <checksum file="${src-release-tarball}" forceOverwrite="yes"/>
    </target>

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

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

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

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

    <import file="build-support/ant/checkstyle.xml"/>
    <import file="build-support/ant/deploy.xml"/>
    <import file="build-support/ant/findbugs.xml"/>
    <import file="build-support/ant/test.xml"/>

</project>
