<?xml version="1.0"?>
<project name="samples-basic-ant" default="install">
	<property name="artifactId" value="samples-basic-ant"/>
	<property name="version" value="0.1"/>
	<path id="compile.path">
		<fileset dir="${basedir}/lib">
			<include name="commons-lang-*.jar"/>
			<include name="jaxb-api-*.jar"/>
			<include name="runtime-*.jar"/>
		</fileset>
	</path>
	<path id="test-compile.path">
		<fileset dir="${basedir}/lib">
			<include name="activation-*.jar"/>
			<include name="jaxb-api-*.jar"/>
			<include name="jaxb-impl-*.jar"/>
			<include name="jsr173_api-*.jar"/>
			<include name="runtime-*.jar"/>
			<include name="junit-*.jar"/>
			<include name="testing-*.jar"/>
			<include name="xmlunit-*.jar"/>
			<include name="commons-lang-*.jar"/>
			<include name="commons-logging-*.jar"/>
		</fileset>
	</path>
	<path id="test.path">
		<fileset dir="${basedir}/lib">
			<include name="activation-*.jar"/>
			<include name="jaxb-api-*.jar"/>
			<include name="jaxb-impl-*.jar"/>
			<include name="jsr173_api-*.jar"/>
			<include name="runtime-*.jar"/>
			<include name="junit-*.jar"/>
			<include name="testing-*.jar"/>
			<include name="xmlunit-*.jar"/>
			<include name="commons-io-*.jar"/>
			<include name="commons-lang-*.jar"/>
			<include name="commons-logging-*.jar"/>
		</fileset>
	</path>
	<target name="clean">
		<delete dir="${basedir}/target/"/>
		<delete dir="${basedir}/target/classes"/>
		<delete dir="${basedir}/target/test-classes"/>
	</target>
	<target name="generate-sources">
		<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
			<classpath>
				<fileset dir="${basedir}/lib">
					<include name="activation-*.jar"/>
					<include name="jaxb-api-*.jar"/>
					<include name="jaxb-impl-*.jar"/>
					<include name="jsr173_api-*.jar"/>

					<include name="jaxb-xjc-*.jar"/>

					<include name="basic-*.jar"/>
					<include name="runtime-*.jar"/>
					<include name="tools-*.jar"/>
					<include name="commons-beanutils-*.jar"/>
					<include name="commons-lang-*.jar"/>
					<include name="commons-logging-*.jar"/>
				</fileset>
			</classpath>
		</taskdef>
		<mkdir dir="${basedir}/target/generated-sources/xjc"/>
		<xjc destdir="${basedir}/target/generated-sources/xjc" extension="true">
			<arg line="
				-Xequals
				-XhashCode
				-XtoString
				-Xcopyable"/>
			<binding dir="${basedir}/src/main/resources">
			 	<include name="**/*.xjb"/>
			</binding>
			<schema dir="${basedir}/src/main/resources">
			 	<include name="**/*.xsd"/>
			</schema>
		</xjc>
	</target>
	<target name="compile" depends="generate-sources">
		<mkdir dir="${basedir}/target/classes"/>
		<javac
			destdir="${basedir}/target/classes" 
			srcdir="${basedir}/src/main/java:${basedir}/target/generated-sources/xjc"
			classpathref="compile.path"
			source="1.5"
			target="1.5">
		</javac>
		<copy todir="${basedir}/target/classes">
			<fileset dir="${basedir}/src/main/resources"/>
			<fileset dir="${basedir}/target/generated-sources/xjc">
				<exclude name="**/*.java" />
			</fileset>
		</copy>
	</target>
	<target name="test-compile" depends="compile">
		<mkdir dir="${basedir}/target/test-classes"/>
		<javac
			destdir="${basedir}/target/test-classes" 
			srcdir="${basedir}/src/test/java:${basedir}/target/generated-sources/xjc"
			classpathref="test-compile.path"
			source="1.5"
			target="1.5">
		</javac>
		<copy todir="${basedir}/target/test-classes">
			<fileset dir="${basedir}/src/test/resources"/>
			<fileset dir="${basedir}/target/generated-sources/xjc">
				<exclude name="**/*.java" />
			</fileset>
		</copy>
	</target>
	<target name="test" depends="test-compile">
		<mkdir dir="${basedir}/target/junit-reports"/>
		<junit printsummary="yes" haltonfailure="yes">
			<classpath>
				<pathelement location="${basedir}/target/classes"/>
				<pathelement location="${basedir}/target/test-classes"/>
				<path refid="test.path"/>
			</classpath>

			<formatter type="plain"/>
			<formatter type="xml"/>

			<batchtest fork="yes" todir="${basedir}/target/junit-reports">
				<fileset dir="${basedir}/src/test/java">
					<include name="**/*Test*.java"/>
					<exclude name="**/AllTests.java"/>
				</fileset>
				<fileset dir="${basedir}/target/generated-sources/xjc">
					<include name="**/*Test*.java"/>
					<exclude name="**/AllTests.java"/>
				</fileset>
			</batchtest>
		</junit>
	</target>
	<target name="package" depends="test">
		<mkdir dir="${basedir}/target"/>
		<jar destfile="${basedir}/target/${artifactId}-${version}.jar"
			basedir="${basedir}/target/classes"/> 
	</target>
	<target name="install" depends="package"/>
</project>