<?xml version="1.0"?>
<!--/*******************************************************************************
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
*   Ant naming conventions:
*   - regardless of the actual OS platform,'/' is the directory separator
*     (Ant will convert as appropriate).
*   - multi-word properties use periods '.'
*     - properties ending in .jar define jarfile names only (no path)
*     - properties ending in .lib are fully qualified jars (path and filename)
*     - properties ending in .dir are directory paths
*     - properties ending in .path are path refid names or explicit classpath fragments
*   - multi-word targets use hyphens '-'
*     - targets beginning with test- are reserved for high level test targets,
*       and are used in test results parsing
*     - targets typically use the form <action>-<object>-<type> (ie. package-bundle-zip)
*   - multi-word macros use underscores '_'
*   - multi-word macro attributes are concatenated
*     e.g. 'runpathref'
*   - multi-word tasks (taskdef) names are concatenated
*     e.g. 'validateconnection'
*   - OS environment variables are in ALLCAPS and have 'env' as a prefix
*     e.g. ${env.XXX}.
*   - Ant properties are lower case.
*
* Contributors:
*     bdoughan   - initial API and implementation
*     dtwelves   - Sep 2008 - add in MOXy SRG testing
*     egwin      - Nov 2008 - remove compile of MOXY (add dep check instead)
*     rbarkhouse - 06 Apr 2011 - Separate JavadocAnnotationExamples from JAXBTestSuite
*     dmahar     - Jan 2012 - remove update-package-names targets
*     bdoughan   - Sep 2012 - Added RESTful tests and necessary dependencies
*     mvalovy    - Mar-Jul 2014 - Added Bean Validation support, JAXBBeanValidationTestSuite
*     mvalovy    - Mar 2015 - OSGi Tests
#******************************************************************************/-->

<project name="eclipselink.moxy.test" default="test" basedir=".">
    <available file="../${ant.project.name}" type="dir" property="moxytest.is.local"/>
    <fail message="Not running from '${ant.project.name}' directory" unless="moxytest.is.local"/>

    <dirname property="moxytest.build.location_temp" file="${ant.file.eclipselink.moxy.test}"/>
    <pathconvert targetos="unix" property="moxytest.build.location">
        <path>
            <pathelement location="${moxytest.build.location_temp}"/>
        </path>
    </pathconvert>
    <echo message="moxytest.build.location = '${moxytest.build.location}'"/>
    <condition property="moxytest.2.trunk.dir" value="../.." else="..">
        <contains string="${moxytest.build.location}" substring="moxy/${ant.project.name}"/>
    </condition>
    <echo message="moxytest.2.trunk.dir = '${moxytest.2.trunk.dir}'"/>
    <property name="moxytest.2.common.plugins.dir" value="${moxytest.2.trunk.dir}/plugins"/>
    <property name="moxytest.2.moxy.dir" value="${moxytest.2.trunk.dir}/moxy/org.eclipse.persistence.moxy"/>
    <property name="moxytest.2.core.dir" value="${moxytest.2.trunk.dir}/foundation/org.eclipse.persistence.core"/>
    <property name="moxytest.2.dynamic.dir"
              value="${moxytest.2.trunk.dir}/moxy/org.eclipse.persistence.moxy.dynamicxjc"/>
    <property name="moxytest.2.buildsys.dir" value="${moxytest.2.trunk.dir}/buildsystem"/>
    <property name="moxytest.plugins.dir" value="../plugins"/>
    <!-- Temporary until eclipselink.jar property is globally renamed -->
    <property name="eclipselink.jar" value="eclipselink.jar"/>

    <!-- Allows a user to override certain user specific properties. -->
    <property file="${user.home}/build.properties"/>
    <property file="${moxytest.build.location}/antbuild.properties"/>
    <propertyset id="parser.properties">
        <propertyref prefix="javax.xml"/>
    </propertyset>

    <property name="custom.tasks.lib" value="${moxytest.2.buildsys.dir}/ant_customizations.jar"/>
    <property name="custom.selectbundle.task.class"
              value="org.eclipse.persistence.buildtools.ant.taskdefs.SelectBundle"/>
    <taskdef name="selectbundle" classname="${custom.selectbundle.task.class}" classpath="${custom.tasks.lib}"/>

    <selectbundle basename="org.eclipse.persistence.nosql"
                  directory="${moxytest.build.location}/${moxytest.2.common.plugins.dir}" separator="_"
                  criterion="[2.0.0,9.0.0)" property="oep.nosql.lib" includepath="true"
            />
    <echo message="oep.nosql.lib ='${oep.nosql.lib}'"/>

    <property name="eclipselink.lib" value="${moxytest.2.trunk.dir}/${eclipselink.jar}"/>
    <property name="jaxb-xjc.lib" value="${moxytest.2.common.plugins.dir}/${jaxb-xjc.jar}"/>
    <property name="jaxb-api.lib" value="${moxytest.2.common.plugins.dir}/${jaxb-api.jar}"/>
    <property name="jaxb-impl.lib" value="${moxytest.2.common.plugins.dir}/${jaxb-impl.jar}"/>
    <property name="jaxb-core.lib" value="${moxytest.2.common.plugins.dir}/${jaxb-core.jar}"/>
    <property name="javax.validation.lib" value="${moxytest.2.common.plugins.dir}/${javax.validation.jar}"/>
    <property name="validation-impl.lib" value="${extensions.depend.dir}/${validation-impl.jar}"/>
    <property name="jboss-logging.lib" value="${extensions.depend.dir}/${jboss-logging.jar}"/>
    <property name="javax.el.lib" value="${extensions.depend.dir}/${javax.el.jar}"/>
    <property name="classmate.lib" value="${extensions.depend.dir}/${classmate.jar}"/>
    <property name="jmockit.lib" value="${extensions.depend.dir}/${jmockit.jar}"/>
    <property name="jacocoagent.lib" value="${extensions.depend.dir}/${jacocoagent.jar}"/>

    <condition property="validate.jar.exists">
        <and>
            <available file="${extensions.depend.dir}/${validation-impl.jar}"/>
            <available file="${extensions.depend.dir}/${jboss-logging.jar}"/>
            <available file="${extensions.depend.dir}/${javax.el.jar}"/>
            <available file="${extensions.depend.dir}/${classmate.jar}"/>
        </and>
    </condition>

    <!-- JVM used to run tests -->
    <property name="test.junit.jvm" value="${env.JAVA_HOME}"/>
    <property name="test.junit.jvm.exec" value="${test.junit.jvm}/bin/java"/>

    <path id="xml.parser.path">
        <fileset
                dir="${xml.parser.jar.dir}"
                includes="${xml.parser.jar}"/>
    </path>
    <!-- Compile/run paths -->
    <path id="jaxb.compile.path">
        <path refid="xml.parser.path"/>
        <pathelement path="${jaxb-api.lib}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${json.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${resource.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${ejb.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${jms.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${transaction.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${mail.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${jaxrs.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${asm.jar}"/>
        <pathelement path="${oep.nosql.lib}"/>
        <pathelement path="${jmockit.lib}"/>
        <pathelement path="${junit.lib}"/>
        <pathelement path="${moxytest.2.moxy.dir}/target/${classes.dir}"/>
        <pathelement path="${moxytest.2.core.dir}/target/${classes.dir}"/>
        <pathelement path="${jaxb-xjc.lib}"/>
        <pathelement path="${jaxb-impl.lib}"/>
        <pathelement path="${jaxb-core.lib}"/>
        <pathelement path="${javax.validation.lib}"/>
    </path>
    <path id="jaxb.run.path">
        <path refid="xml.parser.path"/>
        <pathelement path="${jaxb-api.lib}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${json.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${mail.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${jaxrs.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${asm.jar}"/>
        <pathelement path="${moxytest.2.moxy.dir}/target/${classes.dir}"/>
        <pathelement path="${moxytest.2.moxy.dir}/${resource.dir}"/>
        <pathelement path="${moxytest.2.dynamic.dir}/${classes.dir}"/>
        <pathelement path="${moxytest.2.core.dir}/target/${classes.dir}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/org.eclipse.persistence.asm"/>
        <pathelement path="${build.dir}/${classes.dir}"/>
        <pathelement path="${jaxb-xjc.lib}"/>
        <pathelement path="${jaxb-impl.lib}"/>
        <pathelement path="${jaxb-core.lib}"/>
        <pathelement path="${jmockit.lib}"/>
        <pathelement path="${jacocoagent.lib}"/>
        <pathelement path="${junit.lib}"/>
        <pathelement path="${validation-impl.lib}"/>
        <pathelement path="${jboss-logging.lib}"/>
        <pathelement path="${javax.el.lib}"/>
        <pathelement path="${classmate.lib}"/>
        <pathelement path="${javax.validation.lib}"/>
    </path>
    <path id="oxm.compile.path">
        <path refid="xml.parser.path"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${resource.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${ejb.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${jms.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${transaction.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${mail.jar}"/>
        <pathelement path="${oep.nosql.lib}"/>
        <pathelement path="${jmockit.lib}"/>
        <pathelement path="${junit.lib}"/>
        <pathelement path="${moxytest.2.moxy.dir}/target/${classes.dir}"/>
        <pathelement path="${moxytest.2.core.dir}/target/${classes.dir}"/>
    </path>
    <path id="oxm.run.path">
        <path refid="xml.parser.path"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${resource.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${ejb.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${jms.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${transaction.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${mail.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${asm.jar}"/>
        <pathelement path="${moxytest.2.moxy.dir}/target/${classes.dir}"/>
        <pathelement path="${build.dir}/${classes.dir}"/>
        <pathelement path="${moxytest.2.core.dir}/target/${classes.dir}"/>
        <pathelement path="${jacocoagent.lib}"/>
        <pathelement path="${jmockit.lib}"/>
        <pathelement path="${junit.lib}"/>
    </path>

    <!-- The following compile/run paths reference eclipselink.jar for non-test classes and resources -->
    <path id="jaxb.compile.against.jar.path">
        <path refid="xml.parser.path"/>
        <pathelement path="${jmockit.lib}"/>
        <pathelement path="${junit.lib}"/>
        <pathelement path="${jaxb-api.lib}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${json.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${resource.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${ejb.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${jms.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${transaction.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${mail.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${jaxrs.jar}"/>
        <pathelement path="${oep.nosql.lib}"/>
        <pathelement path="${eclipselink.lib}"/>
        <pathelement path="${jaxb-xjc.lib}"/>
        <pathelement path="${jaxb-impl.lib}"/>
        <pathelement path="${jaxb-core.lib}"/>
        <pathelement path="${javax.validation.lib}"/>
    </path>
    <path id="jaxb.run.against.jar.path">
        <path refid="xml.parser.path"/>
        <pathelement path="${jacocoagent.lib}"/>
        <pathelement path="${jmockit.lib}"/>
        <pathelement path="${junit.lib}"/>
        <pathelement path="${jaxb-api.lib}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${json.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${mail.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${jaxrs.jar}"/>
        <pathelement path="${oep.nosql.lib}"/>
        <pathelement path="${build.dir}/${classes.dir}"/>
        <pathelement path="${eclipselink.lib}"/>
        <pathelement path="${jaxb-xjc.lib}"/>
        <pathelement path="${jaxb-impl.lib}"/>
        <pathelement path="${jaxb-core.lib}"/>
        <pathelement path="${javax.validation.lib}"/>
        <pathelement path="${validation-impl.lib}"/>
        <pathelement path="${jboss-logging.lib}"/>
        <pathelement path="${javax.el.lib}"/>
        <pathelement path="${classmate.lib}"/>
    </path>
    <path id="oxm.compile.against.jar.path">
        <path refid="xml.parser.path"/>
        <pathelement path="${jaxb-api.lib}"/>
        <pathelement path="${jmockit.lib}"/>
        <pathelement path="${junit.lib}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${resource.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${ejb.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${jms.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${transaction.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${mail.jar}"/>
        <pathelement path="${oep.nosql.lib}"/>
        <pathelement path="${eclipselink.lib}"/>
    </path>
    <path id="oxm.run.against.jar.path">
        <path refid="xml.parser.path"/>
        <pathelement path="${jacocoagent.lib}"/>
        <pathelement path="${jmockit.lib}"/>
        <pathelement path="${junit.lib}"/>
        <pathelement path="${jaxb-api.lib}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${json.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${resource.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${ejb.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${jms.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${transaction.jar}"/>
        <pathelement path="${moxytest.2.common.plugins.dir}/${mail.jar}"/>
        <pathelement path="${oep.nosql.lib}"/>
        <pathelement path="${build.dir}/${classes.dir}"/>
        <pathelement path="${eclipselink.lib}"/>
    </path>

    <mkdir dir="${build.dir}"/>

    <!-- Test targets -->
    <target name="test" depends="clean-reports, compile-and-run-tests, moxy-junit-report"
            description="run moxy tests and generate junit report"/>
    <target name="test-jaxb" depends="clean-jaxb-reports, compile-and-run-jaxb-tests, jaxb-junit-report"
            description="build and run moxy (jaxb) tests and generate junit report"/>
    <target name="test-oxm" depends="clean-oxm-reports, compile-and-run-oxm-tests, oxm-junit-report"
            description="build and run moxy (oxm) tests and generate junit report"/>
    <target name="test-tl-deploymentxml"
            depends="clean-oxm-reports, compile-and-run-oxm-deploymentxml-tl-tests, oxm-junit-report"
            description="build and run moxy (oxm) tl deployment xml tests and generate junit report"/>
    <target name="test-package-installer-zip"
            depends="clean-installer-reports, compile-tests, run-installer-tests, installer-junit-report"
            description="build and run moxy (installer) tests and generate junit report"/>
    <target name="test-osgi"
            depends="init-osgi, check-osgi, compile-and-run-osgi-tests"
            description="build and run moxy and moxy-core osgi tests"/>

    <!-- The following tests build and run against eclipselink.jar -->
    <target name="test-against-jar" depends="clean-reports, compile-and-run-tests-against-jar, moxy-junit-report"
            description="run moxy tests against eclipselink.jar and generate junit report"/>
    <target name="test-srg-against-jar" depends="compile-and-run-srg-tests-against-jar, moxy-srg-junit-report"
            description="run moxy srg tests against eclipselink.jar and generate junit report"/>
    <target name="test-jaxb-against-jar"
            depends="clean-jaxb-reports, compile-and-run-jaxb-tests-against-jar, jaxb-junit-report"
            description="build and run moxy (jaxb) tests against eclipselink.jar and generate junit report"/>
    <target name="test-oxm-against-jar"
            depends="clean-oxm-reports, compile-and-run-oxm-tests-against-jar, oxm-junit-report"
            description="build and run moxy (oxm) tests against eclipselink.jar and generate junit report"/>

    <!-- Build targets -->
    <target name="compile-tests" depends="clean" description="build moxy test classes">
        <available file="${moxytest.2.common.plugins.dir}/org.eclipse.persistence.moxy_${version.string}.jar"
                   property="moxy.bundle.exist"/>
        <!-- fail message="Cannot find MOXY: '${moxytest.2.common.plugins.dir}/org.eclipse.persistence.moxy_${version.string}.jar'." unless="moxy.bundle.exist"/ -->
        <compile_moxy_tests subcomponent="oxm" compilepathref="oxm.compile.path"/>
        <compile_moxy_tests subcomponent="jaxb" compilepathref="jaxb.compile.path"/>
        <compile_moxy_tests subcomponent="moxy" compilepathref="jaxb.compile.path"/>
    </target>
    <target name="compile-tests-against-jar" depends="clean"
            description="build moxy test classes against eclipselink.jar">
        <echo message="Compiling OXM tests..."/>
        <compile_moxy_tests subcomponent="oxm" compilepathref="oxm.compile.against.jar.path"/>
        <echo message=""/>
        <echo message="Compiling JAXB tests..."/>
        <compile_moxy_tests subcomponent="jaxb" compilepathref="jaxb.compile.against.jar.path"/>
    <echo message="Compiling MOXy unit tests..."/>
    <compile_moxy_tests subcomponent="moxy" compilepathref="jaxb.compile.against.jar.path"/>
    </target>

    <!-- Build & Run targets -->
    <target name="compile-and-run-tests" depends="compile-tests" description="build and run moxy tests">
        <run_jaxb_tests runpathref="jaxb.run.path"/>
        <run_oxm_tests runpathref="oxm.run.path"/>
        <run_oxm_dom_tests runpathref="oxm.run.path"/>
        <run_oxm_deploymentxml_tests runpathref="oxm.run.path"/>
        <run_oxm_docpres_tests runpathref="oxm.run.path"/>
    </target>
    <target name="compile-and-run-jaxb-tests" depends="compile-tests" description="build and run moxy (oxm) tests">
        <run_jaxb_tests runpathref="jaxb.run.path"/>
    </target>
    <target name="compile-and-run-oxm-tests" depends="compile-tests" description="build and run moxy (oxm) tests">
        <run_oxm_tests runpathref="oxm.run.path"/>
        <run_oxm_dom_tests runpathref="oxm.run.path"/>
        <run_oxm_deploymentxml_tests runpathref="oxm.run.path"/>
        <run_oxm_docpres_tests runpathref="oxm.run.path"/>
    </target>
    <target name="compile-and-run-oxm-deploymentxml-tl-tests" depends="compile-tests"
            description="build and run moxy (oxm) tl deployment xml tests">
        <run_oxm_deploymentxml_tl_tests runpathref="oxm.run.path"/>
    </target>

    <target name="init-osgi">
        <property environment="env"/>
        <condition property="m2.home.exists" value="true">
            <isset property="env.M2_HOME"/>
        </condition>
        <condition property="M2_HOME" value="${env.M2_HOME}">
            <isset property="m2.home.exists"/>
        </condition>
    </target>
    <target name="check-osgi" unless="m2.home.exists">
        <echo message="Skipping OSGi Tests. M2_HOME is not set."/>
    </target>
    <target name="compile-and-run-osgi-tests">
        <condition property="version.qualifier" value="${version.qualifier}" else="qualifier">
            <isset property="version.qualifier"/>
        </condition>
        <echo message="Launching Maven build with the following parameters:"/>
        <echo message="    -Dclassworlds.conf=${M2_HOME}/bin/m2.conf"/>
        <echo message="    -Dmaven.home=${M2_HOME}"/>
        <echo message="    -Dbuild.qualifier=${version.qualifier}"/>
        <echo message="    -Drelease.version=${release.version}"/>
        <java jvm="${test.junit.jvm.exec}" dir="${basedir}" fork="true" failonerror="true" classname="org.codehaus.plexus.classworlds.launcher.Launcher">
            <jvmarg value="-Dclassworlds.conf=${M2_HOME}/bin/m2.conf"/>
            <jvmarg value="-Dmaven.home=${M2_HOME}"/>
            <jvmarg value="-Dmaven.multiModuleProjectDirectory=${basedir}"/>
            <!--<arg line="-Dmaven.surefire.debug clean install"/>-->
            <arg line="clean test"/>
            <arg line="-Dmoxytest.2.common.plugins.dir=${basedir}/../../plugins/"/>
            <arg line="-Djavax.validation.lib=${basedir}/${javax.validation.lib}"/>
            <arg line="-Dbuild.qualifier=${version.qualifier}"/>
            <arg line="-Drelease.version=${release.version}"/>
            <arg line="-Djaxb-api.jar=${jaxb-api.jar}"/>
            <arg line="-Djaxrs.jar=${jaxrs.jar}"/>
            <arg line="-Dasm.jar=${asm.jar}"/>
            <arg line="-Dtest.junit.jvm=${test.junit.jvm}"/>
            <classpath>
                <fileset dir="${M2_HOME}/boot">
                    <include name="plexus-classworlds-*.jar"/>
                </fileset>
            </classpath>
        </java>
    </target>

    <target name="run-installer-tests">
        <tempfile property="unzip.temp.file" destDir="${java.io.tmpdir}" prefix="build"/>
        <mkdir dir="${unzip.temp.file}"/>
        <echo>${unzip.temp.file}</echo>
        <unzip src="${moxytest.2.trunk.dir}/${eclipselink.zip.file}" dest="${unzip.temp.file}"/>
        <chmod dir="${unzip.temp.file}/eclipselink/bin" perm="+x" includes="**/*"/>

        <delete dir="${report.dir}/installer" failonerror="false"/>
        <mkdir dir="${report.dir}/installer"/>
        <mkdir dir="${build.dir}/${test.dir}"/>
        <junit jvm="${test.junit.jvm.exec}" printsummary="yes" fork="true" dir="${build.dir}/${test.dir}" tempdir="${build.dir}/${test.dir}" showoutput="yes" maxmemory="512m">
            <env key="ECLIPSELINK_UNZIP_DIR" value="${unzip.temp.file}"/>
            <batchtest todir="${report.dir}/installer">
                <fileset dir="${src.dir}">
                    <include name="org/eclipse/persistence/testing/jaxb/installer/InstallerTestSuite.java"/>
                </fileset>
                <formatter type="xml"/>
            </batchtest>
            <classpath>
                <path refid="jaxb.run.path"/>
            </classpath>
        </junit>
        <delete dir="${unzip.temp.file}" failonerror="false"/>
    </target>
    <!-- The following targets build and run against eclipselink.jar -->
    <target name="compile-and-run-tests-against-jar" depends="compile-tests-against-jar"
            description="build and run moxy tests against eclipselink.jar">
        <run_jaxb_tests runpathref="jaxb.run.against.jar.path"/>
        <run_oxm_tests runpathref="oxm.run.against.jar.path"/>
        <run_oxm_dom_tests runpathref="oxm.run.against.jar.path"/>
        <run_oxm_deploymentxml_tests runpathref="oxm.run.against.jar.path"/>
        <run_oxm_docpres_tests runpathref="oxm.run.against.jar.path"/>
    </target>
    <target name="compile-and-run-srg-tests-against-jar" depends="compile-tests-against-jar"
            description="build and run moxy srg tests against eclipselink.jar">
        <run_jaxb_srg_tests runpathref="jaxb.run.against.jar.path"/>
        <run_oxm_srg_tests runpathref="oxm.run.against.jar.path"/>
    </target>
    <target name="compile-and-run-jaxb-tests-against-jar" depends="compile-tests-against-jar"
            description="build and run moxy (oxm) tests against eclipselink.jar">
        <run_jaxb_tests runpathref="jaxb.run.against.jar.path"/>
    </target>
    <target name="compile-and-run-oxm-tests-against-jar" depends="compile-tests-against-jar"
            description="build and run moxy (oxm) tests against eclipselink.jar">
        <run_oxm_tests runpathref="oxm.run.against.jar.path"/>
        <run_oxm_dom_tests runpathref="oxm.run.against.jar.path"/>
        <run_oxm_deploymentxml_tests runpathref="oxm.run.against.jar.path"/>
        <run_oxm_docpres_tests runpathref="oxm.run.against.jar.path"/>
    </target>

    <!-- JUnit report targets -->
    <target name="moxy-junit-report" depends="jaxb-junit-report, oxm-junit-report"
            description="create moxy junit report"/>
    <target name="jaxb-junit-report" description="create jaxb junit report">
        <junitreport todir="${report.dir}/jaxb">
            <fileset dir="${report.dir}/jaxb">
                <include name="**/*.xml"/>
            </fileset>
            <report format="noframes" todir="${report.dir}/jaxb"/>
        </junitreport>
    </target>
    <target name="oxm-junit-report" description="create oxm junit report">
        <junitreport todir="${report.dir}/oxm">
            <fileset dir="${report.dir}/oxm">
                <include name="**/*.xml"/>
            </fileset>
            <report format="noframes" todir="${report.dir}/oxm"/>
        </junitreport>
    </target>
    <target name="installer-junit-report" description="create installer junit report">
        <junitreport todir="${report.dir}/installer">
            <fileset dir="${report.dir}/installer">
                <include name="**/*.xml"/>
            </fileset>
            <report format="noframes" todir="${report.dir}/installer"/>
        </junitreport>
    </target>

    <target name="moxy-srg-junit-report" description="create moxy srg junit report">
        <junitreport todir="${report.dir}/srg">
            <fileset dir="${report.dir}/srg">
                <include name="**/*.xml"/>
            </fileset>
            <report format="noframes" todir="${report.dir}/srg"/>
        </junitreport>
    </target>


    <!-- Clean targets -->
    <target name="clean-reports" depends="clean-oxm-reports, clean-jaxb-reports"
            description="clean moxy junit report directory">
        <delete dir="${report.dir}/jaxb" failonerror="false"/>
        <delete dir="${report.dir}/oxm" failonerror="false"/>
        <mkdir dir="${report.dir}/jaxb"/>
        <mkdir dir="${report.dir}/oxm"/>
        <mkdir dir="${report.dir}/installer"/>
    </target>
    <target name="clean-oxm-reports" description="clean moxy (oxm) junit report directory">
        <delete dir="${report.dir}/oxm" failonerror="false"/>
        <mkdir dir="${report.dir}/oxm"/>
    </target>
    <target name="clean-jaxb-reports" description="clean moxy (jaxb) junit report directory">
        <delete dir="${report.dir}/jaxb" failonerror="false"/>
        <mkdir dir="${report.dir}/jaxb"/>
    </target>
    <target name="clean-installer-reports" description="clean moxy (installer) junit report directory">
        <delete dir="${report.dir}/installer" failonerror="false"/>
        <mkdir dir="${report.dir}/installer"/>
    </target>
    <target name="clean" description="clean the build">
        <delete dir="${build.dir}" failonerror="false"/>
    </target>

    <!-- Test run macros -->
    <macrodef name="run_jaxb_tests">
        <attribute name="runpathref"/>
        <sequential>
            <echo message="Bean Validation jars found: ${validate.jar.exists}."/>
            <delete dir="${report.dir}/jaxb" failonerror="false"/>
            <mkdir dir="${report.dir}/jaxb"/>
            <mkdir dir="${build.dir}/${test.dir}/${tmp.dir}"/>
            <!-- Can be set e.g. in test.properties to add VM options for a particular platform/driver  -->
            <property name="additional.jvmargs" value="-Ddummy2=dummy"/>
            <junit jvm="${test.junit.jvm.exec}" printsummary="yes" fork="true" dir="${build.dir}/${test.dir}" tempdir="${build.dir}/${test.dir}" showoutput="yes" maxmemory="512m">
                <!--<jvmarg value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"/>-->
                <jvmarg value="-ea"/>
                <jvmarg value="-javaagent:${jmockit.lib}"/>
                <jvmarg line="${additional.jvmargs}"/>
                <env key="T_WORK" value="${tmp.dir}"/>
                <sysproperty key="platformType" value="SAX"/>
                <sysproperty key="metadataType" value="JAVA"/>
                <sysproperty key="useLogging" value="false"/>
                <sysproperty key="eclipselink.xml.platform" value="${xml.platform}"/>
                <sysproperty key="parser" value="${parser}"/>
                <syspropertyset refid="parser.properties"/>
                <batchtest todir="${report.dir}/jaxb">
                    <fileset dir="${src.dir}">
                        <include name="org/eclipse/persistence/testing/jaxb/JAXBTestSuite.java"/>
                        <include name="org/eclipse/persistence/testing/jaxb/JAXBTestSuite2.java"/>
                        <include name="org/eclipse/persistence/testing/jaxb/JAXBTestSuite3.java"/>
                        <include name="org/eclipse/persistence/testing/jaxb/JAXBTestSuite4.java"/>
                        <include name="org/eclipse/persistence/testing/jaxb/JAXBBeanValidationTestSuite.java"
                                 if="validate.jar.exists"/>
                        <include name="org/eclipse/persistence/testing/jaxb/beanvalidation/BeanValidationHelperTestCase.java"
                                 if="validate.jar.exists"/>
                        <include name="org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsSuite.java"/>
                        <include name="org/eclipse/persistence/testing/jaxb/annotations/AnnotationsTestSuite.java"/>
                        <include
                                name="org/eclipse/persistence/testing/jaxb/externalizedmetadata/ExternalizedMetadataTestSuite.java"/>
                        <include
                                name="org/eclipse/persistence/testing/jaxb/javadoc/JavadocAnnotationExamplesTestSuite.java"/>
                        <include
                                name="org/eclipse/persistence/testing/jaxb/typemappinginfo/TypeMappingInfoTestSuite.java"/>
                        <include name="org/eclipse/persistence/testing/jaxb/schemagen/SchemaGenTestSuite.java"/>
                        <include name="org/eclipse/persistence/testing/jaxb/xmladapter/XmlAdapterTestSuite.java"/>
                        <include name="org/eclipse/persistence/testing/jaxb/dynamic/DynamicJAXBTestSuite.java"/>
                        <include name="org/eclipse/persistence/testing/jaxb/json/JSONTestSuite.java"/>
                        <include name="org/eclipse/persistence/testing/jaxb/rs/RESTfulTestSuite.java"/>
                        <include name="org/eclipse/persistence/testing/moxy/unit/**/*TestCase.java"/>
                    </fileset>
                    <formatter type="xml"/>
                </batchtest>
                <test name="org.eclipse.persistence.testing.jaxb.annotations.xmlidref.XmlIdSystemPropertyTestCase" todir="${report.dir}/jaxb">
                    <formatter type="xml"/>
                </test>
                <test name="org.eclipse.persistence.testing.jaxb.annotations.xmlidref.XmlIdSystemPropertyNotSetTestCase" todir="${report.dir}/jaxb">
                    <formatter type="xml"/>
                </test>
                <test name="org.eclipse.persistence.testing.jaxb.annotations.xmlvalue.XmlValueSystemPropertyNotSetTestCase" todir="${report.dir}/jaxb">
                    <formatter type="xml"/>
                </test>
                <test name="org.eclipse.persistence.testing.jaxb.annotations.xmlvalue.XmlValueSystemPropertyTestCase" todir="${report.dir}/jaxb">
                    <formatter type="xml"/>
                </test>
                <classpath>
                    <path refid="@{runpathref}"/>
                </classpath>
            </junit>
        </sequential>
    </macrodef>
    <macrodef name="run_jaxb_srg_tests">
        <attribute name="runpathref"/>
        <sequential>
            <delete dir="${report.dir}/srg/jaxb" failonerror="false"/>
            <mkdir dir="${report.dir}/srg/jaxb"/>
            <mkdir dir="${build.dir}/${test.dir}/${tmp.dir}"/>
            <!-- Can be set e.g. in test.properties to add VM options for a particular platform/driver  -->
            <property name="additional.jvmargs" value="-Ddummy2=dummy"/>
            <junit jvm="${test.junit.jvm.exec}" printsummary="yes" fork="true" dir="${build.dir}/${test.dir}" tempdir="${build.dir}/${test.dir}" showoutput="yes" maxmemory="512m">
                <jvmarg value="-ea"/>
                <jvmarg line="${additional.jvmargs}"/>
                <env key="T_WORK" value="${tmp.dir}"/>
                <sysproperty key="platformType" value="SAX"/>
                <sysproperty key="metadataType" value="JAVA"/>
                <sysproperty key="useLogging" value="false"/>
                <sysproperty key="eclipselink.xml.platform" value="${xml.platform}"/>
                <sysproperty key="parser" value="${parser}"/>
                <syspropertyset refid="parser.properties"/>
                <batchtest todir="${report.dir}/srg/jaxb">
                    <fileset dir="${src.dir}">
                        <include name="org/eclipse/persistence/testing/jaxb/JAXBSRGTestSuite.java"/>
                    </fileset>
                    <formatter type="xml"/>
                </batchtest>
                <classpath>
                    <path refid="@{runpathref}"/>
                </classpath>
            </junit>
        </sequential>
    </macrodef>
    <macrodef name="run_oxm_srg_tests">
        <attribute name="runpathref"/>
        <sequential>
            <delete dir="${report.dir}/srg/oxm" failonerror="false"/>
            <mkdir dir="${report.dir}/srg/oxm/default"/>
            <mkdir dir="${build.dir}/${test.dir}"/>
            <junit jvm="${test.junit.jvm.exec}" printsummary="yes" fork="true" dir="${build.dir}/${test.dir}" tempdir="${build.dir}/${test.dir}" showoutput="yes" maxmemory="512m">
                <sysproperty key="useLogging" value="false"/>
                <sysproperty key="eclipselink.xml.platform" value="${xml.platform}"/>
                <sysproperty key="parser" value="${parser}"/>
                <syspropertyset refid="parser.properties"/>
                <batchtest todir="${report.dir}/srg/oxm/default">
                    <fileset dir="${src.dir}">
                        <include name="org/eclipse/persistence/testing/oxm/OXMSRGTestSuite.java"/>
                    </fileset>
                    <formatter type="xml"/>
                </batchtest>
                <classpath>
                    <path refid="@{runpathref}"/>
                </classpath>
            </junit>
        </sequential>
    </macrodef>
    <macrodef name="run_oxm_tests">
        <attribute name="runpathref"/>
        <sequential>
            <delete dir="${report.dir}/oxm/default" failonerror="false"/>
            <mkdir dir="${report.dir}/oxm/default"/>
            <mkdir dir="${build.dir}/${test.dir}"/>
            <junit jvm="${test.junit.jvm.exec}" printsummary="yes" fork="true" dir="${build.dir}/${test.dir}" tempdir="${build.dir}/${test.dir}" showoutput="yes" maxmemory="512m">
                <jvmarg value="-ea"/>
                <jvmarg line="${additional.jvmargs}"/>
                <sysproperty key="useLogging" value="false"/>
                <sysproperty key="eclipselink.xml.platform" value="${xml.platform}"/>
                <sysproperty key="parser" value="${parser}"/>
                <syspropertyset refid="parser.properties"/>
                <batchtest todir="${report.dir}/oxm/default">
                    <fileset dir="${src.dir}">
                        <include name="**/ContainerAccessorTestSuite.java"/>
                        <include name="**/*MappingTestSuite.java"/>
                        <include name="**/RootElementTestSuite.java"/>
                        <include name="**/InheritanceTestSuite.java"/>
                        <include name="**/XMLMarshalTestCases.java"/>
                        <include name="**/XMLMarshalFragmentTestCases.java"/>
                        <include name="**/XMLUnmarshalTestCases.java"/>
                        <include name="**/XMLMarshallerValidationModeTestCases.java"/>
                        <include name="**/*amespaceTestSuite.java"/>
                        <include name="**/ClassLoaderTestCases.java"/>
                        <include name="**/MappingClassLoaderTestCases.java"/>
                        <exclude name="**/MappingTestSuite.java"/>
                        <exclude name="**/OneTo*TestSuite.java"/>
                        <exclude name="**/DeploymentXMLMappingTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/jaxb/**/*.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/DocPresMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/anyobjectandanycollection/XMLAnyObjectAndAnyCollectionMappingTestSuite.java"/>
                        <exclude name="**/SAXMappingTestSuite.java"/>
                        <include
                                name="org/eclipse/persistence/testing/oxm/mappings/directcollection/nillable/DirectCollectionMappingNillableTestSuite.java"/>
                        <include
                                name="org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/CompositeKeyTestCases.java"/>
                    </fileset>
                    <formatter type="xml"/>
                </batchtest>
                <classpath>
                    <path refid="@{runpathref}"/>
                </classpath>
            </junit>
        </sequential>
    </macrodef>
    <macrodef name="run_oxm_dom_tests">
        <attribute name="runpathref"/>
        <sequential>
            <delete dir="${report.dir}/oxm/dom" failonerror="false"/>
            <mkdir dir="${report.dir}/oxm/dom"/>
            <mkdir dir="${build.dir}/${test.dir}"/>
            <junit jvm="${test.junit.jvm.exec}" printsummary="yes" fork="true" dir="${build.dir}/${test.dir}" tempdir="${build.dir}/${test.dir}" showoutput="yes" maxmemory="512m">
                <jvmarg value="-ea"/>
                <jvmarg line="${additional.jvmargs}"/>
                <sysproperty key="platformType" value="DOM"/>
                <sysproperty key="metadataType" value="JAVA"/>
                <sysproperty key="useLogging" value="false"/>
                <sysproperty key="eclipselink.xml.platform" value="${xml.platform}"/>
                <sysproperty key="parser" value="${parser}"/>
                <syspropertyset refid="parser.properties"/>
                <batchtest todir="${report.dir}/oxm/dom">
                    <fileset dir="${src.dir}">
                        <include name="**/*TestSuite.java"/>
                        <include name="**/ClassLoaderTestCases.java"/>
                        <include name="**/MappingClassLoaderTestCases.java"/>
                        <include name="**/advancedxpath/**/*TestCases.java"/>
                        <exclude name="**/OXTestSuite.java"/>
                        <exclude name="**/OXMSRGTestSuite.java"/>
                        <exclude name="**/DeploymentXMLOXTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/jaxb/**/*.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/MappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/DeploymentXMLMappingTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/DocPresMappingTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/SAXMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/anyobjectandanycollection/XMLAnyObjectAndAnyCollectionMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassMappingTestSuite.java"/>
                        <!--
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/choice/XMLChoiceMappingTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/choicecollection/XMLChoiceCollectionMappingTestSuite.java"/>
                        -->
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/sequenced/SequencedMappingTestSuite.java"/>
                    </fileset>
                    <formatter type="xml"/>
                </batchtest>
                <classpath>
                    <path refid="@{runpathref}"/>
                </classpath>
            </junit>
        </sequential>
    </macrodef>
    <macrodef name="run_oxm_deploymentxml_tests">
        <attribute name="runpathref"/>
        <sequential>
            <delete dir="${report.dir}/oxm/deploymentxml" failonerror="false"/>
            <mkdir dir="${report.dir}/oxm/deploymentxml"/>
            <mkdir dir="${build.dir}/${test.dir}"/>
            <junit jvm="${test.junit.jvm.exec}" printsummary="yes" fork="true" dir="${build.dir}/${test.dir}" tempdir="${build.dir}/${test.dir}" showoutput="yes" maxmemory="512m">
                <jvmarg value="-ea"/>
                <jvmarg line="${additional.jvmargs}"/>
                <sysproperty key="platformType" value="DOM"/>
                <sysproperty key="metadataType" value="XML_ECLIPSELINK"/>
                <sysproperty key="useLogging" value="false"/>
                <sysproperty key="eclipselink.xml.platform" value="${xml.platform}"/>
                <sysproperty key="parser" value="${parser}"/>
                <syspropertyset refid="parser.properties"/>
                <batchtest todir="${report.dir}/oxm/deploymentxml">
                    <fileset dir="${src.dir}">
                        <include name="**/DocumentPreservationTestSuite.java"/>
                        <include name="**/RootElementTestSuite.java"/>
                        <include name="**/XMLRootTestSuite.java"/>
                        <include name="**/XMLMarshalTestCases.java"/>
                        <include name="**/XMLMarshalFragmentTestCases.java"/>
                        <include name="**/XMLUnmarshalTestCases.java"/>
                        <include name="**/ReadOnlyTestSuite.java"/>
                        <include name="**/InheritanceTestSuite.java"/>
                        <include name="**/ConverterTestSuite.java"/>
                        <include name="**/*MappingTestSuite.java"/>
                        <include name="**/ClassLoaderTestCases.java"/>
                        <include name="**/MappingClassLoaderTestCases.java"/>
                        <include name="**/*amespaceTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/jaxb/**/*.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/MappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/DeploymentXMLMappingTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/DocPresMappingTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/SAXMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/anyobjectandanycollection/XMLAnyObjectAndAnyCollectionMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/choice/XMLChoiceMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/choicecollection/XMLChoiceCollectionMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/choicecollection/converter/ConverterTestCases.java"/>
                        <!--
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/binarydata/XMLBinaryDataMappingTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/binarydatacollection/XMLBinaryDataCollectionMappingTestSuite.java"/>
                        -->
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/sequenced/SequencedMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/directtofield/converter/DirectToFieldConverterTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/compositeobject/self/converter/CompositeObjectSelfConverterTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/containeracessor/ContainerAccessorTestSuite.java"/>
                    </fileset>
                    <formatter type="xml"/>
                </batchtest>
                <classpath>
                    <path refid="@{runpathref}"/>
                </classpath>
            </junit>
        </sequential>
    </macrodef>
    <macrodef name="run_oxm_deploymentxml_tl_tests">
        <attribute name="runpathref"/>
        <sequential>
            <delete dir="${report.dir}/oxm/deploymentxml-tl" failonerror="false"/>
            <mkdir dir="${report.dir}/oxm/deploymentxml-tl"/>
            <mkdir dir="${build.dir}/${test.dir}"/>
            <junit jvm="${test.junit.jvm.exec}" printsummary="yes" fork="true" dir="${build.dir}/${test.dir}" tempdir="${build.dir}/${test.dir}" showoutput="yes" maxmemory="512m">
                <jvmarg value="-ea"/>
                <jvmarg line="${additional.jvmargs}"/>
                <sysproperty key="platformType" value="DOM"/>
                <sysproperty key="metadataType" value="XML_TOPLINK"/>
                <sysproperty key="useLogging" value="false"/>
                <sysproperty key="eclipselink.xml.platform" value="${xml.platform}"/>
                <sysproperty key="parser" value="${parser}"/>
                <syspropertyset refid="parser.properties"/>
                <batchtest todir="${report.dir}/oxm/deploymentxml-tl">
                    <fileset dir="${src.dir}">
                        <include name="**/DocumentPreservationTestSuite.java"/>
                        <include name="**/RootElementTestSuite.java"/>
                        <include name="**/XMLRootTestSuite.java"/>
                        <include name="**/XMLMarshalTestCases.java"/>
                        <include name="**/XMLMarshalFragmentTestCases.java"/>
                        <include name="**/XMLUnmarshalTestCases.java"/>
                        <include name="**/ReadOnlyTestSuite.java"/>
                        <include name="**/InheritanceTestSuite.java"/>
                        <include name="**/ConverterTestSuite.java"/>
                        <include name="**/*MappingTestSuite.java"/>
                        <include name="**/ClassLoaderTestCases.java"/>
                        <include name="**/MappingClassLoaderTestCases.java"/>
                        <include name="**/*amespaceTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/jaxb/**/*.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/MappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/DeploymentXMLMappingTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/DocPresMappingTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/SAXMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/anyobjectandanycollection/XMLAnyObjectAndAnyCollectionMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/binarydata/XMLBinaryDataMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/binarydatacollection/XMLBinaryDataCollectionMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/choice/XMLChoiceMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/choicecollection/XMLChoiceCollectionMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/sequenced/SequencedMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/compositeobject/self/converter/CompositeObjectSelfConverterTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/containeracessor/ContainerAccessorTestSuite.java"/>
                    </fileset>
                    <formatter type="xml"/>
                </batchtest>
                <classpath>
                    <path refid="@{runpathref}"/>
                </classpath>
            </junit>
        </sequential>
    </macrodef>
    <macrodef name="run_oxm_docpres_tests">
        <attribute name="runpathref"/>
        <sequential>
            <delete dir="${report.dir}/oxm/docpres" failonerror="false"/>
            <mkdir dir="${report.dir}/oxm/docpres"/>
            <mkdir dir="${build.dir}/${test.dir}"/>
            <junit jvm="${test.junit.jvm.exec}" printsummary="yes" fork="true" dir="${build.dir}/${test.dir}" tempdir="${build.dir}/${test.dir}" showoutput="yes" maxmemory="512m">
                <jvmarg value="-ea"/>
                <jvmarg line="${additional.jvmargs}"/>
                <sysproperty key="platformType" value="DOC_PRES"/>
                <sysproperty key="metadataType" value="JAVA"/>
                <sysproperty key="useLogging" value="false"/>
                <sysproperty key="eclipselink.xml.platform" value="${xml.platform}"/>
                <sysproperty key="parser" value="${parser}"/>
                <syspropertyset refid="parser.properties"/>
                <batchtest todir="${report.dir}/oxm/docpres">
                    <fileset dir="${src.dir}">
                        <include name="**/*TestSuite.java"/>
                        <include name="**/ClassLoaderTestCases.java"/>
                        <include name="**/MappingClassLoaderTestCases.java"/>
                        <exclude name="**/ReadOnlyTestSuite.java"/>
                        <exclude name="**/OXTestSuite.java"/>
                        <exclude name="**/OXMSRGTestSuite.java"/>
                        <exclude name="**/OneTo*TestSuite.java"/>
                        <exclude name="**/DeploymentXMLOXTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/jaxb/**/*.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/MappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/DeploymentXMLMappingTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/DocPresMappingTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/SAXMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/anyobjectandanycollection/XMLAnyObjectAndAnyCollectionMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/keybased/KeyBasedMappingTestSuite.java"/>
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassMappingTestSuite.java"/>
                        <!--
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/choice/XMLChoiceMappingTestSuite.java"/>
                        <exclude name="org/eclipse/persistence/testing/oxm/mappings/choicecollection/XMLChoiceCollectionMappingTestSuite.java"/>
                        -->
                        <exclude
                                name="org/eclipse/persistence/testing/oxm/mappings/sequenced/SequencedMappingTestSuite.java"/>
                    </fileset>
                    <formatter type="xml"/>
                </batchtest>
                <classpath>
                    <path refid="@{runpathref}"/>
                </classpath>
            </junit>
        </sequential>
    </macrodef>

    <!-- Compile macros -->
    <macrodef name="compile_moxy_tests">
        <attribute name="subcomponent"/>
        <attribute name="compilepathref"/>
        <sequential>
            <mkdir dir="${build.dir}/${classes.dir}"/>
            <property name="moxy.test.dir" location="${build.dir}/.."/>
            <javac srcdir="${src.dir}"
                   destdir="${build.dir}/${classes.dir}"
                   debug="${javac.debug}"
                   debuglevel="${javac.debuglevel}"
                   encoding="UTF-8"
                   optimize="${javac.optimize}"
                   source="${javac.version}"
                   deprecation="${javac.deprecation}"
                   failonerror="false"
                   includes="org/eclipse/persistence/testing/@{subcomponent}/**/*.java">
                <classpath>
                    <path refid="@{compilepathref}"/>
                </classpath>
            </javac>
            <copy todir="${build.dir}/${classes.dir}">
                <fileset dir="${moxy.test.dir}/${resource.dir}" includes="org/eclipse/persistence/testing/@{subcomponent}/**"/>
                <file name="${moxy.test.dir}/${resource.dir}/sessions.xml"/>
            </copy>
        </sequential>
    </macrodef>
</project>
