<?xml version="1.0" encoding="UTF-8"?>
<project name="Gestor de Documentos" default="dist" basedir=".">
<property name="app.name" value="docman"/>
<property name="app.home" value="."/>
<property name="src.home" value="${app.home}/src"/>
<property name="deploy.home" value="${app.home}/build/classes"/>
<property name="dist.home" value="${app.home}/dist"/>
<property name="dist.jar" value="${app.name}.jar"/>
<property name="dist.war" value="${app.name}.war"/>
<property name="doc.home" value="${app.home}/doc"/>
<property name="javadoc.home" value="${doc.home}/javadocs"/>
<property name="app.libdir" value="${app.home}/lib"/>
<property name="buildr.source" value="1.6"/>
<property name="test.home" value="${app.home}/test"/>
<property name="test.src" value="${test.home}/src"/>
<property name="test.classes" value="${test.home}/classes"/>
<property name="test.jndi-fs" value="/tmp/jndi-fs/"/>
<property name="test.reports" value="${test.home}/reports"/>
<path id="classpath.base">
<fileset dir="${app.libdir}">
<include name="*.jar"/>
</fileset>
</path>
<path id="classpath.test"> <!-- CP para compilar los tests -->
<pathelement location="${test.classes}" />
<fileset dir="${dist.home}">
<include name="*.jar"/>
</fileset>
<path refid="classpath.base" />
</path>
<!-- Crea la estructura de directorios de la aplicacion -->
<target name="prepare">
<mkdir dir="${dist.home}"/>
<mkdir dir="${deploy.home}"/>
<mkdir dir="${javadoc.home}"/>
<mkdir dir="${test.classes}"/>
<mkdir dir="${test.reports}"/>
</target>
<!-- Borra todo el deployment -->
<target name="clean">
<delete includeEmptyDirs="true" failonerror="false">
<fileset dir="${deploy.home}" />
</delete>
<delete includeEmptyDirs="true" failonerror="false">
<fileset dir="${dist.home}" />
</delete>
<delete includeEmptyDirs="true" failonerror="false">
<fileset dir="${javadoc.home}" />
</delete>
</target>
<!-- Compila los .java -->
<target name="build" depends="prepare">
<javac srcdir="${src.home}" destdir="${deploy.home}"
source="${buildr.source}"
debug="on"
optimize="off"
deprecation="off"
verbose="false"
failonerror="true"
includes="**/*.java"
encoding="utf-8">
<classpath refid="classpath.base" />
</javac>
</target>
<!-- Compila los .tests -->
<target name="buildTest" depends="dist">
<javac srcdir="${test.src}" destdir="${test.classes}"
source="${buildr.source}"
debug="on"
optimize="off"
deprecation="off"
verbose="false"
failonerror="true"
includes="**/*.java"
encoding="utf-8">
<classpath refid="classpath.test" />
</javac>
<mkdir dir="${test.jndi-fs}" /> <!-- directorio temporal usado en los tests -->
</target>
<!-- crea el javadoc -->
<target name="javadoc" depends="build">
<javadoc
packagenames="com.yubarta.docman.*,com.yubarta.utils.*"
sourcepath="${src.home}"
destdir="${javadoc.home}"
encoding="utf-8">
<classpath refid="classpath.base" />
</javadoc>
</target>
<!-- Crea una librería con la aplicación -->
<target name="dist" depends="build">
<jar destfile="${dist.home}/docmanRealm.jar"
basedir="${deploy.home}"
includes="**/*DocmanRealm.class,**/*MySesameLocalService.class" />
<delete file="${deploy.home}/com/yubarta/docman/admin/DocmanRealm.class" />
<jar destfile="${dist.home}/${dist.jar}"
basedir="${deploy.home}"/>
</target>
<!-- Lo hacemos todo -->
<target name="all" depends="clean,prepare,build,javadoc,dist"/>
<target name="test" depends="prepare,buildTest">
<echo message="TODO: decir cuales son los requerimientos para poder correr el test" />
<echo message="Mas fácil decir: lee doc/test.readme" />
<junit failureProperty="test.failure" fork="yes">
<classpath refid="classpath.test" />
<jvmarg value="-Djava.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory" />
<jvmarg value="-Djava.naming.provider.url=file://${test.jndi-fs}" />
<formatter type="xml" usefile="true" />
<!--test name="com.yubarta.utils.MiscTest" /-->
<batchtest todir="${test.reports}">
<fileset dir="${test.classes}" includes="**/*Test.class" />
</batchtest>
</junit>
<junitreport todir="${test.reports}">
<fileset dir="${test.reports}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${test.reports}/html"/>
</junitreport>
<fail message="test failed" if="test.failure" />
</target>
<!--
Este target necesita recibir como parametro el test a ejecutr; se invoca asi:
> ant oneTest -DtestName=com.yubarta.docman.impl.ResManInplTest
-->
<target name="oneTest" depends="buildTest">
<junit failureProperty="test.failure" showoutput="true" fork="yes">
<classpath refid="classpath.test" />
<jvmarg value="-Djava.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory" />
<jvmarg value="-Djava.naming.provider.url=file://${test.jndi-fs}" />
<formatter type="brief" usefile="false" />
<test name="${testName}" /> <!-- por ejemplo: com.yubarta.docman.impl.ResManImplTest" -->
</junit>
<fail message="test failed" if="test.failure" />
</target>
</project>