<?xml version="1.0" encoding="UTF-8"?>

<project name="plexus-classworlds-from-maven" default="package" basedir=".">
	<property file="${user.home}/.m2/maven.properties" />
	<property file="maven-build.properties" />

	<property name="maven.build.finalName" value="plexus-classworlds-2.2.3" />
	<property name="maven.build.dir" value="target" />
	<property name="maven.build.outputDir" value="${maven.build.dir}/classes" />
	<property name="maven.build.srcDir.0" value="src/main/java" />
	<property name="maven.build.resourceDir.0" value="src/main/resources" />
	<property name="maven.build.testOutputDir" value="${maven.build.dir}/test-classes" />
	<property name="maven.build.testDir.0" value="src/test/java" />
	<property name="maven.build.testResourceDir.0" value="src/test/resources" />
	<property name="maven.test.reports" value="${maven.build.dir}/test-reports" />
	<property name="maven.reporting.outputDirectory" value="${maven.build.dir}/site" />

	<property name="maven.repo.local" value="${user.home}/.m2/repository" />
	<property name="maven.settings.offline" value="false" />
	<property name="maven.settings.interactiveMode" value="true" />

	<path id="build.classpath" />
	<path id="build.test.classpath" />

	<target name="clean" description="Clean the output directory">
		<delete dir="${maven.build.dir}" />
	</target>

	<target name="compile" description="Compile the code">
		<mkdir dir="${maven.build.outputDir}" />
		<javac destdir="${maven.build.outputDir}" excludes="org/codehaus/plexus/classworlds/event/*" encoding="UTF-8" nowarn="false" debug="true" optimize="false" deprecation="true" target="1.4" verbose="false" fork="false" source="1.4">
			<src>
				<pathelement location="${maven.build.srcDir.0}" />
			</src>
			<classpath refid="build.classpath" />
		</javac>
	</target>

	<target name="compile-tests" depends="compile" description="Compile the test code" unless="maven.test.skip">
		<mkdir dir="${maven.build.testOutputDir}" />
		<javac destdir="${maven.build.testOutputDir}" excludes="org/codehaus/plexus/classworlds/event/*" encoding="UTF-8" nowarn="false" debug="true" optimize="false" deprecation="true" target="1.4" verbose="false" fork="false" source="1.4">
			<src>
				<pathelement location="${maven.build.testDir.0}" />
			</src>
			<classpath>
				<path refid="build.test.classpath" />
				<pathelement location="${maven.build.outputDir}" />
			</classpath>
		</javac>
	</target>

	<target name="test" depends="compile-tests, junit-missing" unless="junit.skipped" description="Run the test cases">
		<mkdir dir="${maven.test.reports}" />
		<junit printSummary="yes" haltonerror="true" haltonfailure="true" fork="true" dir=".">
			<sysproperty key="basedir" value="." />
			<formatter type="xml" />
			<formatter type="plain" usefile="false" />
			<classpath>
				<path refid="build.test.classpath" />
				<pathelement location="${maven.build.outputDir}" />
				<pathelement location="${maven.build.testOutputDir}" />
			</classpath>
			<batchtest todir="${maven.test.reports}" unless="test">
				<fileset dir="${maven.build.testDir.0}">
					<include name="**/Test*.java" />
					<include name="**/*Test.java" />
					<include name="**/*TestCase.java" />
					<exclude name="**/*Abstract*Test.java" />
					<exclude name="**/*Abstract*TestCase.java" />
					<exclude name="**/*TestUtil.java" />
					<exclude name="**/*ConfiguratorTest.java" />
				</fileset>
			</batchtest>
			<batchtest todir="${maven.test.reports}" if="test">
				<fileset dir="${maven.build.testDir.0}">
					<include name="**/${test}.java" />
					<exclude name="**/*Abstract*Test.java" />
					<exclude name="**/*Abstract*TestCase.java" />
					<exclude name="**/*TestUtil.java" />
					<exclude name="**/*ConfiguratorTest.java" />
				</fileset>
			</batchtest>
		</junit>
	</target>

	<target name="test-junit-present">
		<available classname="junit.framework.Test" property="junit.present" />
	</target>

	<target name="test-junit-status" depends="test-junit-present">
		<condition property="junit.missing">
			<and>
				<isfalse value="${junit.present}" />
				<isfalse value="${maven.test.skip}" />
			</and>
		</condition>
		<condition property="junit.skipped">
			<or>
				<isfalse value="${junit.present}" />
				<istrue value="${maven.test.skip}" />
			</or>
		</condition>
	</target>

	<target name="junit-missing" depends="test-junit-status" if="junit.missing">
		<echo>=================================== WARNING ===================================</echo>
		<echo> JUnit is not present in your $ANT_HOME/lib directory. Tests not executed.</echo>
		<echo>===============================================================================</echo>
	</target>

	<target name="javadoc" description="Generates the Javadoc of the application">
		<javadoc sourcepath="${maven.build.srcDir.0}" packagenames="*" destdir="${maven.reporting.outputDirectory}/apidocs" access="protected" old="false" verbose="false" version="true" use="true" author="true" splitindex="false" nodeprecated="false" nodeprecatedlist="false" notree="false" noindex="false" nohelp="false" nonavbar="false" serialwarn="false" charset="ISO-8859-1" linksource="false" breakiterator="false" />
	</target>

	<target name="package" depends="compile,test" description="Package the application">
		<jar jarfile="${maven.build.dir}/${maven.build.finalName}.jar" compress="true" index="false" basedir="${maven.build.outputDir}" excludes="**/package.html" />
	</target>

	<target name="jar" depends="package" description="Builds the jar for the application" />

	<target name="test-offline">
		<condition property="maven.mode.offline">
			<equals arg1="${maven.settings.offline}" arg2="true" />
		</condition>
	</target>
</project>
