<project name="Jasper2" default="deploy" 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="${user.home}/build.properties"/>
  <property file="build.properties"/>
  <property file="build.properties.sample"/>
  <property file="${catalina.home}/build.properties"/>

  <!-- Build Defaults -->
  <property name="jasper.build"      value="${basedir}/build"/>
  <property name="catalina.home"     value="../../jakarta-tomcat-4.1/build"/>
  <property name="jasper.deploy"     value="${catalina.home}"/>
  <property name="jasper.dist"       value="${basedir}/dist"/>
  <property name="test.failonerror"  value="true"/>
  <property name="test.runner"       value="junit.textui.TestRunner"/>
  <property name="tools.jar"         value="${java.home}/lib/tools.jar"/>
  <property name="ant.jar"           value="${ant.home}/lib/ant.jar"/>
  <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 Jasper classpath -->
  <path id="jasper.classpath">
    <pathelement location="${ant.jar}"/>
    <pathelement location="${servlet-api.jar}"/>
    <pathelement location="${jsp-api.jar}"/>
    <pathelement location="${tools.jar}"/>
    <pathelement location="${jasper-compiler-jdt.jar}"/>
    <pathelement location="${xerces.jar}"/>
    <pathelement location="${xercesImpl.jar}"/>
    <pathelement location="${xml-apis.jar}"/>
    <pathelement location="${commons-el.jar}"/>
    <pathelement location="${commons-collections.jar}"/>
    <pathelement location="${commons-logging.jar}"/>
    <pathelement location="${commons-daemon-launcher.jar}"/>
    <pathelement location="${jasper.build}/shared/classes"/>
  </path>

  <!-- Construct unit tests classpath -->
  <path id="test.classpath">
    <pathelement location="${ant.jar}"/>
    <pathelement location="${junit.jar}"/>
    <pathelement location="${servlet-api.jar}"/>
    <pathelement location="${jsp-api.jar}"/>
    <pathelement location="${tools.jar}"/>
    <pathelement location="${xerces.jar}"/>
    <pathelement location="${xercesImpl.jar}"/>
    <pathelement location="${xml-apis.jar}"/>
    <pathelement location="${commons-collections.jar}"/>
    <pathelement location="${commons-launcher.jar}"/>
    <pathelement location="${jasper.build}/shared/classes"/>
    <pathelement location="${jasper.build}/tests"/>
  </path>


  <!-- =================== BUILD: Create Directories ====================== -->
  <target name="build-prepare">

    <available classname="junit.framework.TestCase" property="junit.present" />
    <available property="launcher.present"
     classname="org.apache.commons.launcher.Launcher"
     classpath="${commons-daemon-launcher.jar}"/>
    <available property="launcher.bootstrap.present"
     file="${commons-daemon-launcher-bootstrap.class}"/>

    <condition property="copy.launcher.jars">
      <and>
        <equals arg1="${launcher.present}" arg2="true" />
        <equals arg1="${launcher.bootstrap.present}" arg2="true" />
      </and>
    </condition>

    <mkdir dir="${jasper.build}"/>
    <mkdir dir="${jasper.build}/bin"/>
    <mkdir dir="${jasper.build}/common/classes"/>
    <mkdir dir="${jasper.build}/common/lib"/>
    <mkdir dir="${jasper.build}/shared/classes"/>
    <mkdir dir="${jasper.build}/shared/lib"/>

  </target>


  <!-- =================== BUILD: Copy Launcher Files ===================== -->
  <target name="copy-launcher.jars" if="copy.launcher.jars">
    <!-- <copy todir="${jasper.build}/common/lib" file="${ant.jar}"/> -->
    <copy todir="${jasper.build}/bin" file="${commons-daemon-launcher.jar}"/>
    <copy todir="${jasper.build}/bin" file="${commons-daemon-launcher-bootstrap.class}"/>
    <copy todir="${jasper.build}/bin">
      <fileset dir="src/bin" includes="*-using-launcher.*,launcher.properties,jasper.xml" />
    </copy>
  </target>


  <!-- =================== BUILD: Copy Static Files ======================= -->
  <target name="build-static" depends="build-prepare,copy-launcher.jars">

    <!-- Executable Commands -->
    <copy todir="${jasper.build}/bin">
      <fileset dir="src/bin" excludes="*-using-launcher.*,launcher.properties,jasper.xml" />
    </copy>
    <fixcrlf srcdir="${jasper.build}/bin" includes="*.sh" eol="lf"/>
    <fixcrlf srcdir="${jasper.build}/bin" includes="*.bat" eol="crlf"/>
    <chmod perm="+x" dir="${jasper.build}/bin" includes="*.sh"/>

  </target>


  <!-- ================= BUILD: Compile Server Components ================= -->
  <target name="build-main" depends="build-static,build-only">
    <!-- Extra operations: Supporting JAR Files -->
    <copy todir="${jasper.build}/shared/lib" file="${commons-el.jar}"/>
  </target>

  <!-- Just build jasper -->
  <target name="build-only">
    <property name="jasper.classes" value="${jasper.build}/shared/classes"/>
    <property name="jasper-compiler.jar" value="${jasper.build}/shared/lib/jasper-compiler.jar"/>
    <property name="jasper-runtime.jar" value="${jasper.build}/shared/lib/jasper-runtime.jar"/>

    <!-- Compile internal server components -->
    <javac srcdir="src/share" destdir="${jasper.classes}"
           debug="${compile.debug}"
           deprecation="${compile.deprecation}"
           source="${compile.source}"
           optimize="${compile.optimize}"
           excludes="**/CVS/**">
      <classpath refid="jasper.classpath" />
    </javac>

    <!-- Copy static resource files -->
    <copy todir="${jasper.classes}">
      <fileset dir="src/share">
        <include name="**/*.properties"/>
        <include name="**/*.dtd"/>
      </fileset>
    </copy>

   <!-- Jasper Compiler JAR File -->
   <jar  jarfile="${jasper-compiler.jar}">
      <fileset dir="${jasper.classes}">
        <include name="org/apache/jasper/compiler/**" />
        <include name="org/apache/jasper/xmlparser/**" />
        <include name="org/apache/jasper/servlet/**" />
        <include name="org/apache/jasper/tagplugins/**" />
        <exclude name="org/apache/jasper/Constants.class" />
        <exclude name="org/apache/jasper/JasperException.class" />
        <include name="org/apache/jasper/*.class" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
      </fileset>
    </jar>

    <!-- Jasper Runtime JAR File -->
    <jar  jarfile="${jasper-runtime.jar}">
      <fileset dir="${jasper.classes}">
        <include name="org/apache/jasper/Constants.class" />
        <include name="org/apache/jasper/JasperException.class" />
        <include name="org/apache/jasper/compiler/Localizer.class" />
        <include name="org/apache/jasper/resources/**" />
        <include name="org/apache/jasper/runtime/**" />
        <include name="org/apache/jasper/security/**" />
        <include name="org/apache/jasper/util/**" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
      </fileset>
    </jar>

  </target>


  <!-- ================ BUILD: Create Jasper Javadocs ===================== -->
  <target name="javadoc">
    <delete dir="${jasper.build}/javadoc"/>
    <mkdir dir="${jasper.build}/javadoc"/>
    <javadoc packagenames="org.apache.jasper.*"
     classpathref="jasper.classpath"
     sourcepath="src/share"
     destdir="${jasper.build}/javadoc"
     author="true"
     version="true"
     windowtitle="Jasper Internal API Documentation"
     doctitle="Jasper API"
     bottom="Copyright &#169; 2000-2004 Apache Software Foundation.  All Rights Reserved."
     additionalparam="-breakiterator"
    />
  </target>


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


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


  <!-- =============== BUILD: Compile Unit Tests ========================== -->
  <target name="build-tests" depends="build-main" if="junit.present">
    <mkdir      dir="${jasper.build}/tests"/>
    <!-- Compile unit test classes -->
<!--
    <javac   srcdir="src/test" destdir="${jasper.build}/tests"
             deprecation="${compile.deprecation}"
             debug="${compile.debug}"
             source="${compile.source}"
             optimize="off"
             excludes="**/CVS/**">
      <classpath refid="test.classpath"/>
    </javac>
-->
  </target>


  <!-- ==================== BUILD: Execute Unit Tests ===================== -->
  <target name="test" if="junit.present"
   description="Run all unit test cases"
   depends="build-tests">
  </target>


  <!-- ====================== DEPLOY: Create Directories ================== -->
  <target name="deploy-prepare">
    <mkdir dir="${jasper.deploy}"/>
    <mkdir dir="${jasper.deploy}/bin"/>
    <mkdir dir="${jasper.deploy}/common/lib"/>
  </target>


  <!-- ====================== DEPLOY: Copy Static Files =================== -->
  <target name="deploy-static" depends="build-main,deploy-prepare">

    <!-- Executable Commands -->
    <copy todir="${jasper.deploy}/bin">
      <fileset dir="${jasper.build}/bin" />
    </copy>
    <fixcrlf srcdir="${jasper.deploy}/bin" includes="*.sh" eol="lf"/>
    <fixcrlf srcdir="${jasper.deploy}/bin" includes="*.bat" eol="crlf"/>
    <chmod perm="+x" file="${jasper.deploy}/bin/jspc.sh"/>

  </target>


  <!-- ====================== DEPLOY: Create Jasper JARs ================== -->
  <target name="deploy" depends="deploy-static,build-main"
   description="Build and deploy Jasper component">
    <echo message="Deploy to ${jasper.deploy}/common/lib" /> 
    <!-- Jasper Compiler JAR File -->
    <copy file="${jasper.build}/shared/lib/jasper-compiler.jar"
          tofile="${jasper.deploy}/common/lib/jasper-compiler.jar" />

    <copy file="${jasper.build}/shared/lib/jasper-runtime.jar"
          tofile="${jasper.deploy}/common/lib/jasper-runtime.jar" />

    <!-- Copy JARs -->
    <copy todir="${jasper.deploy}/common/lib" file="${jasper-compiler-jdt.jar}"/>
    <copy todir="${jasper.deploy}/common/lib" file="${jsp-api.jar}"/>
    <copy todir="${jasper.deploy}/common/lib" file="${commons-el.jar}"/>

  </target>


  <!-- ================ DIST: Create Distribution ========================= -->
  <target name="dist" depends="build-main"
   description="Create binary distribution">

    <!-- Executable commands -->
    <mkdir dir="${jasper.dist}/bin"/>
    <copy todir="${jasper.dist}/bin">
      <fileset dir="${jasper.build}/bin" />
    </copy>
    <fixcrlf srcdir="${jasper.dist}/bin" includes="*.sh" eol="lf"/>
    <fixcrlf srcdir="${jasper.dist}/bin" includes="*.bat" eol="crlf"/>
    <chmod perm="+x" file="${jasper.dist}/bin/jspc.sh"/>

    <!-- Jasper Compiler and Runtime JAR Files -->
    <mkdir dir="${jasper.dist}/shared/lib"/>
    <copy todir="${jasper.dist}/shared/lib">
      <fileset dir="${jasper.build}/shared/lib"/>
    </copy>


  </target>


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


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


</project>

