<project default="all">

	<target name="all" depends="clean,compile,instrument,test,report" />
	
	<target name="clean">
		<delete dir="${buildClasses}" failonerror="false" />
		<delete dir="${coveragereport.dir}" failonerror="false" />
	</target>

	<property name="buildClasses" value="build" />
	<property name="instrumented.dir" value="instrumented" />
	<property name="coveragereport.dir" value="report" />
	<property name="lib" value="lib" />
	
	<path id="project.classpath">
		<pathelement location="${instrumented.dir}" />
		<pathelement location="${buildClasses}" />
		<fileset dir="${lib}">
			<include name="groovy-all-1.6*.jar"/>
			<include name="ant*.jar" />
			<include name="junit*.jar" />
			<include name="cobertura.jar" />
			<include name="log4j*.jar" />
			<include name="asm*.jar" />
			<include name="jakarta-oro*.jar" />
		</fileset>
	</path>

	<taskdef classpathref="project.classpath" resource="tasks.properties" />
	
    <target name="compile">
    	<mkdir dir="${buildClasses}" />
    	<mkdir dir="${instrumented.dir}" />
        <taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc" classpathref="project.classpath"/> 
    	<groovyc destdir="${buildClasses}" srcdir="src:test" listfiles="true">
			<classpath refid="project.classpath"/>
    		<javac debug="true" />
        </groovyc>
    </target>

	<target name="instrument">
		<delete file="cobertura.ser" />
    	<delete dir="${instrumented.dir}" />
    	<mkdir dir="${instrumented.dir}" />

		<cobertura-instrument todir="${instrumented.dir}">
			<fileset dir="${buildClasses}">
				<include name="**/*.class" />
				<exclude name="**/*Test.class" />
			</fileset>
		</cobertura-instrument>
	</target>
	
    <target name="test">
    	<junit fork="true">
    		<classpath refid="project.classpath" />
    		
    		<batchtest fork="true">
    			<fileset dir="${buildClasses}">
    				<include name="**/*Test.class" />
    			</fileset>
    		</batchtest>
    	</junit>
    </target>
	
	<target name="report">
		<cobertura-report format="html" destdir="${coveragereport.dir}" >
		    <fileset dir="src">
		    </fileset>
		</cobertura-report>	</target>
	
</project>
