<!-- Copyright 2004 The Apache Software Foundation

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License. -->
<project name="Xbean" default="default" basedir=".">

  <property name="build.compiler" value="javac1.3"/>
  <property name="product.version" value="1.0.3"/>

  <target name="usage">
    <echo message="The following ant targets are defined:"/>
    <echo message="usage    - this help text"/>
    <echo message="build    - builds our public interface jars so others can compile"/>
    <echo message="deploy   - builds our implementation jar (xbean.jar)"/>
    <echo message="clean    - cleans out the xbeans directories"/>
    <echo message="builddrt - builds, but does not run, the xbean drt"/>
    <echo message="drt      - runs the xbean drt"/>
  </target>

  <target name="clean">
    <delete dir="build"/>
  </target>

  <target name="deploy" depends="sources, xbean, drt.jar, random.jar" />

  <target name="sources" depends="dirs">
    <zip destfile="build/ar/xbeansrc.zip" basedir="." excludes="build/**"/>
  </target>

  <target name="xbean" depends="xbean.jar">
    <copy file="build/lib/xbean.jar" tofile="build/ar/xbean.jar"/>
  </target>

  <target name="dirs">
    <mkdir dir="build"/>
    <mkdir dir="build/classes"/>
    <mkdir dir="build/lib"/>
    <mkdir dir="build/ar"/>
    <mkdir dir="build/src"/>
    <mkdir dir="build/private"/>
    <mkdir dir="build/private/classes"/>
    <mkdir dir="build/private/lib"/>
  </target>

  <target name="drt" >
      <echo message="Running random tester"/>
       <java classname="Random" fork="true" failonerror="true">
          <classpath>
            <pathelement location="build/ar/xbean.jar"/>
            <pathelement location="build/lib/xml-apis.jar"/>
            <pathelement location="build/lib/xercesImpl.jar"/>
            <pathelement location="build/private/lib/easypo.jar"/>
            <pathelement location="build/private/lib/random.jar"/>
          </classpath>
         <jvmarg value="-Dxmlbeans.ea"/>
         <arg line="-seed 0 -i 20 -noquery"/>
       </java>

    <mkdir dir="build/test/output"/>
    <echo message="Running xbean product drt tests"/>
    <echo message="JUnit output being sent to build/test/output/drt-product.txt"/>
    <junit fork="yes" printsummary="yes" haltonfailure="yes" showoutput="yes">
      <jvmarg value="-Dxmlbeans.ea"/>
      <sysproperty key="xbean.rootdir" value="${basedir}"/>
      <sysproperty key="treeasserts" value="true"/>
      <classpath>
        <pathelement location="external/lib/junit.jar"/>
        <pathelement location="build/ar/xbean.jar"/>
        <pathelement location="build/lib/xml-apis.jar"/>
        <pathelement location="build/lib/xercesImpl.jar"/>
        <pathelement location="build/private/lib/drt.jar"/>
        <pathelement location="build/private/lib/easypo.jar"/>
        <pathelement location="build/private/lib/schemas.jar"/>
        <pathelement location="build/private/lib/xstypes.jar"/>
        <pathelement location="build/private/lib/enumtest.jar"/>
        <pathelement location="build/private/lib/numerals.jar"/>
        <pathelement location="build/lib/xbean_xpath.jar"/>
        <pathelement location="build/lib/jaxen.jar"/>
      </classpath>
      <formatter type="plain"/>
      <test name="drtcases.SmokeTests" outfile="build/test/output/drt-product" />
    </junit>

      <antcall target="extensionsTest" />
  </target>

    <!-- extensions test -->
    <fileset id="extension.jars" dir="build/private/lib">
      <include name="extensions.jar"/>
      <include name="fixedAttrBean.jar"/>
      <include name="averageCase.jar"/>
      <include name="multInterfaces.jar"/>
      <include name="readOnlyBean.jar"/>
      <include name="ValueRestriction.jar"/>
    </fileset>

    <target name="extensionsTest" depends="extensions.compile">
      <echo message="JUnit output being sent to build/test/output/drt-extensions.txt"/>
      <junit fork="yes" printsummary="yes" haltonfailure="yes" showoutput="yes">
        <jvmarg value="-Dxmlbeans.ea"/>
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="external/lib/junit.jar"/>
          <fileset refid="extension.jars"/>
          <pathelement location="build/test/extensionsuse"/>
        </classpath>
        <formatter type="plain"/>
        <test name="drtcases.ExtensionsTest" outfile="build/test/output/drt-extensions"/>
      </junit>
    </target>

    <!--The extensions use the bean types, compile first-->
    <target name="simpleBeans.check">
      <uptodate property="simpleBeans.notRequired" targetfile="build/private/lib/fixedAttrBean.jar">
        <srcfiles dir="test/src/extensions" includes="**/*"/>
        <srcfiles dir="test/src/extensionsuse" includes="**/*"/>
        <srcfiles dir="build/ar" includes="xbean.jar"/>
      </uptodate>
    </target>

    <target name="build.simpleBeans" unless="simpleBeans.notRequired" depends="simpleBeans.check">
      <java classname="${schema_compiler}" fork="true" failonerror="true">
        <jvmarg value="-Dxmlbeans.ea"/>
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="build/test/extensions"/>
          <pathelement location="build/lib/xml-apis.jar"/>
          <pathelement location="build/lib/xercesImpl.jar"/>
        </classpath>
        <arg line="-out build/private/lib/fixedAttrBean.jar test/src/extensions/fixedAttrBean/po.xsd"/>
      </java>

      <java classname="${schema_compiler}" fork="true" failonerror="true">
        <jvmarg value="-Dxmlbeans.ea"/>
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="build/test/extensions"/>
          <pathelement location="build/lib/xml-apis.jar"/>
          <pathelement location="build/lib/xercesImpl.jar"/>
        </classpath>
        <arg line="-out build/private/lib/averageCase.jar test/src/extensions/averageCase/po.xsd"/>
      </java>

      <java classname="${schema_compiler}" fork="true" failonerror="true">
        <jvmarg value="-Dxmlbeans.ea"/>
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="build/test/extensions"/>
          <pathelement location="build/lib/xml-apis.jar"/>
          <pathelement location="build/lib/xercesImpl.jar"/>
        </classpath>
        <arg line="-out build/private/lib/multInterfaces.jar test/src/extensions/multInterfaces/po.xsd"/>
      </java>

      <!-- **Pre/Post Handlers -->
      <java classname="${schema_compiler}" fork="true" failonerror="true">
        <jvmarg value="-Dxmlbeans.ea"/>
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="build/test/extensions"/>
          <pathelement location="build/lib/xml-apis.jar"/>
          <pathelement location="build/lib/xercesImpl.jar"/>
        </classpath>
        <arg line="-out build/private/lib/readOnlyBean.jar test/src/extensions/prePostFeature/readOnlyBean/po.xsd"/>
      </java>

      <java classname="${schema_compiler}" fork="true" failonerror="true">
        <jvmarg value="-Dxmlbeans.ea"/>
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="build/test/extensions"/>
          <pathelement location="build/lib/xml-apis.jar"/>
          <pathelement location="build/lib/xercesImpl.jar"/>
        </classpath>
        <arg line="-out build/private/lib/ValueRestriction.jar test/src/extensions/prePostFeature/ValueRestriction/company.xsd"/>
      </java>
    </target>

    <target name="extensions.compile" depends="build.simpleBeans, simpleBeans.check" unless="simpleBeans.notRequired">
      <mkdir dir="build/test/extensions"/>
      <javac srcdir="test/src/extensions" destdir="build/test/extensions" debug="on">
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <fileset refid="extension.jars"/>
        </classpath>
      </javac>

      <java classname="${schema_compiler}" fork="true" failonerror="true">
        <jvmarg value="-Dxmlbeans.ea"/>
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="build/test/extensions"/>
          <pathelement location="build/lib/xml-apis.jar"/>
          <pathelement location="build/lib/xercesImpl.jar"/>
        </classpath>
        <arg line="-out build/private/lib/extensions.jar test/src/extensions/myPackage"/>
      </java>

      <java classname="${schema_compiler}" fork="true" failonerror="true">
        <jvmarg value="-Dxmlbeans.ea"/>
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="build/test/extensions"/>
          <pathelement location="build/lib/xml-apis.jar"/>
          <pathelement location="build/lib/xercesImpl.jar"/>
        </classpath>
        <arg line="-out build/private/lib/fixedAttrBean.jar test/src/extensions/fixedAttrBean"/>
      </java>

      <java classname="${schema_compiler}" fork="true" failonerror="true">
        <jvmarg value="-Dxmlbeans.ea"/>
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="build/test/extensions"/>
          <pathelement location="build/lib/xml-apis.jar"/>
          <pathelement location="build/lib/xercesImpl.jar"/>
        </classpath>
        <arg line="-out build/private/lib/averageCase.jar test/src/extensions/averageCase"/>
      </java>

      <java classname="${schema_compiler}" fork="true" failonerror="true">
        <jvmarg value="-Dxmlbeans.ea"/>
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="build/test/extensions"/>
          <pathelement location="build/lib/xml-apis.jar"/>
          <pathelement location="build/lib/xercesImpl.jar"/>
        </classpath>
        <arg line="-out build/private/lib/multInterfaces.jar test/src/extensions/multInterfaces"/>
      </java>
      <!--Pre Post Feature -->

      <java classname="${schema_compiler}" fork="true" failonerror="true">
        <jvmarg value="-Dxmlbeans.ea"/>
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="build/test/extensions"/>
          <pathelement location="build/lib/xml-apis.jar"/>
          <pathelement location="build/lib/xercesImpl.jar"/>
        </classpath>
        <arg line="-out build/private/lib/readOnlyBean.jar test/src/extensions/prePostFeature/readOnlyBean"/>
      </java>

      <java classname="${schema_compiler}" fork="true" failonerror="true">
        <jvmarg value="-Dxmlbeans.ea"/>
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="build/test/extensions"/>
          <pathelement location="build/lib/xml-apis.jar"/>
          <pathelement location="build/lib/xercesImpl.jar"/>
        </classpath>
        <arg line="-out build/private/lib/ValueRestriction.jar test/src/extensions/prePostFeature/ValueRestriction"/>
      </java>


      <mkdir dir="build/test/extensionsuse"/>
      <javac srcdir="test/src/extensionsuse" destdir="build/test/extensionsuse" debug="on">
        <classpath>
          <pathelement location="build/ar/xbean.jar" />
          <pathelement location="external/lib/junit.jar"/>
          <fileset refid="extension.jars"/>
          <pathelement location="build/test/extensionsuse"/>
        </classpath>
      </javac>
    </target>

  <!-- builddrt target -->
  <target name="builddrt" depends="drt.jar, random.jar, eric"/>

  <target name="eric" depends="erictest.jar"/>

  <target name="default" depends="deploy, builddrt"/>

  <target name="redeploy" depends="clean, deploy"/>

  <!-- oldxbean.jar target =========================================== -->

  <target name="oldxbean.jar">
    <copy file="external/lib/oldxbean.jar" tofile="build/private/lib/oldxbean.jar"/>
  </target>

  <!-- bootstrap target ============================================== -->

  <target name="bootstrap" depends="xbean">

    <!-- after xbean.jar is built, move it out of the way and clean the project -->
    <tempfile property="bootstrap.jarfile" prefix="oldxbean" suffix=".jar"/>
    <move file="build/ar/xbean.jar" tofile="${bootstrap.jarfile}"/>
    <antcall target="clean" inheritAll="false"/>

    <!-- then move it back into place as oldxbean.jar and do another build -->
    <move file="${bootstrap.jarfile}" tofile="build/private/lib/oldxbean.jar"/>
    <antcall target="xbean" inheritAll="false"/>

    <!-- compare the contents of the first jar to the contents of the second jar -->
    <antcall target="zipcompare.classes" inheritAll="false"/>
    <java classname="zipcompare.ZipCompare"
          classpath="build/private/classes/zipcompare:build/classes/common"
          fork="true"
          failonerror="true">
      <arg line="build/ar/xbean.jar build/private/lib/oldxbean.jar"/>
    </java>

    <!-- when everything succeeds, copy oldxbean.jar to external/lib -->
    <echo message="==================================="/>
    <echo message="Results match! Bootstrap succeeded."/>
    <echo message="==================================="/>
    <echo message="Attempting to copy oldxbean.jar"/>
    <echo message="If the copy fails, you must check out oldxbean.jar"/>
    <echo message="overwriting old external/lib/oldxbean.jar"/>
    <copy file="build/private/lib/oldxbean.jar" tofile="external/lib/oldxbean.jar"/>
  </target>

  <target name="quickbootstrap">
    <echo message="=========================================================="/>
    <echo message="Bootstrapping currently built xbean.jar without verifying."/>
    <echo message="=========================================================="/>
    <copy file="build/ar/xbean.jar" tofile="external/lib/oldxbean.jar"/>
  </target>

  <!-- zipcompare (for checking bootstrap) ============================ -->

  <target name="zipcompare.classes" depends="common.classes">
    <mkdir dir="build/private/classes/zipcompare"/>
    <javac srcdir="src/zipcompare"
           destdir="build/private/classes/zipcompare"
           classpath="build/classes/common"
           debug="on"/>
  </target>

  <!-- test target ================================================== -->

  <path id="test.compile.path">
    <pathelement location="external/lib/junit.jar"/>
    <pathelement location="build/ar/xbean.jar"/>
    <pathelement location="build/lib/xml-apis.jar"/>
    <pathelement location="build/private/lib/easypo.jar"/>
    <pathelement location="build/private/lib/ericschema.jar"/>
    <pathelement location="build/private/lib/schemas.jar"/>
    <pathelement location="build/private/lib/enumtest.jar"/>
    <pathelement location="build/private/lib/xstypes.jar"/>
    <pathelement location="build/lib/xbean_xpath.jar"/>
    <pathelement location="build/private/lib/numerals.jar"/>
    <pathelement location="build/lib/jaxen.jar"/>
    <pathelement location="build/classes/xmlinputstream"/>
  </path>

  <path id="test.run.path">
    <pathelement location="build/ar/xbean.jar"/>
    <pathelement location="build/lib/xml-apis.jar"/>
    <pathelement location="external/lib/junit.jar"/>
  </path>

  <!-- builddrt target ============================================== -->

  <target name="drt.classes" depends="dirs, easypo.jar, schemas.jar,
  	  xstypes.jar, enumtest.jar, xbean_xpath.jar, numerals.jar">
    <mkdir dir="build/private/classes/drt"/>
    <javac
       srcdir="test/src/drt"
       destdir="build/private/classes/drt"
       classpathref="test.compile.path"
       source="1.3"
       debug="on"/>
  </target>

  <target name="drt.jar" depends="drt.classes">
    <jar jarfile="build/private/lib/drt.jar" basedir="build/private/classes/drt"/>
  </target>

  <!-- stsschema (for testing) target ================================ -->

  <path id="scomp.run.path">
    <pathelement location="build/lib/xbean.jar"/>
    <pathelement location="build/lib/xml-apis.jar"/>
    <pathelement location="build/lib/xercesImpl.jar"/>
  </path>

  <target name="stsschema.check">
    <uptodate property="stsschema.notRequired" targetfile="build/private/lib/stsschema.jar">
      <srcfiles dir="test/src/stsschema" includes="**/*.xsd"/>
      <srcfiles dir="build/ar" includes="xbean.jar"/>
    </uptodate>
  </target>

  <target name="stsschema.jar" depends="stsschema.check, dirs, xbean" unless="stsschema.notRequired">
    <java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <arg line="-out build/private/lib/stsschema.jar test/src/stsschema"/>
    </java>
  </target>

  <!-- soaptest target ============================================ -->

  <target name="soaptest.classes" depends="dirs, stsschema.jar">
    <mkdir dir="build/private/classes/soaptest"/>
    <javac srcdir="test/src/soaptest" destdir="build/private/classes/soaptest" source="1.3" debug="on">
      <classpath>
        <pathelement location="external/lib/jdom.jar"/>
        <pathelement location="external/lib/junit.jar"/>
        <pathelement location="build/ar/xbean.jar"/>
        <pathelement location="build/lib/xml-apis.jar"/>
        <pathelement location="build/private/lib/stsschema.jar"/>
      </classpath>
    </javac>

  </target>

  <target name="soaptest.jar" depends="soaptest.classes">
    <jar jarfile="build/private/lib/soaptest.jar" basedir="build/private/classes/soaptest"/>
  </target>

  <!-- erictest target ============================================= -->

  <target name="erictest.classes" depends="dirs, xbean, ericschema.jar">
    <mkdir dir="build/private/classes/erictest"/>
    <javac
       srcdir="test/src/erictest"
       destdir="build/private/classes/erictest"
       classpathref="test.compile.path"
       source="1.3"
       debug="on"/>
  </target>

  <target name="erictest.jar" depends="erictest.classes">
    <jar jarfile="build/private/lib/erictest.jar" basedir="build/private/classes/erictest"/>
  </target>

  <!-- random target ============================================= -->

  <target name="random.classes" depends="dirs, xbean, easypo.jar">
    <mkdir dir="build/private/classes/random"/>
    <javac
       srcdir="test/src/random"
       destdir="build/private/classes/random"
       classpathref="test.compile.path"
       source="1.3"
       debug="on"/>
  </target>

  <target name="random.jar" depends="random.classes">
    <jar jarfile="build/private/lib/random.jar" basedir="build/private/classes/random"/>
  </target>

  <!-- teststore target ============================================= -->

  <target name="teststore.classes" depends="dirs">
    <mkdir dir="build/private/classes/teststore"/>
    <javac srcdir="test/src/teststore" destdir="build/private/classes/teststore" source="1.3" debug="on">
      <classpath>
        <pathelement location="build/private/classes/simpletypes"/>
        <pathelement location="build/private/classes/xmlcomp"/>
        <pathelement location="build/private/classes/typestore"/>
        <pathelement location="build/private/classes/xmlpublic"/>
        <pathelement location="build/private/classes/typeimpl"/>
      </classpath>
    </javac>

  </target>

  <target name="teststore.jar" depends="teststore.classes">
    <jar jarfile="build/private/lib/teststore.jar" basedir="build/private/classes/teststore"/>
  </target>

  <!-- simpletypes (for testing) target ============================= -->

  <target name="simpletypes.check">
    <uptodate property="simpletypes.notRequired" targetfile="build/private/lib/simpletypes.jar">
      <srcfiles dir="test/cases/schema/simple" includes="**/*.xsd"/>
      <srcfiles dir="build/private/lib" includes="xbean.jar"/>
    </uptodate>
  </target>

  <target name="simpletypes.jar" depends="simpletypes.check, dirs" unless="simpletype.notRequired">
    <java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <arg line="-name schema.test.simple -out build/private/lib/simpletypes.jar test/cases/schema/simple"/>
    </java>
  </target>

  <!-- easypo (for testing) target ================================== -->

  <target name="easypo.check">
    <uptodate property="easypo.notRequired" targetfile="build/private/lib/easypo.jar">
      <srcfiles dir="test/src/easypo" includes="**/*"/>
      <srcfiles dir="build/ar" includes="xbean.jar"/>
    </uptodate>
  </target>

  <target name="easypo.jar" depends="easypo.check, dirs, xbean" unless="easypo.notRequired">
    <java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <arg line="-out build/private/lib/easypo.jar test/src/easypo"/>
    </java>
  </target>

  <!-- numerals (for testing) target ================================== -->
  <target name="numerals.check">
    <uptodate property="numerals.notRequired" targetfile="build/private/lib/numerals.jar">
      <srcfiles dir="test/src/numerals" includes="**/*"/>
      <srcfiles dir="build/ar" includes="xbean.jar"/>
    </uptodate>
  </target>
  <target name="numerals.jar" depends="numerals.check, dirs, xbean" unless="numerals.notRequired">
    <java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <arg line="-out build/private/lib/numerals.jar test/src/numerals"/>
    </java>
  </target>

  <!-- schemas (for testing) target ================================ -->

  <target name="schemas.check">
    <uptodate property="schemas.notRequired" targetfile="build/private/lib/schemas.jar">
      <srcfiles dir="test/src/schemas" includes="**/*.xsd"/>
      <srcfiles dir="build/ar" includes="xbean.jar"/>
    </uptodate>
  </target>

  <target name="schemas.jar" depends="schemas.check, dirs, xbean" unless="schemas.notRequired">
    <java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <arg line="-out build/private/lib/schemas.jar test/src/schemas"/>
    </java>
  </target>

  <!-- ericschema (for testing) target ================================ -->

  <target name="ericschema.check">
    <uptodate property="ericschema.notRequired" targetfile="build/private/lib/ericschema.jar">
      <srcfiles dir="test/src/ericschema" includes="**/*.xsd"/>
      <srcfiles dir="build/ar" includes="xbean.jar"/>
    </uptodate>
  </target>

  <target name="ericschema.jar" depends="ericschema.check, dirs, xbean" unless="ericschema.notRequired">
    <java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <arg line="-src build/private/src -out build/private/lib/ericschema.jar test/src/ericschema"/>
    </java>
  </target>

  <!-- enumtest (for testing) target ================================= -->

  <target name="enumtest.check">
    <uptodate property="enumtest.notRequired" targetfile="build/private/lib/enumtest.jar">
      <srcfiles dir="test/src/enumtest" includes="**/*.xsd"/>
      <srcfiles dir="build/ar" includes="xbean.jar"/>
    </uptodate>
  </target>

  <target name="enumtest.jar" depends="enumtest.check, dirs, xbean" unless="enumtest.notRequired">
    <java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <arg line="-out build/private/lib/enumtest.jar test/src/enumtest"/>
    </java>
  </target>

  <!-- xstypes (for testing) target ================================= -->

  <target name="xstypes.check">
    <uptodate property="xstypes.notRequired" targetfile="build/private/lib/xstypes.jar">
      <srcfiles dir="test/cases/schema/simple" includes="**/*.xsd"/>
      <srcfiles dir="build/ar" includes="xbean.jar"/>
    </uptodate>
  </target>

  <target name="xstypes.jar" depends="xstypes.check, dirs, xbean" unless="xstypes.notRequired">
    <java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <arg line="-out build/private/lib/xstypes.jar test/src/xstypes"/>
    </java>
  </target>

  <!-- javadocs ====================================================== -->

  <!-- All docs to build/docs, including guide and javadocs. -->

  <target name="docs" depends="xbean">
    <property name="docs.dir" value="build/docs"/>
    <delete dir="${docs.dir}"/>
    <mkdir dir="${docs.dir}"/>
    <javadoc packagenames="*" sourcepath="src/xmlpublic" classpath="${javadoc.path}" destdir="${docs.dir}/reference" windowtitle="XMLBeans Documentation" source="1.3" stylesheetfile="docs/stylesheet.css">
      <link href="http://xml.apache.org/xmlbeans/docs/reference/index.html"/>
      <link href="http://java.sun.com/j2se/1.3.1/docs/api/"/>
      <link href="http://java.sun.com/j2ee/1.3/docs/api/"/>
      <link href="http://xml.apache.org/xerces-j/apiDocs/"/>
      <classpath>
        <pathelement location="build/ar/xbean.jar"/>
      </classpath>
    </javadoc>
    <copy file="docs/xmlbeans.css" tofile="${docs.dir}/xmlbeans.css" />
    <copy todir="${docs.dir}/guide">
      <fileset dir="docs/guide"/>
    </copy>
    <copy todir="${docs.dir}/images">
      <fileset dir="docs/images"/>
    </copy>
  </target>

  <!-- stream conformance tests ======================================= -->

  <target name="streamtest.classes" depends="dirs">
    <mkdir dir="build/private/classes/streamtest"/>
    <javac
      srcdir="test/src/streamtest"
      destdir="build/private/classes/streamtest"
      classpathref="test.compile.path"
      source="1.3"
      debug="on"/>
  </target>

  <target name="streamtest.jar" depends="streamtest.classes">
    <jar jarfile="build/private/lib/streamtest.jar" basedir="build/private/classes/streamtest"/>
  </target>

  <path id="run.streamconf.path">
    <path refid="test.run.path"/>
    <pathelement location="build/private/classes/streamtest/"/>
  </path>

  <target name="streamconf" depends="streamtest.jar">
    <java classname="streamtest.XmlStreamConformance"
          classpathref="run.streamconf.path"
          fork="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <!--arg line="test/cases/streamconf/small.xml" /-->
      <arg line="test/cases/streamconf/dtd.xml" />
    </java>
  </target>


  <target name="dist" depends="dist-src, dist-bin">
  </target>

  <target name="dist-bin" depends="xbean, docs">
     <delete dir="build/private/xmlbeans-${product.version}"/>
     <delete file="build/private/incubating-xmlbeans-${product.version}.zip"/>
     <delete file="build/private/incubating-xmlbeans-${product.version}.tgz"/>

     <mkdir dir="build/private/xmlbeans-${product.version}"/>
     <copy todir="build/private/xmlbeans-${product.version}">
        <fileset dir="xkit"/>
        <fileset dir="." includes="bin/**" />
        <fileset file="CHANGES.txt" />
     </copy>
     <copy todir="build/private/xmlbeans-${product.version}/schemas/s4s">
        <fileset dir="src/xsdschema/schema" includes="XMLSchema.xsd,w3c-schema-license.html"/>
        <fileset dir="src/xmlschema/schema" includes="XML.xsd,w3c-xml-license.html"/>
     </copy>
     <copy todir="build/private/xmlbeans-${product.version}/schemas">
        <fileset dir="test/src" includes="easypo/*.xsd, easypo/*.xsdconfig"/>
     </copy>

     <mkdir dir="build/private/xmlbeans-${product.version}/lib"/>
     <copy todir="build/private/xmlbeans-${product.version}/lib" file="build/ar/xbean.jar"/>
     <copy todir="build/private/xmlbeans-${product.version}/lib" file="external/lib/xml-apis.jar"/>
     <copy todir="build/private/xmlbeans-${product.version}/lib" file="external/lib/xercesImpl.jar"/>
     <copy todir="build/private/xmlbeans-${product.version}/lib" file="external/lib/jaxen-1.1-beta-2.jar"/>
     <copy todir="build/private/xmlbeans-${product.version}/lib" file="build/lib/xbean_xpath.jar"/>

     <mkdir dir="build/private/xmlbeans-${product.version}/src/schema"/>
     <copy todir="build/private/xmlbeans-${product.version}/src/schema">
        <fileset dir="src/toolschema"/>
     </copy>

     <mkdir dir="build/private/xmlbeans-${product.version}/docs"/>
     <copy todir="build/private/xmlbeans-${product.version}/docs">
        <fileset dir="build/docs"/>
     </copy>

     <chmod dir="build/private/xmlbeans-${product.version}/bin" perm="ugo+rx" includes="**" />

     <zip destfile="build/private/incubating-xmlbeans-${product.version}.zip"
          basedir="build/private"
          includes="xmlbeans-${product.version}/**"
          excludes="xmlbeans-${product.version}/bin/dumpxsb, 
                    xmlbeans-${product.version}/bin/scomp, 
                    xmlbeans-${product.version}/bin/validate">
         <zipfileset dir="." includes="src/license/LICENSE.txt" fullpath="xmlbeans-${product.version}/LICENSE.txt"/>
         <zipfileset dir="." includes="src/license/NOTICE.txt" fullpath="xmlbeans-${product.version}/NOTICE.txt"/>
         <zipfileset dir="build/private/xmlbeans-${product.version}/bin" includes="dumpxsb, scomp, validate" prefix="xmlbeans-${product.version}/bin" filemode="755"/>
     </zip>
     <tar destfile="build/private/incubating-xmlbeans-${product.version}.tgz"
          basedir="build/private"
          includes="xmlbeans-${product.version}/**"
          excludes="xmlbeans-${product.version}/bin/dumpxsb, 
                    xmlbeans-${product.version}/bin/scomp, 
                    xmlbeans-${product.version}/bin/validate"
          compression="gzip">
         <tarfileset dir="." includes="src/license/LICENSE.txt" fullpath="xmlbeans-${product.version}/LICENSE.txt"/>
         <tarfileset dir="." includes="src/license/NOTICE.txt" fullpath="xmlbeans-${product.version}/NOTICE.txt"/>
         <tarfileset dir="build/private/xmlbeans-${product.version}/bin" includes="dumpxsb, scomp, validate" prefix="xmlbeans-${product.version}/bin" mode="755"/>
     </tar>
  </target>

  <target name="dist-src" depends="clean, dirs">
     <delete file="build/private/incubating-xmlbeans-${product.version}-src.zip"/>
     <delete file="build/private/incubating-xmlbeans-${product.version}-src.tgz"/>

     <zip destfile="build/private/incubating-xmlbeans-${product.version}-src.zip">
     	<zipfileset
     		dir="."
       		includes="**"
                excludes="build/**, test/src/teststore/**, test/src/easypouse/**, test/src/nameworlduse/**,
                test/src/stsschema/**, test/src/unmarshal/**, test/cases/schema/**, external/lib/junit.jar, bin/dumpxsb, bin/scomp, bin/validate"
       		prefix="xmlbeans-${product.version}" />
         <zipfileset dir="." includes="src/license/LICENSE.txt" fullpath="xmlbeans-${product.version}/LICENSE.txt"/>
         <zipfileset dir="." includes="src/license/NOTICE.txt" fullpath="xmlbeans-${product.version}/NOTICE.txt"/>
         <zipfileset dir="bin" includes="dumpxsb, scomp, validate" prefix="xmlbeans-${product.version}/bin" filemode="755"/>
     </zip>
     <tar destfile="build/private/incubating-xmlbeans-${product.version}-src.tgz"
	 	  compression="gzip">
     	<tarfileset
     		dir="."
       		includes="**"
       		excludes="build/**, test/src/teststore/**, test/src/easypouse/**, test/src/nameworlduse/**,
                test/src/stsschema/**, test/src/unmarshal/**, test/cases/schema/**, external/lib/junit.jar, bin/dumpxsb, bin/scomp, bin/validate"
       		prefix="xmlbeans-${product.version}"/>
         <tarfileset dir="." includes="src/license/LICENSE.txt" fullpath="xmlbeans-${product.version}/LICENSE.txt"/>
         <tarfileset dir="." includes="src/license/NOTICE.txt" fullpath="xmlbeans-${product.version}/NOTICE.txt"/>
         <tarfileset dir="bin" includes="dumpxsb, scomp, validate" prefix="xmlbeans-${product.version}/bin" mode="755"/>
     </tar>
  </target>

  <!-- previously in xbean.xml -->

  <target name="xbean.jar"
        depends="dirs, xml-apis.jar, xercesImpl.jar, xmlpublic.classes, typestore.classes,
                 common.classes, typeimpl.classes, xmlcomp.classes,
                 xmlstore.classes,
                 oldxbean.jar, xsdschema.classes,
                 xmlinputstream.classes, xbean_xpath.jar">
    <jar jarfile="build/lib/xbean.jar" index="true">
      <fileset dir="build/classes/xmlpublic"/>
      <fileset dir="build/classes/typestore"/>
      <fileset dir="build/classes/common"/>
      <fileset dir="build/classes/typeimpl"/>
      <fileset dir="build/classes/xmlcomp"/>
      <fileset dir="build/classes/configschema"/>
      <fileset dir="build/classes/toolschema"/>
      <fileset dir="build/classes/xsdschema"/>
      <fileset dir="build/classes/xmlschema"/>
      <fileset dir="build/classes/xmlstore"/>
      <fileset dir="build/classes/xmlinputstream"/>
      <fileset dir="build/classes/repackage"/>
      <fileset dir="src/license"/>
    </jar>
  </target>

  <!-- build XMLInputStream interface ============================================= -->

  <target name="xmlinputstream.classes" depends="dirs">
    <mkdir dir="build/classes/xmlinputstream"/>
    <javac srcdir="src/xmlinputstream"
        destdir="build/classes/xmlinputstream"
        debug="on"/>
  </target>

  <!-- xmlpublic target ============================================== -->

  <target name="xmlpublic.classes" depends="dirs, xmlinputstream.classes">
    <mkdir dir="build/classes/xmlpublic"/>
    <javac srcdir="src/xmlpublic" destdir="build/classes/xmlpublic" source="1.3" debug="on">
      <classpath>
        <pathelement location="build/classes/xmlinputstream"/>
      </classpath>
    </javac>

  </target>

  <target name="xmlpublic.jar" depends="dirs, xmlinputstream.classes, xmlpublic.classes, xmlschema.classes, xsdschema.classes">
    <jar jarfile="build/lib/xmlpublic.jar"  index="true">
      <fileset dir="build/classes/xmlpublic"/>
      <fileset dir="build/classes/xmlschema"/>
      <fileset dir="build/classes/xsdschema"/>
    </jar>
  </target>

  <!-- typestore target ============================================== -->

  <target name="typestore.classes" depends="dirs, xmlpublic.classes, common.classes, xmlinputstream.classes">
    <mkdir dir="build/classes/typestore"/>
    <javac srcdir="src/typestore" destdir="build/classes/typestore" source="1.3" debug="on">
      <classpath>
        <pathelement location="build/classes/xmlinputstream"/>
        <pathelement location="build/classes/xmlpublic"/>
        <pathelement location="build/classes/common"/>
      </classpath>
    </javac>

  </target>

  <!-- common target ============================================= -->

  <target name="common.classes" depends="dirs, xmlpublic.jar, xmlinputstream.classes">
    <mkdir dir="build/classes/common"/>
    <javac destdir="build/classes/common" source="1.3" debug="on">
      <classpath>
        <pathelement location="build/classes/xmlinputstream"/>
        <pathelement location="build/lib/xmlpublic.jar"/>
        <pathelement location="build/lib/xml-apis.jar"/>
      </classpath>
      <src path="src/common"/>
      <src path="src/typeimpl/org/apache/xmlbeans/impl/regex"/>
    </javac>

  </target>

  <!-- typeimpl target ============================================== -->

  <target name="typeimpl.classes" depends="dirs, repackage.classes, xmlpublic.classes, typestore.classes, xsdschema.classes, configschema.classes, toolschema.classes">
    <mkdir dir="build/classes/typeimpl"/>
    <javac destdir="build/classes/typeimpl" source="1.3" debug="on">
      <classpath>
        <pathelement location="build/classes/xmlinputstream"/>
        <pathelement location="build/classes/common"/>
        <pathelement location="build/classes/repackage"/>
        <pathelement location="build/classes/typestore"/>
        <pathelement location="build/classes/xmlpublic"/>
        <pathelement location="build/classes/xmlconfig"/>
        <pathelement location="build/classes/configschema"/>
        <pathelement location="build/classes/xsdschema"/>
        <pathelement location="build/lib/xml-apis.jar"/>
      </classpath>

        <src path="src/typeimpl"/>
        <src path="build/src/xmlschema"/>
        <src path="build/src/xsdschema"/>
        <src path="build/src/configschema"/>
        <src path="build/src/toolschema"/>
        <src path="src/xmlconfig"/>
    </javac>

    <!-- Need properties files for regex -->
    <copy
      todir="build/classes/typeimpl">
      <fileset dir="src/typeimpl">
        <exclude name="**/*.java"/>
      </fileset>
    </copy>
  </target>

  <!-- xmlcomp target =============================================== -->

  <target name="xmlcomp.classes" depends="dirs, repackage.classes, typeimpl.classes, xmlpublic.classes, typestore.classes">
    <mkdir dir="build/classes/xmlcomp"/>
    <javac srcdir="src/xmlcomp" destdir="build/classes/xmlcomp" source="1.3" debug="on">
      <classpath>
        <pathelement location="build/classes/xmlinputstream"/>
        <pathelement location="build/classes/xmlpublic"/>
        <pathelement location="build/classes/common"/>
        <pathelement location="build/classes/repackage"/>
        <pathelement location="build/classes/typeimpl"/>
        <pathelement location="build/classes/xmlconfig"/>
        <pathelement location="build/classes/configschema"/>
        <pathelement location="build/classes/toolschema"/>
        <pathelement location="build/classes/xsdschema"/>
        <pathelement location="build/lib/xml-apis.jar"/>
      </classpath>
    </javac>

  </target>

  <!-- xmlstore target ============================================== -->

  <target name="xmlstore.classes"
        depends="dirs, common.classes, typestore.classes, xmlpublic.classes">
    <mkdir dir="build/classes/xmlstore"/>
    <javac srcdir="src/xmlstore" destdir="build/classes/xmlstore" source="1.3" debug="on">
      <classpath id="xmlstore.compile.path">
        <pathelement location="build/classes/xmlinputstream"/>
        <pathelement location="build/classes/typestore"/>
        <pathelement location="build/classes/xmlpublic"/>
        <pathelement location="build/classes/common"/>
        <pathelement location="build/lib/xml-apis.jar"/>
      </classpath>
    </javac>

  </target>

  <!-- bootstrap schema target support ================================ -->


  <!-- xsdschema target =============================================== -->

  <!-- Note that this is a tricky target because it bootstraps xbeans on itself. -->
  <!-- The basic strategy is to rely on the oldxbeans.jar checked into external/lib -->

  <path id="bootstrap.run.path">
    <pathelement location="build/private/lib/oldxbean.jar"/>
    <pathelement location="build/lib/xml-apis.jar"/>
    <pathelement location="build/lib/xercesImpl.jar"/>
  </path>

  <path id="bootstrap.compile.path">
    <pathelement location="build/classes/xmlpublic"/>
  </path>

  <property name="bootstrap.compile.path" refid="bootstrap.compile.path"/>

  <path id="xsdschema.compile.path">
    <pathelement location="build/classes/xmlschema"/>
    <pathelement location="build/classes/xmlpublic"/>
  </path>

  <property name="xsdschema.compile.path" refid="xsdschema.compile.path"/>

  <target name="xsdschema.check">
    <condition property="xsdschema.notRequired">
        <uptodate property="xsdschema.notRequired" targetfile="build/classes/xsdschema/schema/system/sXMLSCHEMA/index.xsb">
          <srcfiles dir="src/xsdschema" includes="**/*.xsd"/>
        </uptodate>
    </condition>
  </target>

  <target name="xsdschema.classes" depends="xsdschema.check, xmlschema.classes, xmlpublic.classes, oldxbean.jar" unless="xsdschema.notRequired">
    <delete dir="build/classes/xsdschema"/>
    <delete dir="build/src/xsdschema"/>
    <java classname="${bootstrap_schema_compiler}" classpathref="bootstrap.run.path" fork="true" failonerror="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <arg line="${repackage_arg} -name sXMLSCHEMA -cp ${xsdschema.compile.path} -srconly -d build/classes/xsdschema -src build/src/xsdschema src/xsdschema/schema"/>
    </java>
  </target>

  <!-- xmlschema target ============================================= -->

  <!-- Note that this is a tricky target because it bootstraps xbeans on itself. -->
  <!-- The basic strategy is to rely on the oldxbeans.jar checked into external/lib -->

  <target name="xmlschema.check">
    <condition property="xmlschema.notRequired">
        <uptodate property="xmlschema.notRequired" targetfile="build/classes/xmlschema/schema/system/sXMLLANG/index.xsb">
          <srcfiles dir="src/xmlschema" includes="**/*.xsd"/>
        </uptodate>
    </condition>
  </target>

  <target name="xmlschema.classes" depends="xmlschema.check, xmlpublic.classes, oldxbean.jar" unless="xmlschema.notRequired">
    <delete dir="build/classes/xmlschema"/>
    <delete dir="build/src/xmlschema"/>
    <java classname="${bootstrap_schema_compiler}" classpathref="bootstrap.run.path" fork="true" failonerror="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <arg line="${repackage_arg} -name sXMLLANG -d build/classes/xmlschema -src build/src/xmlschema -srconly src/xmlschema/schema"/>
    </java>
  </target>

  <!-- xmlconfig target =============================================== -->

  <target name="xmlconfig.classes" depends="dirs, xmlpublic.jar, configschema.classes">
    <mkdir dir="build/classes/xmlconfig"/>
    <javac srcdir="src/xmlconfig" destdir="build/classes/xmlconfig" source="1.3" debug="on">
      <classpath>
        <pathelement location="build/lib/xmlpublic.jar"/>
        <pathelement location="build/classes/configschema"/>
      </classpath>
    </javac>

  </target>

  <!-- configschema target ============================================= -->

  <!-- Note that this is a tricky target because it bootstraps xbeans on itself. -->
  <!-- The basic strategy is to rely on the oldxbeans.jar checked into external/lib -->

  <property name="bootstrap.compile.path" refid="bootstrap.compile.path"/>

  <target name="configschema.check">
    <uptodate property="configschema.notRequired" targetfile="build/classes/configschema/schema/system/sXMLCONFIG/index.xsb">
      <srcfiles dir="src/configschema" includes="**/*.xsd"/>
    </uptodate>
  </target>

  <target name="configschema.classes" depends="configschema.check, xmlpublic.classes, oldxbean.jar" unless="configschema.notRequired">
    <delete dir="build/classes/configschema"/>
    <java classname="${bootstrap_schema_compiler}" classpathref="bootstrap.run.path" fork="true" failonerror="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <arg line="${repackage_arg} -name sXMLCONFIG -srconly -src build/src/configschema -d build/classes/configschema src/configschema/schema"/>
    </java>
  </target>

  <!-- toolschema target ============================================= -->

  <!-- Note that this is a tricky target because it bootstraps xbeans on itself. -->
  <!-- The basic strategy is to rely on the oldxbeans.jar checked into external/lib -->

  <property name="bootstrap.compile.path" refid="bootstrap.compile.path"/>

  <target name="toolschema.check">
    <uptodate property="toolschema.notRequired" targetfile="build/classes/toolschema/schema/system/sXMLTOOLS/index.xsb">
      <srcfiles dir="src/toolschema" includes="**/*.xsd"/>
    </uptodate>
  </target>

  <target name="toolschema.classes" depends="toolschema.check, xmlpublic.classes, oldxbean.jar" unless="toolschema.notRequired">
    <delete dir="build/classes/toolschema"/>
    <mkdir dir="build/src/toolschema"/>
    <java classname="${bootstrap_schema_compiler}" classpathref="bootstrap.run.path" fork="true" failonerror="true">
      <jvmarg value="-Dxmlbeans.ea"/>
      <arg line="${repackage_arg} -name sXMLTOOLS -srconly -src build/src/toolschema -d build/classes/toolschema src/toolschema"/>
    </java>
  </target>


    <!-- =========================== -->
    <!-- =====   Repackaging  ====== -->
    <!-- =========================== -->

    <target name="edit_build_script">
        <echo message="editing repackage build file: ${token} -->${replacement}"/>

        <java classname="repackage.EditBuildScript" failonerror="true">
            <arg value="${basedir}/build/repackage/build.xml"/>
            <arg value="${token}"/>
            <arg value="${replacement}"/>
            <classpath>
                <pathelement location="build/classes/repackage"/>
                <pathelement location="build/classes/common"/>
            </classpath>
        </java>
    </target>

    <property name="repackage_arg" value=""/>
    <property name="schema_compiler" value="org.apache.xmlbeans.impl.tool.SchemaCompiler"/>
    <property name="bootstrap_schema_compiler" value="org.apache.xmlbeans.impl.tool.SchemaCompiler"/>

    <!--
        Params to repackage are:

            repackage_spec:

                Of the form from_pkg_1:to_pkg_1;from_pkg_2:to_pkg_2 which specifies which packages
                are to be converted which which which other packages.  Right now, there are two.
                org.apache.xmlbeans and apache.xmlbeans.impl, the public and implementation
                packages.

            new_schema_compiler

                The name of the class which will new the new schema compiler.  Will replace
                ${schema_compiler} during the bootstrap process.
    -->

    <target name="repackage" depends="repackage.classes">

        <echo message="Re-packaging XMlBeans"/>

        <property
            name="new_repackage_arg"
            value="-repackage ${repackage_spec}"/>

        <java classname="repackage.Repackage" fork="true" failonerror="true">
            <classpath>
                <pathelement location="build/classes/repackage"/>
                <pathelement location="build/classes/common"/>
            </classpath>
            <arg line="${new_repackage_arg}"/>
        </java>

        <antcall target="edit_build_script">
            <param name="token"       value="repackage_arg"/>
            <param name="replacement" value="${new_repackage_arg}"/>
        </antcall>

        <antcall target="edit_build_script">
            <param name="token"       value="schema_compiler"/>
            <param name="replacement" value="${new_schema_compiler}"/>
        </antcall>

        <ant dir="build/repackage" target="xbean" inheritAll="false"/>

        <antcall target="edit_build_script">
            <param name="token"       value="bootstrap_schema_compiler"/>
            <param name="replacement" value="${new_schema_compiler}"/>
        </antcall>

        <ant dir="build/repackage" target="bootstrap" inheritAll="false"/>

    </target>

    <target name="repackage.classes">
        <mkdir dir="build/classes/repackage"/>
        <javac srcdir="src/repackage" destdir="build/classes/repackage" source="1.3" debug="on" classpath="build/classes/common"/>
    </target>


    <target name="check.xml-apis.jar">
        <condition property="xml-apis.jar.exists">
            <available file="build/lib/xml-apis.jar"/>
        </condition>
    </target>

    <target name="xml-apis.jar" depends="check.xml-apis.jar, dirs" unless="xml-apis.jar.exists">
        <get dest="external/lib/xml-apis-1.0.b2.jar"
            src="http://www.ibiblio.org/maven/xml-apis/jars/xml-apis-1.0.b2.jar"
            verbose="true" usetimestamp="true" ignoreerrors="true"/>
        <copy file="external/lib/xml-apis-1.0.b2.jar" tofile="build/lib/xml-apis.jar" />
    </target>

    <target name="check.xercesImpl.jar">
        <condition property="xercesImpl.jar.exists">
            <available file="build/lib/xercesImpl.jar"/>
        </condition>
    </target>

    <target name="xercesImpl.jar" depends="check.xercesImpl.jar, dirs" unless="xercesImpl.jar.exists">
        <get dest="external/lib/xercesImpl-2.6.2.jar"
            src="http://www.ibiblio.org/maven/xerces/jars/xercesImpl-2.6.2.jar"
            verbose="true" usetimestamp="true" ignoreerrors="true"/>
        <copy file="external/lib/xercesImpl-2.6.2.jar" tofile="build/lib/xercesImpl.jar" />
    </target>

   <target name="check.jaxen.jar">
     <condition property="jaxen.jar.exists">
         <available file="build/lib/jaxen.jar"/>
     </condition>
   </target>

   <target name="jaxen.jar" depends="check.jaxen.jar, dirs" unless="jaxen.jar.exists">
     <!--get dest="external/lib/jaxen.jar"
          src="http://www.ibiblio.org/maven/jaxen/jars/jaxen-1.1-beta-2.jar"
          verbose="true" usetimestamp="true" ignoreerrors="true"/ -->
     <copy file="external/lib/jaxen-1.1-beta-2.jar" tofile="build/lib/jaxen.jar" />
   </target>

  <!-- xpath target ============================================= -->

  <target name="xpath.classes" depends="dirs, xmlpublic.jar, jaxen.jar, xmlstore.classes">
    <mkdir dir="build/private/classes/xpath"/>
    <javac
       srcdir="src/xpath"
       destdir="build/private/classes/xpath"
       classpathref="xpath.compile.path"
       source="1.3"
       debug="on">
      <classpath id="xpath.compile.path">
          <pathelement location="build/lib/xmlpublic.jar"/>
          <pathelement location="build/lib/jaxen.jar"/>
          <pathelement location="build/classes/xmlstore"/>
      </classpath>
    </javac>
  </target>

  <target name="xbean_xpath.jar" depends="xpath.classes">
    <jar jarfile="build/lib/xbean_xpath.jar" basedir="build/private/classes/xpath"/>
  </target>

  <!-- test xpath target ============================================= -->

  <target name="test_xpath.classes" depends="dirs, xmlpublic.jar, jaxen.jar, xbean_xpath.jar">
    <mkdir dir="build/private/classes/testxpath"/>
    <javac
       srcdir="test/src/xpath"
       destdir="build/private/classes/testxpath"
       classpathref="testxpath.compile.path"
       source="1.3"
       debug="on">
      <classpath id="testxpath.compile.path">
          <pathelement location="build/lib/xmlpublic.jar"/>
          <pathelement location="build/lib/jaxen.jar"/>
          <pathelement location="build/lib/xbean_xpath.jar"/>
          <pathelement location="build/classes/xmlinputstream"/>
      </classpath>
    </javac>
  </target>

  <target name="run_test_xpath" depends="test_xpath.classes, xbean">
    <java classname="org.apache.xmlbeans.impl.xpath.jaxen.XBeansDemo" fork="true" failonerror="true">
      <classpath>
          <pathelement location="build/lib/xbean.jar"/>
          <pathelement location="build/lib/jaxen.jar"/>
          <pathelement location="build/lib/xbean_xpath.jar"/>
          <pathelement location="build/private/classes/testxpath"/>
      </classpath>
      <arg line='test/cases/xpath/much_ado.xml "PLAY/ACT/SCENE/SPEECH/SPEAKER"'/>
    </java>
  </target>


</project>
