<?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"/>	
  
	<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="TestAuthorizationFilter" />
	    	<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="core-${core.vesion}.jar"/> 
	      <include name="hadoop-common-${hadoop-common.version}.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"/>
        <include name="core-${core.vesion}.jar"/> 
	    </lib>
	    <lib dir="${hadoop.root}/lib">
	        <include name="hadoop-common-${hadoop-common.version}.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="hadoop-common-${hadoop-common.version}.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,test-cactus" description="Automated Test Framework" if="test.available"/>
	
	<target name="test-junit" depends="compile,compile-test" if="test.available">
		<junit fork="yes" printsummary="yes" errorProperty="tests.failed" failureProperty="tests.failed">
        <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}"/>
        <formatter type="plain" />
        <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="**/TestAuthorizationFilter.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://archive.apache.org/dist/tomcat/tomcat-6/v6.0.24/bin/apache-tomcat-6.0.24.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="servlet-api-2.5-${servlet-api-2.5.version}.jar"/>
        <include name="core-${core.vesion}.jar"/> 
                     <!--  </fileset>
		       <fileset dir="${hadoop.root}/lib/jsp-${jsp.version}"> -->
        <include name="jsp-${jsp.version}-${jetty.version}.jar"/> 
        <include name="jsp-api-${jsp.version}-${jetty.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,war" 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,war" 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/hdfs/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>
