<project name="Digester" default="compile" basedir=".">


<!--
        "Digester" component of the Jakarta Commons Subproject
        $Id: build.xml,v 1.30 2002/10/25 21:31:48 sanders Exp $
-->


<!-- ========== Initialize Properties ===================================== -->


  <property file="build.properties"/>                <!-- Component local   -->
  <property file="../build.properties"/>             <!-- Commons local     -->
  <property file="${user.home}/build.properties"/>   <!-- User local        -->


<!-- ========== External Dependencies ===================================== -->


  <!-- The directories corresponding to your necessary dependencies -->
  <property name="jaxp.home"               value="/usr/local/jaxp1.1"/>
  <property name="junit.home"              value="/usr/local/junit3.7"/>
  <property name="commons.home"            value=".."/>
  <property name="beanutils.home"          value="${commons.home}/beanutils"/>
  <property name="collections.home"        value="${commons.home}/collections"/>
  <property name="logging.home"            value="${commons.home}/logging"/>


<!-- ========== Derived Values ============================================ -->


  <!-- The locations of necessary jar files -->
  <property name="jaxp.jaxp.jar"           value="${jaxp.home}/jaxp.jar"/>
  <property name="jaxp.parser.jar"         value="${jaxp.home}/crimson.jar"/>
  <property name="junit.jar"               value="${junit.home}/junit.jar"/>
  <property name="commons-beanutils.api"   value="${beanutils.home}/dist/docs/api"/>
  <property name="commons-beanutils.jar"   value="${beanutils.home}/dist/commons-beanutils.jar"/>
  <property name="commons-collections.api" value="${collections.home}/dist/docs/api"/>
  <property name="commons-collections.jar" value="${collections.home}/dist/commons-collections.jar"/>
  <property name="commons-logging.api"     value="${logging.home}/dist/docs/api"/>
  <property name="commons-logging.jar"     value="${logging.home}/dist/commons-logging.jar"/>


<!-- ========== Component Declarations ==================================== -->


  <!-- The name of this component -->
  <property name="component.name"          value="digester"/>

  <!-- The primary package name of this component -->
  <property name="component.package"       value="org.apache.commons.digester"/>

  <!-- The title of this component -->
  <property name="component.title"         value="Digester - XML to Java Object Configuration"/>

  <!-- The current version number of this component -->
  <property name="component.version"       value="1.3"/>

  <!-- The base directory for compilation targets -->
  <property name="build.home"              value="target"/>

  <!-- The base directory for component configuration files -->
  <property name="conf.home"               value="src/conf"/>

  <!-- The base directory for distribution targets -->
  <property name="dist.home"               value="dist"/>

  <!-- The base directory for component sources -->
  <property name="source.home"             value="src/java"/>

  <!-- The base directory for unit test sources -->
  <property name="test.home"               value="src/test"/>


<!-- ========== Compiler Defaults ========================================= -->


  <!-- Should Java compilations set the 'debug' compiler option? -->
  <property name="compile.debug"           value="true"/>

  <!-- Should Java compilations set the 'deprecation' compiler option? -->
  <property name="compile.deprecation"     value="false"/>

  <!-- Should Java compilations set the 'optimize' compiler option? -->
  <property name="compile.optimize"        value="true"/>

  <!-- Construct compile classpath -->
  <path id="compile.classpath">
    <pathelement location="${build.home}/classes"/>
    <pathelement location="${jaxp.jaxp.jar}"/>
    <pathelement location="${jaxp.parser.jar}"/>
    <pathelement location="${commons-beanutils.jar}"/>
    <pathelement location="${commons-collections.jar}"/>
    <pathelement location="${commons-logging.jar}"/>
    <pathelement location="${junit.jar}"/>
  </path>


<!-- ========== Test Execution Defaults =================================== -->


  <!-- Construct unit test classpath -->
  <path id="test.classpath">
    <pathelement location="${build.home}/classes"/>
    <pathelement location="${build.home}/tests"/>
    <pathelement location="${junit.jar}"/>
    <pathelement location="${jaxp.jaxp.jar}"/>
    <pathelement location="${jaxp.parser.jar}"/>
    <pathelement location="${commons-beanutils.jar}"/>
    <pathelement location="${commons-collections.jar}"/>
    <pathelement location="${commons-logging.jar}"/>
  </path>

  <!-- Construct RSSDigester test classpath -->
  <path id="rss.classpath">
    <pathelement location="${build.home}/classes"/>
    <pathelement location="${jaxp.jaxp.jar}"/>
    <pathelement location="${jaxp.parser.jar}"/>
    <pathelement location="${commons-beanutils.jar}"/>
    <pathelement location="${commons-collections.jar}"/>
    <pathelement location="${commons-logging.jar}"/>
  </path>

  <!-- Should all tests fail if one does? -->
  <property name="test.failonerror"        value="true"/>

  <!-- The test runner to execute -->
  <property name="test.runner"             value="junit.textui.TestRunner"/>


<!-- ========== Executable Targets ======================================== -->


  <target name="init"
   description="Initialize and evaluate conditionals">
    <echo message="-------- ${component.name} ${component.version} --------"/>
    <filter  token="name"                  value="${component.package}"/>
    <filter  token="version"               value="${component.version}"/>
  </target>


  <target name="prepare" depends="init"
   description="Prepare build directory">
    <mkdir dir="${build.home}"/>
    <mkdir dir="${build.home}/classes"/>
    <mkdir dir="${build.home}/conf"/>
    <mkdir dir="${build.home}/tests"/>
  </target>


  <target name="static" depends="prepare"
   description="Copy static files to build directory">
    <tstamp/>
    <copy  todir="${build.home}/conf" filtering="on">
      <fileset dir="${conf.home}" includes="*.MF"/>
    </copy>
  </target>


  <target name="compile" depends="static"
   description="Compile shareable components">
    <javac  srcdir="${source.home}"
           destdir="${build.home}/classes"
             debug="${compile.debug}"
       deprecation="${compile.deprecation}"
          optimize="${compile.optimize}">
      <classpath refid="compile.classpath"/>
    </javac>
    <copy    todir="${build.home}/classes" filtering="on">
      <fileset dir="${source.home}" excludes="**/*.java"/>
    </copy>
  </target>


  <target name="compile.tests" depends="compile"
   description="Compile unit test cases">
    <javac  srcdir="${test.home}"
           destdir="${build.home}/tests"
             debug="${compile.debug}"
       deprecation="${compile.deprecation}"
          optimize="${compile.optimize}">
      <classpath refid="test.classpath"/>
    </javac>
    <copy    todir="${build.home}/tests" filtering="on">
      <fileset dir="${test.home}" excludes="**/*.java"/>
    </copy>
  </target>


  <target name="clean"
   description="Clean build and distribution directories">
    <delete    dir="${build.home}"/>
    <delete    dir="${dist.home}"/>
  </target>


  <target name="all" depends="clean,compile"
   description="Clean and compile all components"/>


  <target name="javadoc" depends="compile"
   description="Create component Javadoc documentation">
    <mkdir      dir="${dist.home}"/>
    <mkdir      dir="${dist.home}/docs"/>
    <mkdir      dir="${dist.home}/docs/api"/>
    <javadoc sourcepath="${source.home}"
                destdir="${dist.home}/docs/api"
           packagenames="org.apache.commons.*"
                 author="true"
                private="true"
                version="true"
               overview="src/java/overview.html"
               doctitle="&lt;h1&gt;${component.title} (Version ${component.version})&lt;/h1&gt;"
            windowtitle="${component.title} (Version ${component.version})"
                 bottom="Copyright (c) 2001-2002 - Apache Software Foundation">
      <link     offline="true" packagelistLoc="${commons-beanutils.api}"
                   href="http://jakarta.apache.org/commons/beanutils/api/"/>
      <link     offline="true" packagelistLoc="${commons-collections.api}"
                   href="http://jakarta.apache.org/commons/collections/api/"/>
      <link     offline="true" packagelistLoc="${commons-logging.api}"
                   href="http://jakarta.apache.org/commons/logging/api/"/>
      <classpath  refid="compile.classpath"/>
    </javadoc>
  </target>


  <target name="dist" depends="compile,javadoc"
   description="Create binary distribution">
    <mkdir      dir="${dist.home}"/>
    <copy      file="../LICENSE"
              todir="${dist.home}"/>
    <mkdir      dir="${build.home}/classes/META-INF"/>
    <copy      file="../LICENSE"
             tofile="${build.home}/classes/META-INF/LICENSE.txt"/>
    <copy      file="RELEASE-NOTES.txt"
              todir="${dist.home}"/>
    <jar    jarfile="${dist.home}/commons-${component.name}.jar"
            basedir="${build.home}/classes"
           manifest="${build.home}/conf/MANIFEST.MF"/>
  </target>


<!-- ========== Unit Test Targets ========================================= -->


  <target name="test" depends="compile.tests,
                               test.digester,
                               test.matching,
                               test.matching.extended,
                               test.rule,
                               test.callmethod,
                               test.objectparam,
                               test.bpsr,
                               test.xmlrules,
                               test.node
                              "
   description="Run all unit test cases">
  </target>


  <target name="test.xmlrules" depends="compile.tests"
   description="Run tests for loading Digester rules from XML ...">
    <echo message="Running xmlrules tests ..."/>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <arg value="org.apache.commons.digester.xmlrules.DigesterLoaderTestSuite"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>


  <target name="test.bpsr" depends="compile.tests"
   description="Run tests for BeanPropertySetterRule ...">
    <echo message="Running BeanPropertySetterRule tests ..."/>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <arg value="org.apache.commons.digester.BeanPropertySetterRuleTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>


  <target name="test.callmethod" depends="compile.tests"
   description="Run tests for CallMethodRule and CallParamRule ...">
    <echo message="Running CallMethodRule tests ..."/>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <arg value="org.apache.commons.digester.CallMethodRuleTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>

  <target name="test.objectparam" depends="compile.tests"
   description="Run tests for ObjectParamRule ...">
    <echo message="Running ObjectParamRule tests ..."/>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <arg value="org.apache.commons.digester.ObjectParamRuleTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>

  <target name="test.digester" depends="compile.tests"
   description="Run basic Digester unit tests ...">
    <echo message="Running basic Digester tests ..."/>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <arg value="org.apache.commons.digester.DigesterTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>


  <target name="test.matching" depends="compile.tests"
   description="Run rule Digester test cases">
    <echo message="Running rule Digester tests ..."/>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <arg value="org.apache.commons.digester.RulesBaseTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>


  <target name="test.matching.extended" depends="compile.tests"
   description="Run rule Digester extended test cases">
    <echo message="Running rule Digester tests for ExtendedBaseRules ..."/>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <arg value="org.apache.commons.digester.EBRTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>


  <target name="test.rss" depends="compile.tests"
   description="Run RSSDigester test cases">
    <echo message="Running RSSDigester tests ..."/>
    <java classname="org.apache.commons.digester.rss.RSSDigester"
               fork="yes">
      <classpath refid="rss.classpath"/>
    </java>
  </target>


  <target name="test.rule" depends="compile.tests"
   description="Run rule Digester unit tests ...">
    <echo message="Running Rule tests ..."/>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <arg value="org.apache.commons.digester.RuleTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>


  <target name="test.node" depends="compile.tests"
          description="Run NodeCreateRule tests ...">
    <echo message="Running NodeCreateRule tests ..."/>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <arg value="org.apache.commons.digester.NodeCreateRuleTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>
 
</project>
