<project name="datafu" basedir="." default="all"
         xmlns:ivy="antlib:org.apache.ivy.ant">
  <property file="build.properties" />

  <property name="name" value="datafu" />
  <property name="display.name" value="DataFu" />
  <property name="author" value="Matthew Hayes, Sam Shah" />
  <property environment="env" />
  
  <property name="ivy.jar.dir" value="${basedir}/ivy" />
	<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy-2.2.0.jar" />
  
  <target name="all" depends="clean, jar, srcjar, docs, coverage" description="Build all artifacts." />

  <!-- TODO need a release target -->
    
  <target name="install-ivy" description="install ivy">
   	<path id="ivy.lib.path">
   	  <pathelement location="${ivy.jar.file}"/>
   	</path>
   	<taskdef resource="org/apache/ivy/ant/antlib.xml"
             uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
  </target>
  
  <target name="ivy-resolve" depends="install-ivy" description="retreive dependencies with ivy">
    <ivy:retrieve/>
  </target>
  
  <target name="check-licenses" description="checks that source files have license header">
    <exec executable="./check-license-headers.sh" failonerror="true"/>
  </target>
  
  <target name="clean-cache" depends="install-ivy" description="clean the ivy cache">
  	<ivy:cleancache />
  </target>
  
  <path id="main-classpath">
    <fileset dir="${lib.dir}">
      <include name="*.jar" />
    </fileset>
    <pathelement path="${classes.dir}" />
  </path>  
  
  <path id="cobertura.classpath">
    <fileset dir="${cobertura.dir}">
      <include name="cobertura.jar" />
      <include name="lib/**/*.jar" />
    </fileset>
  </path>
  
  <taskdef classpathref="cobertura.classpath" resource="tasks.properties" />
  
  <path id="base-test-classpath">    
    <fileset dir="${lib.dir}">
      <include name="*.jar" />
    </fileset>
    <fileset dir="${basedir}/otherlibs">
      <include name="*.jar" />
    </fileset>
    <pathelement path="${pigtestclasses.dir}" />
    <pathelement path="${unittestclasses.dir}" />
  </path>
  
  <path id="test-classpath">
    <path refid="base-test-classpath" />
    <!-- Use non-instrumented JARs for normal testing, otherwise it is 15% slower to run the tests -->
    <fileset dir="${dist.dir}">
      <include name="*.jar" />
    </fileset>
  </path>
  
  <path id="instrumented-test-classpath">
    <path refid="base-test-classpath" />
    <path refid="cobertura.classpath" />
    <!-- Use instrumented JARs -->
    <fileset dir="${instrumented.dir}">
      <include name="*.jar" />
    </fileset>
  </path>
  
  <macrodef name="replace-dir">
    <attribute name="dir" />
    <sequential>
      <delete dir="@{dir}" />
      <mkdir dir="@{dir}" />
    </sequential>
  </macrodef>
  
  <target name="clean" description="Delete generated files.">
    <delete dir="${lib.dir}" />
    <delete dir="${dist.dir}" />
    <delete dir="${docs.dir}" />
    <delete dir="${report.dir}" />
    <delete dir="${coveragereport.dir}"/>
    <delete dir="${instrumented.dir}"/>
    <delete dir="test-output"/>
    <delete file="cobertura.ser"/>
  </target>
  
  <target name="build" depends="ivy-resolve" description="Compile main source tree java files">
    <replace-dir dir="${classes.dir}" />
    <javac destdir="${classes.dir}" target="1.5" debug="true" deprecation="false" failonerror="true" includeantruntime="false">
      <src path="${java.dir}" />
      <exclude name="datafu/linkedin/**"/>
      <classpath refid="main-classpath" />
    </javac>
  </target>
  
  <target name="build-unit-tests" depends="build" description="Compile unit test classes">
    <replace-dir dir="${unittestclasses.dir}" />
    <javac destdir="${unittestclasses.dir}" target="1.5" debug="true" deprecation="false" failonerror="true" includeantruntime="false">
      <src path="${unittestsrc.dir}" />
      <classpath refid="main-classpath" />
    </javac>
  </target>
  
  <target name="build-pig-tests" depends="build, build-unit-tests" description="Compile pig test classes">
    <replace-dir dir="${pigtestclasses.dir}" />
    <copy todir="${pigtestclasses.dir}">
      <fileset dir="${pigtestsrc.dir}">
        <exclude name="**/*.java" />
      </fileset>
    </copy>
    <javac destdir="${pigtestclasses.dir}" target="1.5" debug="true" deprecation="false" failonerror="true" includeantruntime="false">
      <src path="${pigtestsrc.dir}" />
      <classpath refid="test-classpath" />
    </javac>
  </target>
  
  <target name="jar-core" depends="build" description="Build the JAR file with the core code from the library">
    <delete file="${dist.dir}/${name}-${curr.release}.jar" />
    <jar destfile="${dist.dir}/${name}-${curr.release}.jar">
      <fileset dir="${classes.dir}">
        <include name="**/*.*" />
      </fileset>
    </jar>
  </target>
  
  <target name="jar-fastutil" depends="jar-core" description="Builds the JAR with fastutil included">
    <delete file="${dist.dir}/${name}-${curr.release}-orig.jar" />
    <move file="${dist.dir}/${name}-${curr.release}.jar" tofile="${dist.dir}/${name}-${curr.release}-orig.jar" />
    <java jar="${tools.dir}/autojar.jar" fork="true">
      <arg line="-baeq -o ${dist.dir}/${name}-${curr.release}.jar -c ${lib.dir}/fastutil-6.3.jar ${dist.dir}/${name}-${curr.release}-orig.jar" />
    </java>
    <delete file="${dist.dir}/${name}-${curr.release}-orig.jar" />
  </target>
    
  <target name="jar" depends="jar-fastutil" description="Builds the final JAR">
    <delete file="${dist.dir}/${name}-${curr.release}-orig.jar" />
    <move file="${dist.dir}/${name}-${curr.release}.jar" tofile="${dist.dir}/${name}-${curr.release}-orig.jar" />
    <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="tools/jarjar-1.1.jar"/>
    <jarjar jarfile="${dist.dir}/${name}-${curr.release}.jar">
        <zipfileset src="${dist.dir}/${name}-${curr.release}-orig.jar"/>
        <rule pattern="it.unimi.dsi.fastutil.**" result="datafu.it.unimi.dsi.fastutil.@1"/>
    </jarjar>
    <delete file="${dist.dir}/${name}-${curr.release}-orig.jar" />
  </target>
    
  <target name="jar-instrumented" depends="jar" description="Build an instrumented jar">
    <delete file="cobertura.ser" />
    <replace-dir dir="${instrumented.dir}" />
    <cobertura-instrument todir="${instrumented.dir}">
      <includeClasses regex=".*datafu.*" />
      <excludeClasses regex=".*fastutil.*" />
      <excludeClasses regex=".*test.*" />
      <!-- Code coverage on LinkedIn specific code is not a priority right now -->
      <excludeClasses regex=".*linkedin.*"/>
      <instrumentationClasspath>
        <pathelement location="${dist.dir}"/>
      </instrumentationClasspath>
    </cobertura-instrument>
    <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="tools/jarjar-1.1.jar"/>
    <delete file="${instrumented.dir}/${name}-${curr.release}.jar" />
    <!-- Classes are now instrumented, but we need to merge back with original JAR to get back what was lost, since
         we don't instrument everything and therefore classes are missing form the instrumented directory. -->
    <jarjar jarfile="${instrumented.dir}/${name}-${curr.release}.jar">      
      <zipfileset src="${dist.dir}/${name}-${curr.release}.jar"/>        
      <!-- Classes in instrumented directory come last so they take precedence over the classes in the JAR.
           We need to include the JAR so we get the fastutil classes.  The fastutil classes are not instrumented (by design),
           so they are not in the instrumented directory. -->
      <fileset dir="${instrumented.dir}" />
    </jarjar>
  </target>
  
  <target name="test" depends="build-pig-tests, build-unit-tests, jar" description="Runs the pig tests">
    <taskdef resource="testngtasks" classpath="lib/testng-6.2.jar"/>
    <testng classpathref="test-classpath"
            outputDir="${report.dir}" verbose="2">
      <jvmarg value="-Xmx1G" />
      <sysproperty key="datafu.jar.dir" value="${dist.dir}" />
      <classfileset dir="${unittestclasses.dir}" includes="${testclasses.pattern}" />
      <classfileset dir="${pigtestclasses.dir}" includes="${testclasses.pattern}" />
    </testng>
  </target>
  
  <target name="test-instrumented" depends="build-pig-tests, build-unit-tests, jar-instrumented" description="Runs the tests with instrumented JARs">
    <taskdef resource="testngtasks" classpath="lib/testng-6.2.jar"/>
    <testng classpathref="instrumented-test-classpath"
            outputDir="${report.dir}" >
      <jvmarg value="-Xmx1G" />
      <sysproperty key="datafu.jar.dir" value="${instrumented.dir}" />
      <classfileset dir="${pigtestclasses.dir}" includes="${testclasses.pattern}" />
      <classfileset dir="${unittestclasses.dir}" includes="${testclasses.pattern}" />
    </testng>
  </target>
  
  <target name="coverage" depends="test-instrumented" description="Generates the code coverage report">
    <replace-dir dir="${coveragereport.dir}" />
    <cobertura-report format="html" destdir="${coveragereport.dir}">
      <fileset dir="${java.dir}">
        <include name="**/*.java" />
      </fileset>
    </cobertura-report>
    
    <!-- Build a WAR containing the coverage report which can be deployed to tomcat -->
    <mkdir dir="${dist.dir}" />
    <war destfile="${dist.dir}/${name}-coverage.war"  needxmlfile="false">
      <fileset dir="${coveragereport.dir}" />
    </war>
  </target>
  
  <target name="srcjar" description="Build source jar file">
    <mkdir dir="${dist.dir}" />
    <jar destfile="${dist.dir}/${name}-${curr.release}-sources.jar">
      <fileset dir="${java.dir}">
        <include name="**/*.java" />
      </fileset>
    </jar>
  </target>
  
  <macrodef name="make-javadocs">
    <attribute name="dir" />
    <attribute name="packagenames" />
    <attribute name="javadir" />
    <sequential>
      <replace-dir dir="@{dir}" />
      <javadoc sourcepath="@{javadir}" destdir="@{dir}" windowtitle="${display.name}" source="1.5" author="true" version="true" use="true" packagenames="@{packagenames}">
        <doctitle>${display.name}</doctitle>
        <bottom>${author}</bottom>
        <classpath refid="main-classpath" />
      </javadoc>
    </sequential>
  </macrodef>
  
  <target name="docs" description="Create complete Javadoc documentation">
    <delete dir="${javadoc.dir}" />
    <make-javadocs dir="${javadoc.dir}" packagenames="*" javadir="${java.dir}"/>
    
    <!-- Make javadoc JAR -->    
    <mkdir dir="${dist.dir}" />
    <jar destfile="${dist.dir}/${name}-${curr.release}-javadoc.jar">
      <fileset dir="${javadoc.dir}">
        <include name="**/*.*" />
      </fileset>
    </jar>
    
    <!-- Make a WAR for the docs so can be deployed to tomcat -->
    <mkdir dir="${dist.dir}" />
    <war destfile="${dist.dir}/${name}-docs.war"  needxmlfile="false">
      <fileset dir="${javadoc.dir}" />
    </war>
  </target>
    
  <macrodef name="create-release-artifacts">
    <attribute name="version" />
    <sequential>
    <antcall target="all"/>
    <zip destfile="${dist.dir}/${name}-@{version}.zip">
      <zipfileset dir="." prefix="${name}-@{version}" includes="**">
        <exclude name="${dist.dir}/classes/**"/>
		<exclude name="${dist.dir}/pigtestclasses/**"/>
		<exclude name="${dist.dir}/unittestclasses/**"/>
        <exclude name=".git*/**"/>
		<exclude name="input"/>
		<exclude name="pigunit-input-overriden.txt"/>
      </zipfileset>
    </zip>
    <tar destfile="${dist.dir}/${name}-@{version}.tar.gz" compression="gzip" longfile="gnu">
      <tarfileset dir="." prefix="${name}-@{version}" includes="**">
        <exclude name="${dist.dir}/classes/**"/>
		<exclude name="${dist.dir}/pigtestclasses/**"/>
		<exclude name="${dist.dir}/unittestclasses/**"/>
        <exclude name="${dist.dir}/*.zip"/>
        <exclude name=".git*/**"/>
		<exclude name="input"/>
		<exclude name="pigunit-input-overriden.txt"/>
      </tarfileset>
    </tar>
    </sequential>
  </macrodef>

  <target name="release" description="Create a release zip file with everything pre-built.">
    <create-release-artifacts version="${curr.release}" />
  </target>

</project>
