<?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="hadoop20"/>
        </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="hadoop20"/>
        </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/compile"/>
                <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" 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="-e"/>
            <arg value=".*/build/.*"/>
        </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>
