<project name="Servlet Project" default="compile" basedir=".">
	<!-- ===================== Property Definitions =========================== -->
	<!-- Aus der Tomcat Dokumentation (C:\jakarta-tomcat-4.1.24\webapps\tomcat-docs\appdev\sample) -->
	<!-- ==================== File and Directory Names ======================== -->
	<!--
  These properties generally define file and directory names (or paths) that
  affect where the build process stores its outputs.
  app.name             Base name of this application, used to
                       construct filenames and directories.
                       Defaults to "myapp".

  app.path             Context path to which this application should be
                       deployed (defaults to "/" plus the value of the
                       "app.name" property).

  app.version          Version number of this iteration of the application.

  build.home           The directory into which the "prepare" and
                       "compile" targets will generate their output.
                       Defaults to "build".

  catalina.home        The directory in which you have installed
                       a binary distribution of Tomcat 4.  This will
                       be used by the "deploy" target.

  dist.home            The name of the base directory in which
                       distribution files are created.
                       Defaults to "dist".

  manager.password     The login password of a user that is assigned the
                       "manager" role (so that he or she can execute
                       commands via the "/manager" web application)

  manager.url          The URL of the "/manager" web application on the
                       Tomcat installation to which we will deploy web
                       applications and web services.

  manager.username     The login username of a user that is assigned the
                       "manager" role (so that he or she can execute
                       commands via the "/manager" web application)

-->
	<!-- basedir ist das aktuelle Verzeichnis (ganz oben gesetzt) -->
	<property name="app.name" value="servlet"/>
	<property name="app.path" value="/${app.name}"/>
	<property name="app.version" value="1.0"/>
	<property name="build.home" value="${basedir}/build"/>
	<property name="catalina.home" value="c:/jakarta-tomcat-4.1.27"/>

	<property name="inst.home" value="${catalina.home}/work/Standalone/localhost/${app.name}"/>
	<property name="classes.home" value="${build.home}/WEB-INF/classes"/>
	<property name="servlet.home" value="${catalina.home}/webapps/ROOT/WEB-INF/classes"/>

	<property name="dist.home" value="${basedir}/dist"/>
	<property name="docs.home" value="${basedir}/doc"/>
	<property name="manager.url" value="http://localhost:80/manager"/>
	<property name="manager.username"   value="manager"/>
  	<property name="manager.password"   value="manager"/>		
	
	<property name="src.home" value="${basedir}"/>
	<property name="web.home" value="${basedir}/web"/>



<!--  ==================== Compilation Control Options ==================== -->
	
	<taskdef name="deploy"    classname="org.apache.catalina.ant.DeployTask"/>
  	<taskdef name="install"   classname="org.apache.catalina.ant.InstallTask"/>
  	<taskdef name="list"      classname="org.apache.catalina.ant.ListTask"/>
  	<taskdef name="reload"    classname="org.apache.catalina.ant.ReloadTask"/>
  	<taskdef name="remove"    classname="org.apache.catalina.ant.RemoveTask"/>
  	<taskdef name="resources" classname="org.apache.catalina.ant.ResourcesTask"/>
  	<taskdef name="roles"     classname="org.apache.catalina.ant.RolesTask"/>
  	<taskdef name="start"     classname="org.apache.catalina.ant.StartTask"/>
  	<taskdef name="stop"      classname="org.apache.catalina.ant.StopTask"/>
  	<taskdef name="undeploy"  classname="org.apache.catalina.ant.UndeployTask"/>

<!--  ==================== Compilation Control Options ==================== -->
	<!--
  These properties control option settings on the Javac compiler when it
  is invoked using the <javac> task.
  compile.debug        Should compilation include the debug option?

  compile.deprecation  Should compilation include the deprecation option?

  compile.optimize     Should compilation include the optimize option?
-->
	<property name="compile.debug" value="true"/>
	<property name="compile.deprecation" value="false"/>
	<property name="compile.optimize" value="true"/>

	<!-- ==================== Compilation Classpath =========================== -->
	<!--

  Rather than relying on the CLASSPATH environment variable, Ant includes
  features that makes it easy to dynamically construct the classpath you
  need for each compilation.  The example below constructs the compile
  classpath to include the servlet.jar file, as well as the other components
  that Tomcat makes available to web applications automatically, plus anything
  that you explicitly added.

-->
	<path id="compile.classpath">
		<!-- Include all JAR files that will be included in /WEB-INF/lib -->
	    	<pathelement location="${servlet.jar}"/>
		<!-- Include all elements that Tomcat exposes to applications -->
		<pathelement location="${catalina.home}/common/classes"/>
		<fileset dir="${catalina.home}/common/">
			<include name="*.jar"/>
		</fileset>
		<fileset dir="${catalina.home}/common/lib">
			<include name="*.jar"/>
		</fileset>
		<pathelement location="${catalina.home}/shared/classes"/>
		<fileset dir="${catalina.home}/shared/lib">
			<include name="*.jar"/>
		</fileset>
	</path>
	
	<!-- ==================== All Target ====================================== -->
	<!--

  The "all" target is a shortcut for running the "clean" target followed
  by the "compile" target, to force a complete recompile.

-->
	<target name="all" depends="clean,compile" description="Clean build and dist directories, then compile"/>
	
	<!-- ==================== Clean Target ==================================== -->
	<!--

  The "clean" target deletes any previous "build" and "dist" directory,
  so that you can be ensured the application can be built from scratch.

-->
	<target name="clean" description="Delete old build and dist directories">
		<delete dir="${build.home}"/>
		<delete dir="${dist.home}"/>
	</target>
	
	<!-- ==================== Compile Target ================================== -->
	<!--

  The "compile" target transforms source files (from your "src" directory)
  into object files in the appropriate location in the build directory.

-->
	<target name="compile" depends="prepare" description="Compile Java sources">
		<!-- Compile Java classes as necessary -->
		<mkdir dir="${build.home}/WEB-INF/classes"/>
		<javac srcdir="${src.home}" destdir="${build.home}/WEB-INF/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}">
			<classpath refid="compile.classpath"/>
		</javac>
		
		<!-- Copy application resources : das wird bereits mit destdir in javac erreicht!
		<copy todir="${build.home}/WEB-INF/classes">
			<fileset dir="${src.home}" excludes="**/*.java"/>
		</copy> -->
	</target>
	<!-- ==================== Dist Target ===================================== -->
	<!--

  The "dist" target creates a binary distribution of your application
  in a directory structure ready to be archived in a tar.gz or zip file.
  Note that this target depends on two others:

  * "compile" so that the entire web application (including external
    dependencies) will have been assembled

  * "javadoc" so that the application Javadocs will have been created

-->
	<target name="dist" depends="compile,javadoc" description="Create binary distribution">
		<!-- Copy documentation subdirectories -->
		<mkdir dir="${dist.home}/docs"/>
		<copy todir="${dist.home}/docs">
			<fileset dir="${docs.home}"/>
		</copy>
		<!-- Create application JAR file -->
		<jar jarfile="${dist.home}/${app.name}-${app.version}.war" basedir="${build.home}"/>
		<!-- Copy additional files to ${dist.home} as necessary -->
	</target>
	<!-- ==================== Install Target ================================== -->
	<!--

  The "install" target tells the specified Tomcat 4 installation to dynamically
  install this web application and make it available for execution.  It does
  *not* cause the existence of this web application to be remembered across
  Tomcat restarts; if you restart the server, you will need to re-install all
  this web application.

  If you have already installed this application, and simply want Tomcat to
  recognize that you have updated Java classes (or the web.xml file), use the
  "reload" target instead.

  NOTE:  This target will only succeed if it is run from the same server that
  Tomcat is running on.

  NOTE:  This is the logical opposite of the "remove" target.

-->
	<target name="install" depends="compile" description="Install application to servlet container">
		<install url="${manager.url}" username="${manager.username}" password="${manager.password}" path="${app.path}" war="file://../work/Standalone/localhost/servlet"/>

		<copy todir="${inst.home}">
			<fileset dir="${dist.home}"/>
		</copy>
		
		<!-- wie gehabt, aber mit ant -->
		<copy todir="${servlet.home}">
			<fileset dir="${classes.home}"/>
		</copy>
		
	</target>
	
	<!-- ==================== Javadoc Target ================================== -->
	<!--

  The "javadoc" target creates Javadoc API documentation for the Java
  classes included in your application.  Normally, this is only required
  when preparing a distribution release, but is available as a separate
  target in case the developer wants to create Javadocs independently.

-->
	<target name="javadoc" depends="compile" description="Create Javadoc API documentation">
		<javadoc sourcefiles="*.java" sourcepath="${src.home}" destdir="${docs.home}/api" packagenames="*">
			<classpath refid="compile.classpath"/>
		</javadoc>
	</target>
	<!-- ====================== List Target =================================== -->
	<!--

  The "list" target asks the specified Tomcat 4 installation to list the
  currently running web applications, either loaded at startup time or
  installed dynamically.  It is useful to determine whether or not the
  application you are currently developing has been installed.

-->
	<target name="list" description="List installed applications on servlet container">
		<list url="${manager.url}" username="${manager.username}" password="${manager.password}"/>
	</target>
	<!-- ==================== Prepare Target ================================== -->
	<!--

  The "prepare" target is used to create the "build" destination directory,
  and copy the static contents of your web application to it.  If you need
  to copy static files from external dependencies, you can customize the
  contents of this task.

  Normally, this task is executed indirectly when needed.

-->
	<target name="prepare">
		<!-- Create build directories as needed -->
		<mkdir dir="${build.home}"/>
		<mkdir dir="${build.home}/WEB-INF"/>
		<mkdir dir="${build.home}/WEB-INF/classes"/>
		<!-- Copy static content of this web application -->
		<copy todir="${build.home}">
			<fileset dir="${web.home}"/>
		</copy>
		<!-- Copy external dependencies as required -->
		<!-- *** CUSTOMIZE HERE AS REQUIRED BY YOUR APPLICATION *** -->
		<mkdir dir="${build.home}/WEB-INF/lib"/>
		<!--
    <copy todir="${build.home}/WEB-INF/lib" file="${servlet1.jar}"/>
-->
		<!-- Copy static files from external dependencies as needed -->
		<!-- *** CUSTOMIZE HERE AS REQUIRED BY YOUR APPLICATION *** -->
	</target>
	<!-- ==================== Reload Target =================================== -->
	<!--

  The "reload" target tells the specified Tomcat 4 installation to dynamically
  reload this web application, to reflect changes in the underlying classes or
  the "web.xml" deployment descriptor.

-->
	<target name="reload" depends="compile" description="Reload application on servlet container">
		<reload url="${manager.url}" username="${manager.username}" password="${manager.password}" path="${app.path}"/>
	</target>
	<!-- ==================== Remove Target =================================== -->
	<!--

  The "remove" target tells the specified Tomcat 4 installation to dynamically
  remove this web application from service.

  NOTE:  This is the logical opposite of the "install" target.

-->
	<target name="remove" description="Remove application on servlet container">
		<remove url="${manager.url}" username="${manager.username}" password="${manager.password}" path="${app.path}"/>
	</target>

	<!-- ==================== Help Target =================================== -->
	<!--
		show available tasks : Aufruf ant -projecthelp
-->


</project>

