<!--
    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="XMLBeans" default="process-resources" basedir="."
     xmlns:mvn="antlib:org.apache.maven.artifact.ant"
     xmlns:if="ant:if" xmlns:unless="ant:unless">

    <property name="jdk.version.source" value="1.8" description="JDK version of source code"/>
    <property name="jdk.version.class" value="1.8" description="JDK version of generated class files"/>
    <property name="compile.debug" value="true"/>

    <property name="version.base" value="5.1.1-SNAPSHOT"/>
    <property name="version.rc" value=""/>

    <property name="cases.location" location="src/test/resources"/>

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

    <condition property="isJava8">
        <javaversion exactly="1.8"/>
    </condition>

    <macrodef name="dependency">
        <attribute name="prefix"/>
        <attribute name="artifact"/>
        <attribute name="usage"/>
        <attribute name="packaging" default="jar"/>
        <attribute name="repo" default="${repository.m2}"/>
        <attribute name="snapshot" default=""/>
        <attribute name="query" default=""/>
        <attribute name="target" default=""/>
        <attribute name="url" default=""/>

        <sequential>
            <local name="groupDir"/>
            <loadresource property="groupDir">
                <string>@{artifact}</string>
                <filterchain>
                    <replaceregex pattern="([^:]+).*" replace="\1"/>
                    <replaceregex pattern="\." replace="/" flags="g"/>
                </filterchain>
            </loadresource>

            <local name="artifactId"/>
            <loadresource property="artifactId">
                <string>@{artifact}</string>
                <filterchain>
                    <replaceregex pattern="[^:]+:([^:]+).*" replace="\1"/>
                </filterchain>
            </loadresource>

            <local name="versionDir"/>
            <loadresource property="versionDir">
                <string>@{artifact}</string>
                <filterchain>
                    <replaceregex pattern="[^:]+:[^:]+:([^:]+).*" replace="\1"/>
                </filterchain>
            </loadresource>

            <local name="classifier"/>
            <loadresource property="classifier">
                <string>@{artifact}</string>
                <filterchain>
                    <replaceregex pattern="[^:]+:[^:]+:[^:]+:?([^:]*)" replace="\1"/>
                    <replaceregex pattern="(.+)" replace="-\1"/>
                </filterchain>
            </loadresource>
            <property name="classifier" value=""/>

            <local name="version"/>
            <property name="version" value="${versionDir}" if:blank="@{snapshot}"/>
            <property name="version" value="@{snapshot}"/>

            <local name="usageDir"/>
            <loadresource property="usageDir">
                <string>@{usage}</string>
                <filterchain>
                    <replaceregex pattern="^([^/])" replace="/lib/\1"/>
                    <prefixlines prefix="${basedir}"/>
                </filterchain>
            </loadresource>

            <local name="jarName"/>
            <property name="jarName" value="${artifactId}-${version}${classifier}.@{packaging}"/>

            <!-- delete old versions -->
            <delete failonerror="false">
                <fileset dir="${usageDir}" excludes="${jarName}">
                    <filename regex="^${artifactId}-[0-9].*${classifier}\.@{packaging}"/>
                </fileset>
            </delete>

            <local name="jarLoc"/>
            <property name="jarLoc" value="${usageDir}/@{target}" unless:blank="@{target}"/>
            <property name="jarLoc" value="${usageDir}/${jarName}"/>

            <local name="urlLoc"/>
            <property name="urlLoc" value="@{url}" unless:blank="@{url}"/>
            <property name="urlLoc" value="@{repo}/${groupDir}/${artifactId}/${versionDir}/${jarName}@{query}"/>

            <property name="@{prefix}.@{packaging}" value="${jarLoc}"/>
            <property name="@{prefix}.url" value="${urlLoc}"/>

            <!-- TODO: add library to a queue for downloading ... -->
        </sequential>
    </macrodef>

    <!-- dependencies -->
    <dependency prefix="xml-apis" artifact="xml-apis:xml-apis:1.4.01" usage="java8"/>
    <dependency prefix="log4j-api" artifact="org.apache.logging.log4j:log4j-api:2.18.0" usage="main"/>
    <dependency prefix="saxon" artifact="net.sf.saxon:Saxon-HE:11.3" usage="main"/>
    <dependency prefix="ant" artifact="org.apache.ant:ant:1.10.12" usage="main"/>
    <dependency prefix="javaparser.core" artifact="com.github.javaparser:javaparser-core:3.24.2" usage="main"/>

    <!-- previous xmlbeans version is used to bootstrap necessary schema bindings -->
    <dependency prefix="old.xmlbeans" artifact="org.apache.xmlbeans:xmlbeans:3.1.0" usage="previous"/>

    <!-- Apache RAT license check properties -->
    <property name="rat.reportdir" value="build/rat"/>
    <property name="rat.report" value="${rat.reportdir}/report.txt"/>

    <dependency prefix="rat" artifact="org.apache.rat:apache-rat:0.13" usage="util"/>

    <!-- api checks -->
    <dependency prefix="forbidden" artifact="de.thetaphi:forbiddenapis:3.0.1" usage="util"/>

    <!-- test dependencies -->
    <dependency prefix="junit" artifact="junit:junit:4.13.2" usage="tests"/>
    <dependency prefix="log4j-core" artifact="org.apache.logging.log4j:log4j-core:2.18.0" usage="tests"/>
    <dependency prefix="xmlresolver" artifact="org.xmlresolver:xmlresolver:4.1.2" usage="main"/>
    <dependency prefix="ant-junit" artifact="org.apache.ant:ant-junit:1.10.12" usage="tests"/>
    <dependency prefix="ant-junit4" artifact="org.apache.ant:ant-junit4:1.10.12" usage="tests"/>
    <dependency prefix="hamcrest" artifact="org.hamcrest:hamcrest:2.2" usage="tests"/>
    <dependency prefix="xerces" artifact="xerces:xercesImpl:2.12.2" usage="tests"/>

    <!-- maven plugin dependencies -->
    <dependency prefix="maven-core" artifact="org.apache.maven:maven-core:3.6.3" usage="maven-plugin"/>
    <dependency prefix="maven-model" artifact="org.apache.maven:maven-model:3.6.3" usage="maven-plugin"/>
    <dependency prefix="maven-plugin-api" artifact="org.apache.maven:maven-plugin-api:3.6.3" usage="maven-plugin"/>
    <dependency prefix="maven-plugin-annotations" artifact="org.apache.maven.plugin-tools:maven-plugin-annotations:3.6.0" usage="maven-plugin"/>
    <!-- only necessary to compile against JDK8 internals - for Java9+ there's a mulitmodule implementation -->
    <dependency prefix="xml-resolver" artifact="com.sun.org.apache.xml.internal:resolver:20050927" usage="maven-plugin"/>

    <path id="maven-plugin">
        <pathelement location="${maven-core.jar}"/>
        <pathelement location="${maven-model.jar}"/>
        <pathelement location="${maven-plugin-api.jar}"/>
        <pathelement location="${maven-plugin-annotations.jar}"/>
        <pathelement location="${xml-resolver.jar}"/>
    </path>

    <path id="xmlbeans-test">
        <pathelement location="build/classes"/>
        <pathelement location="build/generated-resources"/>
        <dirset dir="src/main/resources" includes="*" excludes="maven"/>
        <pathelement location="${ant.jar}"/>
        <pathelement location="${ant-junit.jar}"/>
        <pathelement location="${ant-junit4.jar}"/>
        <pathelement location="${saxon.jar}"/>
        <pathelement location="${xmlresolver.jar}"/>
        <pathelement location="${log4j-api.jar}"/>
        <pathelement location="${log4j-core.jar}"/>
        <pathelement location="test/lib/w3c_domts.jar"/>
        <pathelement location="${junit.jar}"/>
        <pathelement location="${hamcrest.jar}"/>
        <pathelement location="${xerces.jar}"/>
        <pathelement location="${xml-apis.jar}" if:true="${isJava8}"/>
        <pathelement location="${javaparser.core.jar}"/>
        <path refid="maven-plugin"/>
    </path>

    <path id="sources">
        <pathelement location="src/main/java"/>
        <!-- the next sources depend on the oldxbean.jar -->
        <pathelement location="build/generated-sources"/>
    </path>


    <target name="usage" description="Shows the projecthelp">
        <java classname="org.apache.tools.ant.Main">
            <arg value="-projecthelp" />
        </java>
    </target>

    <target name="clean" description="Cleans out the xbeans directories">
        <delete dir="build"/>
    </target>

    <target name="-check-jars" description="Removes old dependencies and verifies downloaded ones">
        <!-- remove previous versions of third-party jars to prevent them from lingering around,
            we often had hard-to-find build/CI-problems because of these! -->
        <delete dir="compile-lib"/>
        <delete dir="lib/main" includes="javaparser-core-3.1*.jar,javaparser-core-3.23.0.jar,slf4j*.jar,Saxon-HE-10.2.jar"/>
        <delete dir="lib/tests" includes="slf4j*.jar"/>
        <delete dir="lib/util" includes="forbiddenapis-2.6.jar,apache-rat-0.12.jar"/>
        <condition property="jars.present">
            <or>
                <and>
                    <available file="${old.xmlbeans.jar}"/>
                    <available file="${javaparser.core.jar}"/>
                    <available file="${saxon.jar}"/>
                    <available file="${xmlresolver.jar}"/>
                    <available file="${log4j-api.jar}"/>
                    <available file="${log4j-core.jar}"/>
                    <available file="${junit.jar}"/>
                    <available file="${hamcrest.jar}"/>
                    <available file="${xerces.jar}"/>
                    <available file="${xml-apis.jar}"/>
                    <available file="${ant.jar}"/>
                    <available file="${ant-junit.jar}"/>
                    <available file="${ant-junit4.jar}"/>
                    <available file="${maven-core.jar}"/>
                    <available file="${maven-model.jar}"/>
                    <available file="${maven-plugin-api.jar}"/>
                    <available file="${maven-plugin-annotations.jar}"/>
                    <available file="${xml-resolver.jar}"/>
                </and>
                <isset property="disconnected"/>
            </or>
        </condition>
    </target>

    <macrodef name="downloadfile">
        <attribute name="src"/>
        <attribute name="dest"/>
        <sequential>
            <local name="destdir"/>
            <dirname property="destdir" file="@{dest}"/>
            <mkdir dir="${destdir}"/>
            <get src="@{src}" dest="@{dest}" skipexisting="true"/>
        </sequential>
    </macrodef>

    <target name="-fetch-jars" depends="-check-jars" unless="jars.present"
            description="Fetches needed JAR files from the Internet">
        <downloadfile dest="${old.xmlbeans.jar}" src="${old.xmlbeans.url}"/>
        <downloadfile dest="${javaparser.core.jar}" src="${javaparser.core.url}"/>
        <downloadfile dest="${saxon.jar}" src="${saxon.url}"/>
        <downloadfile dest="${xmlresolver.jar}" src="${xmlresolver.url}"/>
        <downloadfile dest="${log4j-api.jar}" src="${log4j-api.url}"/>
        <downloadfile dest="${log4j-core.jar}" src="${log4j-core.url}"/>
        <downloadfile dest="${junit.jar}" src="${junit.url}"/>
        <downloadfile dest="${hamcrest.jar}" src="${hamcrest.url}"/>
        <downloadfile dest="${xerces.jar}" src="${xerces.url}"/>
        <downloadfile dest="${xml-apis.jar}" src="${xml-apis.url}"/>
        <downloadfile dest="${ant.jar}" src="${ant.url}"/>
        <downloadfile dest="${ant-junit.jar}" src="${ant-junit.url}"/>
        <downloadfile dest="${ant-junit4.jar}" src="${ant-junit4.url}"/>
        <downloadfile dest="${maven-core.jar}" src="${maven-core.url}"/>
        <downloadfile dest="${maven-model.jar}" src="${maven-model.url}"/>
        <downloadfile dest="${maven-plugin-api.jar}" src="${maven-plugin-api.url}"/>
        <downloadfile dest="${maven-plugin-annotations.jar}" src="${maven-plugin-annotations.url}"/>
        <downloadfile dest="${xml-resolver.jar}" src="${xml-resolver.url}"/>
    </target>

    <macrodef name="schemaComp">
        <attribute name="schemaName"/>
        <attribute name="src"/>
        <attribute name="dest"/>
        <attribute name="classpathref"/>
        <sequential>
            <local name="srcDir"/>
            <local name="rscDir"/>
            <local name="up2date"/>

            <property name="srcDir" location="@{dest}/generated-sources"/>
            <property name="rscDir" location="@{dest}/generated-resources"/>

            <mkdir dir="${srcDir}"/>
            <mkdir dir="${rscDir}"/>

            <uptodate property="up2date" targetfile="${rscDir}/org/apache/xmlbeans/system/@{schemaName}/TypeSystemHolder.class">
                <srcresources>
                    <filelist dir="${basedir}" files="@{src}"/>
                </srcresources>
            </uptodate>

            <java classname="org.apache.xmlbeans.impl.tool.SchemaCompiler" fork="true" failonerror="true" classpathref="@{classpathref}" unless:true="${up2date}">
                <jvmarg value="-ea"/>
                <arg line="-name @{schemaName} -srconly -noann -d ${rscDir} -src ${srcDir} @{src}"/>
            </java>

        </sequential>
    </macrodef>

    <macrodef name="replaceHolder">
        <attribute name="srcDir"/>
        <attribute name="rscDir"/>
        <attribute name="schemaName"/>
        <sequential>
            <!-- if replaceHolder: copy TypeSystemHolder and replace package name, then compile -->
            <mkdir dir="@{srcDir}/org/apache/xmlbeans/metadata/system/@{schemaName}"/>
            <copy file="src/main/java/org/apache/xmlbeans/impl/schema/TypeSystemHolder.java" todir="@{srcDir}/org/apache/xmlbeans/metadata/system/@{schemaName}">
                <filterchain>
                    <replacestring from="package org.apache.xmlbeans.impl.schema" to="package org.apache.xmlbeans.metadata.system.@{schemaName}"/>
                </filterchain>
            </copy>

            <javac release="8"
                   destdir="@{rscDir}"
                   debug="${compile.debug}"
                   debuglevel="lines,vars,source"
                   includeantruntime="false"
                   target="${jdk.version.class}"
                   source="${jdk.version.source}">
                <src path="@{srcDir}/org/apache/xmlbeans/metadata/system/@{schemaName}"/>
                <classpath>
                    <pathelement location="${old.xmlbeans.jar}"/>
                    <path refid="maven-plugin"/>
                </classpath>
            </javac>
        </sequential>
    </macrodef>

    <macrodef name="schemaCompProd">
        <attribute name="classpathref"/>
        <attribute name="dest"/>
        <sequential>
            <schemaComp schemaName="sXMLLANG" src="src/main/schema/xml" dest="@{dest}" classpathref="@{classpathref}"/>
            <schemaComp schemaName="sXMLSCHEMA" src="src/main/schema/xsd" dest="@{dest}" classpathref="@{classpathref}"/>
            <schemaComp schemaName="sXMLCONFIG" src="src/main/schema/config" dest="@{dest}" classpathref="@{classpathref}"/>
            <schemaComp schemaName="sXMLTOOLS" src="src/main/schema/tools" dest="@{dest}" classpathref="@{classpathref}"/>
        </sequential>
    </macrodef>


    <target name="process-resources" depends="-fetch-jars" description="Generate sources and resources based on schema files">
        <!-- Note that this is tricky because it bootstraps xmlbeans on itself. -->
        <!-- The basic strategy is to rely on the oldxbeans.jar checked into lib -->

        <path id="oldxbean">
            <pathelement location="${old.xmlbeans.jar}"/>
        </path>

        <schemaCompProd classpathref="oldxbean" dest="build/bootstrap"/>

        <move file="build/bootstrap/generated-resources/schemaorg_apache_xmlbeans" tofile="build/bootstrap/generated-resources/org/apache/xmlbeans/metadata"/>

        <replaceHolder srcDir="build/bootstrap/generated-sources" rscDir="build/bootstrap/generated-resources" schemaName="sXMLLANG"/>
        <replaceHolder srcDir="build/bootstrap/generated-sources" rscDir="build/bootstrap/generated-resources" schemaName="sXMLSCHEMA"/>
        <replaceHolder srcDir="build/bootstrap/generated-sources" rscDir="build/bootstrap/generated-resources" schemaName="sXMLCONFIG"/>
        <replaceHolder srcDir="build/bootstrap/generated-sources" rscDir="build/bootstrap/generated-resources" schemaName="sXMLTOOLS"/>

        <replace dir="build/bootstrap/generated-sources" token="schemaorg_apache_xmlbeans" value="org.apache.xmlbeans.metadata" includes="**/*.java"/>
        <!-- remove deprecated and not supported XMLInputStream API -->
        <replaceregexp match="^.*@deprecated.*(XMLInputStream|No need).*\r?\n.*\r?\n.*\r?\n.*\r?\n" replace="" flags="gm">
            <fileset dir="build/bootstrap/generated-sources" includes="**/*.java"/>
        </replaceregexp>
        <replaceregexp match="^.*@deprecated.*\r?\n.*\r?\n" replace="" flags="gm">
            <fileset dir="build/bootstrap/generated-sources" includes="**/*.java"/>
        </replaceregexp>
        <replaceregexp match='public static final class Factory.*No instance of this class allowed\n\s\}' replace="" flags="gm">
            <fileset dir="build/bootstrap/generated-sources" includes="**/*.java"/>
        </replaceregexp>
        <replaceregexp match='^(\s+).*type =[^\n]*\r?\n.*\((.*)\.class[^"]+"([^"]+)"[^"]+("[^"]+").*$' replace="\1org.apache.xmlbeans.impl.schema.XmlObjectFactory&lt;\2> Factory = new org.apache.xmlbeans.impl.schema.XmlObjectFactory&lt;>(\3.TypeSystemHolder.typeSystem, \4);&#10;\1org.apache.xmlbeans.SchemaType type = Factory.getType();" flags="gm">
            <fileset dir="build/bootstrap/generated-sources" includes="**/*.java" excludes="**/impl/xb/*/impl/**"/>
        </replaceregexp>
        <replace dir="build/bootstrap/generated-sources" token=" enumValue()" value=" getEnumValue()" includes="**/*.java"/>
        <replace dir="build/bootstrap/generated-sources" token=" set(org.apache.xmlbeans.StringEnumAbstractBase" value=" setEnumValue(org.apache.xmlbeans.StringEnumAbstractBase" includes="**/*.java"/>
        <replace dir="build/bootstrap/generated-sources" token="java.util.List list" value="java.util.List&lt;?&gt; list" includes="**/*.java"/>

        <mkdir dir="build/classes"/>
        <mkdir dir="build/generated-sources"/>
        <javac release="8"
               destdir="build/classes"
               debug="${compile.debug}"
               debuglevel="lines,vars,source"
               includeantruntime="false"
               target="${jdk.version.class}"
               source="${jdk.version.source}">
            <src refid="sources"/>
            <src path="build/bootstrap/generated-sources"/>
            <classpath>
                <pathelement location="${ant.jar}"/>
                <pathelement location="${ant-junit.jar}"/>
                <pathelement location="${ant-junit4.jar}"/>
                <pathelement location="${saxon.jar}"/>
                <pathelement location="${log4j-api.jar}"/>
                <pathelement location="${javaparser.core.jar}"/>
                <path refid="maven-plugin"/>
            </classpath>
        </javac>
        <mkdir dir="build/generated-resources/org/apache/xmlbeans/impl/schema"/>

        <!-- now generate new xmlbeans re-/sources and remove the traces of the oldxbean generated re-/sources -->
        <path id="oldschemas">
            <pathelement location="${log4j-api.jar}"/>
            <pathelement location="${log4j-core.jar}"/>
            <pathelement location="${ant.jar}"/>
            <pathelement location="${ant-junit.jar}"/>
            <pathelement location="${ant-junit4.jar}"/>
            <pathelement location="build/classes"/>
            <pathelement location="build/bootstrap/generated-resources"/>
            <dirset dir="src/main/resources" includes="*" excludes="maven"/>
            <path refid="maven-plugin"/>
        </path>

        <schemaCompProd classpathref="oldschemas" dest="build"/>

        <!-- delete old schema classes and classes referencing on them -->
        <delete dir="build/classes/org/apache/xmlbeans" excludes="metadata/**"/>
    </target>

    <target name="compile" depends="process-resources" description="Compile sources and resources">
        <!-- delete old schema classes -->
        <delete dir="build/classes/org/apache/xmlbeans/impl/xb"/>

        <javac release="8"
               destdir="build/classes"
               debug="${compile.debug}"
               debuglevel="lines,vars,source"
               includeantruntime="false"
               target="${jdk.version.class}"
               source="${jdk.version.source}">
            <src refid="sources"/>
            <classpath path="${saxon.jar}"/>
            <classpath path="${log4j-api.jar}"/>
            <classpath path="${javaparser.core.jar}"/>
            <classpath path="${ant.jar}"/>
            <classpath refid="maven-plugin"/>
        </javac>

        <javac release="9"
               srcdir="${basedir}/src/main/multimodule/java9"
               destdir="${basedir}/src/main/multimodule/java9"
               includeantruntime="false"
               debug="${compile.debug}"
               debuglevel="lines,vars,source"
               fork="true"
               unless:true="${isJava8}">
            <compilerarg line="--patch-module org.apache.xmlbeans=${basedir}/build/classes"/>
            <modulepath>
                <pathelement path="lib/main"/>
            </modulepath>
        </javac>
    </target>

    <!-- Run this target before you open the project in an IDE. -->
    <target name="process-test-resources" depends="compile"
        description="Generate test sources and resources based on schema files.">
        <mkdir dir="build/tmp"/>
        <mkdir dir="build/test-classes"/>
        <mkdir dir="build/test-results"/>

        <!-- extensions currently deactivated - it generates duplicated methods -->
        <!--
        <pathconvert property="extensions-dir" pathsep=" ">
            <path>
                <dirset dir="test/src/xmlobject/extensions/" includes="interfaceFeature/*,prePostFeature/readOnlyBean"/>
                <dirset dir="${cases.location}/xbean/extensions/" includes="interfaceFeature/*,prePostFeature/readOnlyBean"/>
            </path>
        </pathconvert>
        <schemaComp schemaName="sEXTENSIONS" src="${extensions-dir}" dest="build/test-extensions" classpathref="xmlbeans-test"/>
        <schemaComp schemaName="sEXTENSIONS2" src="${cases.location}/xbean/extensions/prePostFeature/ValueRestriction test/src/xmlobject/extensions/prePostFeature/ValueRestriction" dest="build/test-extensions" classpathref="xmlbeans-test"/>
        -->

        <untar src="${cases.location}/xbean/tranxml.tar.bz2" dest="build/test-tranxml/schemas" compression="bzip2" overwrite="false">
            <patternset>
                <include name="tranxml/Version4.0/schemas/StandAlone/CarLocationMessage_40_LX.xsd"/>
            </patternset>
            <mapper type="flatten"/>
        </untar>
        <schemaComp schemaName="sTRAN" src="build/test-tranxml/schemas" dest="build/test-tranxml" classpathref="xmlbeans-test"/>
        <schemaComp schemaName="sTOOLS" src="test/tools/lib/xsl" dest="build/test-tools" classpathref="xmlbeans-test"/>
        <schemaComp schemaName="sXMLCURSOR" src="${cases.location}/xbean/xmlcursor" dest="build/test-xmlcursor" classpathref="xmlbeans-test"/>
        <schemaComp schemaName="sDOM" src="${cases.location}/xbean/dom" dest="build/test-dom" classpathref="xmlbeans-test"/>
        <schemaComp schemaName="sSCOMP" src="${cases.location}/xbean/scomp" dest="build/test-scomp" classpathref="xmlbeans-test"/>
        <schemaComp schemaName="sSIMPLE" src="${cases.location}/xbean/simple" dest="build/test-simple" classpathref="xmlbeans-test"/>
        <schemaComp schemaName="sVALIDATE" src="${cases.location}/xbean/ValidatingStream" dest="build/test-validate" classpathref="xmlbeans-test"/>
        <schemaComp schemaName="sUSERTYPE" src="${cases.location}/xbean/usertype" dest="build/test-usertype" classpathref="xmlbeans-test"/>
        <schemaComp schemaName="sLAX" src="${cases.location}/xbean/compile/scomp/detailed" dest="build/test-lax" classpathref="xmlbeans-test"/>

        <pathconvert property="xmlobjects" pathsep=" ">
            <path>
                <fileset dir="${cases.location}/xbean/xmlobject">
                    <include name="CR192525.xsd"/>
                    <include name="defaults.xsd"/>
                    <include name="easypo.xsd*"/>
                    <include name="enumtest.xsd*"/>
                    <include name="inttest.xsd"/>
                    <include name="listandunion.xsd"/>
                    <include name="nameworld.xsd"/>
                    <include name="numerals.xsd"/>
                    <include name="redefine2.xsd"/>
                    <include name="SelectAttribute.xsd"/>
                    <include name="SelectChildren.xsd"/>
                    <include name="selectChldAttTest.xsd"/>
                    <include name="soap-envelope.xsd"/>
                    <include name="soapfaults.xsd"/>
                    <include name="substgroup.xsd"/>
                    <include name="substgroup2.xsd"/>
                    <include name="Test.xsd"/>
                    <include name="Test36510.xsd"/>
                    <include name="Test40907.xsd"/>
                    <include name="version3.xsd"/>
                </fileset>
            </path>
        </pathconvert>
        <schemaComp schemaName="sXMLOBJECT" src="${xmlobjects}" dest="build/test-xmlobject" classpathref="xmlbeans-test"/>

        <pathconvert property="miscs" pathsep=" ">
            <path>
                <fileset dir="${cases.location}/xbean/misc/jira">
                    <include name="xmlbeans_33b.xsd"/>
                    <include name="xmlbeans_46.xsd"/>
                    <include name="xmlbeans_48.xsd"/>
                    <include name="xmlbeans_64.xsd"/>
                    <include name="xmlbeans_68.xsd"/>
                    <include name="xmlbeans_71.xsd"/>
                    <include name="xmlbeans_98.xsd"/>
                    <include name="xmlbeans_99*.xsd"/>
                    <include name="xmlbeans_105.xsd"/>
                    <include name="xmlbeans_175.xsd"/>
                    <include name="xmlbeans_177*.xsd"/>
                    <include name="xmlbeans_208.xsd"/>
                    <include name="xmlbeans_228.xsd"/>
                    <include name="xmlbeans_307_maxallowedenum.xsd"/>
                    <include name="xmlbeans_307_morethanallowedenum.xsd"/>
                </fileset>
                <pathelement location="${cases.location}/xbean/xmltokensource"/>
            </path>
        </pathconvert>
        <schemaComp schemaName="sMISC" src="${miscs}" dest="build/test-misc" classpathref="xmlbeans-test"/>

        <!-- don't include in normal test classpath -->
        <schemaComp schemaName="sSYSCACHE" src="${cases.location}/xbean/misc/syscachetest1.xsd" dest="build/test-syscache/1" classpathref="xmlbeans-test"/>
        <schemaComp schemaName="sSYSCACHE" src="${cases.location}/xbean/misc/syscachetest2.xsd" dest="build/test-syscache/2" classpathref="xmlbeans-test"/>
    </target>



    <target name="test-compile" depends="process-test-resources" description="Compile test sources and resources">
        <javac release="8"
               destdir="build/test-classes"
               debug="${compile.debug}"
               debuglevel="lines,vars,source"
               includeantruntime="false"
               classpathref="xmlbeans-test"
               target="${jdk.version.class}"
               source="${jdk.version.source}">
            <classpath>
                <dirset dir="build" includes="test-*/generated-resources"/>
            </classpath>
            <src path="src/test/java"/>
            <src>
                <dirset dir="build" includes="test-*/generated-sources"/>
            </src>
            <exclude name="**/extensions/**"/>
            <exclude name="**/drt/**"/>
        </javac>

        <mkdir dir="build/test-syscache/1/classes"/>
        <javac release="8"
               destdir="build/test-syscache/1/classes"
               debug="${compile.debug}"
               debuglevel="lines,vars,source"
               includeantruntime="false"
               classpathref="xmlbeans-test"
               srcdir="build/test-syscache/1/generated-sources"
               target="${jdk.version.class}"
               source="${jdk.version.source}">
            <classpath location="build/test-syscache/1/generated-resources"/>
        </javac>
        <mkdir dir="build/test-syscache/2/classes"/>
        <javac release="8"
               destdir="build/test-syscache/2/classes"
               debug="${compile.debug}"
               debuglevel="lines,vars,source"
               includeantruntime="false"
               classpathref="xmlbeans-test"
               srcdir="build/test-syscache/2/generated-sources"
               target="${jdk.version.class}"
               source="${jdk.version.source}">
            <classpath location="build/test-syscache/2/generated-resources"/>
        </javac>
    </target>

    <target name="test" depends="test-compile" description="Run the tests">
        <junit printsummary="yes" showoutput="no" haltonerror="true" haltonfailure="true" includeantruntime="false" fork="true">
            <classpath refid="xmlbeans-test"/>
            <classpath>
                <pathelement location="${cases.location}"/>
                <pathelement location="build/test-classes"/>
                <dirset dir="build" includes="test-*/generated-resources"/>
            </classpath>

            <formatter type="plain"/>
            <formatter type="xml"/>

            <jvmarg value="-ea"/>
            <jvmarg value="-Xmx256m"/>
            <jvmarg value="-Djava.io.tmpdir=${basedir}/build/tmp"/>

            <!-- For tests that need to access case files directly -->
            <sysproperty key="cases.location" path="${basedir}/src/test/resources"/>
            <sysproperty key="xbean.rootdir" path="${basedir}"/>

            <batchtest fork="yes" todir="build/test-results">
                <fileset dir="src/test/java">
                    <include name="**/*Tests.java"/>
                    <include name="**/*Test.java"/>
                    <exclude name="**/extensions/**"/>
                    <exclude name="**/drt/**"/>
                </fileset>
            </batchtest>
        </junit>
    </target>

    <target name="javadocs" description="Build the javadocs.">
        <property name="javadocs.dir" value="build/javadocs"/>
        <delete dir="${javadocs.dir}"/>
        <mkdir dir="${javadocs.dir}"/>

        <!-- force Java 8 source compatibility - see https://stackoverflow.com/questions/56409697 -->
        <javadoc sourcepathref="sources"
                 destdir="${javadocs.dir}"
                 windowtitle="XMLBeans ${version.base} Documentation"
                 source="8">
            <classpath>
                <pathelement location="build/classes"/>
                <fileset dir="lib/main" includes="*.jar"/>
                <fileset dir="lib/maven-plugin" includes="*.jar"/>
            </classpath>
            <excludepackage name="org.apache.xmlbeans.impl.repackage.*"/>
            <excludepackage name="org.apache.xmlbeans.impl.xb.*"/>
            <link href="https://docs.oracle.com/javase/9/docs/api/"/>
<!--            <link href="https://javadoc.io/doc/xml-apis/xml-apis/1.4.01/"/>-->
            <link href="https://javadoc.io/doc/com.github.javaparser/javaparser-core/3.24.2"/>
            <link href="https://ant.apache.org/manual/api/"/>
        </javadoc>
    </target>

    <target name="package" depends="compile,javadocs" description="Builds our jars in the build directory"><!--  -->
        <copy todir="build/maven">
            <fileset dir="src/main/resources/maven"/>
            <filterset>
                <filter token="VERSION" value="${version.base}"/>
            </filterset>
        </copy>
        <jar jarfile="build/xmlbeans-${version.base}.jar" update="false" index="true" duplicate="preserve">
            <fileset dir="build/classes" excludes="org/apache/xmlbeans/impl/schema/TypeSystemHolder.template"/>
            <fileset dir="." includes="LICENSE.txt,NOTICE.txt"/>
            <fileset dir="build/generated-resources"/>
            <zipfileset dir="src/main/multimodule/java9" prefix="META-INF/versions/9" excludes="**/*.java"/>
            <zipfileset dir="build/maven" prefix="META-INF/maven"/>
            <mappedresources>
                <fileset dir="src/main/resources" excludes="maven/**"/>
                <cutdirsmapper dirs="1"/>
            </mappedresources>
            <manifest>
                <attribute name="Multi-Release" value="true"/>
                <section name="org/apache/xmlbeans/">
                    <attribute name="Comment" value="Apache XmlBeans version ${version.base}"/>
                    <attribute name="Implementation-Title" value="org.apache.xmlbeans"/>
                    <attribute name="Implementation-Version" value="${version.base}"/>
                    <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
                    <attribute name="Implementation-URL" value="https://xmlbeans.apache.org/"/>
                </section>
            </manifest>
        </jar>

        <jar jarfile="build/xmlbeans-${version.base}-javadoc.jar" update="false" index="false" duplicate="preserve">
            <fileset dir="." includes="LICENSE.txt,NOTICE.txt"/>
            <fileset dir="build/javadocs"/>
            <manifest>
                <section name="org/apache/xmlbeans/">
                    <attribute name="Comment" value="Apache XmlBeans version ${version.base} - Javadocs"/>
                    <attribute name="Implementation-Title" value="org.apache.xmlbeans"/>
                    <attribute name="Implementation-Version" value="${version.base}"/>
                    <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
                    <attribute name="Implementation-URL" value="https://xmlbeans.apache.org/"/>
                </section>
            </manifest>
        </jar>

        <chainedmapper id="src-mapper">
            <cutdirsmapper dirs="1"/>
            <firstmatchmapper>
                <globmapper from="schema/*" to="org/apache/xmlbeans/src/*"/>
                <identitymapper />
            </firstmatchmapper>
        </chainedmapper>

        <jar jarfile="build/xmlbeans-${version.base}-sources.jar" update="false" index="false" duplicate="preserve">
            <fileset dir="." includes="LICENSE.txt,NOTICE.txt"/>
            <fileset dir="src/main/java"/>
            <fileset dir="build/generated-sources"/>
<!--
            <mappedresources>
                <fileset dir="src" excludes="toolschema/**,shell/**"/>
                <mapper refid="src-mapper"/>
            </mappedresources>
            <zipfileset dir="src/toolschema" prefix="org/apache/xmlbeans/src" excludes="**/*.xsd"/>
            <mappedresources>
                <fileset dir="build" includes="generated-sources/**,generated-resources/**" excludes="**/*.xsb,**/*.class"/>
                <mapper refid="src-mapper"/>
            </mappedresources>
-->

            <manifest>
                <section name="org/apache/xmlbeans/">
                    <attribute name="Comment" value="Apache XmlBeans version ${version.base} - Sources"/>
                    <attribute name="Implementation-Title" value="org.apache.xmlbeans"/>
                    <attribute name="Implementation-Version" value="${version.base}"/>
                    <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
                    <attribute name="Implementation-URL" value="https://xmlbeans.apache.org/"/>
                </section>
            </manifest>
        </jar>

        <tstamp>
            <format property="tstamp.dist" pattern="yyyyMMdd"/>
        </tstamp>

        <property name="prefix" value="xmlbeans-${version.base}"/>

        <zip destfile="build/xmlbeans-src-${version.base}-${tstamp.dist}.zip" update="false">
            <zipfileset dir="." excludes="build/**,tmp/**,.idea/**,bin/**,lib/**,/src/main/shell/**,.settings/**,.project,build.javacheck.xml,release-guide.txt" prefix="${prefix}"/>
        	<zipfileset dir="src/main/shell" prefix="${prefix}/bin" />
            <zipfileset dir="build/javadocs" prefix="${prefix}/javadocs" />
        </zip>
        <tar destfile="build/xmlbeans-src-${version.base}-${tstamp.dist}.tgz" compression="gzip" longfile="posix">
            <tarfileset dir="." excludes="build/**,tmp/**,.idea/**,bin/**,lib/**,/src/main/shell/**,.settings/**,.project,build.javacheck.xml,release-guide.txt" prefix="${prefix}"/>
        	<tarfileset dir="src/main/shell" prefix="${prefix}/bin" />
            <tarfileset dir="build/javadocs" prefix="${prefix}/javadocs" />
        </tar>

        <zip destfile="build/xmlbeans-bin-${version.base}-${tstamp.dist}.zip" update="false">
            <zipfileset dir="." includes="LICENSE.txt,NOTICE.txt" prefix="${prefix}"/>
            <zipfileset dir="samples" includes="Any/**,DateTime/**,MixedContent/**,OrderMatters/**,SchemaEnum/**,Validation/**,XQueryXPath/**,XsdConfig/**" prefix="${prefix}/samples"/>
            <zipfileset dir="src/main/shell" prefix="${prefix}/bin"/>
            <zipfileset dir="xkit" prefix="${prefix}"/>
            <zipfileset dir="src/main/schema/xsd" includes="*.xsd" prefix="${prefix}/schemas/s4s"/>
            <zipfileset dir="src/main/schema/xml" includes="*.xsd" prefix="${prefix}/schemas/s4s"/>
            <zipfileset dir="${cases.location}/xbean/xmlobject" includes="numerals.xsd,easypo.xsd*,nameworld.xsd" prefix="${prefix}/schemas"/>
            <zipfileset dir="build" prefix="${prefix}/lib">
                <include name="xmlbeans-${version.base}.jar"/>
                <include name="xmlbeans-${version.base}-javadoc.jar"/>
                <include name="xmlbeans-${version.base}-sources.jar"/>
            </zipfileset>
            <zipfileset dir="lib/main" prefix="${prefix}/lib">
                <include name="log4j-*.jar"/>
            </zipfileset>
            <zipfileset dir="lib/tests" prefix="${prefix}/lib">
                <include name="log4j-*.jar"/>
            </zipfileset>
        </zip>
        <tar destfile="build/xmlbeans-bin-${version.base}-${tstamp.dist}.tgz" compression="gzip" longfile="posix">
            <tarfileset dir="." includes="LICENSE.txt,NOTICE.txt" prefix="${prefix}"/>
            <tarfileset dir="samples" includes="Any/**,DateTime/**,MixedContent/**,OrderMatters/**,SchemaEnum/**,Validation/**,XQueryXPath/**,XsdConfig/**" prefix="${prefix}/samples"/>
            <tarfileset dir="src/main/shell" prefix="${prefix}/bin"/>
            <tarfileset dir="xkit" prefix="${prefix}"/>
            <tarfileset dir="src/main/schema/xsd" includes="*.xsd" prefix="${prefix}/schemas/s4s"/>
            <tarfileset dir="src/main/schema/xml" includes="*.xsd" prefix="${prefix}/schemas/s4s"/>
            <tarfileset dir="${cases.location}/xbean/xmlobject" includes="numerals.xsd,easypo.xsd*,nameworld.xsd" prefix="${prefix}/schemas"/>
            <tarfileset dir="build" prefix="${prefix}/lib">
                <include name="xmlbeans-${version.base}.jar"/>
                <include name="xmlbeans-${version.base}-javadoc.jar"/>
                <include name="xmlbeans-${version.base}-sources.jar"/>
            </tarfileset>
            <tarfileset dir="lib/main" prefix="${prefix}/lib">
                <include name="log4j-*.jar"/>
            </tarfileset>
            <tarfileset dir="lib/tests" prefix="${prefix}/lib">
                <include name="log4j-*.jar"/>
            </tarfileset>
        </tar>

    </target>

    <!-- spot any files which are missing the correct license headers -->
    <target name="rat-check" description="Runs the Apache Creadur Rat check against the source code">
        <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="main/resources/**/META-INF/services/**"/>
                <exclude name="**/*.iml" />
                <exclude name="**/XML.xsd"/>
                <exclude name="**/XMLSchema.xsd"/>
                <exclude name="**/zvon*.xml"/>
                <exclude name="**/xmldsig-core-schema.xsd"/>
                <exclude name="test/resources/xbean/xmlobject/japanese/**"/>
                <exclude name="test/resources/xbean/compile/scomp/j2ee/**"/>
                <exclude name="test/resources/xbean/dom/W3C/level2/core/files/**"/>
                <exclude name="test/resources/xbean/xmlobject/soap-envelope.xsd"/>
                <exclude name="test/resources/xbean/xmlobject/soap12-encoding.xsd"/>
                <exclude name="test/resources/xbean/compile/scomp/partials/**"/>
            </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>

    <!-- 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"
        description="Runs the Forbiddens APIs checker against the source code">
        <downloadfile src="${forbidden.url}" dest="${forbidden.jar}"/>

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

        <path id="forbiddenapis.classpath">
            <path refid="xmlbeans-test"/>
            <path path="${ant.jar}"/>
        </path>

        <!-- forbiddenapis bundled signatures max supported version is 14 -->
        <condition property="forbiddenVersion" value="14">
            <javaversion atleast="15"/>
        </condition>
        <property name="forbiddenVersion" value="${ant.java.version}"/>

        <!-- first check rules that apply to all the source code -->
        <forbiddenapis
                suppressAnnotation="org.apache.poi.util.SuppressForbidden"
                targetVersion="${forbiddenVersion}"
                classpathref="forbiddenapis.classpath"
        >
            <bundledsignatures name="jdk-unsafe"/>
            <bundledsignatures name="jdk-deprecated"/>
            <bundledsignatures name="jdk-internal"/>
            <bundledsignatures name="jdk-non-portable"/>
            <bundledsignatures name="jdk-reflection"/>

            <!-- sources -->
            <fileset dir="build/classes"/>
        </forbiddenapis>

    </target>

    <!-- forbidden-apis-check is currently not included as it is still failing... -->
    <target name="jenkins"
            depends="test,package,rat-check,findbugs"
            description="Combines all targets that are executed in CI runs"/>


    <available property="maven.ant.tasks.present" classname="org.apache.maven.artifact.ant.Pom"/>
    <target name="maven.ant.tasks-check">
        <fail unless="maven.ant.tasks.present">
            Maven ant tasks not found.
            Please make sure the maven-ant-tasks jar is in ANT_HOME/lib, or made
            available to Ant using other mechanisms like -lib or CLASSPATH.

            You can download the Maven Ant Tasks from https://maven.apache.org/ant-tasks/download.html
        </fail>
    </target>

    <target name="mvn-install" depends="maven.ant.tasks-check,package" description="Install XmlBeans artifacts into the local repository. Equivalent of 'mvn install'">
        <copy file="${basedir}/src/main/resources/maven/org.apache.xmlbeans/xmlbeans/pom.xml" todir="${basedir}/build" filtering="true">
            <filterset>
                <filter token="VERSION" value="${version.base}"/>
            </filterset>
        </copy>

        <mvn:install file="${basedir}/build/xmlbeans-${version.base}.jar">
            <pom file="${basedir}/build/pom.xml"/>
            <attach file="${basedir}/build/xmlbeans-${version.base}-sources.jar" type="jar" classifier="sources"/>
            <attach file="${basedir}/build/xmlbeans-${version.base}-javadoc.jar" type="jar" classifier="javadoc"/>
        </mvn:install>
    </target>



    <!-- disabling findbugs until jenkins is updated to a current IBM JDK
         see https://stackoverflow.com/a/48561534/2066598
         this should be replaced by spotbugs when available in the jenkins warnings plugin -->
    <target name="findbugs" depends="package">
        <property name="spotbugs.home" value="build/findbugs" />
        <property name="spotbugs.lib" value="/build/findbugs/lib" />

        <!-- findbugs successor, spotbugs ... need to use the dependencies used in the spotbugs release. -->
        <!-- compare with the entries found in the MANIFEST.MF of spotbugs.jar -->
        <dependency prefix="spotbugs" artifact="com.github.spotbugs:spotbugs:4.4.1" usage="${spotbugs.lib}" target="spotbugs.jar"/>
        <dependency prefix="spotbugs-ant" artifact="com.github.spotbugs:spotbugs-ant:4.4.1" usage="${spotbugs.lib}" target="spotbugs-ant.jar"/>
        <dependency prefix="spotbugs-anno" artifact="com.github.spotbugs:spotbugs-annotations:4.4.1" usage="${spotbugs.lib}" target="spotbugs-annotations.jar"/>
        <dependency prefix="spotbugs.asm" artifact="org.ow2.asm:asm:9.2" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.asm-analysis" artifact="org.ow2.asm:asm-analysis:9.2" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.asm-commons" artifact="org.ow2.asm:asm-commons:9.2" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.asm-tree" artifact="org.ow2.asm:asm-tree:9.2" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.asm-util" artifact="org.ow2.asm:asm-util:9.2" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.jsr305" artifact="com.google.code.findbugs:jsr305:3.0.2" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.dom4j" artifact="org.dom4j:dom4j:2.1.3" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.jaxen" artifact="jaxen:jaxen:1.2.0" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.bcel" artifact="org.apache.bcel:bcel:6.5.0" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.slf4j-api" artifact="org.slf4j:slf4j-api:1.8.0-beta4" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.commons-lang3" artifact="org.apache.commons:commons-lang3:3.12.0" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.commons-text" artifact="org.apache.commons:commons-text:1.9" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.jcip-annotations" artifact="net.jcip:jcip-annotations:1.0" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.icu4j" artifact="com.ibm.icu:icu4j:68.2" usage="${spotbugs.lib}" target="icu4j-63.1.jar"/>
        <dependency prefix="spotbugs.log4j-api" artifact="org.apache.logging.log4j:log4j-api:2.18.0" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.log4j-core" artifact="org.apache.logging.log4j:log4j-core:2.18.0" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.log4j-slf4j18-impl" artifact="org.apache.logging.log4j:log4j-slf4j18-impl:2.18.0" usage="${spotbugs.lib}"/>
        <dependency prefix="spotbugs.saxon" artifact="net.sf.saxon:Saxon-HE:9.9.1-8" usage="${spotbugs.lib}"/>

        <mkdir dir="${basedir}${spotbugs.lib}/config"/>

        <downloadfile src="${spotbugs.url}" dest="${spotbugs.jar}"/>
        <downloadfile src="${spotbugs-ant.url}" dest="${spotbugs-ant.jar}"/>
        <downloadfile src="${spotbugs-anno.url}" dest="${spotbugs-anno.jar}"/>
        <downloadfile src="${spotbugs.dom4j.url}" dest="${spotbugs.dom4j.jar}"/>
        <downloadfile src="${spotbugs.jaxen.url}" dest="${spotbugs.jaxen.jar}"/>
        <downloadfile src="${spotbugs.bcel.url}" dest="${spotbugs.bcel.jar}"/>
        <downloadfile src="${spotbugs.slf4j-api.url}" dest="${spotbugs.slf4j-api.jar}"/>
        <downloadfile src="${spotbugs.commons-lang3.url}" dest="${spotbugs.commons-lang3.jar}"/>
        <downloadfile src="${spotbugs.commons-text.url}" dest="${spotbugs.commons-text.jar}"/>
        <downloadfile src="${spotbugs.jcip-annotations.url}" dest="${spotbugs.jcip-annotations.jar}"/>
        <downloadfile src="${spotbugs.jsr305.url}" dest="${spotbugs.jsr305.jar}"/>
        <downloadfile src="${spotbugs.asm.url}" dest="${spotbugs.asm.jar}"/>
        <downloadfile src="${spotbugs.asm-analysis.url}" dest="${spotbugs.asm-analysis.jar}"/>
        <downloadfile src="${spotbugs.asm-commons.url}" dest="${spotbugs.asm-commons.jar}"/>
        <downloadfile src="${spotbugs.asm-tree.url}" dest="${spotbugs.asm-tree.jar}"/>
        <downloadfile src="${spotbugs.asm-util.url}" dest="${spotbugs.asm-util.jar}"/>
        <downloadfile src="${spotbugs.log4j-api.url}" dest="${spotbugs.log4j-api.jar}"/>
        <downloadfile src="${spotbugs.log4j-core.url}" dest="${spotbugs.log4j-core.jar}"/>
        <downloadfile src="${spotbugs.log4j-slf4j18-impl.url}" dest="${spotbugs.log4j-slf4j18-impl.jar}"/>
        <downloadfile src="${spotbugs.saxon.url}" dest="${spotbugs.saxon.jar}"/>
        <downloadfile src="${spotbugs.icu4j.url}" dest="${spotbugs.icu4j.jar}"/>

        <taskdef resource="edu/umd/cs/findbugs/anttask/tasks.properties">
            <classpath>
                <pathelement location="${spotbugs-ant.jar}"/>
            </classpath>
        </taskdef>

        <echo file="${basedir}${spotbugs.lib}/config/log4j2.xml"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
            <Configuration status="WARN">
                <Appenders>
                    <Console name="Console" target="SYSTEM_OUT">
                        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
                    </Console>
                </Appenders>
                <Loggers>
                    <Root level="error">
                        <AppenderRef ref="Console"/>
                    </Root>
                </Loggers>
            </Configuration>
        ]]></echo>

        <spotbugs home="${spotbugs.home}"
                  output="xml:withMessages"
                  outputFile="build/findbugs.xml"
                  effort="max"
                  failOnError="true">
            <fileset dir="build">
                <include name="xmlbeans-${version.base}.jar"/>
            </fileset>
            <auxClasspath path="${xml-apis.jar}"/>
            <auxClasspath path="${saxon.jar}"/>
            <auxClasspath path="${ant.jar}"/>
            <auxClasspath path="${javaparser.core.jar}"/>
            <sourcePath path="src/main/java" />
        </spotbugs>

        <!-- instead of calling findbugs again, we simply transform the xml -->
        <makeurl file="${basedir}${spotbugs.lib}/spotbugs.jar" property="findbugs.jarurl"/>
        <!-- although there's a findbugs history task too, it doesn't make much sense to provide it, -->
        <!-- as the build directory (i.e. the old findbugs.xml) is deleted regularly -->
        <xslt basedir="build" destdir="build" includes="findbugs.xml" force="true">
            <style>
                <url url="jar:${findbugs.jarurl}!/fancy.xsl"/>
            </style>
            <classpath>
                <pathelement location="${spotbugs.saxon.jar}"/>
            </classpath>
            <factory name="net.sf.saxon.TransformerFactoryImpl"/>
        </xslt>
    </target>

</project>
