<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="jspc_example" basedir="." default="jspc.all">
	<description>
    		Beispiel Ant Skript um Seite vorzukompilieren...
	</description>


	<!--
		Benoetigte Properties, diese muessen angepasst werden!
	-->

	<!-- Ort der JBoss Installation diese ist nicht dringend benoetigt, wird aber
			in dem Beispiel verwendet, um die benoetigten Jar Archive zu finden. -->
	<property name="jboss.home" value="c:\\Dokumente und Einstellungen\\tibecker\\Eigene Dateien\\jboss-4.0.5.GA" />
	<property name="jboss.server" value="${jboss.home}/server/default" />
	
	<!-- 
		Verzeichnis in dem JBoss' Tomcat nach kompilierten JSP Dateien sucht. Per Default ist
		das work Verzeichnis der jeweiligen Webapplikation konfiguriert.
	-->
	<property name="scratch.dir" value="${jboss.server}/work/jboss.web/localhost/jboss-hacks_test/"/>
	<property name="scratch.dir.tomcat" value="C:\\Programme\\apache-tomcat-5.5.26\\work\\Catalina\\localhost\\jboss-hacks_test\\"/>

	
	<!-- 
		Ort ab dem angefangen wird, nach JSP (Quell-)Seiten zu suchen.
	-->
	<property name="webapp" value="../../webapp" />
	<!--
		Verzeichnis wo Java Quelltext, der aus den JSP Seiten generiert wird, abgelegt wird. 
	-->
	<property name="src.generated" value="../../generated" />
	<!--
		Outputverzeichnis der generierten Servletklassen.  
	-->
	<property name="generated.output" value="../../../build/generated" />
	<property name="servlet.output" value="${generated.output}/classes" />
	



	<property name="jboss.deploy" value="${jboss.server}/deploy" />
	<property name="jboss.lib" value="${jboss.server}/lib" />

	<!--
		Benoetigte Dateien fuer den jspc ant task.
			* Compiler
			* JSP & Servlet
			
		In diesem Beispiel beziehen sich die jar's auf eine JBoss Installation,
		es handelt sich aber um Archive, die auch mit Tomcat ausgeliefert werden.
	-->

	<path id="jspc.classpath">
		<fileset dir="${jboss.deploy}/jbossweb-tomcat55.sar">
			<include name="jasper-compiler.jar" />
			<include name="jasper-compiler-jdt.jar" />
			<include name="jasper-runtime.jar" />
			<include name="commons-el.jar" />
		</fileset>

		<fileset dir="${jboss.lib}">
			<include name="jboss-j2ee.jar" />
			<include name="javax.servlet.jar" />
			<include name="javax.servlet.jsp.jar" />
			<include name="commons-logging.jar" />
		</fileset>
		<fileset dir="${ant.home}/lib">
			<include name="ant.jar" />
		</fileset>

	</path>

	<!--
		Definiert den jspc Task neu. Ant wird auch mit einem jspc Task
		ausgeliefert, dieser gilt aber als deprecated.
	-->
	<taskdef classname="org.apache.jasper.JspC" name="jspc">
		<classpath>
			<path refid="jspc.classpath" />
		</classpath>
	</taskdef>

	<!--
		Erstellt die noetigen Verzeichnisse.
	-->
	<target name="jspc.prepare">
		<mkdir dir="${src.generated}"/>
		<mkdir dir="${servlet.output}"/>
	</target>
	
	<!--
		Loescht die erstellten Verzeichnisse und Kompilate.
	-->
	<target name="jspc.clean">
		<delete dir="${generated.output}"/>
		<delete dir="${src.generated}"/>
	</target>
	
	<!--
		Task um aus den JSP Seiten Java Quelltext von Servlets zu generieren.
	-->
	<target name="jspc.java" depends="jspc.prepare">
		<echo message="${webapp}"/>
		<jspc verbose="1" outputDir="${src.generated}" uriroot="${webapp}" />
	</target>
	
	<!--
		Task um den in `jspc.java` generierten Java Quelltext zu kompilieren.
	-->
	<target name="jspc.compile" depends="jspc.java">
		<javac destdir="${servlet.output}" debug="on" failonerror="false">
			<classpath refid="jspc.classpath" />
			<src path="${src.generated}" />
			<include name="**/*.java" />
		</javac>
	</target>
	
	<!--
		Kopiert die *.class Dateien in das JBoss Verzeichnis.
	-->
	<target name="jspc.deploy" depends="jspc.compile">
		<copydir src="${servlet.output}" dest="${scratch.dir}" />
	</target>
	
	<target name="jspc.deploy.tomcat" depends="jspc.compile">
		<copydir src="${servlet.output}" dest="${scratch.dir.tomcat}" />
	</target>
	
	<!--
		Fuehrt alles durch und raeumt danach auf.
	-->
	<target name="jspc.all" depends="jspc.deploy, jspc.clean" />
</project>