<?xml version="1.0"?>
<!-- ====================================================================== 
  
     Descripcion:
     Script Ant para crear un proyecto java con la siguiente estructura
     
     src  - codigo fuente Java
     test - codigo fuente pruebas unitarias
     lib  - bibliotecas (archivos JAR) que necesita el proyecto
     bin  - codigo binario                 
     
     Cambiar las propiedades segun lo que se requiera en otros proyectos.  
       
     Autor:     Gustavo De la Cruz Tovar                                                                
     ====================================================================== -->

<project name="servlets" default="iniciar" basedir=".">
	<description>
            Script Ant que permite gestionar a un proyecto Java
    </description>

	<!-- propiedades del proyecto -->
	<property name="src.dir" value="${basedir}/src" />
	<property name="bin.dir" value="${basedir}/bin" />
	<property name="lib.dir" value="${basedir}/lib" />
	<property name="test.dir" value="${basedir}/test" />
	<property name="config.dir" value="${basedir}/config" />
	<property name="baseweb.dir" value="${basedir}/web" />
	<property name="deploy.dir" value="${basedir}/deploy" />
	<property name="jsp.dir" value="${basedir}/jsp" />
	<property name="web-inf.dir" value="${baseweb.dir}/WEB-INF" />
	<property name="web-inf.lib" value="${web-inf.dir}/lib" />
	<property name="web-inf.classes" value="${web-inf.dir}/classes" />
	<property name="jar.nombre" value="primero.jar" />
	<property name="war.nombre" value="primero.war" />


	<path id="master.classpath">
		<!-- incluir todos los archivos jar que se situen bajo el directorio lib -->
		<fileset dir="${lib.dir}">
			<include name="*.jar" />
		</fileset>
		<!-- incluir en el classpath al codigo binario del proyecto-->
		<pathelement path="${bin.dir}" />
	</path>



	<!-- ================================= 
          target: iniciar              
         ================================= -->
	<target name="iniciar" description="Crear directorios">
		<mkdir dir="${src.dir}" />
		<mkdir dir="${bin.dir}" />
		<mkdir dir="${lib.dir}" />
		<mkdir dir="${test.dir}" />
		<mkdir dir="${config.dir}" />
		<mkdir dir="${deploy.dir}" />
		<mkdir dir="${baseweb.dir}" />
		<mkdir dir="${jsp.dir}" />
		<mkdir dir="${web-inf.dir}" />
		<mkdir dir="${web-inf.lib}" />
		<mkdir dir="${web-inf.classes}" />
	</target>
	<!-- ================================= 
	          target: compilar codigo fuente              
	         ================================= -->
	<target name="compilar" depends="iniciar" description="Compilar codigo Java">
		<javac srcdir="${src.dir}" destdir="${bin.dir}" classpath="$">
			<classpath refid="master.classpath" />
		</javac>
	</target>
	<!-- ================================= 
	          target: compialar pruebas unitarias              
	         ================================= -->
	<target name="compilar.pruebas" depends="compilar" description="Compilar pruebas unitarias Java">
		<javac srcdir="${test.dir}" destdir="${bin.dir}" classpath="$">
			<classpath refid="master.classpath" />
		</javac>
	</target>

	<!-- ================================= 
	          target: ejecutar pruebas unitarias con Herramienta grafica              
	         ================================= -->

	<target name="ejecutar.pruebas" depends="compilar.pruebas" description="Ejecutar pruebas unitarias modulo grafico">

		<java classname="junit.swingui.TestRunner" fork="yes">
			<classpath refid="master.classpath" />
		</java>
	</target>
	<!-- ================================= 
		          target: empaquetar en un archivo jar el codigo java, sin incluir a las pruebas unitarias              
		         ================================= -->
	<target name="empaquetar.libreria" depends="compilar" description="Generar al archivo jar">
		<jar destfile="${web-inf.lib}/${jar.nombre}">
			<fileset dir="${bin.dir}" excludes="test/** **/*Test.class" />
		</jar>
	</target>
	<!-- ================================= 
			          target: empaquetar en un archivo WAR al componente WEB, sin incluir a las pruebas unitarias              
			         ================================= -->
	<target name="empaquetar.war" depends="empaquetar.libreria" description="Generar al archivo WAR">
		<war destfile="${deploy.dir}/${war.nombre}" basedir="${baseweb.dir}" 
			webxml="${config.dir}/web.xml">
			<fileset dir="${jsp.dir}" />
		</war>
	</target>
	<target name="limpiar" description="Limpiar clases Java">
		<delete dir="${bin.dir}" />
		<delete dir="${web-inf.dir}" />
		<delete dir="${deploy.dir}" />
		<delete file="${lib.dir}/${jar.nombre}" />
	</target>

</project>