<!--
   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="aspects"
  xmlns:artifact="urn:maven-artifact-ant">
  <!-- The followng are duplications and have to be customized elsewhere too -->
  <!-- TODO this version has to be updated synchronously with Ivy -->
  <property name="aspectversion" value="1.6.5"/>
  <!-- TODO this has to be changed synchronously with build.xml version prop.-->
  <!-- this workarounds of test-patch setting its own 'version' -->
  <property name="project.version" value="2.0.1-alpha"/>

  <!-- Properties common for all fault injections -->
  <property name="build-fi.dir" value="${basedir}/build-fi"/>
  <property name="hadoop-fi.jar" location="${build.dir}/${final.name}-fi.jar" />
  <property name="compile-inject.output" value="${build-fi.dir}/compile-fi.log"/>
  <property file="${basedir}/build.properties"/>

  <!-- Properties related to system fault injection and tests -->
  <property name="herriot.suffix" value="instrumented"/>
  <property name="system-test-build-dir" value="${build-fi.dir}/system"/>
  <!-- This varialbe is set by respective injection targets -->
  <property name="hadoop.instrumented.jars" value=""/>
  <!-- Properties specifically for system fault-injections and system tests -->
  <property name="herriot.suffix" value="instrumented"/>
  <property name="instrumented.final.name"
            value="${name}-${herriot.suffix}-${version}"/>
  <property name="hadoop-mapred-instrumented.pom"
            location="${ivy.dir}/hadoop-mapred-${herriot.suffix}.xml" />
  <property name="hadoop-mapred-instrumented-test.pom"
            location="${ivy.dir}/hadoop-mapred-${herriot.suffix}-test.xml" />
  <property name="hadoop-mapred-instrumented.jar"
            location="${system-test-build-dir}/${name}-${herriot.suffix}-${version}.jar" />
  <property name="hadoop-mapred-instrumented-sources.jar"
            location="${system-test-build-dir}/${name}-${herriot.suffix}-${version}-sources.jar" />
  <property name="hadoop-mapred-instrumented-test.jar"
            location="${system-test-build-dir}/${name}-${herriot.suffix}-test-${version}.jar" />
  <property name="hadoop-mapred-instrumented-test-sources.jar"
            location="${system-test-build-dir}/${name}-${herriot.suffix}-test-${version}-sources.jar" />
  <!--All Fault Injection (FI) related targets are located in this session -->
    
  <target name="clean-fi">
    <delete dir="${build-fi.dir}"/>
  </target>
  
  <!-- Weaving aspects in place
  	Later on one can run 'ant jar-fault-inject' to create
  	Hadoop jar file with instrumented classes
  -->
  <!-- Target -classes-compilation has to be defined in build.xml and
  needs to depend on classes compilation and test classes compilation
  targets. This is a poor man parametrization for targets -->
  <target name="-compile-fault-inject" depends="-classes-compilation" >
    <!-- AspectJ task definition -->
    <taskdef
      resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties">
      <classpath>
        <pathelement
          location="${common.ivy.lib.dir}/aspectjtools-${aspectversion}.jar"/>
      </classpath>
    </taskdef>
    <echo message="Start weaving aspects in place"/>
    <path id="aspect.path">
      <pathelement location="${hadoop.instrumented.jars}"/>
    </path>
    <iajc
      encoding="${build.encoding}" 
      srcdir="${java.src.dir};${build.src};${src.dir.path}"
      includes="org/apache/hadoop/**/*.java, org/apache/hadoop/**/*.aj"
      excludes="org/apache/hadoop/record/**/*"
      destDir="${dest.dir}"
      debug="${javac.debug}"
      target="${javac.version}"
      source="${javac.version}"
      deprecation="${javac.deprecation}"
      fork="true"
      maxmem="256m">
      <aspectpath refid="aspect.path"/>
      <classpath refid="test.classpath"/>
    </iajc>
    <loadfile property="injection.failure" srcfile="${compile-inject.output}">
      <filterchain>
        <linecontainsregexp>
          <regexp pattern='iajc.*warning'/>
        </linecontainsregexp>
      </filterchain>
    </loadfile>
    <fail if="injection.failure">
      Broken binding of advises: ${line.separator}${injection.failure}
    </fail>
    <echo message="Weaving of aspects is finished"/>
  </target>

  <!-- Classpath for running system tests -->
  <path id="test.system.classpath">
        <pathelement location="${hadoop.conf.dir.deployed}" />
        <pathelement location="${system-test-build-dir}/test/extraconf" />
        <pathelement location="${system-test-build-dir}/test/classes" />
        <pathelement location="${system-test-build-dir}/classes" />
        <pathelement location="${system-test-build-dir}/test/mapred/classes"/>
        <pathelement location="${system-test-build-dir}/tools" />
        <pathelement location="${system-test-build-dir}" />
        <pathelement location="${test.src.dir}" />
        <pathelement path="${clover.jar}" />
        <fileset dir="${system-test-build-dir}">
           <include name="**/*.jar" />
           <exclude name="**/excluded/" />
         </fileset>
        <path refid="classpath" />
  </path>
  <!-- compile system tests... -->
  <path id="test.system.compile.classpath">
        <pathelement location="${system-test-build-dir}/test/extraconf" />
        <pathelement location="${system-test-build-dir}/test/classes" />
        <pathelement location="${system-test-build-dir}/classes" />
        <pathelement location="${system-test-build-dir}/test/mapred/classes" />
        <pathelement location="${system-test-build-dir}/test/mapred/testjar" />
        <pathelement location="${system-test-build-dir}/tools" />
        <pathelement location="${system-test-build-dir}/examples" />
        <path refid="ivy-system.classpath"/>
  </path>

  <!-- ================ -->
  <!-- run system tests -->
  <!-- ================ -->
  <target name="test-system" depends="ivy-retrieve-common, ivy-retrieve-system"
    description="Run system tests">
    <subant buildpath="build.xml" target="jar-test-system"/>
    <subant target="test-system-contrib">
        <property name="hadoop.home" value="${hadoop.home}"/>
       <property name="hadoop.conf.dir" value="${hadoop.conf.dir}"/>
       <property name="version" value="${version}"/>
       <property name="hadoop.conf.dir.deployed" 
            value="${hadoop.conf.dir.deployed}"/>
       <fileset file="${contrib.dir}/build.xml"/>
    </subant>
    <macro-test-runner test.file="${test.mapred.all.tests.file}"
                       suite.type="system/test"
                       classpath="test.system.classpath"
                       test.dir="${system-test-build-dir}/test"
                       fileset.dir="${test.src.dir}"
                       hadoop.conf.dir.deployed="${hadoop.conf.dir.deployed}">
    </macro-test-runner>
  </target>

  <target name="injectfaults" 
  	description="Instrument classes with faults and other AOP advices">
    <!--mkdir to prevent <subant> failure in case the folder has been removed-->
    <mkdir dir="${build-fi.dir}"/>
    <delete file="${compile-inject.output}"/>
    <weave-injectfault-aspects dest.dir="${build-fi.dir}/classes"
                               src.dir="${test.src.dir}/aop"
      aspects.jars="${build-fi.dir}/ivy/lib/${ant.project.name}/test/hadoop-common-${project.version}.jar">
    </weave-injectfault-aspects>
  </target>

  <!-- =============================================================== -->
  <!-- Create hadoop-{version}-dev-core.jar required to be deployed on -->
  <!-- cluster for system tests                                        -->
  <!-- =============================================================== -->
  <target name="jar-system"
          depends="inject-system-faults"
          description="Make hadoop-mapred-instrumented.jar with system injections.">
    <macro-jar-fault-inject target.name="jar"
      build.dir="${system-test-build-dir}"
      jar.final.name="final.name"
      jar.final.value="${instrumented.final.name}">
    </macro-jar-fault-inject>
    <jar jarfile="${system-test-build-dir}/${instrumented.final.name}-sources.jar"
      update="yes">
      <fileset dir="${test.src.dir}/system/java" includes="org/apache/hadoop/**/*.java" />
      <fileset dir="${test.src.dir}/system/aop" includes="org/apache/hadoop/**/*.aj" />
    </jar>
  </target>

  <target name="jar-test-system" depends="inject-system-faults, compile-test-system"
    description="Make hadoop-mapred-instrumented-test.jar with system injections.">
    <subant buildpath="build.xml" target="-do-jar-test">
      <property name="build.dir" value="${system-test-build-dir}"/>
      <property name="test.final.name"
        value="${name}-${herriot.suffix}-test-${project.version}"/>
      <property name="test.build.classes"
        value="${system-test-build-dir}/test/classes"/>
    </subant>
    <jar jarfile="${hadoop-mapred-instrumented-test-sources.jar}">
      <fileset dir="${test.src.dir}/system/test" includes="org/apache/hadoop/**/*.java" />
    </jar>
  </target>

  <target name="compile-test-system" description="Compiles system tests">
    <subant buildpath="build.xml" target="-compile-test-system.wrapper">
      <property name="build.dir" value="${system-test-build-dir}"/>
    </subant>
  </target>

  <target name="-compile-test-system.wrapper" depends="inject-system-faults, ivy-retrieve-common, ivy-retrieve-system">
    <macro-compile-test
      source.dir="${test.src.dir}/system/test"
      dest.dir="${system-test-build-dir}/test/classes"
      classpath="test.system.compile.classpath"/>
  </target>

  <macrodef name="weave-injectfault-aspects">
    <attribute name="dest.dir" />
    <attribute name="src.dir" />
    <attribute name="aspects.jars"/>
    <attribute name="base.build.dir" default="${build-fi.dir}"/>
    <sequential>
      <subant buildpath="build.xml" target="-compile-fault-inject"
        output="${compile-inject.output}">
        <property name="build.dir" value="@{base.build.dir}" />
        <property name="src.dir.path" value="@{src.dir}" />
        <property name="dest.dir" value="@{dest.dir}" />
        <property name="hadoop.instrumented.jars" value="@{aspects.jars}"/>
      </subant>
    </sequential>
  </macrodef>

  <target name="inject-system-faults"
          description="Inject system faults">
    <mkdir dir="${system-test-build-dir}"/>
    <delete file="${compile-inject.output}"/>
    <subant buildpath="build.xml" target="ivy-retrieve-system">
      <property name="build.dir" value="${system-test-build-dir}"/>
    </subant>
    <weave-injectfault-aspects dest.dir="${system-test-build-dir}/classes"
                               src.dir="${test.src.dir}/system/java;${test.src.dir}/system/aop"
      aspects.jars="${system-test-build-dir}/ivy/lib/${ant.project.name}/system/hadoop-common-${herriot.suffix}-${project.version}.jar"
      base.build.dir="${system-test-build-dir}">
    </weave-injectfault-aspects>
  </target>

  <macrodef name="macro-run-tests-fault-inject">
    <attribute name="target.name" />
    <attribute name="testcasesonly" />
    <sequential>
      <subant buildpath="build.xml" target="@{target.name}">
        <property name="build.dir" value="${build-fi.dir}"/>
        <property name="test.fault.inject" value="yes"/>
        <property name="test.include" value="TestFi*"/>
        <!-- This one is needed for the special "regression" target only -->
        <property name="special.fi.testcasesonly" value="@{testcasesonly}"/>
      </subant>
    </sequential>
  </macrodef>
	
  <!-- ================================================================== -->
  <!-- Make hadoop-fi.jar including all Fault injected artifacts         -->
  <!-- ================================================================== -->
  <macrodef name="macro-jar-fault-inject">
    <attribute name="target.name" />
    <attribute name="build.dir" />
    <attribute name="jar.final.name" />
    <attribute name="jar.final.value" />
    <sequential>
      <subant buildpath="build.xml" target="@{target.name}">
        <property name="build.dir" value="@{build.dir}"/>
        <property name="@{jar.final.name}" value="@{jar.final.value}"/>
        <property name="jar.extra.properties.list" 
        	  value="${test.src.dir}/fi-site.xml" />
      </subant>
    </sequential>
  </macrodef>

  <!-- ================================================================== -->
  <!-- Make test jar files including all Fault Injected artifacts         -->
  <!-- ================================================================== -->

  <macrodef name="macro-jar-test-fault-inject">
    <attribute name="target.name" />
    <attribute name="jar.final.name" />
    <attribute name="jar.final.value" />
    <sequential>
      <subant buildpath="build.xml" target="@{target.name}">
        <property name="build.dir" value="${build-fi.dir}"/>
        <property name="@{jar.final.name}" 
                  value="@{jar.final.value}"/>
      </subant>
    </sequential>
  </macrodef>

  <!--End of Fault Injection (FI) related session-->

  <!-- Start of cluster controller binary target -->
  <property name="runAs.src"
    value ="${test.src.dir}/system/c++/runAs"/>
  <property name="runAs.build.dir"
    value="${system-test-build-dir}/c++-build"/>
  <property name="runAs.configure.script"
    value="${runAs.build.dir}/configure"/>
  <target name="init-runAs-build">
    <condition property="runAs.parameters.passed">
      <not>
        <equals arg1="${run-as.hadoop.home.dir}"
          arg2="$${run-as.hadoop.home.dir}"/>
      </not>
    </condition>
    <fail unless="runAs.parameters.passed"
          message="Required parameters run-as.hadoop.home.dir not passed to the build"/>
    <mkdir dir="${runAs.build.dir}"/>
    <copy todir="${runAs.build.dir}" overwrite="true">
      <fileset dir="${runAs.src}" includes="**/*"/>
    </copy>
    <chmod perm="+x" file="${runAs.configure.script}">
    </chmod>
  </target>

  <target name="configure-runAs"
    depends="init-runAs-build">
    <exec executable="${runAs.configure.script}"
      dir="${runAs.build.dir}" failonerror="true">
      <arg value="--with-home=${run-as.hadoop.home.dir}"/>
    </exec>
  </target>
  <target name="run-as" depends="configure-runAs">
    <exec executable="${make.cmd}" dir="${runAs.build.dir}"
        searchpath="yes" failonerror="yes">
     <arg value="all" />
    </exec>
  </target>
  <!-- End of cluster controller binary target -->
  <!-- Install Herriot artifacts to the local Maven -->
  <target name="-mvn-system-install" depends="mvn-taskdef, jar-system, jar-test-system">
    <artifact:pom file="${hadoop-mapred-instrumented.pom}"
                  id="hadoop.mapred.${herriot.suffix}"/>
    <artifact:pom file="${hadoop-mapred-instrumented-test.pom}"
                  id="hadoop.mapred.${herriot.suffix}.test"/>
    <artifact:install file="${hadoop-mapred-instrumented.jar}">
      <pom refid="hadoop.mapred.${herriot.suffix}"/>
      <attach file="${hadoop-mapred-instrumented-sources.jar}" classifier="sources" />
    </artifact:install>
    <artifact:install file="${hadoop-mapred-instrumented-test.jar}">
      <pom refid="hadoop.mapred.${herriot.suffix}.test"/>
      <attach file="${hadoop-mapred-instrumented-test-sources.jar}" classifier="sources" />
    </artifact:install>
  </target>
  <target name="-mvn-system-deploy" depends="mvn-taskdef, jar-system, jar-test-system">
    <property name="repourl" value="https://repository.apache.org/content/repositories/snapshots" />
    <artifact:pom file="${hadoop-mapred-instrumented.pom}"
                   id="hadoop.mapred.${herriot.suffix}"/>
    <artifact:pom file="${hadoop-mapred-instrumented-test.pom}"
                   id="hadoop.mapred.${herriot.suffix}.test"/>

    <artifact:install-provider artifactId="wagon-http" version="1.0-beta-2"/>
    <artifact:deploy file="${hadoop-mapred-instrumented.jar}">
      <remoteRepository id="apache.snapshots.https" url="${repourl}"/>
      <pom refid="hadoop.mapred.${herriot.suffix}"/>
      <attach file="${hadoop-mapred-instrumented-sources.jar}" classifier="sources" />
    </artifact:deploy>
    <artifact:deploy file="${hadoop-mapred-instrumented-test.jar}">
      <remoteRepository id="apache.snapshots.https" url="${repourl}"/>
      <pom refid="hadoop.mapred.${herriot.suffix}.test"/>
      <attach file="${hadoop-mapred-instrumented-test-sources.jar}" classifier="sources" />
    </artifact:deploy>
  </target>
  <!-- End of Maven -->
</project>
