<project name="maven-ant-tasks" default="test-all" xmlns:artifact="urn:maven-artifact-ant" xmlns:test="urn:test-tasks">
<!--
<project name="foo" default="foo" xmlns:artifact="antlib:org.apache.maven.artifact.ant">
-->
  <!--
    You either need to run the the 'initTaskDefs' task below and
    define the artifact namespace like above (choose anything you
    like except strings that start with 'antlib:'),
    and be sure to supply the path to the maven-artifact-ant jars

    OR

    just define the artifact namespace as follows:

      xmlns:artifact="antlib:org.apache.maven.artifact.ant"

    and be sure to add the maven-artifact-ant jars to the ant
    classpath (either by setting the CLASSPATH environment variable
    before calling ant, or place the jars in the $ANT_HOME/lib directory).

  -->

  <target name="initClassloader">
    <path id="testclasspath" path="target/test-classes" />
    <typedef resource="test-tasks.xml" uri="urn:test-tasks" classpathref="testclasspath"/>

    <test:classloader set="classloader"/>
  </target>

  <target name="checkClassloader">
    <test:classloader check="classloader"/>
  </target>

  <target name="initTaskDefs" depends="initClassloader">
  	<xmlproperty file="pom.xml" prefix="pom.xml" />

    <path id="maven-ant-tasks.classpath" path="target/maven-ant-tasks-${pom.xml.project.version}.jar" />
    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant"
             classpathref="maven-ant-tasks.classpath"/>

    <artifact:localRepository id="local.repository" path="${basedir}/target/local-repo" layout="default"/>

    <property name="deploy.repository.url" value="${basedir}/target/deployment-repo" />
    <artifact:remoteRepository id="deploy.repository" url="file://localhost/${deploy.repository.url}" layout="default"/>

    <artifact:pom file="pom.xml" id="maven.project"/>

    <test:classloader check="classloader"/>
  </target>

  <target name="installSshProvider" depends="initTaskDefs">
    <artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-2"/>
  </target>

  <target name="test-all-deps" description="All dependencies tests"
    depends="test-pom,test-pom-with-parent,test-no-deps,test-pom-deps,test-deps-two-repos,test-deps,test-legacy-pom,test-deps-mirror,test-deps-order,test-deps-sources,test-deps-sources-empty,test-deps-profile">
    <echo>test-bad-dep and test-invalid-pom-ref must be run manually, since they are intended to fail</echo>
  </target>

  <target name="test-all-pubs" description="All publication tests (install/deploy)"
    depends="test-deploy-spaces,test-deploy,test-no-dist-mgmt,test-install-attached,test-deploy-attached"/>

  <target name="test-all" description="All tests"
    depends="test-all-deps,test-all-pubs,test-install-provider,checkClassloader">
    <echo>test-scm not run, since it fails...</echo>
  </target>

  <target name="test-no-deps" depends="initTaskDefs">
    <artifact:dependencies filesetId="runtime.fileset" pathId="empty.dependency.classpath">
    </artifact:dependencies>
    <copy todir="target/test-no-deps" verbose="true">
      <fileset refid="runtime.fileset"/>
    </copy>
    <property name="empty.property" refid="empty.dependency.classpath"/>
  </target>

  <target name="test-empty-settings" depends="initTaskDefs">
    <artifact:dependencies filesetId="runtime.fileset" settingsFile="${basedir}/src/test/settings-empty.xml">
    </artifact:dependencies>
  </target>

  <target name="test-bad-dep" depends="initTaskDefs">
    <artifact:dependencies pathId="dependency.classpath" filesetId="dependency.fileset">
      <dependency groupId="foo" artifactId="foo" version="1.0-alpha-2"/>
    </artifact:dependencies>
  </target>

  <target name="test-pom" depends="initTaskDefs">
    <artifact:pom file="pom.xml" id="my.maven.project"/>

    <echo>Artifact ID = ${my.maven.project.artifactId}</echo>

    <echo>Parent Artifact ID = ${my.maven.project.parent.artifactId}</echo>

    <fail message="failed to get pom info ${my.maven.project.artifactId}">
      <condition>
        <not><equals arg1="${my.maven.project.artifactId}" arg2="${pom.xml.project.artifactId}"/></not>
      </condition>
    </fail>

    <echo>Maven Core Version = ${my.maven.project.properties.mavenVersion}</echo>

    <fail message="failed to get pom properties ${my.maven.project.properties.mavenVersion}">
      <condition>
        <not><equals arg1="${my.maven.project.properties.mavenVersion}" arg2="${pom.xml.project.properties.mavenVersion}"/></not>
      </condition>
    </fail>
  </target>

  <target name="test-legacy-pom" depends="initTaskDefs">
    <artifact:dependencies>
      <dependency groupId="geronimo-spec" artifactId="geronimo-spec-javamail" version="1.3.1-rc5" />
      <localRepository path="${basedir}/target/local-repo-legacy" />
      <remoteRepository url="http://repo1.maven.org/maven" layout="legacy" id="central" />
    </artifact:dependencies>
  </target>

  <target name="test-deps" depends="initTaskDefs">
    <artifact:dependencies pathId="dependency.classpath" filesetId="dependency.fileset"
                           verbose="true" versionsId="dependency.versions">
      <dependency groupId="org.apache.maven.wagon" artifactId="wagon-provider-test" version="1.0-alpha-4">
        <exclusion groupId="junit" artifactId="junit"/>
      </dependency>
      <dependency groupId="org.apache.maven" artifactId="maven-core-it-support-old-location" version="1.1"/>
      <dependency groupId="it.ant-tasks" artifactId="snapshotUniqueFalse" version="2.0.7-SNAPSHOT"/>
      <dependency groupId="it.ant-tasks" artifactId="snapshotUniqueTrue" version="2.0.7-SNAPSHOT"/>
      <localRepository refid="local.repository"/>
      <remoteRepository url="http://repo1.maven.org/maven2" id="central" />
      <remoteRepository url="file://${user.dir}/src/test/repo" id="test.repo">
        <snapshots enabled="true"/>
        <releases enabled="false"/>
      </remoteRepository>
    </artifact:dependencies>

    <copy todir="target/files/binaries">
      <fileset refid="dependency.fileset"/>
    </copy>
    <!-- excluded dependency junit:junit -->
    <check.file.not.exists file="target/files/binaries/junit/junit" type="dir"/>
    <!-- SNAPSHOT dependency it.ant-tasks:snapshotUniqueFalse:2.0.7-SNAPSHOT -->
    <check.file.exists file="target/files/binaries/it/ant-tasks/snapshotUniqueFalse" type="dir"/>
    <!-- MANTTASKS-18: SNAPSHOT dependency it.ant-tasks:snapshotUniqueTrue:2.0.7-SNAPSHOT -->
    <check.file.exists file="target/files/binaries/it/ant-tasks/snapshotUniqueTrue" type="dir"/>

    <!-- MANTTASKS-84 -->
    <copy todir="target/files/versionMapperFlatten">
      <fileset refid="dependency.fileset"/>
      <mapper classpathref="maven-ant-tasks.classpath" classname="org.apache.maven.artifact.ant.VersionMapper"
              from="${dependency.versions}" to="flatten" />
    </copy>
    <!-- VersionMapper to="flatten" on SNAPSHOT -->
    <check.file.not.exists file="target/files/versionMapperFlatten/it" type="dir"/>

    <!-- MANTTASKS-33: property it.ant-tasks:snapshotUniqueFalse:jar should point to an existing file -->
    <check.file.exists file="${it.ant-tasks:snapshotUniqueTrue:jar}"/>
  </target>

  <target name="test-pom-deps" depends="initTaskDefs">
    <artifact:dependencies filesetId="maven-ant-tasks.dependency.fileset">
      <pom refid="maven.project"/>
    </artifact:dependencies>

    <copy todir="target/maven-ant-tasks-dependencies">
      <fileset refid="maven-ant-tasks.dependency.fileset"/>
    </copy>

    <artifact:dependencies filesetId="maven-ant-tasks.compile.dependency.fileset" versionsId="maven-ant-tasks.compile.dependency.versions" useScope="compile">
      <pom refid="maven.project"/>
    </artifact:dependencies>
    <echo>dependencies versions: ${maven-ant-tasks.compile.dependency.versions}</echo>

    <copy todir="target/maven-ant-tasks-compile-dependencies/fileset">
      <fileset refid="maven-ant-tasks.compile.dependency.fileset"/>
    </copy>

    <copy todir="target/maven-ant-tasks-compile-dependencies/versionMapper">
      <fileset refid="maven-ant-tasks.compile.dependency.fileset"/>
      <mapper classpathref="maven-ant-tasks.classpath" classname="org.apache.maven.artifact.ant.VersionMapper"
              from="${maven-ant-tasks.compile.dependency.versions}" />
    </copy>

    <copy todir="target/maven-ant-tasks-compile-dependencies/versionMapperFlatten">
      <fileset refid="maven-ant-tasks.compile.dependency.fileset"/>
      <mapper classpathref="maven-ant-tasks.classpath" classname="org.apache.maven.artifact.ant.VersionMapper"
              from="${maven-ant-tasks.compile.dependency.versions}" to="flatten" />
    </copy>

    <copy todir="target/maven-ant-tasks-compile-dependencies/WEB-INF/lib">
      <fileset refid="maven-ant-tasks.compile.dependency.fileset"/>
      <mapper type="flatten"/>
    </copy>
  </target>

  <target name="test-deps-mirror" depends="initTaskDefs">
    <delete dir="${basedir}/target/tmp"/>
    <!-- the remoteRepository specified doesn't really exist, but settings declares an existing mirror -->
    <artifact:dependencies settingsFile="${basedir}/src/test/settings-mirror.xml">
      <dependency groupId="it.ant-tasks" artifactId="snapshotUniqueFalse" version="2.0.7-SNAPSHOT"/>
      <localRepository path="${basedir}/target/tmp"/>
      <remoteRepository url="file://${basedir}/target/fake/repository" id="fake-repository" />
    </artifact:dependencies>

    <delete dir="${basedir}/target/tmp"/>
    <!-- the remoteRepository specified doesn't really exist, but settings declares an existing mirror for * -->
    <artifact:dependencies settingsFile="${basedir}/src/test/settings-mirror-wildcard.xml">
      <dependency groupId="it.ant-tasks" artifactId="snapshotUniqueFalse" version="2.0.7-SNAPSHOT"/>
      <localRepository path="${basedir}/target/tmp"/>
      <remoteRepository url="file://${basedir}/target/fake/repository" id="any" />
    </artifact:dependencies>
  </target>

  <target name="test-deps-two-repos" depends="initTaskDefs">
    <delete dir="target/tmp"/>
    <!-- MANTTASKS-78 -->
    <artifact:dependencies verbose="true">
      <dependency groupId="it.ant-tasks" artifactId="snapshotUniqueFalse" version="2.0.7-SNAPSHOT"/>
      <localRepository path="target/tmp"/>
      <remoteRepository url="file://${user.dir}/src/test/repo"/>  <!-- intentionnally left without id -->
      <remoteRepository url="file://${user.dir}/target/tmp/fake"/><!-- intentionnally left without id -->
    </artifact:dependencies>
  </target>

  <target name="test-deps-order" depends="initTaskDefs">
    <artifact:dependencies pathId="order.path">
      <dependency groupId="junit" artifactId="junit" version="3.8.1"/>
      <dependency groupId="it.ant-tasks" artifactId="snapshotUniqueFalse" version="2.0.7-SNAPSHOT"/>
      <localRepository refid="local.repository"/>
      <remoteRepository url="http://repo1.maven.org/maven2" id="central" />
      <remoteRepository url="file://${user.dir}/src/test/repo" id="test.repo">
        <snapshots enabled="true"/>
        <releases enabled="false"/>
      </remoteRepository>
    </artifact:dependencies>

    <pathconvert property="order.property" targetos="unix" refid="order.path">
      <mapper type="flatten"/>
    </pathconvert>
    <condition property="order.ok">
      <equals arg1="${order.property}" arg2="junit-3.8.1.jar:snapshotUniqueFalse-2.0.7-SNAPSHOT.jar"/>
    </condition>
    <fail unless="order.ok">dependencies junit then it.ant-tasks should be preserved in path: ${order.property}</fail>

    <artifact:dependencies pathId="reverse.order.path">
      <dependency groupId="it.ant-tasks" artifactId="snapshotUniqueFalse" version="2.0.7-SNAPSHOT"/>
      <dependency groupId="junit" artifactId="junit" version="3.8.1"/>
      <localRepository refid="local.repository"/>
      <remoteRepository url="http://repo1.maven.org/maven2" id="central" />
      <remoteRepository url="file://${user.dir}/src/test/repo" id="test.repo">
        <snapshots enabled="true"/>
        <releases enabled="false"/>
      </remoteRepository>
    </artifact:dependencies>

    <pathconvert property="reverse.order.property" targetos="unix" refid="reverse.order.path">
      <mapper type="flatten"/>
    </pathconvert>
    <condition property="reverse.order.ok">
      <equals arg1="${reverse.order.property}" arg2="snapshotUniqueFalse-2.0.7-SNAPSHOT.jar:junit-3.8.1.jar"/>
    </condition>
    <fail unless="reverse.order.ok">dependencies junit then it.ant-tasks should be preserved in path: ${reverse.order.property}</fail>

    <artifact:pom file="src/test/pom-order.xml" id="order.project"/>
    <artifact:dependencies pathId="pom.order.path" verbose="true">
      <pom refid="order.project"/>
    </artifact:dependencies>
    <pathconvert property="pom.order.property" targetos="unix" refid="pom.order.path">
      <mapper type="flatten"/>
    </pathconvert>
    <condition property="pom.order.ok">
      <equals arg1="${pom.order.property}" arg2="commons-io-1.3.2.jar:commons-lang-2.3.jar:commons-logging-1.1.1.jar:commons-collections-3.2.jar"/>
    </condition>
    <fail unless="pom.order.ok">order of dependencies defined in pom should be preserved in path: ${pom.order.property}</fail>
  </target>

  <target name="test-deps-sources" depends="initTaskDefs">
    <artifact:dependencies filesetId="jar.fileset" sourcesFilesetId="sources.fileset" javadocFilesetId="javadoc.fileset">
      <dependency groupId="it.ant-tasks" artifactId="release" version="2.0.7"/>
      <localRepository refid="local.repository"/>
      <remoteRepository url="file://${user.dir}/src/test/repo" id="test.repo">
        <snapshots enabled="false"/>
        <releases enabled="true"/>
      </remoteRepository>
    </artifact:dependencies>

    <delete dir="${basedir}/target/files/sources"/>
    <copy todir="${basedir}/target/files/sources">
      <fileset refid="sources.fileset"/>
      <mapper type="flatten"/>
    </copy>
    <!-- release sources -->
    <check.file.exists file="${basedir}/target/files/sources/release-2.0.7-sources.jar"/>
    <!-- property it.ant-tasks:release:java-source:sources should point to an existing file in local repo -->
    <check.file.exists file="${it.ant-tasks:release:java-source:sources}"/>

    <delete dir="${basedir}/target/files/javadoc"/>
    <copy todir="${basedir}/target/files/javadoc">
      <fileset refid="javadoc.fileset"/>
      <mapper type="flatten"/>
    </copy>

    <!-- release javadoc -->
    <check.file.exists file="${basedir}/target/files/javadoc/release-2.0.7-javadoc.jar"/>
    <!-- property it.ant-tasks:release:java-source:javadoc should point to an existing file in local repo -->
    <check.file.exists file="${it.ant-tasks:release:java-source:javadoc}"/>
  </target>

  <target name="test-deps-sources-empty" depends="initTaskDefs">
    <artifact:dependencies sourcesFilesetId="sources.fileset" javadocFilesetId="javadoc.fileset">
      <dependency groupId="it.ant-tasks" artifactId="snapshotUniqueFalse" version="2.0.7-SNAPSHOT"/>
      <localRepository refid="local.repository"/>
      <remoteRepository url="file://${user.dir}/src/test/repo" id="test.repo">
        <snapshots enabled="true"/>
        <releases enabled="false"/>
      </remoteRepository>
    </artifact:dependencies>

    <delete dir="${basedir}/target/files/empty"/>
    <copy todir="${basedir}/target/files/empty">
      <fileset refid="sources.fileset"/>
      <mapper type="merge" to="sources.bin"/>
    </copy>
    <copy todir="${basedir}/target/files/empty">
      <fileset refid="javadoc.fileset"/>
      <mapper type="merge" to="javadoc.bin"/>
    </copy>

    <!-- no dependencies sources -->
    <check.file.not.exists file="${basedir}/target/files/empty/sources.bin"/>

    <!-- no dependencies javadoc -->
    <check.file.not.exists file="${basedir}/target/files/empty/javadoc.bin"/>
  </target>

  <target name="test-deps-profile" depends="initTaskDefs">
    <delete dir="${basedir}/target/tmp"/>
    <artifact:dependencies settingsFile="./src/test/settings-profile-default.xml">
      <dependency groupId="it.ant-tasks" artifactId="release" version="2.0.7"/>
      <localRepository path="${basedir}/target/tmp"/>
    </artifact:dependencies>

    <delete dir="${basedir}/target/tmp"/>
    <artifact:dependencies settingsFile="./src/test/settings-profile-file.xml">
      <dependency groupId="it.ant-tasks" artifactId="release" version="2.0.7"/>
      <localRepository path="${basedir}/target/tmp"/>
    </artifact:dependencies>
  </target>

  <target name="test-deploy-spaces" depends="initTaskDefs,installSshProvider">
    <echo file="target/test file.txt">dummy</echo>
    <artifact:deploy file="target/test file.txt">
      <!-- intentionnally left without id to check default id: see MANTTASKS-103 -->
      <remoteRepository url="scp://localhost/tmp/deployment-repo"/>
      <localrepository refid="local.repository"/>
      <pom refid="maven.project"/>
    </artifact:deploy>

    <!-- MANTTASKS-103: maven-metadata-scp: should not exist since scp: is an illegal remoteRepository id -->
    <check.file.not.exists file="${basedir}/target/local-repo/org/apache/maven/maven-ant-tasks/maven-metadata-scp://localhost"/>
  </target>

  <target name="test-deploy" depends="initTaskDefs,installSshProvider">
    <property name="outJar" value="${maven.project.build.directory}/${maven.project.build.finalName}.jar"/>
    <property name="targetDir" value="${deploy.repository.url}/org/apache/maven/maven-ant-tasks/${pom.xml.project.version}"/>
    <delete dir="${deploy.repository.url}"/>

    <artifact:install file="${outJar}">
      <pom refid="maven.project"/>
    </artifact:install>

    <echo>Note: only works on snapshots!</echo>
    <artifact:deploy file="${outJar}">
      <remoteSnapshotRepository refid="deploy.repository"/>
      <pom refid="maven.project"/>
    </artifact:deploy>
    <!-- deployment in ${deploy.repository.url} should have created a directory -->
    <check.file.exists file="${targetDir}" type="dir"/>
    <!-- uniqueVersion="true" by default: file -SNAPSHOT.jar should not exist -->
    <check.file.not.exists file="${targetDir}/maven-ant-tasks-${pom.xml.project.version}.jar"/>

    <artifact:deploy file="${outJar}" uniqueVersion="false">
      <remoteSnapshotRepository refid="deploy.repository"/>
      <pom refid="maven.project"/>
    </artifact:deploy>
    <!-- when uniqueVersion="false", file -SNAPSHOT.jar should be created -->
    <check.file.exists file="${targetDir}/maven-ant-tasks-${pom.xml.project.version}.jar"/>

    <artifact:deploy file="${outJar}">
      <remoteRepository url="scp://localhost/tmp/deployment-repo" id="scp.localhost.repo">
        <authentication username="${user.name}" privateKey="${user.home}/.ssh/id_dsa"/>
      </remoteRepository>
      <pom refid="maven.project"/>
    </artifact:deploy>
  </target>

  <target name="test-scm" depends="initTaskDefs">
    <echo>Testing SCM Wagon</echo>
    <mkdir dir="target"/>

    <pathconvert targetos="unix" property="repo.path.unix">
      <map from="c:" to=""/>
      <path>
        <pathelement location="${basedir}/target/deployment-repo-scm"/>
      </path>
    </pathconvert>

    <property name="scm.url" value="file://${repo.path.unix}"/>

    <delete dir="${repo.path.unix}"/>

    <exec executable="svnadmin" failonerror="true">
      <arg line="create ${repo.path.unix}"/>
    </exec>

    <artifact:localRepository id="local.repository" path="${basedir}/target/local-repo" layout="default"/>

    <artifact:remoteRepository id="deploy.repository" url="scm:svn:${scm.url}" layout="default"/>

    <artifact:dependencies pathId="dependency.classpath">
      <dependency groupId="org.apache.maven.wagon" artifactId="wagon-provider-test" version="1.0-alpha-4"/>
      <dependency groupId="org.apache.maven.archiva" artifactId="archiva-configuration" version="1.0-SNAPSHOT"/>
      <localRepository refid="local.repository"/>
    </artifact:dependencies>

    <exec executable="svn" dir="${basedir}/target/local-repo" failonerror="true">
      <arg line="import -m 'import' ${scm.url}"/>
    </exec>

    <delete dir="${basedir}/target/local-repo-scm"/>

    <!-- Could the SCM provider initialise this? -->
    <exec executable="svn" dir="${basedir}/target" failonerror="true">
      <arg line="co ${scm.url} -N local-repo-scm"/>
    </exec>

    <artifact:localRepository id="local.repository.scm" path="${basedir}/target/local-repo-scm" layout="default"/>

    <artifact:dependencies pathId="dependency.classpath.scm">
      <dependency groupId="org.apache.maven.wagon" artifactId="wagon-provider-test" version="1.0-alpha-4"/>
      <dependency groupId="org.apache.maven.archiva" artifactId="archiva-configuration" version="1.0-SNAPSHOT"/>
      <localRepository refid="local.repository.scm"/>
      <remoteRepository refid="deploy.repository"/>
    </artifact:dependencies>

    <property name="outJar" value="${maven.project.build.directory}/${maven.project.build.finalName}.jar"/>
    <artifact:deploy file="${outJar}">
      <localRepository refid="local.repository.scm"/>
      <remoteRepository refid="deploy.repository"/>
      <pom refid="maven.project"/>
    </artifact:deploy>
  </target>

  <target name="test-invalid-pom-ref" depends="initTaskDefs">
    <artifact:dependencies>
      <pom refid="invalid-ref" />
    </artifact:dependencies>
  </target>

  <target name="test-no-dist-mgmt" depends="initTaskDefs">
    <artifact:deploy file="sample-build-test.pom">
      <pom file="sample-build-test.pom" />
      <remoteRepository refid="deploy.repository" />
    </artifact:deploy>
  </target>
  
  <target name="test-deploy-attached" depends="initTaskDefs">
    <echo message="test" file="${basedir}/target/sample-build-test.pom.asc"/>
    
    <artifact:deploy file="sample-build-test.pom">
      <pom file="sample-build-test.pom" />
      <remoteRepository refid="deploy.repository" />
      <attach file="${basedir}/target/sample-build-test.pom.asc" type="pom.asc"/>
    </artifact:deploy>
  </target>
  
  <target name="test-install-attached" depends="initTaskDefs">
    <echo message="test" file="${basedir}/target/sample-build-test.pom.asc"/>
    
    <artifact:install file="sample-build-test.pom">
      <pom file="sample-build-test.pom" />
      <localRepository refid="local.repository"/>
      <attach file="${basedir}/target/sample-build-test.pom.asc" type="pom.asc"/>
    </artifact:install>
  </target>

  <target name="test-install-provider" depends="initTaskDefs">
    <artifact:install-provider groupId="it.ant-tasks" artifactId="wagon-foo" version="1.0-beta-2">
      <localRepository refid="local.repository"/>
      <remoteRepository url="file://${user.dir}/src/test/repo" id="test.repo"/>
    </artifact:install-provider>
  </target>

  <target name="test-pom-with-parent" depends="initTaskDefs">
    <artifact:pom file="${user.dir}/src/test/pom-with-parent.xml" id="my.maven.project">
      <localRepository refid="local.repository"/>
      <remoteRepository url="file://${user.dir}/src/test/repo" id="test.repo"/>
    </artifact:pom>

    <echo>Artifact ID = ${my.maven.project.artifactId}</echo>

    <echo>Parent Artifact ID = ${my.maven.project.parent.artifactId}</echo>

  	<!-- MANTTASKS-107 repository defined in pom must be used to download parent pom -->
    <delete dir="${basedir}/target/tmp"/>
    <artifact:pom file="${user.dir}/src/test/pom-with-parent2.xml" id="my.maven.project2">
      <localRepository path="${basedir}/target/tmp"/>
    </artifact:pom>
  </target>

  <macrodef name="check.file.exists">
    <attribute name="file"/>
    <attribute name="type" default="file"/>
    <sequential>
      <echo>Checking for existence of @{type}: @{file}</echo>
      <fail message="Unable to find a required @{type}: @{file}">
        <condition>
          <not>
            <available file="@{file}" type="@{type}"/>
          </not>
        </condition>
      </fail>
    </sequential>
  </macrodef>

  <macrodef name="check.file.not.exists">
    <attribute name="file"/>
    <attribute name="type" default="file"/>
  	<sequential>
      <echo>Checking for non-existence of @{type}: @{file}</echo>
      <fail message="Found a @{type} that was not supposed to exist: @{file}">
        <condition>
          <available file="@{file}" type="@{type}"/>
        </condition>
      </fail>
    </sequential>
  </macrodef>
</project>
