<!--
    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.6"/>
    <property name="javac.source" value="1.6"/>
    <property name="javac.target" value="1.6"/>

    <property name="version.base" value="3.0.3"/>
    <property name="version.rc" value=""/>

    <!-- manifest entries -->
    <property name="manifest.name" value="org/apache/xmlbeans/"/>
    <property name="manifest.title" value="org.apache.xmlbeans"/>
    <property name="manifest.vendor" value="Apache Software Foundation"/>
    <property name="manifest.url" value="http://xmlbeans.apache.org/"/>

    <property name="repository.m2" value="https://repo1.maven.org"/>

    <!-- Apache RAT license check properties -->
    <property name="rat.reportdir" value="build/rat"/>
    <property name="rat.report" value="${rat.reportdir}/report.txt"/>
    <property name="rat.jar" location="${rat.reportdir}/apache-rat-0.12.jar"/>
    <property name="rat.url" value="${repository.m2}/maven2/org/apache/rat/apache-rat/0.12/apache-rat-0.12.jar"/>

    <!-- api checks -->
    <property name="forbidden.jar" location="build/forbiddenapis-2.5.jar"/>
    <property name="forbidden.url" value="${repository.m2}/maven2/de/thetaphi/forbiddenapis/2.5/forbiddenapis-2.5.jar"/>



    <target name="usage">
        <echo message="The following ant targets are defined:"/>
        <echo/>
        <echo message="usage       - this help text"/>
        <echo message="deploy      - builds our implementation jar (xbean.jar)"/>
        <echo message="clean       - cleans out the xbeans directories"/>
        <echo message="clean.jars  - cleans out any downloaded jars"/>
        <echo message="docs        - builds the JavaDoc documentation in ./build/docs"/>
        <echo message="xmlpublic.jar-builds xmlpublic.jar, containing just the public code"/>
        <echo message="sources     - zips up the XmlBeans source code"/>
        <echo/>
        <echo message="testbuild   - builds, but does not run, the xbean drt"/>
        <echo message="checkintest - runs the xbean tests"/>
    </target>

    <target name="java_version">
        <echo message="${java.version}"/>
    </target>

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

    <target name="clean.jars" description="Delete any downloaded jars and accompanying licenses">
        <delete>
            <fileset dir="external/lib">
                <include name="saxonb9-0-0-4j.zip"/>
                <include name="saxonb8-8j.zip"/>
                <include name="saxonb8-7-3j.zip"/>
                <include name="saxonb8-6-1.zip"/>
                <include name="saxonb8-2.zip"/>
                <include name="saxonb8-1.zip"/>
                <include name="saxon9.jar"/>
                <include name="saxon9-dom.jar"/>
                <include name="saxon8.jar"/>
                <include name="saxon8-dom.jar"/>
                <include name="xcresolver.zip"/>
            </fileset>
        </delete>
    </target>

    <target name="deploy" depends="xbean"/>

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

    <property environment="env"/>
    <target name="saxon.find1" if="env.XMLBEANS_EXTERNALS">
      <property name="saxon_jar" value="${env.XMLBEANS_EXTERNALS}/saxon9.jar"/>
      <property name="saxon_dom_jar" value="${env.XMLBEANS_EXTERNALS}/saxon9-dom.jar"/>
    </target>
    <target name="saxon.find2">
      <property name="saxon_jar" value="build/lib/saxon9.jar"/>
      <property name="saxon_dom_jar" value="build/lib/saxon9-dom.jar"/>
    </target>

    <target name="check.saxon9.jar" depends="saxon.find1,saxon.find2">
      <condition property="saxon9.jar.exists">
        <or>
          <available file="build/lib/saxon9.jar"/>
          <available file="${env.XMLBEANS_EXTERNALS}/saxon9.jar"/>
        </or>
      </condition>
    </target>

    <target name="saxon9.jar" depends="check.saxon9.jar, dirs"
        unless="saxon9.jar.exists">
        <!-- other saxon urls
            http://voxel.dl.sourceforge.net/sourceforge/saxon/saxonb8-1.zip
            http://easynews.dl.sourceforge.net/sourceforge/saxon/saxonb8-7-3j.zip
            http://easynews.dl.sourceforge.net/sourceforge/saxon/saxonb8-8j.zip
        -->
        <get dest="external/lib/saxonb9-0-0-4j.zip"
            src="http://master.dl.sourceforge.net/project/saxon/OldFiles/9.0/9.0.0.4/saxonb9-0-0-4j.zip"
            verbose="true" usetimestamp="true" ignoreerrors="true"/>
        <unzip src="external/lib/saxonb9-0-0-4j.zip" dest="external/lib/">
            <patternset>
                <include name="saxon9.jar"/>
                <include name="saxon9-dom.jar"/>
            </patternset>
        </unzip>

        <copy file="external/lib/saxon9.jar" tofile="build/lib/saxon9.jar"/>
        <!-- saxon9-dom.jar is used to register DOMObjectModel -->
        <copy file="external/lib/saxon9-dom.jar" tofile="build/lib/saxon9-dom.jar"/>
    </target>

    <!-- get resolver.jar -->
    <target name="check.xcresolver.zip">
        <condition property="xcresolver.zip.exists">
            <available file="external/lib/xcresolver.zip"/>
        </condition>
    </target>

    <target name="xcresolver.zip" depends="check.xcresolver.zip, dirs" unless="xcresolver.zip.exists">
        <get dest="external/lib/xcresolver.zip"
            src="http://archive.apache.org/dist/xml/commons/binaries/xml-commons-resolver-1.1.zip"
            verbose="true" usetimestamp="true" ignoreerrors="true"/>
    </target>

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

    <target name="resolver.jar" depends="xcresolver.zip, check.resolver.jar" unless="resolver.jar.exists">
        <unzip src="external/lib/xcresolver.zip" dest="external/lib/">
            <patternset>
                <include name="*/resolver.jar"/>
            </patternset>
        </unzip>
        <copy file="external/lib/xml-commons-resolver-1.1/resolver.jar" tofile="build/lib/resolver.jar"/>
        <delete dir="external/lib/xml-commons-resolver-1.1"/>
    </target>


    <target name="xbean" depends="xbean.jar,xmlpublic.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"/>
        <mkdir dir="build/test/output"/>
    </target>

    <target name="version">
        <!-- svn must be on the path -->
        <echo message="Trying to get revision number from Subversion..."/>
        <exec executable="svn" output="build/private/svninfo.properties" failifexecutionfails="false">
            <arg line="info ${basedir}"/>
        </exec>
        <replaceregexp file="build/private/svninfo.properties"
            match="Last Changed Rev: (.*)"
            replace="svn.last.rev=r\1"
            byline="true"/>
        <property file="build/private/svninfo.properties"/>

        <!-- just in case svn info or regexp failed -->
        <condition property="svn.last.rev" value="unknown">
            <not><isset property="svn.last.rev"/></not>
        </condition>

        <property name="version.full" value="${version.base}-${svn.last.rev}"/>
        <property name="manifest.comment" value="Apache XmlBeans version ${version.full}"/>

        <echo message="${manifest.comment}"/>
    </target>


    <target name="default" depends="deploy"/>
    <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">
        <subant target="bootstrappass" inheritAll="true" buildpath="." failonerror="false"/>
        <subant target="bootstrappass" inheritAll="true" buildpath="." failonerror="true"/>
    </target>

    <target name="bootstrappass" 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"
            fork="true"
            failonerror="true">
            <arg line="build/ar/xbean.jar build/private/lib/oldxbean.jar"/>
        </java>

        <!-- when everything succeeds, check out oldxbean.jar from perforce -->
        <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"/>
        <!-- copy oldxbean.jar whether or not perforce succeeded -->
        <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">
        <mkdir dir="build/private/classes/zipcompare"/>
        <javac srcdir="src/zipcompare"
            source="${javac.source}" target="${javac.target}"
            destdir="build/private/classes/zipcompare"
            debug="on"
            includeantruntime="false"/>
    </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 ${version.base} Documentation" source="${javac.source}" stylesheetfile="docs/stylesheet.css">
            <link href="http://xmlbeans.apache.org/${version.base}/docs/reference/index.html"/>
            <link href="http://java.sun.com/j2se/1.4.2/docs/api/"/>
            <link href="http://java.sun.com/j2ee/1.4/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>
        <delete file="build/private/xmlbeans-${version.base}${version.rc}-javadoc.jar"/>
        <jar jarfile="build/private/xmlbeans-${version.base}${version.rc}-javadoc.jar" index="false">
            <fileset dir="${docs.dir}/reference"/>
            <fileset file="LICENSE.txt"/>
            <fileset file="NOTICE.txt"/>
            <manifest>
                <section name="${manifest.name}">
                    <attribute name="Comment" value="${manifest.comment}"/>
                    <attribute name="Implementation-Title" value="${manifest.title}"/>
                    <attribute name="Implementation-Version" value="${version.full}"/>
                    <attribute name="Implementation-Vendor" value="${manifest.vendor}"/>
                    <attribute name="Implementation-URL" value="${manifest.url}"/>
                </section>
            </manifest>
        </jar>
    </target>


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

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

        <mkdir dir="build/private/xmlbeans-${version.base}"/>
        <copy todir="build/private/xmlbeans-${version.base}">
            <fileset dir="xkit"/>
            <fileset dir="." includes="bin/**"/>
            <fileset file="LICENSE.txt"/>
            <fileset file="NOTICE.txt"/>
        </copy>
        <copy todir="build/private/xmlbeans-${version.base}/schemas/s4s">
            <fileset dir="src/xsdschema/schema" includes="XMLSchema.xsd"/>
            <fileset dir="src/xmlschema/schema" includes="XML.xsd"/>
        </copy>
        <copy todir="build/private/xmlbeans-${version.base}/schemas">
            <fileset dir="test/cases/xbean/xmlobject"
                includes="easypo.xsd,easypo.xsdconfig,numerals.xsd,nameworld.xsd"/>
        </copy>

        <mkdir dir="build/private/xmlbeans-${version.base}/lib"/>
        <copy todir="build/private/xmlbeans-${version.base}/lib">
            <fileset dir="build/lib">
                <include name="xbean.jar"/>
                <include name="xmlpublic.jar"/>
                <include name="xbean_xpath.jar"/>
                <include name="resolver.jar"/>
            </fileset>
        </copy>

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

        <mkdir dir="build/private/xmlbeans-${version.base}/samples"/>
        <copy todir="build/private/xmlbeans-${version.base}/samples">
            <fileset dir="samples">
                <include name="MixedContent/**/*"/>
                <include name="OrderMatters/**/*"/>
                <include name="Any/**/*"/>
                <include name="XQueryXPath/**/*"/>
                <include name="DateTime/**/*"/>
                <include name="SchemaEnum/**/*"/>
                <include name="Validation/**/*"/>
                <include name="XsdConfig/**/*"/>
                <exclude name="**/build/**"/>
            </fileset>
        </copy>

        <zip destfile="build/private/xmlbeans-${version.base}${version.rc}.zip"
            basedir="build/private"
            includes="xmlbeans-${version.base}/**"/>
        <tar destfile="build/private/xmlbeans-${version.base}${version.rc}.tgz"
            basedir="build/private"
            includes="xmlbeans-${version.base}/**"
            excludes="xmlbeans-${version.base}/bin/*"
            compression="gzip">
            <tarfileset dir="build/private">
                <include name="xmlbeans-${version.base}/bin/*.cmd"/>
            </tarfileset>
            <tarfileset dir="build/private" mode="754">
                <include name="xmlbeans-${version.base}/bin/*"/>
                <exclude name="xmlbeans-${version.base}/bin/*.cmd"/>
            </tarfileset>
        </tar>
    </target>

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

        <zip destfile="build/private/xmlbeans-${version.base}${version.rc}-src.zip">
            <zipfileset dir="." prefix="xmlbeans-${version.base}">
                <patternset id="src.dist.content.dirs"
                    includes="docs/** external/** samples/** src/**"/>
                <patternset id="src.dist.content.dirs.bin"
                    includes="bin/**"/>
                <patternset id="src.dist.content.files"
                    includes="build.xml README.txt xbeanenv.cmd xbeanenv.sh LICENSE.txt NOTICE.txt"/>
                <patternset id="src.dist.content.tests"
                    includes=""/><!-- don't have tests part of the distribution yet -->
            </zipfileset>
        </zip>
        <tar destfile="build/private/xmlbeans-${version.base}${version.rc}-src.tgz"
            compression="gzip">
            <tarfileset dir="." prefix="xmlbeans-${version.base}">
                <patternset refid="src.dist.content.dirs"/>
                <patternset refid="src.dist.content.files"/>
                <patternset refid="src.dist.content.tests"/>
                <patternset includes="bin/*.cmd"/>
            </tarfileset>
            <tarfileset dir="." prefix="xmlbeans-${version.base}" mode="754">
                <include name="bin/*"/>
                <exclude name="bin/*.cmd"/>
            </tarfileset>
        </tar>
        <jar jarfile="build/private/xmlbeans-${version.base}${version.rc}-sources.jar" index="false">
            <fileset dir="src/common" includes="**/*.java"/>
            <fileset dir="src/configschema" includes="**/*.java"/>
            <fileset dir="src/jamsupport" includes="**/*.java"/>
            <fileset dir="src/marshal" includes="**/*.java"/>
            <fileset dir="src/repackage" includes="**/*.java"/>
            <fileset dir="src/saaj_api" includes="**/*.java"/>
            <fileset dir="src/store" includes="**/*.java"/>
            <fileset dir="src/tools" includes="**/*.java"/>
            <fileset dir="src/toolschema" includes="**/*.java"/>
            <fileset dir="src/typeholder" includes="**/*.java"/>
            <fileset dir="src/typeimpl" includes="**/*.java"/>
            <fileset dir="src/typestore" includes="**/*.java"/>
            <fileset dir="src/xmlcomp" includes="**/*.java"/>
            <fileset dir="src/xmlconfig" includes="**/*.java"/>
            <fileset dir="src/xmlinputstream" includes="**/*.java"/>
            <fileset dir="src/xmlpublic" includes="**/*.java"/>
            <fileset dir="src/xmlschema" includes="**/*.java"/>
            <fileset dir="src/xpath" includes="**/*.java"/>
            <fileset dir="src/xpath_xquery" includes="**/*.java"/>
            <fileset dir="src/xsdschema" includes="**/*.java"/>
            <fileset dir="src/zipcompare" includes="**/*.java"/>
            <fileset dir="maven-plugin/src/java" includes="**/*.java"/>
            <manifest>
                <section name="${manifest.name}">
                    <attribute name="Comment" value="${manifest.comment}"/>
                    <attribute name="Implementation-Title" value="${manifest.title}"/>
                    <attribute name="Implementation-Version" value="${version.full}"/>
                    <attribute name="Implementation-Vendor" value="${manifest.vendor}"/>
                    <attribute name="Implementation-URL" value="${manifest.url}"/>
                </section>
            </manifest>	    
        </jar>
    </target>

    <target name="enum-support.jar"
        depends="dirs, xmlpublic.classes, typeimpl.classes">
        <jar jarfile="build/lib/enum-support.jar" index="false">
            <fileset dir="build/classes/typeimpl/">
                <include name="org/apache/xmlbeans/impl/values/XmlListImpl.class"/>
                <include name="org/apache/xmlbeans/impl/values/XmlObjectBase.class"/>
                <include name="org/apache/xmlbeans/impl/util/XsTypeConverter.class"/>
            </fileset>
            <fileset dir="build/classes/xmlpublic/">
                <include name="org/apache/xmlbeans/XmlCalendar.class"/>
            </fileset>
        </jar>
    </target>

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

    <target name="xbean.jar"
        depends="dirs, version, xmlpublic.classes,
                 typeholder.template, typestore.classes, common.classes,
                 typeimpl.classes, xmlcomp.classes,
                 store.classes, saaj_api.classes,
                 marshal.classes, xpath.classes, oldxbean.jar, xsdschema.classes,
                 xmlinputstream.classes, resolver.jar, xbean_xpath.jar,
                 tools.classes, jamsupport.classes">
        <jar jarfile="build/lib/xbean.jar" index="true" duplicate="preserve">
            <fileset dir="build/classes/xmlpublic"
                excludes="javax/**"/>
            <fileset dir="build/classes/typeholder"/>
            <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/store"/>
            <fileset dir="build/classes/saaj_api"/>
            <fileset dir="build/classes/xmlinputstream"/>
            <fileset dir="build/classes/marshal"/>
            <fileset dir="build/classes/repackage"/>
            <fileset dir="build/classes/jam"/>
            <fileset dir="build/classes/tools"/>
            <fileset file="LICENSE.txt"/>
            <fileset file="NOTICE.txt"/>
            <manifest>
                <section name="${manifest.name}">
                    <attribute name="Comment" value="${manifest.comment}"/>
                    <attribute name="Implementation-Title" value="${manifest.title}"/>
                    <attribute name="Implementation-Version" value="${version.full}"/>
                    <attribute name="Implementation-Vendor" value="${manifest.vendor}"/>
                    <attribute name="Implementation-URL" value="${manifest.url}"/>
                </section>
            </manifest>
        </jar>
    </target>

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

    <target name="xmlinputstream.classes" depends="dirs">
        <mkdir dir="build/classes/xmlinputstream"/>
        <javac srcdir="src/xmlinputstream"
            source="${javac.source}" target="${javac.target}"
            destdir="build/classes/xmlinputstream"
            debug="on"
            includeantruntime="false">
            <classpath>
                <pathelement location="build/classes/common"/>
            </classpath>
        </javac>
    </target>

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

    <target name="xmlpublic.classes" depends="dirs">
        <mkdir dir="build/classes/xmlpublic"/>
        <javac srcdir="src/xmlpublic" sourcepath="src/xmlinputstream" destdir="build/classes/xmlpublic"
               source="${javac.source}" target="${javac.target}" debug="on" includeantruntime="false">
            <classpath/>
        </javac>

        <!-- Need properties files for XmlError -->
        <copy
            todir="build/classes/xmlpublic">
            <fileset dir="src/xmlpublic">
                <include name="**/*.properties"/>
            </fileset>
        </copy>
    </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"
                excludes="javax/**"/>
            <fileset dir="build/classes/xmlschema"/>
            <fileset dir="build/classes/xsdschema"/>
            <manifest>
                <section name="${manifest.name}">
                    <attribute name="Comment" value="${manifest.comment}"/>
                    <attribute name="Implementation-Title" value="${manifest.title}"/>
                    <attribute name="Implementation-Version" value="${version.full}"/>
                    <attribute name="Implementation-Vendor" value="${manifest.vendor}"/>
                    <attribute name="Implementation-URL" value="${manifest.url}"/>
                </section>
            </manifest>
        </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="${javac.source}" target="${javac.target}"
               debug="on" includeantruntime="false">
            <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.classes, xmlinputstream.classes">
        <mkdir dir="build/classes/common"/>
        <javac srcdir="src/common" destdir="build/classes/common" source="${javac.source}" target="${javac.target}"
               debug="on" includeantruntime="false">
            <classpath>
                <pathelement location="build/classes/xmlinputstream"/>
                <pathelement location="build/classes/xmlpublic"/>
            </classpath>
        </javac>

    </target>

    <!-- typeholder target ================================================ -->

    <property name="typeholder.name" value="org/apache/xmlbeans/impl/schema/TypeSystemHolder"/>

    <target name="typeholder.check">
        <condition property="typeholder.notRequired">
            <uptodate property="typeholder.notRequired"
                targetfile="build/classes/typeholder/${typeholder.name}.template">
                <srcfiles dir="src/typeholder" includes="${typeholder.name}.java"/>
            </uptodate>
        </condition>
    </target>

    <target name="typeholder.template" depends="typeholder.check, xmlpublic.classes" unless="typeholder.notRequired">
        <mkdir dir="build/classes/typeholder"/>
        <javac destdir="build/classes/typeholder" source="${javac.source}" target="${javac.target}"
               debug="off" includeantruntime="false">
            <classpath>
                <pathelement location="build/classes/xmlpublic"/>
            </classpath>
            <src location="src/typeholder"/>
        </javac>
        <move
            file="build/classes/typeholder/${typeholder.name}.class"
            tofile="build/classes/typeholder/${typeholder.name}.template"/>
    </target>

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

    <target name="typeimpl.classes" depends="dirs, store.classes,
        repackage.classes, xmlpublic.classes, typeholder.template, typestore.classes, xsdschema.classes,
        configschema.classes, toolschema.classes, jam.classes">
        <mkdir dir="build/classes/typeimpl"/>
        <javac destdir="build/classes/typeimpl" source="${javac.source}" target="${javac.target}"
               debug="on" includeantruntime="false">
            <classpath>
                <pathelement location="build/classes/store"/>
                <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/classes/xmlschema"/>
                <pathelement location="build/classes/toolschema"/>
                <pathelement location="build/classes/jam"/>
            </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="${javac.source}" target="${javac.target}"
               debug="on" includeantruntime="true">
            <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/classes/typestore"/>
            </classpath>
        </javac>
    </target>

    <!-- marshal target =============================================== -->

    <target name="marshal.classes" depends="dirs, typeimpl.classes, xmlpublic.classes">
        <mkdir dir="build/classes/marshal"/>
        <javac srcdir="src/marshal" destdir="build/classes/marshal" source="${javac.source}" target="${javac.target}"
                debug="on" includeantruntime="false">
            <classpath>
                <pathelement location="build/classes/configschema"/>
                <pathelement location="build/classes/xmlinputstream"/>
                <pathelement location="build/classes/xmlpublic"/>
                <pathelement location="build/classes/common"/>
                <pathelement location="build/classes/typeimpl"/>
                <pathelement location="build/classes/store"/>
            </classpath>
        </javac>
    </target>


    <!-- support for running JAM under JDK1.5 ========================= -->

    <target name="jamsupport.classes" depends="dirs,jam.classes">
        <javac srcdir="src/jamsupport" destdir="build/classes/jam" source="${javac.source}" target="${javac.target}"
               debug="on" includeantruntime="true">
            <classpath id="jamsupport.compile.path">
                <pathelement location="build/classes/jam"/>
            </classpath>
        </javac>
    </target>

    <!-- saaj_api target ============================================== -->

    <target name="saaj_api.classes" depends="dirs">
        <mkdir dir="build/classes/saaj_api"/>
        <javac srcdir="src/saaj_api" destdir="build/classes/saaj_api" source="${javac.source}" target="${javac.target}"
               debug="on" includeantruntime="false">
            <classpath id="saaj_api.compile.path">
                <pathelement location="build/classes/common"/>
                <pathelement location="build/classes/xmlpublic"/>
            </classpath>
        </javac>
    </target>

    <!-- store target ============================================== -->

    <target name="store.classes"
        depends="dirs, common.classes, xmlpublic.classes, typestore.classes, saaj_api.classes">
        <mkdir dir="build/classes/store"/>
        <javac srcdir="src/store" destdir="build/classes/store" source="${javac.source}" target="${javac.target}"
               debug="on" includeantruntime="false">
            <classpath id="store.compile.path">
                <pathelement location="build/classes/typestore"/>
                <pathelement location="build/classes/xmlinputstream"/>
                <pathelement location="build/classes/xmlpublic"/>
                <pathelement location="build/classes/common"/>
                <pathelement location="build/classes/saaj_api"/>
            </classpath>
        </javac>
    </target>

    <!-- tools target ============================================== -->

    <target name="tools.classes"
        depends="dirs, common.classes, xmlpublic.classes, typestore.classes, saaj_api.classes,
        typeimpl.classes, xmlcomp.classes">
        <mkdir dir="build/classes/tools"/>
        <javac srcdir="src/tools" destdir="build/classes/tools" source="${javac.source}" target="${javac.target}"
               debug="on" includeantruntime="false">
            <classpath id="tools.compile.path">
                <pathelement location="build/classes/typestore"/>
                <pathelement location="build/classes/xmlinputstream"/>
                <pathelement location="build/classes/xmlpublic"/>
                <pathelement location="build/classes/common"/>
                <pathelement location="build/classes/saaj_api"/>
                <pathelement location="build/classes/typeimpl"/>
                <pathelement location="build/classes/xmlcomp"/>
            </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/classes/xmlpublic"/>
    </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">
                <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="-ea"/>
            <arg line="${repackage_arg} -name sXMLSCHEMA  -srconly -d build/classes/xsdschema -noann -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 -->

    <!-- This doesn't really work anymore, because the "schema" part now needs the package name and the
         ant "replace" mechanism is too difficult to use to be worth it -->
    <target name="xmlschema.check">
        <condition property="xmlschema.notRequired">
            <uptodate property="xmlschema.notRequired" targetfile="build/classes/xmlschema">
                <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="-ea"/>
            <arg line="${repackage_arg} -name sXMLLANG -noann -d build/classes/xmlschema -src build/src/xmlschema -srconly src/xmlschema/schema"/>
        </java>
    </target>

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

    <target name="xmlconfig.classes" depends="dirs, xmlpublic.classes, configschema.classes">
        <mkdir dir="build/classes/xmlconfig"/>
        <javac srcdir="src/xmlconfig" destdir="build/classes/xmlconfig" source="${javac.source}" target="${javac.target}"
               debug="on" includeantruntime="false">
            <classpath>
                <pathelement location="build/classes/xmlpublic"/>
                <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">
            <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="-ea"/>
            <arg line="${repackage_arg} -name sXMLCONFIG -srconly -noann -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">
            <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="-ea"/>
            <arg line="${repackage_arg} -name sXMLTOOLS -srconly -noann -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="${rp_target_dir}/build.xml"/>
            <arg value="${token}"/>
            <arg value="${replacement}"/>
            <classpath>
                <pathelement location="build/classes/repackage"/>
            </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"/>
    <property name="jam_package_name" value="org.apache.xmlbeans.impl.jam"/>

    <!--
        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.

            rp_source_dir

                From where the sources come...

            rp_target_dir

                To where the repackaged sources are built
    -->


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

        <echo message="Re-packaging XmlBeans"/>
	<echo message="   from: ${rp_source_dir}"/>
	<echo message="   to:   ${rp_target_dir}"/>

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

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

        <echo message="Build XmlBeans in ${rp_target_dir}"/>

        <ant dir="${rp_target_dir}" target="xbean" inheritAll="false">
            <property name="repackage_arg" value="${new_repackage_arg}"/>
            <property name="bootstrap_schema_compiler" value="${bootstrap_schema_compiler}"/>
        </ant>

        <ant dir="${rp_target_dir}" target="quickbootstrap" inheritAll="false"/>

    </target>

    <target name="repackage.classes">
        <mkdir dir="build/classes/repackage"/>
        <javac srcdir="src/repackage" destdir="build/classes/repackage" source="${javac.source}" target="${javac.target}"
               debug="on" includeantruntime="false"/>
    </target>

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

    <target name="xpath.classes" depends="dirs, xmlpublic.classes, store.classes, saxon9.jar">
        <mkdir dir="build/classes/xpath_xquery"/>
        <mkdir dir="build/classes/xpath_xquery/META-INF"/>
        <mkdir dir="build/classes/xpath_xquery/META-INF/services"/>
        <copy
            file="src/xpath_xquery/SelectPathInterface.g"
            tofile="build/classes/xpath_xquery/META-INF/services/org.apache.xmlbeans.impl.store.PathDelegate.SelectPathInterface"/>
        <copy
            file="src/xpath_xquery/QueryInterface.g"
            tofile="build/classes/xpath_xquery/META-INF/services/org.apache.xmlbeans.impl.store.QueryDelegate.QueryInterface"/>
        <javac
            destdir="build/classes/xpath_xquery"
            classpathref="xpath.compile.path"
            source="${javac.source}" target="${javac.target}"
            debug="on"
            includeantruntime="false">
            <src path="src/xpath_xquery"/>
            <classpath id="xpath.compile.path">
                <pathelement location="build/classes/xmlpublic"/>
                <pathelement location="build/classes/store"/>
                <pathelement location="${saxon_jar}"/>
                <pathelement location="${saxon_dom_jar}"/>
            </classpath>
        </javac>
    </target>

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

    <!-- TEST Targets ===================================================== -->
    <!-- All targets hook up into testbuild.xml -->
    <property name="testbuild.file" value="testbuild.xml"/>

    <target name="testbuild">
        <ant antfile="${testbuild.file}" target="build"/>
    </target>

    <target name="build.tools">
        <ant antfile="${testbuild.file}" target="build.test.tools"/>
    </target>

    <target name="build.schemas">
        <ant antfile="${testbuild.file}" target="build.schemas"/>
    </target>

    <target name="build.tests">
        <ant antfile="${testbuild.file}" target="build.tests"/>
    </target>

    <target name="testclean">
        <ant antfile="${testbuild.file}" target="clean"/>
    </target>

    <target name="clean.schemas">
        <ant antfile="${testbuild.file}" target="clean.schemas"/>
    </target>

    <target name="clean.tests">
        <ant antfile="${testbuild.file}" target="clean.tests"/>
    </target>

    <target name="clean.cc">
        <ant antfile="${testbuild.file}" target="clean.cc"/>
    </target>

    <target name="run.junit">
        <ant antfile="${testbuild.file}" target="run.junit"/>
    </target>

    <target name="checkintest">
        <ant antfile="${testbuild.file}" target="checkin"/>
    </target>

    <target name="detailed">
        <ant antfile="${testbuild.file}" target="detailed"/>
    </target>

    <target name="compile.run">
        <ant antfile="${testbuild.file}" target="compile.run"/>
    </target>

    <path id="test.compile.path">
        <pathelement location="build/classes/marshal"/>
        <pathelement location="build/classes/common"/>
        <pathelement location="external/lib/junit.jar"/>
        <pathelement location="build/ar/xbean.jar"/>
        <pathelement location="build/classes/xmlinputstream"/>
    </path>

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


    <target name="drt.classes" depends="dirs">
        <mkdir dir="build/private/classes/drt"/>
        <javac
            destdir="build/private/classes/drt"
            classpathref="test.compile.path"
            source="${javac.source}" target="${javac.target}"
            debug="on"
            includeantruntime="false">
            <src path="test/src/drt"/>
        </javac>
    </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"/>
    </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="-ea"/>
            <arg line="-out build/private/lib/stsschema.jar test/src/stsschema"/>
        </java>
    </target>

    <!-- JAM deployment -->
    <target name="jam.classes.check">
        <uptodate property="jam.classes.notRequired"
            targetfile="build/ar/xbean.jar">
            <srcfiles dir="external/lib" includes="jam*-src.jar"/>
        </uptodate>
    </target>

    <target name="jam.classes" depends="jam.classes.check, dirs, repackage.classes" unless="jam.classes.notRequired">
        <delete dir="build/private/jam"/>
        <mkdir dir="build/private/jam"/>
        <unjar src="external/lib/jam-0.1.0-src.jar" dest="build/private/jam"/>

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

        <java classname="repackage.Repackage" fork="true" failonerror="true">
            <classpath>
                <pathelement location="build/classes/repackage"/>
            </classpath>
            <arg line="-repackage org.codehaus.jam:${jam_package_name} -f build/private/jam/src -t build/private/jam/src_repackage"/>
        </java>
        <!--copy file="build/private/jam/src/java.g" todir="build/private/jam/src_repackage"/-->

        <delete dir="build/classes/jam"/>
        <mkdir dir="build/classes/jam"/>
        <javac
            destdir="build/classes/jam"
            source="${javac.source}" target="${javac.target}"
            debug="on"
            includeantruntime="true">
            <src path="build/private/jam/src_repackage"/>
            <classpath/>
        </javac>
    </target>

    <macrodef name="downloadfile">
        <attribute name="src"/>
        <attribute name="dest"/>
        <sequential>
            <!--fail
                message="Java version might be uncapable to download https URLs - see https://stackoverflow.com/questions/6851461/java-why-does-ssl-handshake-give-could-not-generate-dh-keypair-exception">
                <condition>
                    <and>
                        <equals arg1="${ant.java.version}" arg2="1.6"/>
                        <contains string="@{src}" substring="https"/>
                    </and>
                </condition>
            </fail-->
            <get src="@{src}" dest="@{dest}" skipexisting="true"/>
        </sequential>
    </macrodef>

    <target name="rat-check" description="Runs the Apache Creadur Rat check against the source code, to spot any files which are missing the correct license headers">
        <mkdir dir="${rat.reportdir}" />
        <downloadfile src="${rat.url}" dest="${rat.jar}"/>

        <typedef resource="org/apache/rat/anttasks/antlib.xml"
                 uri="antlib:org.apache.rat.anttasks"
                 classpath="${rat.jar}" />
        <rat:report xmlns:rat="antlib:org.apache.rat.anttasks" reportFile="${rat.report}">
            <fileset dir="src/">
                <exclude name="**/*.iml" />
                <exclude name="**/*.g" />
                <exclude name="**/XML.xsd"/>
                <exclude name="**/XMLSchema.xsd"/>
            </fileset>
        </rat:report>

        <!-- remove clutter to compact build output -->
        <!-- replaceregexp doesn't work within loadfile ... -->
        <replaceregexp file="${rat.report}" match="\s+Printing headers for files without AL header.++" replace="" flags="s"/>

        <loadfile property="rat.reportcontent" srcFile="${rat.report}">
            <filterchain>
                <linecontainsregexp negate="true">
                    <regexp pattern="^\s+(AL|B|N)\s+"/>
                </linecontainsregexp>
            </filterchain>
        </loadfile>
        <echo>${rat.reportcontent}</echo>

        <!-- fail the build if at least one note is in the report -->
        <fail><condition><matches pattern="[1-9][0-9]* Unknown Licens" string="${rat.reportcontent}"/></condition></fail>
    </target>

    <!-- Runs the Forbiddens APIs checker against the source code, to -->
    <!--  spot any cases where we've accidently used methods we shouldn't -->
    <!-- See https://github.com/policeman-tools/forbidden-apis for details -->
    <!--  of the checks that this can do -->
    <target name="forbidden-apis-check">
        <downloadfile src="${forbidden.url}" dest="${forbidden.jar}"/>

        <taskdef name="forbiddenapis"
                 classname="de.thetaphi.forbiddenapis.ant.AntTask"
                 classpath="${forbidden.jar}"/>

        <!-- first check rules that apply to all the source code -->
        <path id="forbiddenapis.classpath">
            <pathelement location="build/classes/common"/>
            <pathelement location="build/classes/jam"/>
            <pathelement location="build/classes/marshal"/>
            <pathelement location="build/classes/repackage"/>
            <pathelement location="build/classes/saaj_api"/>
            <pathelement location="build/classes/store"/>
            <pathelement location="build/classes/tools"/>
            <pathelement location="build/classes/typeholder"/>
            <pathelement location="build/classes/typeimpl"/>
            <pathelement location="build/classes/typestore"/>
            <pathelement location="build/classes/xmlcomp"/>
            <pathelement location="build/classes/xmlinputstream"/>
            <pathelement location="build/classes/xmlpublic"/>
            <pathelement location="build/classes/xpath_xquery"/>
            <pathelement location="build/classes/xmlinputstream"/>
            <path path="${env.ANT_HOME}/lib/ant.jar"/>
            <pathelement location="external/lib/saxon9.jar"/>
            <pathelement location="external/lib/saxon9-dom.jar"/>
        </path>


        <forbiddenapis
                suppressAnnotation="org.apache.poi.util.SuppressForbidden"
                targetVersion="${javac.target}"
                classpathref="forbiddenapis.classpath"
        >
            <bundledsignatures name="jdk-unsafe"/>
            <bundledsignatures name="jdk-deprecated"/>
            <bundledsignatures name="jdk-internal"/>
            <bundledsignatures name="jdk-non-portable"/>
            <bundledsignatures name="jdk-reflection"/>

            <!--signaturesFileset file="src/resources/devtools/forbidden-signatures.txt"/-->
            <!-- sources -->
            <fileset dir="build/classes/xmlcomp"/>
            <fileset dir="build/classes/common"/>
            <fileset dir="build/classes/marshal"/>
            <fileset dir="build/classes/repackage"/>
            <fileset dir="build/classes/saaj_api"/>
            <fileset dir="build/classes/store"/>
            <fileset dir="build/classes/tools"/>
            <fileset dir="build/classes/typeholder"/>
            <fileset dir="build/classes/typeimpl"/>
            <fileset dir="build/classes/typestore"/>
            <fileset dir="build/classes/xmlcomp"/>
            <fileset dir="build/classes/xmlinputstream"/>
            <fileset dir="build/classes/xmlpublic"/>
            <fileset dir="build/classes/xpath_xquery"/>
            <fileset dir="build/classes/xmlinputstream"/>
        </forbiddenapis>

    </target>


</project>
