<project name="manager" default="build-main" basedir=".">


  <!-- ===================== Initialize Property Values =================== -->

  <!-- See "build.properties.sample" in the top level directory for all     -->
  <!-- property values you must customize for successful building!!!        -->
  <property file="build.properties"/>
  <property file="../build.properties"/>
  <property file="../../build.properties"/>
  <property file="${user.home}/build.properties"/>

  <property name="build.compiler"  value="modern"/>
  <property name="webapps.build"   value="../build"/>
  <property name="webapps.dist"    value="../dist"/>
  <property name="webapp.name"     value="manager"/>

  <!-- Dependent JARs and files -->
  <property name="servlet-api.jar" value="${api.home}/jsr154/dist/lib/servlet-api.jar"/>
  <property name="jsp-api.jar"     value="${api.home}/jsr152/dist/lib/jsp-api.jar"/>

  <!-- Construct Admin classpath -->
  <path id="manager.classpath">
    <pathelement location="${catalina.deploy}/classes"/>
    <pathelement location="${commons-fileupload.jar}"/>
    <pathelement location="${commons-logging.jar}"/>   
    <pathelement location="${commons-modeler.jar}"/>
    <pathelement location="${jmx.jar}"/>
    <pathelement location="${servlet-api.jar}"/>
    <pathelement location="${jsp-api.jar}"/>
  </path>


	  <!-- ======================== BUILD: Copy JARs ========================== -->
	  <target name="copy-fileupload.jar">
	    <copy todir="${webapps.build}/${webapp.name}/WEB-INF/lib" file="${commons-fileupload.jar}"/>
	  </target>


  <!-- =================== BUILD: Create Directories ====================== -->
  <target name="build-prepare">
    <mkdir dir="${webapps.build}"/>
    <mkdir dir="${webapps.build}/${webapp.name}"/>
    <mkdir dir="${webapps.build}/${webapp.name}/images"/>
    <mkdir dir="${webapps.build}/${webapp.name}/WEB-INF"/>
    <mkdir dir="${webapps.build}/${webapp.name}/WEB-INF/classes"/>
  </target>


  <!-- ================ BUILD: Copy Static Files ========================== -->
  <target name="build-static" depends="build-prepare,copy-fileupload.jar">
    <copy todir="${webapps.build}/${webapp.name}">
      <fileset dir=".">
        <exclude name="build.*"/>
      </fileset>
    </copy>
  </target>


  <!-- ================= BUILD: Compile Server Components ================= -->
  <target name="build-main" depends="build-static">

    <!-- Top Level Directory -->
    <style basedir="../docs"
           destdir="${webapps.build}/${webapp.name}"
           extension=".html"
           style="tomcat-docs.xsl"
           excludes="build.xml project.xml"
           includes="manager-howto.xml,html-manager-howto.xml">
      <param name="relative-path" expression="."/>
      <param name="project-menu" expression="nomenu"/>
      <param name="standalone" expression="standalone"/>
    </style>

    <!-- Images Subdirectory -->
    <copy todir="${webapps.build}/${webapp.name}/images">
      <fileset dir="../docs/images">
        <exclude name="printer.gif"/>
      </fileset>
    </copy>

    <javac   srcdir="WEB-INF/classes" 
             destdir="${webapps.build}/${webapp.name}/WEB-INF/classes"
             debug="${compile.debug}" deprecation="${compile.deprecation}"
             optimize="${compile.optimize}"
             excludes="**/CVS/**">
      <classpath refid="manager.classpath" />
    </javac>

  </target>


  <!-- ==================== BUILD: Rebuild Everything ===================== -->
  <target name="all" depends="build-clean,build-main"
   description="Clean and build manager webapp"/>


  <!-- ======================= BUILD: Clean Directory ===================== -->
  <target name="build-clean">
    <delete dir="${webapps.build}/${webapp.name}"/>
  </target>


  <!-- ======================= DIST: Create Directories =================== -->
  <target name="dist-prepare">
    <mkdir dir="${webapps.dist}"/>
  </target>


  <!-- ======================= DIST: Create Distribution Files ============ -->
  <target name="dist" depends="build-main,dist-prepare"
   description="Create manager webapp binary distribution">
      <jar   jarfile="${webapps.dist}/${webapp.name}.war"
             basedir="${webapps.build}/${webapp.name}" includes="**"/>
  </target>


  <!-- ======================= DIST: Clean Directory ====================== -->
  <target name="dist-clean">
    <deltree dir="${dist.dir}/${webapp.name}"/>
  </target>


  <!-- ====================== Convenient Synonyms ========================= -->
  <target name="clean" depends="build-clean,dist-clean"
   description="Clean build and dist directories"/>


</project>
