<?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="hdfsproxy" default="jar" xmlns:ivy="antlib:org.apache.ivy.ant">
  <property name="hdfsproxyVersion" value="2.0"/>
  <property name="final.name" value="${ant.project.name}-${hdfsproxyVersion}"/>
  <property name="javac.debug" value="on"/>
  <property name="javac.optimize" value="on"/>
  <import file="../build-contrib.xml"/>

  <property name="bin.dir" value="${basedir}/bin"/>
  <property name="lib.dir" value="${basedir}/lib"/>
  <property name="hadoop.jars.dir" value="${basedir}/hadoopjars"/>

  <property name="docs.dir" value="${basedir}/docs"/>
  <property name="test.build.dir" value="${build.dir}/test"/>
  <property name="test.build.classes" value="${test.build.dir}/classes"/>
  <property name="src.test.resources" value="${basedir}/src/test/resources"/>
  <property name="ssl.keystore.proxy" value="${src.test.resources}/ssl-keys/proxy.keystore"/>
  <property name="ssl.keystore.client" value="${src.test.resources}/ssl-keys/client.keystore"/>
  <property name="ssl.client.cert" value="${src.test.resources}/ssl-keys/test.crt"/>
  <property name="proxy.conf.test" value="${src.test.resources}/proxy-config"/>
  <property name="tomcat.conf.test" value="${src.test.resources}/tomcat-config"/>
  <property name="target.dir" value="${build.dir}/target"/>
  <property name="logs.dir" value="${target.dir}/logs"/>
  <property name="reports.dir" value="${target.dir}/reports"/>
  <property name="tomcatconfig.dir" value="${target.dir}/tomcat-config"/>
  <property name="tomcat.container.id" value="tomcat5x"/>
  <property name="cargo.logging" value="high"/>
  <property name="cactus.formatter.type" value="xml"/>
  <property name="cactus.warfile.name" value="test"/>
  <!-- Used for krb5.conf which is required to run unit tests with MiniDFS -->
  <property name="test.krb5.conf.location" location="${hadoop.root}/src/test/krb5.conf"/>

  <available file="${hadoop.root}/build/classes" type="dir" property="test.available"/>
  <property environment="env"/>
  <!-- check if environment has been set -->
  <condition property="proxy.conf.dir" value="${env.HDFSPROXY_CONF_DIR}" else="${basedir}/conf">
    <and>
      <isset property="env.HDFSPROXY_CONF_DIR"/>
      <available file="${env.HDFSPROXY_CONF_DIR}/hdfsproxy-default.xml"/>
    </and>
  </condition>

  <condition property="startCactus">
    <and>
      <or>
        <equals arg1="${testcase}" arg2="TestProxyFilter"/>
        <equals arg1="${testcase}" arg2="TestLdapIpDirFilter"/>
        <equals arg1="${testcase}" arg2="TestProxyUtil"/>
        <equals arg1="${testcase}" arg2="TestProxyForwardServlet"/>
        <not>
          <isset property="testcase"/>
        </not>
      </or>
      <isset property="test.available"/>
    </and>
  </condition>

  <condition property="useClover">
    <and>
      <isset property="clover.home"/>
      <available file="${clover.home}/lib/clover.jar"/>
    </and>
  </condition>

  <property name="ivy.settings.file" 
            location="${hadoop.root}/ivy/ivysettings.xml"/>

  <target name="ivy-init" depends="ivy-init-antlib">
    <ivy:settings id="${ant.project.name}.ivy.settings"/>
  </target>

  <!-- Define the Cactus tasks -->
  <target name="load-tasks" depends="ivy-retrieve-common">
    <taskdef resource="cactus.tasks"
             classpathref="cactus.classpath">
    </taskdef>
  </target>


  <target name="jar" depends="compile" description="Create jar">
    <echo>
      Building the .jar files.
    </echo>
    <jar jarfile="${build.dir}/${final.name}.jar" basedir="${build.classes}"
         includes="org/apache/hadoop/hdfsproxy/**/*.class">
      <manifest>
        <section name="org/apache/hadoop/hdfsproxy">
          <attribute name="Implementation-Title" value="HdfsProxy"/>
          <attribute name="Implementation-Version" value="${hdfsproxyVersion}"/>
          <attribute name="Implementation-Vendor" value="Apache"/>
        </section>
      </manifest>
    </jar>
  </target>


  <!-- ================================================================== -->
  <!-- Make war file                                              -->
  <!-- ================================================================== -->

  <target name="war" depends="compile" description="Create war">
    <echo>
      Building the .war file
    </echo>
    <war destfile="${build.dir}/${final.name}.war" webxml="${basedir}/conf/tomcat-web.xml">
      <lib dir="${common.ivy.lib.dir}">
        <include name="commons-logging-${commons-logging.version}.jar"/>
        <include name="junit-${junit.version}.jar"/>
        <include name="log4j-${log4j.version}.jar"/>
        <include name="slf4j-api-${slf4j-api.version}.jar"/>
        <include name="slf4j-log4j12-${slf4j-log4j12.version}.jar"/>
        <include name="xmlenc-${xmlenc.version}.jar"/>
	<include name="jetty-${jetty.version}.jar"/>
	<include name="jetty-util-${jetty-util.version}.jar"/>
      </lib>
      <lib dir="${hadoop.root}/lib">
        <include name="hadoop-core-*.jar"/>
      </lib>
      <classes dir="${proxy.conf.dir}">
        <include name="hdfsproxy-default.xml"/>
        <include name="user-certs.xml"/>
        <include name="user-permissions.xml"/>
      </classes>
      <classes dir="${build.classes}"/>
      <classes dir="${hadoop.root}/build/classes"/>
    </war>
  </target>

  <target name="forward" depends="compile" description="Create forward war">
    <echo>
      Building the forward war file
    </echo>
    <war destfile="${build.dir}/${final.name}-forward.war" webxml="${basedir}/conf/tomcat-forward-web.xml">
      <lib dir="${common.ivy.lib.dir}">
        <include name="commons-logging-${commons-logging.version}.jar"/>
        <include name="junit-${junit.version}.jar"/>
        <include name="log4j-${log4j.version}.jar"/>
        <include name="slf4j-api-${slf4j-api.version}.jar"/>
        <include name="slf4j-log4j12-${slf4j-log4j12.version}.jar"/>
        <include name="xmlenc-${xmlenc.version}.jar"/>
      </lib>
      <lib dir="${hadoop.root}/lib">
        <include name="hadoop-core-*.jar"/>
      </lib>
      <classes dir="${proxy.conf.dir}">
        <include name="hdfsproxy-default.xml"/>
        <include name="hdfsproxy-site.xml"/>
        <include name="user-certs.xml"/>
        <include name="user-permissions.xml"/>
      </classes>
      <classes dir="${build.classes}"/>
      <classes dir="${hadoop.root}/build/classes"/>
    </war>
  </target>

  <target name="testwar" depends="compile" description="Create testing war">
    <echo>
      Building the testing .war file
    </echo>
    <war destfile="${build.dir}/${final.name}-test.war" webxml="${src.test.resources}/tomcat-web.xml">
      <lib dir="${common.ivy.lib.dir}">
        <include name="commons-logging-${commons-logging.version}.jar"/>
        <include name="junit-${junit.version}.jar"/>
        <include name="log4j-${log4j.version}.jar"/>
        <include name="slf4j-api-${slf4j-api.version}.jar"/>
        <include name="slf4j-log4j12-${slf4j-log4j12.version}.jar"/>
        <include name="xmlenc-${xmlenc.version}.jar"/>
        <include name="core-${core.vesion}.jar"/>
	<include name="jetty-${jetty.version}.jar"/>
        <include name="jetty-util-${jetty-util.version}.jar"/>
      </lib>
      <lib dir="${hadoop.root}/lib">
        <include name="hadoop-core-*.jar"/>
      </lib>
      <classes dir="${proxy.conf.test}" excludes="**/*.template **/*.sh"/>
      <classes dir="${build.classes}"/>
      <classes dir="${hadoop.root}/build/classes"/>
    </war>
  </target>

  <target name="cactifywar" depends="testwar,load-tasks,cactifywar-pure,cactifywar-clover"
          description="To include clover coverage test use -Dclover.home ..."/>

  <target name="cactifywar-pure" depends="testwar,load-tasks" unless="useClover">
    <mkdir dir="${target.dir}"/>
    <echo>no clover found ...</echo>
    <cactifywar srcfile="${build.dir}/${final.name}-test.war"
                destfile="${target.dir}/${cactus.warfile.name}.war"
                mergewebxml="${src.test.resources}/cactus-web.xml">
      <servletredirector/>
      <servletredirector name="ServletRedirectorSecure"
                         mapping="/ServletRedirectorSecure" roles="test"/>
      <filterredirector mapping="/test/filterRedirector.jsp"/>
      <classes dir="${test.build.dir}"/>
    </cactifywar>
  </target>

  <target name="cactifywar-clover" depends="testwar,load-tasks" if="useClover">
    <mkdir dir="${target.dir}"/>
    <echo>Including clover.jar in the war file ...</echo>
    <cactifywar srcfile="${build.dir}/${final.name}-test.war"
                destfile="${target.dir}/${cactus.warfile.name}.war"
                mergewebxml="${src.test.resources}/cactus-web.xml">
      <servletredirector/>
      <servletredirector name="ServletRedirectorSecure"
                         mapping="/ServletRedirectorSecure" roles="test"/>
      <filterredirector mapping="/test/filterRedirector.jsp"/>
      <classes dir="${test.build.dir}"/>
      <lib dir="${clover.home}/lib">
        <include name="clover.jar"/>
      </lib>
    </cactifywar>
  </target>

  <target name="test" depends="compile,compile-test,test-junit" description="Automated Test Framework"
          if="test.available"/>

  <target name="test-junit" depends="compile,compile-test" if="test.available">
    <copy todir="${src.test.resources}/proxy-config">
      <fileset dir="${proxy.conf.dir}" />
    </copy>
    <copy file="${proxy.conf.dir}/tomcat-web.xml" todir="${src.test.resources}"/>
    <copy file="${proxy.conf.dir}/tomcat-forward-web.xml" todir="${src.test.resources}"/>

    <junit fork="yes" printsummary="yes" errorProperty="tests.failed" 
           failureProperty="tests.failed" showoutput="${test.output}">
      <classpath refid="test.classpath"/>
      <sysproperty key="test.build.data" value="${build.test}/data"/>
      <sysproperty key="build.test" value="${build.test}"/>
      <sysproperty key="user.dir" value="${build.test}/data"/>
      <sysproperty key="fs.default.name" value="${fs.default.name}"/>
      <sysproperty key="hadoop.test.localoutputfile" value="${hadoop.test.localoutputfile}"/>
      <sysproperty key="hadoop.log.dir" value="${hadoop.log.dir}"/>
      <sysproperty key="test.src.dir" value="${test.src.dir}"/>
      <sysproperty key="javax.net.ssl.trustStore" value="${ssl.keystore.proxy}"/>
      <sysproperty key="javax.net.ssl.trustStorePassword" value="changeme"/>
      <sysproperty key="javax.net.ssl.keyStore.proxy" value="${ssl.keystore.proxy}"/>
      <sysproperty key="javax.net.ssl.keyStore" value="${ssl.keystore.client}"/>
      <sysproperty key="javax.net.ssl.keyStorePassword" value="changeme"/>
      <sysproperty key="javax.net.ssl.keyPassword" value="changeme"/>
      <sysproperty key="javax.net.ssl.clientCert" value="${ssl.client.cert}"/>
      <sysproperty key="java.security.krb5.conf" value="${test.krb5.conf.location}"/>
      <formatter type="xml"/>
      <batchtest todir="${test.build.dir}" unless="testcase">
        <fileset dir="${src.test}">
          <include name="**/TestHdfsProxy.java"/>
          <include name="**/TestProxyUgiManager.java"/>
        </fileset>
      </batchtest>
      <batchtest todir="${test.build.dir}" if="testcase">
        <fileset dir="${src.test}">
          <include name="**/${testcase}.java"/>
          <exclude name="**/TestProxyFilter.java"/>
          <exclude name="**/TestLdapIpDirFilter.java"/>
          <exclude name="**/TestProxyUtil.java"/>
          <exclude name="**/TestProxyForwardServlet.java"/>
        </fileset>
      </batchtest>
    </junit>
    <fail if="tests.failed">Tests failed!</fail>
  </target>


  <target name="test-cactus" depends="compile,compile-test,cactifywar" if="startCactus">
    <exec executable="${env.JAVA_HOME}/bin/java" outputproperty="cargo.servlet.admin.port">
      <arg line="-cp ${build.test} org.apache.hadoop.hdfsproxy.FindFreePort -random"/>
    </exec>
    <exec executable="${env.JAVA_HOME}/bin/java" outputproperty="cargo.servlet.http.port">
      <arg line="-cp ${build.test} org.apache.hadoop.hdfsproxy.FindFreePort ${cargo.servlet.admin.port}"/>
    </exec>
    <exec executable="${env.JAVA_HOME}/bin/java" outputproperty="cargo.servlet.https.port">
      <arg line="-cp ${build.test} org.apache.hadoop.hdfsproxy.FindFreePort ${cargo.servlet.http.port}"/>
    </exec>

    <echo>Free Ports: startup-${cargo.servlet.admin.port} / http-${cargo.servlet.http.port} /
      https-${cargo.servlet.https.port}
    </echo>
    <echo>Please take a deep breath while Cargo gets the Tomcat for running the servlet tests...</echo>

    <mkdir dir="${tomcatconfig.dir}"/>
    <mkdir dir="${tomcatconfig.dir}/conf"/>
    <mkdir dir="${tomcatconfig.dir}/webapps"/>
    <mkdir dir="${tomcatconfig.dir}/temp"/>
    <mkdir dir="${logs.dir}"/>
    <mkdir dir="${reports.dir}"/>
    <copy file="${tomcat.conf.test}/server.xml" tofile="${tomcatconfig.dir}/conf/server.xml" overwrite="true">
      <filterset>
        <filter token="ADMIN.PORT" value="${cargo.servlet.admin.port}"/>
        <filter token="HTTP.PORT" value="${cargo.servlet.http.port}"/>
        <filter token="HTTPS.PORT" value="${cargo.servlet.https.port}"/>
      </filterset>
    </copy>
    <copy file="${tomcat.conf.test}/web.xml" tofile="${tomcatconfig.dir}/conf/web.xml"/>
    <copy file="${tomcat.conf.test}/tomcat-users.xml" tofile="${tomcatconfig.dir}/conf/tomcat-users.xml"/>

    <cactus warfile="${target.dir}/${cactus.warfile.name}.war" fork="yes" haltonfailure="no" printsummary="yes"
            failureproperty="tests.failed">
      <classpath>
        <path refid="cactus.classpath"/>
        <pathelement location="${build.classes}"/>
        <pathelement location="${src.test.resources}"/>
        <pathelement location="${src.test.resources}/proxy-config"/>
      </classpath>
      <containerset>
        <cargo containerId="${tomcat.container.id}" timeout="30000" output="${logs.dir}/output.log"
               log="${logs.dir}/cargo.log">
          <zipUrlInstaller
              installUrl="http://apache.osuosl.org/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.zip"
              installDir="${target.dir}/${tomcat.container.id}"/>
          <configuration type="existing" home="${tomcatconfig.dir}">
            <property name="cargo.servlet.port" value="${cargo.servlet.http.port}"/>
            <property name="cargo.logging" value="${cargo.logging}"/>
            <property name="cactus.toDir" value="${build.test}"/>
            <deployable type="war" file="${target.dir}/${cactus.warfile.name}.war"/>
          </configuration>
        </cargo>
      </containerset>
      <sysproperty key="test.build.data" value="${build.test}/data"/>
      <sysproperty key="build.test" value="${build.test}"/>
      <sysproperty key="build.target" value="${target.dir}"/>
      <sysproperty key="javax.net.ssl.trustStore" value="${ssl.keystore.proxy}"/>
      <sysproperty key="javax.net.ssl.trustStorePassword" value="changeme"/>
      <sysproperty key="javax.net.ssl.keyStore.proxy" value="${ssl.keystore.proxy}"/>
      <sysproperty key="javax.net.ssl.keyStore" value="${ssl.keystore.client}"/>
      <sysproperty key="javax.net.ssl.keyStorePassword" value="changeme"/>
      <sysproperty key="javax.net.ssl.keyPassword" value="changeme"/>
      <sysproperty key="javax.net.ssl.clientCert" value="${ssl.client.cert}"/>
      <sysproperty key="test.proxy.conf.dir" value="${proxy.conf.test}"/>
      <sysproperty key="test.proxy.https.port" value="${cargo.servlet.https.port}"/>

      <formatter type="${cactus.formatter.type}"/>
      <batchtest todir="${reports.dir}" unless="testcase">
        <fileset dir="${src.test}">
          <include name="**/Test*.java"/>
          <exclude name="**/TestHdfsProxy.java"/>
          <exclude name="**/TestProxyUgiManager.java"/>
        </fileset>
      </batchtest>
      <batchtest todir="${reports.dir}" if="testcase">
        <fileset dir="${src.test}">
          <include name="**/${testcase}.java"/>
          <exclude name="**/TestHdfsProxy.java"/>
          <exclude name="**/TestProxyUgiManager.java"/>
        </fileset>
      </batchtest>
    </cactus>
    <fail if="tests.failed">Tests failed!</fail>
  </target>
  <!-- ====================================================== -->
  <!-- Macro definitions                                      -->
  <!-- ====================================================== -->
  <macrodef name="macro_tar" description="Worker Macro for tar">
    <attribute name="param.destfile"/>
    <element name="param.listofitems"/>
    <sequential>
      <tar compression="gzip" longfile="gnu"
           destfile="@{param.destfile}">
        <param.listofitems/>
      </tar>
    </sequential>
  </macrodef>

  <!-- ================================================================== -->
  <!-- D I S T R I B U T I O N                                            -->
  <!-- ================================================================== -->
  <!--                                                                    -->
  <!-- ================================================================== -->
  <target name="local-package" depends="jar,war" description="Package in local build directory">
    <mkdir dir="${build.dir}/${final.name}"/>
    <mkdir dir="${build.dir}/${final.name}/logs"/>
    <copy todir="${build.dir}/${final.name}" includeEmptyDirs="false">
      <fileset dir="${build.dir}">
        <include name="*.jar"/>
        <include name="*.war"/>
      </fileset>
    </copy>
    <copy todir="${build.dir}/${final.name}/lib" includeEmptyDirs="false">
      <fileset dir="${common.ivy.lib.dir}">
        <include name="commons-logging-${commons-logging.version}.jar"/>
        <include name="commons-logging-api-${commons-logging-api.version}.jar"/>
        <include name="junit-${junit.version}.jar"/>
        <include name="log4j-${log4j.version}.jar"/>
        <include name="slf4j-api-${slf4j-api.version}.jar"/>
        <include name="slf4j-log4j12-${slf4j-log4j12.version}.jar"/>
        <include name="xmlenc-${xmlenc.version}.jar"/>
        <include name="jetty-util-${jetty-util.version}.jar"/>
        <include name="jetty-${jetty.version}.jar"/>
        <include name="core-${core.vesion}.jar"/>
      </fileset>
      <fileset dir="${hadoop.root}/lib/jsp-${jsp.version}">
        <include name="jsp-${jsp.version}.jar"/>
        <include name="jsp-api-${jsp.version}.jar"/>
      </fileset>
    </copy>

    <copy todir="${build.dir}/${final.name}/lib" includeEmptyDirs="false">
      <fileset dir="${hadoop.root}/build">
        <include name="*-core.jar"/>
        <include name="*-tools.jar"/>
      </fileset>
    </copy>

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


    <copy todir="${build.dir}/${final.name}/conf">
      <fileset dir="${proxy.conf.dir}"/>
    </copy>


    <copy todir="${build.dir}/${final.name}">
      <fileset dir="${basedir}">
        <include name="README"/>
        <include name="build.xml"/>
        <include name="*.txt"/>
      </fileset>
    </copy>

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

    <chmod perm="ugo+x" type="file" parallel="false">
      <fileset dir="${build.dir}/${final.name}/bin"/>
    </chmod>

  </target>
  <target name="package" depends="local-package" description="Build distribution">
    <mkdir dir="${dist.dir}/contrib/${name}"/>
    <copy todir="${dist.dir}/contrib/${name}">
      <fileset dir="${build.dir}/${final.name}">
        <exclude name="**/lib/**"/>
        <exclude name="**/src/**"/>
        <exclude name="*.war"/>
      </fileset>
    </copy>
    <chmod dir="${dist.dir}/contrib/${name}/bin" perm="a+x" includes="*"/>
  </target>

	<!-- ================================================================== -->
	<!-- Make release tarball                                               -->
	<!-- ================================================================== -->
	<target name="tar" depends="local-package" description="Make release tarball">
		<macro_tar param.destfile="${build.dir}/${final.name}.tar.gz">
			<param.listofitems>
				<tarfileset dir="${build.dir}" mode="664">
					<exclude name="${final.name}/bin/*" />
					<include name="${final.name}/**" />
				</tarfileset>
				<tarfileset dir="${build.dir}" mode="755">
					<include name="${final.name}/bin/*" />
				</tarfileset>
			</param.listofitems>
		</macro_tar>
	</target>

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


  <!-- the unit test classpath -->
  <path id="test.classpath">
    <pathelement location="${proxy.conf.test}"/>
    <pathelement location="${test.build.dir}"/>
    <pathelement location="${hadoop.root}/build/test/classes"/>
    <!--<pathelement location="${hadoop.root}/src/contrib/test"/>-->
    <pathelement location="${hadoop.root}/conf"/>
    <pathelement location="${hadoop.root}/build"/>
    <pathelement location="${hadoop.root}/build/classes"/>
    <pathelement location="${hadoop.root}/build/tools"/>
    <pathelement location="${build.examples}"/>
    <pathelement path="${clover.jar}"/>
    <path refid="contrib-classpath"/>
  </path>

  <path id="cactus.classpath">
    <path refid="test.classpath"/>
  </path>

</project>
