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


<!--
        "Digester" component of the Jakarta Commons Subproject
        $Id: build.xml,v 1.52 2004/04/04 05:05:09 skitching 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.6-dev"/>

  <!-- 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-logging.jar}"/>
    <pathelement location="${junit.jar}"/>
  </path>


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

  <property name="suppressLogOutputDuringTests" value="true"/>
  <property name="log.factoryopt" value="org.apache.commons.logging.Log"/>
  <property name="log.noop" value="org.apache.commons.logging.impl.NoOpLog"/>
  <property name="log.class" value="${log.noop}"/>
  
  <!--
  <property name="logclass" value="org.apache.commons.logging.impl.NoOpLog"/>
  -->

  <!-- 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>
    <copy      file="LICENSE.txt"
              todir="${build.home}/classes/META-INF"/>
  </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="compile.examples" depends="compile"
   description="Compile example code">
    <ant dir="src/examples/api" target="compile"/>
  </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-2003 - 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.txt"
              todir="${dist.home}"/>
    <mkdir      dir="${build.home}/classes/META-INF"/>
    <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.spr,
                               test.xmlrules,
                               test.node,
                               test.factory,
                               test.regex,
                               test.wdrules,
                               test.plugins,
                               test.others,
                               test.substitution
                              "
   description="Run all unit test cases">
  </target>

  <target name="test.factory" depends="compile.tests"
   description="Run tests for loading Digester rules from XML ...">
    <echo message="Running factory create tests ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <arg value="org.apache.commons.digester.TestFactoryCreate"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>

  <target name="test.xmlrules" depends="compile.tests"
   description="Run tests for loading Digester rules from XML ...">
    <echo message="Running xmlrules tests ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <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 ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <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 ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <arg value="org.apache.commons.digester.CallMethodRuleTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>

  <target name="test.overlapping" depends="compile.tests"
   description="Run tests for OverlappingCallMethodRule...">
    <echo message="Running OverlappingCallMethodRule tests ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <arg value="org.apache.commons.digester.OverlappingCallMethodRuleTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>

  <target name="test.objectparam" depends="compile.tests"
   description="Run tests for ObjectParamRule ...">
    <echo message="Running ObjectParamRule tests ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <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 ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <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 ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <arg value="org.apache.commons.digester.RulesBaseTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>

  <target name="test.regex" depends="compile.tests"
   description="Run tests for RegexRules">
    <echo message="Running tests for RegexRules ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <arg value="org.apache.commons.digester.RegexRulesTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>

  <target name="test.wdrules" depends="compile.tests"
   description="Run tests for WithDefaultsRulesWrapper">
    <echo message="Running tests for WithDefaultsRulesWrapper ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <arg value="org.apache.commons.digester.WDRulesWrapperTestCase"/>
      <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 ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <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 ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="org.apache.commons.digester.rss.RSSDigester"
               fork="yes">
      <jvmarg value="-D${logopt}"/>
      <classpath refid="rss.classpath"/>
    </java>
  </target>


  <target name="test.rule" depends="compile.tests"
   description="Run rule Digester unit tests ...">
    <echo message="Running Rule tests ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <arg value="org.apache.commons.digester.RuleTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>

  <target name="test.spr" depends="compile.tests"
   description="Run tests for SetPropertyRule ...">
    <echo message="Running SetPropertyRule tests ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <arg value="org.apache.commons.digester.SetPropertyRuleTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>


  <target name="test.node" depends="compile.tests"
          description="Run NodeCreateRule tests ...">
    <echo message="Running NodeCreateRule tests ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <arg value="org.apache.commons.digester.NodeCreateRuleTestCase"/>
      <classpath refid="test.classpath"/>
    </java>
  </target>

  <target name="test.plugins" depends="compile.tests"
          description="Run Plugins tests ...">
    <echo message="Running Plugins tests ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <arg value="org.apache.commons.digester.plugins.TestAll"/>
      <classpath refid="test.classpath"/>
    </java>
  </target> 

  <target name="test.others" depends="compile.tests"
          description="Run Other tests ...">
    <echo message="Running Other tests ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <arg value="org.apache.commons.digester.TestOthers"/>
      <classpath refid="test.classpath"/>
    </java>
  </target> 
  
  <target name="test.substitution" depends="compile.tests"
          description="Run Substitutions tests ...">
    <echo message="Running Substitutions tests ..."/>
    <condition property="logopt" value="${log.factoryopt}=${log.class}">
      <istrue value="${suppressLogOutputDuringTests}"/>
    </condition>
    <java classname="${test.runner}" fork="yes"
        failonerror="${test.failonerror}">
      <jvmarg value="-D${logopt}"/>
      <arg value="org.apache.commons.digester.substitution.TestAll"/>
      <classpath refid="test.classpath"/>
    </java>
  </target> 
</project>
