<?xml version="1.0"?>
<project default="jar" name="ch.sahits.hudson" basedir=".">
<property name="version" value="0.0.1"/>
<property name="sahits.util" value="lib/sahitsUtil.jar" />
<property name="org.jdom" value="lib/jdom.jar" />
<tstamp/>
<property name="bin.jar" value="sahitsHudson_${version}.jar"/>
<property name="src.jar" value="sahitsHudson_src_${version}.jar"/>
<property name="dev.jar" value="sahitsHudson_dev_${version}.jar"/>
<property name="build.jar" value="sahitsHudson_build_${version}.jar"/>
<property name="test.output" value="test_output"/>
<property name="coverage.output" value="coverage_output"/>
<property name="bin.dir" value="bin" />
<property name="doc.dir" value="doc" />
<property name="temp.dir" value="temp" />
<property name="src.dir" value="src" />
<property name="test.dir" value="test" />
<property name="instrumented.dir" value="cobertura"/>
<property name="manifest.dir" value="META-INF"/>
<path id="compile.classpath">
<pathelement path="${org.jdom}"/>
<pathelement path="${sahits.util}"/>
</path>
<path id="test.classpath">
<pathelement path="bin"/>
<pathelement path="${org.jdom}"/>
<pathelement path="${sahits.util}"/>
<pathelement path="lib/junit.jar"/>
<pathelement path="lib/org.hamcrest.core_1.1.0.v20090501071000.jar"/>
</path>
<property name="cobertura.dir" value="lib/cobertura" />
<path id="cobertura.classpath">
<fileset dir="${cobertura.dir}">
<include name="cobertura.jar" />
<include name="lib/**/*.jar" />
</fileset>
</path>
<path id="cobertura.test.classpath">
<fileset dir="${cobertura.dir}">
<include name="cobertura.jar" />
<include name="lib/**/*.jar" />
</fileset>
<pathelement path="bin"/>
<pathelement path="${org.jdom}"/>
<pathelement path="${sahits.util}"/>
<pathelement path="lib/junit.jar"/>
<pathelement path="lib/org.hamcrest.core_1.1.0.v20090501071000.jar"/>
</path>
<taskdef classpathref="cobertura.classpath" resource="tasks.properties" />
<!-- =================================
target: clean
================================= -->
<target name="clean" description="Clean up the directories">
<delete dir="${bin.dir}"/>
<delete dir="${test.output}"/>
<delete dir="${coverage.output}"/>
<delete dir="${doc.dir}"/>
<delete dir="${temp.dir}"/>
<delete file="${src.jar}"/>
<delete file="${bin.jar}"/>
<delete file="${dev.jar}"/>
<delete dir="${instrumented.dir}"/>
<delete dir="${manifest.dir}"/>
</target>
<!-- =================================
target: init
================================= -->
<target name="init">
<mkdir dir="${bin.dir}"/>
<mkdir dir="${doc.dir}"/>
<mkdir dir="${temp.dir}"/>
<mkdir dir="${test.output}"/>
<mkdir dir="${coverage.output}"/>
<mkdir dir="${instrumented.dir}"/>
<mkdir dir="${manifest.dir}"/>
</target>
<!-- =================================
target: compile
================================= -->
<target name="compile" depends="init">
<javac srcdir="src"
destdir="bin"
debug="on">
<classpath refid="compile.classpath" />
</javac>
<javac srcdir="test"
destdir="bin"
debug="on">
<classpath refid="test.classpath" />
</javac>
</target>
<!-- =================================
target: javadoc
================================= -->
<target name="javadoc">
<javadoc access="protected" author="true"
destdir="${doc.dir}"
nodeprecated="false" nodeprecatedlist="false" noindex="false" nonavbar="false"
notree="false"
source="1.5"
sourcepath="src" splitindex="true" use="true" version="true"/>
</target>
<!-- =================================
target: jar
================================= -->
<target name="jar" depends="clean, compile">
<copy todir="${bin.dir}">
<fileset dir="src">
<include name="**/*.properties"/>
</fileset>
</copy>
<manifest file="${manifest.dir}/MANIFEST.MF">
<attribute name="Built-By" value="Andi Hotz"/>
<attribute name="Specification-Title" value="Hudson Eclipse Build integration"/>
<attribute name="Specification-Version" value="${version}"/>
<attribute name="Specification-Vendor" value="Sahits GmbH"/>
<attribute name="Implementation-Title" value="ch.sahits.hudson"/>
<attribute name="Implementation-Version" value="${version} ${TODAY}"/>
<attribute name="Implementation-Vendor" value="Sahits GmbH"/>
</manifest>
<copy todir="${temp.dir}">
<fileset dir="${src.dir}"/>
</copy>
<copy todir="${temp.dir}">
<fileset dir="${test.dir}"/>
</copy>
<jar destfile="${src.jar}" manifest="${manifest.dir}/MANIFEST.MF">
<fileset dir="src" >
<include name="**/*.java"/>
</fileset>
</jar>
<copy todir="${bin.dir}">
<fileset dir="lib">
<include name="**/*jar"/>
</fileset>
</copy>
<copy todir="${bin.dir}">
<fileset dir="src">
<include name="**/*.properties"/>
</fileset>
</copy>
<unzip dest="lib" src="${org.jdom}"/>
<unzip dest="lib" src="${sahits.util}"/>
<delete dir="lib/META-INF"/>
<jar destfile="${bin.jar}" manifest="${manifest.dir}/MANIFEST.MF">
<fileset dir="${bin.dir}" >
<include name="**/*.class"/>
<exclude name="src/**"/>
<include name="src/**/*.properties"/>
<exclude name="**/*Test.class"/>
</fileset>
<fileset dir="lib">
<exclude name="**/*.jar"/>
</fileset>
<fileset dir="${cobertura.dir}">
<exclude name="**"/>
</fileset>
</jar>
<manifest file="${manifest.dir}/MANIFEST.MF">
<attribute name="Built-By" value="Andi Hotz"/>
<attribute name="Specification-Title" value="Hudson Eclipse Build integration"/>
<attribute name="Specification-Version" value="${version}"/>
<attribute name="Specification-Vendor" value="Sahits GmbH"/>
<attribute name="Implementation-Title" value="ch.sahits.hudson"/>
<attribute name="Implementation-Version" value="${version} ${TODAY}"/>
<attribute name="Implementation-Vendor" value="Sahits GmbH"/>
<attribute name="Class-Path" value="jdom.jar junit.jar org.hamcrest.core_1.1.0.v20090501071000.jar lib/covertura/cobertura.jar lib/covertura/lib/asm-3.0.jar lib/covertura/lib/asm-tree-3.0.jar lib/covertura/lib/jakarta-oro-2.0.8.jar lib/covertura/lib/log4j-1.2.9.jar"/>
</manifest>
<jar destfile="${dev.jar}" manifest="${manifest.dir}/MANIFEST.MF">
<fileset dir="${bin.dir}" >
<include name="**/*.class"/>
<include name="**/*.jar"/>
<include name="**/*.properties"/>
</fileset>
</jar>
<delete dir="${bin.dir}/lib"/>
</target>
<!-- =================================
target: test
================================= -->
<target name="test" depends="compile" description="Execute JUnit tests">
<delete file="{basedir}/cobertura.ser" />
<cobertura-instrument todir="${instrumented.dir}">
<ignore regex="org.apache.log4j.*" />
<fileset dir="${bin.dir}">
<include name="**/*.class" />
<exclude name="**/*Test.class" />
<!-- <exclude name="**/*BuildFileGenerator.class"/> -->
</fileset>
</cobertura-instrument>
<junit fork="on">
<!-- forkmode="once" -->
<!--
Specify the name of the coverage data file to use.
The value specified below is the default.
-->
<sysproperty key="net.sourceforge.cobertura.datafile"
file="${basedir}/cobertura.ser" />
<!--
Note the classpath order: instrumented classes are before the
original (uninstrumented) classes. This is important.
-->
<classpath location="${instrumented.dir}" />
<classpath refid="cobertura.test.classpath"/>
<formatter type="xml" usefile="true"/>
<batchtest todir="${test.output}">
<fileset dir="test" casesensitive="true">
<include name="**/*Test.java" />
</fileset>
</batchtest>
</junit>
</target>
<!-- =================================
target: coverage
================================= -->
<target name="coverage" depends="test">
<cobertura-report format="xml" datafile="${basedir}/cobertura.ser" srcdir="${src.dir}" destdir="${coverage.output}"/>
</target>
<!-- =================================
target: crap4j
================================= -->
<!-- =================================
target: createBuild
================================= -->
<target name="createBuild" depends="compile" description="Create a build.xml">
<java classname="ch.sahits.hudson.eclipse.BuildFileGenerator">
<arg value="/home/andi/codegenjava/ch.sahits.hudson/test/ch/sahits/hudson/eclipse/MANIFEST.MF /opt/eclipseRCP3.5 ${test.output}" />
<classpath refid="test.classpath"/>
</java>
<jar destfile="${build.jar}">
<fileset dir="${test.output}" >
<include name="build.xml"/>
</fileset>
</jar>
</target>
<!-- =================================
target: findbugs
================================= -->
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
<target name="findbugs" depends="jar">
<findbugs home="${findbugs.home}"
output="xml:withMessages"
outputFile="findbugs.xml" >
<auxClasspath refid="test.classpath" />
<sourcePath path="${temp.dir}" />
<class location="${bin.dir}" />
</findbugs>
</target>
</project>