<!--/*******************************************************************************
* 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 '.'
*   - multi-word targets use hyphens '-'
*   - multi-word macros use underscores '_'
*   - multi-word macro attributes are concatinated
*     e.g. 'runpathref'
*   - multi-word tasks (taskdef) names are concatinated
*     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:
*     tware  - initial API and implementation
*     pkrogh - javadocs
*     egwin  - rework to follow ant conventions.
*     dtwelves - Add SDO, MOXy SRG targets
*     egwin  - rework to incorporate new versioning standards and revision info.
*     egwin  - add jpa 2.0 jar creation, and JPA 1.1/2.0 concurrent development
               strategy. Also includes fixes to eclipselink.jar creation.
*     egwin  - rework to standardize antcall conventions and fix multiple target builds.
#******************************************************************************/-->
<!-- =============================================================================
*  General Comments
*  This buildfile contains:
*        - calls to the component builds to clean, compile, package and test thier bits
*        - calls to initiate component tests
*        - targets to package the eclipselink jar
*        - targets to generate the eclipselink installer
*        - targets to generate the javadocs
*  Used standalone it can generate Developer Builds of the entire product or subsets
*        of the product.
*  When called by autobuild it generates Nightly and Milestone builds
*================================================================================= -->
<!-- This ant project includes the following tasks:
        - build (default) : compiles all components and tests (excluding Oracle extensions)
        - build.all : compiles all components and tests, including Oracle extensions
        - build-eclipselink-jar : compiles all components except tests, packages eclipselink.jar
        - clean : removes all build generated files
        - clean-runtime : removes all runtime specific (product) build generated files (calls both clean-runtime-checkedin and clean-runtime-built)
        - clean-runtime-checkedin : removes all runtime specific (product) build generated files, that are part of the svn repository (checked in with build)
        - clean-runtime-built : removes all runtime specific (product) files generated during the build, but that are NOT checked in
        - clean-testing : removes all testing specific build generated files
        - build-distribution : compiles and packages all jars, javadocs, installer
        - build-core : compiles all components, excluding tests, utilities, and Oracle extensions
        - build-extensions : compiles Oracle extensions and tests
        - build-test : compiles all tests, excluding Oracle extensions
        - build-workbench-test : compiles the workbench tests
        - package-eclipselink-jar : packages eclipselink.jar
        - jar : packages eclipselink.jar
        - package-src-jar : packages source jar
        - build-javadocs : generates Javadocs
        - package-installer-zip : builds installer
        - package-package-renamer.jar : builds packages renamer jar
        - test-srg : runs all Short ReGression test suites
        - test-lrg : runs all Long ReGression test suites
        - test-core : runs core tests
        - test-core-srg : runs core SRG
        - test-jpa : runs JPA tests
        - test-moxy : runs MOXY tests
        - test-moxy-srg : runs MOXY SRG
        - test-jaxb : runs MOXY jaxb tests
        - test-oxm : runs MOXY oxm tests
        - test-sdo : runs SDO tests
        - test-sdo-srg : runs SDO SRG

        It may require some configuration of the build.properties to run.
    -->
<project name="trunk" default="build" basedir=".">

    <dirname  property="trunk.build.location" file="${ant.file.trunk}"/>
    <echo message="trunk.build.location = '${trunk.build.location}'"/>
    <property environment="env"/>
    <echo message="env.CLASSPATH        = '${env.CLASSPATH}'"/>
    <echo message="java.class.path      = '${java.class.path}'"/>
    <!-- Allows a user to overide certain user specific properties. -->
    <echo message="user.home            = '${user.home}'"/>
    <echo message="Loading user properties from: '${user.home}/build.properties'"/>
    <property file="${user.home}/build.properties"/>
    <!-- Sets default junit.lib and all extensions.depend dir locations to static paths -->
    <!-- temporary until all build files reworked -->
    <property name="oracle.extensions.depend.dir" value="${trunk.build.location}/../extension.oracle.lib.external"/>
    <echo message="oracle.extensions.depend.dir = '${oracle.extensions.depend.dir}'"/>
    <property name="extensions.depend.dir" value="${trunk.build.location}/../extension.lib.external"/>
    <echo message="extensions.depend.dir        = '${extensions.depend.dir}'"/>
    <property name="junit.lib" value="${extensions.depend.dir}/junit.jar"/>
    <echo message="junit.lib = '${junit.lib}'"/>
    <echo message="Loading default properties from: '${trunk.build.location}/build.properties'"/>
    <property file="${trunk.build.location}/build.properties"/>

    <!-- Needed because some buildfiles depend upon JDK6 -->
    <condition property="java_is_v5" value="true">
        <contains string="${java.version}" substring="1.5"/>
    </condition>
    <!-- Sets the warning message appropriately -->
    <condition property="jdk_message" value="Warning: Minimum of JDK6 is required for some components to build." else="java.version='${java.version}'">
        <contains string="${java.version}" substring="1.5"/>
    </condition>
    <echo message="${jdk_message}"/>
    <echo message="jdbc.driver.jar='${jdbc.driver.jar}'"/>

    <!-- versioning -->
    <!-- These variables  are set in autobuild.xml. A manual build gets defaults -->
    <tstamp>
       <format property="build.date" pattern="yyyyMMdd"/>
       <format property="build.time" pattern="HHmm"/>
    </tstamp>
    <property name="build.type" value="SNAPSHOT"/>
    <property name="svn.revision" value="NA"/>
    <condition property="version.qualifier" value="qualifier"
                                            else="v${build.date}-r${svn.revision}">
        <equals arg1="${svn.revision}" arg2="NA"/>
    </condition>
    <property name="version.string"      value="${release.version}.${version.qualifier}"/>
    <property name="release.designation" value="EclipseLink DeveloperBuild"/>

    <path id="javadoc.path">
        <pathelement path="${eclipselink.jar.name}"/>
        <pathelement path="${commonj.sdo.lib}"/>
        <pathelement path="${eclipselink.plugins}/${antlr}"/>
        <pathelement path="${eclipselink.plugins}/${asm}"/>
        <pathelement path="${jaxb-api.lib}"/>
        <pathelement path="${eclipselink.plugins}/${persistence.jar}"/>
        <fileset
            dir="${eclipselink.plugins}"
            includes="${eclipselink.core.depend}"/>
    </path>

<!-- ================================================================================= -->
    <!-- *** Convienience and Compatability targets *** -->

    <!-- Short alias for building the jar. -->
    <target name="jar" depends="package-eclipselink-jar"/>

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

    <!-- "top-level" target for creating the distribution archives. -->
    <target name="package-all" depends="package-eclipselink-bundles, package-src-jar, package-tst-src-jar, package-javadoc-zip, package-installer-zip"/>

    <!-- Compiles all components except tests, builds eclipselink.jar. -->
    <target name="build-eclipselink-jar" depends="build-core, package-eclipselink-jar" description="build all EclipseLink distribution files except docs and tests"/>

    <!-- compiles and builds all components, packages eclipselink.jar and src zip. -->
    <target name="build-src" depends="build-eclipselink-jar, package-src-jar" description="build EclipseLink jar and source zip"/>

    <!-- Default ant target, compiles all components and tests, builds eclipselink.jar. -->
    <target name="build" depends="build-eclipselink-jar, build-core-test" description="build all EclipseLink distribution files except docs"/>

    <!-- Compiles all components and tests (excluding extensions). -->
    <target name="build-all-but-ext" depends="build, build-util, build-util-test"/>

    <!-- Compiles core components, tests and extensions (excluding utilities). -->
    <target name="build-extensions" depends="build-oracle-extension, build-oracle-extension-test"/>

    <!-- Builds and packages all jars, javadoc, and builds installer. -->
    <target name="build-distribution" depends="build-all-but-ext, package-all"/>

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

    <!-- Cleans all build generated files. -->
    <target name="clean" depends="clean-runtime,clean-testing" description="Clean the build"/>

    <target name="clean-runtime" depends="clean-runtime-checkedin, clean-runtime-built" description="Clean the runtime projects"/>
    <!--   This allows testing to call a specific target that won't remove the default
           (or dropped-in copy of) eclipselink and the persistence jar, while still
           allowing unchanged operation by developers and users to clean all built artifacts. -->
    <target name="clean-runtime-checkedin" description="Clean the runtime projects">
        <delete file="${eclipselink.jar.name}"/>
    </target>
    <target name="clean-runtime-built" description="Clean the runtime projects">
        <ant antfile="build.xml" dir="${eclipselink.antlr}"            target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.asm}"              target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.core}"             target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.extension.oracle}" target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.dbws}"             target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.jpa}"              target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.weaving}"          target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.equinox}"          target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.moxy}"             target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.sdo}"              target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.util.dbws}"        target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.util.rename}"      target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.util.workbench}"   target="clean"/>
        <delete file="${eclipselink.plugins.install.prefix}${eclipselink.zip.suffix}"/>
        <delete file="${eclipselink.src.install.prefix}${eclipselink.zip.suffix}"/>
        <delete file="${eclipselink.javadoc.install.prefix}${eclipselink.zip.suffix}"/>
        <delete file="${eclipselink.install.prefix}${eclipselink.zip.suffix}"/>
    </target>

    <target name="clean-testing" description="Clean the testing projects">
        <ant antfile="build.xml" dir="${eclipselink.core.test}"        target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.jpa.test}"         target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.moxy.test}"        target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.sdo.test}"         target="clean"/>
        <ant antfile="build.xml" dir="${eclipselink.util.workbench.test}" target="clean"/>
        <delete file="${eclipselink.tst.src.prefix}${eclipselink.zip.suffix}"/>
    </target>

    <!-- Compiles all runtime components (excluding Tests, Oracle extensions). -->
    <target name="build-core">
        <ant antfile="build.xml" dir="${eclipselink.asm}"     target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.antlr}"   target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.core}"    target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.extension.oracle}"  target="repackage"/>
        <ant antfile="build.xml" dir="${eclipselink.jpa}"     target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.weaving}" target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.equinox}" target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.moxy}"    target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.sdo}"     target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.dbws}"    target="build"/>
    </target>

    <!-- Compiles all utils components. -->
    <target name="build-util" depends="build-dbws-util, build-mw-and-rename"/>

    <target name="build-dbws-util" unless="java_is_v5">
        <ant antfile="build.xml" dir="${eclipselink.util.dbws}"      target="build"/>
    </target>
    <target name="build-mw-and-rename">
        <ant antfile="build.xml" dir="${eclipselink.util.rename}"    target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.util.workbench}" target="all"/>
    </target>

    <!-- Compiles Oracle extensions and tests. -->
    <target name="build-oracle-extension">
        <ant antfile="build.xml" dir="${jpa.prototype}"                target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.asm}"              target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.antlr}"            target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.core}"             target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.extension.oracle}" target="build"/>
        <ant antfile="build.xml" dir="${eclipselink.extension.oracle}" target="repackage"/>
        <ant antfile="build.xml" dir="${eclipselink.jpa}"              target="build"/>
    </target>

    <target name="build-oracle-extension-test">
        <ant antfile="${eclipselink.core.test}/build.xml" target="all"/>
        <ant antfile="build.xml" dir="${eclipselink.extension.oracle.test}" target="build"/>
    </target>

    <!-- Compiles tests (excluding workbench, dbws-util and Oracle extensions). -->
    <target name="build-core-test" depends="build-all-core-except-dbws-test, build-dbws-test"/>

    <target name="build-all-core-except-dbws-test">
        <ant antfile="${eclipselink.core.test}/build.xml" target="all"/>
        <ant antfile="${eclipselink.jpa.test}/build.xml"  target="all"/>
        <ant antfile="${eclipselink.moxy.test}/build.xml" target="compile-tests"/>
        <ant antfile="build.xml" dir="${eclipselink.sdo.test}" target="compile-sdo-tests"/>
    </target>

    <target name="build-dbws-test" unless="java_is_v5">
        <!-- Compiling dbws tests requires JDK 1.6 -->
        <ant antfile="build.xml" dir="${eclipselink.dbws.test}" target="build"/>
    </target>

    <!-- Compiles all tests (excluding Oracle extensions) -->
    <target name="build-util-test"  depends="build-workbench-test, build-dbws-util-test"/>

    <target name="build-workbench-test">
        <ant antfile="build.xml" dir="${eclipselink.util.workbench.test}" target="all"/>
    </target>

    <target name="build-dbws-util-test"  unless="java_is_v5">
        <!-- Compiling dbws tests requires JDK 1.6 -->
        <ant antfile="build.xml" dir="${eclipselink.util.dbws.test}" target="build"/>
    </target>

    <!-- Packages the eclipselink.jar. -->
    <target name="package-eclipselink-jar" description="build EclipseLink jar">
        <delete file="${eclipselink.jar.name}"/>
        <echo message="Implementation-Version: ${version.string}"/>
        <jar jarfile="${eclipselink.jar.name}" duplicate="preserve">
             <manifest>
                <attribute name="Specification-Title"    value="${eclipselink.specification.title}"/>
                <attribute name="Specification-Vendor"   value="${specification.vendor}"/>
                <attribute name="Specification-Version"  value="${release.version}"/>
                <attribute name="Implementation-Title"   value="${eclipselink.implementation.title}"/>
                <attribute name="Implementation-Vendor"  value="${implementation.vendor}"/>
                <attribute name="Implementation-Version" value="${version.string}"/>
                <attribute name="Release-Designation"    value="${release.designation}"/>
                <attribute name="Premain-Class"          value="${eclipselink.premain.class}"/>
            </manifest>
            <zipgroupfileset dir="${eclipselink.plugins}">
                <include name="${asm}_${version.string}.jar"/>
                <include name="${antlr}_${version.string}.jar"/>
                <include name="org.eclipse.persistence*.jar"/>
                <exclude name="*source*.jar"/>
                <exclude name="*equinox*.jar"/>
            </zipgroupfileset>
        </jar>
    </target>

    <target name="package-eclipselink-bundles">
        <delete file="${eclipselink.plugins.install.prefix}${eclipselink.zip.suffix}"/>
        <zip destfile="${eclipselink.plugins.install.prefix}${eclipselink.zip.suffix}">
            <zipfileset dir="${eclipselink.plugins}">
                <include name="**.jar"/>
                <exclude name="javax.persistence_1.0.0.jar"/>
                <exclude name="osgi.cmpn_4.1.0.jar"/>
                <exclude name="javax.ejb_3.0.0.jar"/>
                <exclude name="org.apache.ant_1.7.0.v20080627-1145.zip"/>
            </zipfileset>
            <zipfileset dir=".">
                <include name="${about-file}"/>
                <include name="${readme-file}"/>
                <include name="${license-files}"/>
            </zipfileset>
            <zipfileset dir="${eclipselink.jpa.plugins}/"  includes="javax.persistence*.jar"/>
            <zipfileset dir="${eclipselink.moxy.plugins}/" includes="javax.xml.bind*.jar"/>
            <zipfileset dir="${eclipselink.sdo.plugins}/"  includes="commonj.sdo*2.1.1*.jar"/>
        </zip>
    </target>

    <!-- Packages the eclipselink source jar. -->
    <target name="package-src-jar" description="build EclipseLink source jar">
        <delete file="${eclipselink.src.install.prefix}${eclipselink.zip.suffix}"/>
        <jar jarfile="${eclipselink.src.install.prefix}${eclipselink.zip.suffix}" duplicate="preserve">
             <manifest>
                <attribute name="Specification-Title"    value="${eclipselink.specification.title} Source"/>
                <attribute name="Specification-Vendor"   value="${specification.vendor}"/>
                <attribute name="Specification-Version"  value="${release.version}"/>
                <attribute name="Implementation-Title"   value="${eclipselink.implementation.title}"/>
                <attribute name="Implementation-Vendor"  value="${implementation.vendor}"/>
                <attribute name="Implementation-Version" value="${version.string}"/>
                <attribute name="Release-Designation"    value="${release.designation}"/>
            </manifest>
            <zipgroupfileset dir="${eclipselink.plugins}">
                <include name="${asm}.source_${version.string}.jar"/>
                <include name="${antlr}.source_${version.string}.jar"/>
                <include name="org.eclipse.persistence*.source*.jar"/>
                <exclude name="*equinox*.jar"/>
            </zipgroupfileset>
        </jar>
    </target>

    <!-- Packages the eclipselink examples jar. -->
    <target name="package-example-jar" description="build EclipseLink Examples jar">
        <delete file="${eclipselink.example.install.prefix}${eclipselink.zip.suffix}"/>
        <jar jarfile="${eclipselink.example.install.prefix}${eclipselink.zip.suffix}" duplicate="preserve">
             <manifest>
                <attribute name="Specification-Title"    value="${eclipselink.specification.title} Source"/>
                <attribute name="Specification-Vendor"   value="${specification.vendor}"/>
                <attribute name="Specification-Version"  value="${release.version}"/>
                <attribute name="Implementation-Title"   value="${eclipselink.implementation.title}"/>
                <attribute name="Implementation-Vendor"  value="${implementation.vendor}"/>
                <attribute name="Implementation-Version" value="${version.string}"/>
                <attribute name="Release-Designation"    value="${release.designation}"/>
            </manifest>
            <zipfileset dir="examples" includes="**" excludes="**/.svn/**" prefix="examples_${release.version}" />
        </jar>
    </target>
    
    <!-- Packages the eclipselink JPA testing source jar. -->
    <target name="package-tst-src-jar" description="build EclipseLink JPA and SDO testing source jar">
        <delete file="${eclipselink.tst.src.prefix}${eclipselink.zip.suffix}"/>
        <!--   Cannot use ${eclipselink.extension.oracle.test} because autobuild   -->
        <!--          has to nullify it to keep from running Oracle tests          -->
        <zip zipfile="${eclipselink.tst.src.prefix}${eclipselink.zip.suffix}">
            <zipfileset dir="${eclipselink.core.test}/${src.dir}"
                includes="org\eclipse\persistence\testing\framework\**\*.java,
                          org\eclipse\persistence\testing\tests\TestRunModel.java,
                          org\eclipse\persistence\tools\**\*.java,
                          org\eclipse\persistence\testing\tests\performance\**\*.java"
                prefix="foundation"
            />
            <zipfileset dir="${eclipselink.core.base}/eclipselink.extension.oracle.test/${src.dir}"
                includes="org\eclipse\persistence\testing\tests\jpa\**\*.java,
                          org\eclipse\persistence\testing\models\jpa\**\*.java"
                prefix="jpa"
            />
            <zipfileset dir="${eclipselink.jpa.test}/${src.dir}"
                includes="**/*.java"
                prefix="jpa"
            />
            <zipfileset dir="${eclipselink.jpa.test}/${resource.dir}"
                includes="**"
                prefix="jpa/resource"
            />
            <zipfileset
                dir="${eclipselink.sdo.test}/${src.dir}"
                includes="**"
                prefix="sdo"
            />
            <zipfileset
                dir="${eclipselink.sdo.test}/${resource.dir}"
                includes="**"
                prefix="sdo/resource"
            />
            <zipfileset
                dir="${eclipselink.sdo.test.server.wls}/${src.dir}"
                includes="**"
                prefix="sdo"
            />
            <zipfileset
                dir="${eclipselink.sdo.test.server.wls}/${resource.dir}"
                includes="**"
                prefix="sdo/resource"
            />
            <zipfileset
                dir="${eclipselink.moxy.test}/${src.dir}"
                includes="**"
                prefix="moxy"
            />
            <zipfileset
                dir="${eclipselink.moxy.test}/${resource.dir}"
                includes="**"
                prefix="moxy/resource"
            />
        </zip>
    </target>

    <!-- Generates the Javadocs for all public EclipseLink classes. -->
    <target name="build-javadocs">
        <!-- the following property needs to be here because the "qualifier" is generated at runtime -->
        <property name="eclipselink.javadoc.title" value="${javadoc.prefixTitle}, build '${version.qualifier}' ${javadoc.postfixTitle}"/>
        <delete dir="${build.dir}/commonj.sdo"/>
        <delete dir="${build.dir}/javax.xml.bind"/>
        <delete dir="${eclipselink.javadocs}"/>
        <unzip src="${eclipselink.sdo.plugins}/commonj.sdo/SDO_2.1.0_Java_source_FINAL.zip" dest="${build.dir}/commonj.sdo/src"/>
        <!-- unzip src="${eclipselink.moxy.plugins}/javax.xml.bind/JAXB.source_2.0.0.v20080604-1500.jar" dest="${build.dir}/javax.xml.bind/src"/>
        -->
        <javadoc
            maxmemory="384m"
            Verbose="false"
            packagenames="org.eclipse.persistence.**"
            destdir="${eclipselink.javadocs}"
            useexternalfile="yes"
            additionalparam="-breakiterator -quiet"
            windowtitle="${eclipselink.javadoc.title}"
            >
            <classpath>
                <path refid="javadoc.path"/>
            </classpath>
            <tag name ="author" enabled="true" description="Author:" />
            <tag name ="since" scope="all" description="Since:" />
            <tag name ="SBGen" scope="all" description="SBGen:" />
            <tag name ="bug" enabled="true" description="Related Bugs:" />
            <doctitle><![CDATA[${eclipselink.javadoc.title}]]></doctitle>
            <header><![CDATA[${eclipselink.javadoc.title}]]></header>

            <!-- *** include Dependent APIs in Javadoc  *** --> 
            <fileset dir="${jpa.prototype}/${src.dir}" defaultexcludes="yes">
                <include name="javax/persistence/**/*.java"/>
            </fileset>
            <!-- fileset dir="${build.dir}/javax.xml.bind/src" defaultexcludes="yes">
                <include name="**/*.java"/>
            </fileset -->
            <fileset dir="${build.dir}/commonj.sdo/src" defaultexcludes="yes">
                <include name="commonj/sdo/**/*.java"/>
            </fileset>
            <!-- *** EclipseLink modules *** --> 
            <fileset dir="${eclipselink.core}/${src.dir}" defaultexcludes="yes">
                <include name="org/eclipse/persistence/**/*.java"/>
                <exclude name="org/eclipse/persistence/internal/**/*.java"/>
            </fileset>
            <fileset dir="${eclipselink.dbws}/${src.dir}" defaultexcludes="yes">
                <include name="org/eclipse/persistence/**/*.java"/>
                <exclude name="org/eclipse/persistence/internal/**/*.java"/>
            </fileset>
            <fileset dir="${eclipselink.jpa}/${src.dir}" defaultexcludes="yes">
                <include name="org/eclipse/persistence/**/*.java"/>
                <exclude name="org/eclipse/persistence/internal/**/*.java"/>
            </fileset>
            <fileset dir="${eclipselink.moxy}/${src.dir}" defaultexcludes="yes">
                <include name="org/eclipse/persistence/**/*.java"/>
                <exclude name="org/eclipse/persistence/internal/**/*.java"/>
            </fileset>
            <fileset dir="${eclipselink.sdo}/${src.dir}" defaultexcludes="yes">
                <include name="org/eclipse/persistence/**/*.java"/>
                <exclude name="org/eclipse/persistence/internal/**/*.java"/>
            </fileset>
            <fileset dir="${eclipselink.util.rename}/${src.dir}" defaultexcludes="yes">
                <include name="org/eclipse/persistence/**/*.java"/>
                <exclude name="org/eclipse/persistence/internal/**/*.java"/>
            </fileset>
        </javadoc>
    </target>

    <!-- Packages javadoc into a zip. -->
    <target name="package-javadoc-zip" depends="build-javadocs" description="build EclipseLink javadoc zip">
        <delete file="${eclipselink.javadoc.install.prefix}${eclipselink.zip.suffix}"/>
        <zip destfile="${eclipselink.javadoc.install.prefix}${eclipselink.zip.suffix}">
            <!-- miscellaneous files -->
            <zipfileset dir="${eclipselink.javadocs}/"/>
        </zip>
    </target>

    <!-- Packages the installer zip. -->
    <target name="package-installer-zip" description="build EclipseLink installer zip - includes utils and javadocs">
        <delete file="${eclipselink.install.prefix}${eclipselink.zip.suffix}"/>
        <zip destfile="${eclipselink.install.prefix}${eclipselink.zip.suffix}">
            <!-- miscellaneous files -->
            <zipfileset dir="." prefix="eclipselink">
                <include name="${about-file}"/>
                <include name="${readme-file}"/>
                <include name="${license-files}"/>
                <include name="${eclipselink.javadoc.install.prefix}${eclipselink.zip.suffix}"/>
            </zipfileset>
            <!-- setenv and package-rename scripts -->
            <zipfileset dir="${eclipselink.core.bin}" prefix="eclipselink/bin" filemode="755">
                <include name="${setenv-scripts}"/>
            </zipfileset>
            <zipfileset dir="${eclipselink.util.rename}" prefix="eclipselink/utils/rename" filemode="755">
                <include name="${package-rename-scripts}"/>
            </zipfileset>

            <!-- jaxb-compiler scripts -->
            <zipfileset dir="${eclipselink.moxy.bin}" includes="${jaxb-compiler-scripts}" prefix="eclipselink/bin" filemode="755"/>
            <!-- sdo-compiler scripts -->
            <zipfileset dir="${eclipselink.sdo.bin}" includes="${sdo-compiler-scripts}" prefix="eclipselink/bin" filemode="755"/>
            <!-- package-rename.properties -->
            <zipfileset dir="./${eclipselink.util.rename.resource}" includes="${package-rename.properties}" fullpath="eclipselink/utils/rename/package-rename.properties"/>
            <!-- core XSD files -->
            <zipfileset dir="./${eclipselink.core.xsds}" includes="*.xsd" prefix="eclipselink/xsds"/>
            <!-- jpa XSD files -->
            <zipfileset dir="./${eclipselink.jpa.xsds}" includes="*.xsd" prefix="eclipselink/xsds"/>
            <!-- dbws XSD files -->
            <zipfileset dir="./${eclipselink.dbws.xsds}" includes="*.xsd" prefix="eclipselink/xsds"/>
            <!-- core jar's and zips -->
            <zipfileset dir="." prefix="eclipselink/jlib">
                <include name="${eclipselink.jar.name}"/>
                <include name="${eclipselink.src.install.prefix}${eclipselink.zip.suffix}"/>
            </zipfileset>
            <zipfileset dir="./${eclipselink.util.rename}" prefix="eclipselink/utils/rename">
                <include name="${package-rename.jar}"/>
                <include name="readme.html"/>
            </zipfileset>
            <!-- jpa persistence jar -->
            <zipfileset dir="${eclipselink.plugins}/" includes="${persistence.jar}" prefix="eclipselink/jlib/jpa"/>
            <!-- jpa persistence 2.0 prototype jar -->
            <zipfileset dir="${eclipselink.jpa.plugins}/" includes="${jpa.prototype.jar}" prefix="eclipselink/jlib/jpa"/>
            <!-- moxy jar's and zips -->
            <zipfileset dir="${eclipselink.plugins}/" prefix="eclipselink/jlib/moxy">
                <include name="${activation.jar}"/>
                <include name="${mail.jar}"/>
                <include name="${jsr173_1.0_api.jar}"/>
            </zipfileset>
            <!-- moxy jar's and zips -->
            <zipfileset dir="${eclipselink.moxy.base}/${plugins.dir}" prefix="eclipselink/jlib/moxy">
                <include name="${jaxb-api.jar}"/>
            </zipfileset>
            <zipfileset dir="${eclipselink.util.jaxb}" prefix="eclipselink/jlib/moxy">
                <include name="${jaxb-xjc.jar}"/>
                <include name="${jaxb-impl.jar}"/>
            </zipfileset>
            <!-- grab the sdo jar -->
            <zipfileset dir="${eclipselink.sdo.base}/${plugins.dir}/" includes="${commonj.sdo.lib}" prefix="eclipselink/jlib/sdo"/>
            <!-- grab the dbws util stuff -->
            <zipfileset dir="${eclipselink.util.dbws}"    includes="${dbws-util.jar.name}, setenv.*, dbwsbuilder.*" prefix="eclipselink/utils/dbws"/>
            <zipfileset dir="${eclipselink.util.plugins}" includes="${wsdl.lib}" prefix="eclipselink/utils/dbws"/>
            <!-- workbench jars -->
            <zipfileset dir="${eclipselink.util.workbench.lib}/mw/"  includes="elmwcore.jar, eclipselinkmw.jar" prefix="eclipselink/utils/workbench/jlib"/>
            <zipfileset dir="${eclipselink.util.workbench.lib}/compile/" includes="xercesImpl.jar" prefix="eclipselink/utils/workbench/jlib"/>
            <zipfileset dir="${eclipselink.util.workbench.lib}/run/" includes="connector.jar"      prefix="eclipselink/utils/workbench/jlib"/>
            <zipfileset dir="${eclipselink.util.workbench}/config/"  includes="*, platforms/*"     prefix="eclipselink/utils/workbench/config"/>
            <zipfileset dir="${eclipselink.util.workbench}"          includes="readme.html"        prefix="eclipselink/utils/workbench"/>
            <zipfileset dir="${eclipselink.util.workbench}/bin/"     includes="*"                  prefix="eclipselink/utils/workbench/bin" filemode="755"/>
        </zip>
    </target>

    <!-- Testing -->
    <target name="test-srg" description="run all the SRG test suites"
            depends="test-core-srg, test-jpa-srg, test-moxy-srg, test-sdo-srg, test-dbws-srg"
            />
    <target name="test-lrg" description="run all the LRG test suites"
            depends="test-core, test-jpa, test-moxy, test-sdo, test-dbws, test-dbws-utils"
            />

    <!-- Run core LRG. -->
    <target name="test-core" description="run the core tests">
        <ant antfile="${eclipselink.core.test}/build.xml" target="test"/>
    </target>
     <target name="test-browser" description="run the core testing browser">
        <ant antfile="${eclipselink.core.test}/build.xml" target="test-browser"/>
    </target>
    <!-- Run core SRG. -->
    <target name="test-core-srg" description="run the core srg tests">
        <ant antfile="${eclipselink.core.test}/build.xml" target="test-srg"/>
    </target>
    <!-- Run JPA LRG. -->
    <target name="test-jpa" description="run the jpa tests">
        <ant antfile="${eclipselink.jpa.test}/build.xml" target="test"/>
    </target>
    <!-- Run JPA SRG. -->
    <target name="test-jpa-srg" description="run the jpa srg tests">
        <ant antfile="${eclipselink.jpa.test}/build.xml" target="test-srg"/>
    </target>
    <!-- Run JPA Spring. -->
    <target name="test-jpa-spring" description="run the jpa Spring tests">
        <ant dir="${eclipselink.jpa.spring.test}" antfile="build.xml" inheritAll="false" target="test-jpa-spring"/>
    </target>
    <!-- Run SDO & MOXY tests. -->
    <target name="test-sdo" description="run the sdo tests">
        <ant antfile="build.xml" dir="${eclipselink.sdo.test}" target="test-against-jar"/>
    </target>
    <target name="test-sdo-srg" description="run the sdo srg tests">
        <ant antfile="build.xml" dir="${eclipselink.sdo.test}" target="test-srg-against-jar"/>
    </target>
    <target name="test-moxy" description="run the moxy tests">
        <ant antfile="${eclipselink.moxy.test}/build.xml" target="test-against-jar"/>
    </target>
    <target name="test-moxy-srg" description="run the moxy srg tests">
        <ant antfile="${eclipselink.moxy.test}/build.xml" target="test-srg-against-jar"/>
    </target>
    <target name="test-oxm" description="run the moxy (oxm) tests">
        <ant antfile="${eclipselink.moxy.test}/build.xml" target="test-oxm-against-jar"/>
    </target>
    <target name="test-jaxb" description="run the moxy (jaxb) tests">
        <ant antfile="${eclipselink.moxy.test}/build.xml" target="test-jaxb-against-jar"/>
    </target>
    <target name="test-dbws" description="run the DBWS core tests"  unless="java_is_v5">
        <ant antfile="build.xml" dir="${eclipselink.dbws.test}" target="test"/>
    </target>
    <target name="test-dbws-srg" description="run the DBWS srg tests"  unless="java_is_v5">
        <ant antfile="build.xml" dir="${eclipselink.dbws.test}" target="test"/>
    </target>
    <target name="test-dbws-utils" description="run the DBWS utils tests"  unless="java_is_v5">
        <ant antfile="build.xml" dir="${eclipselink.util.dbws.test}" target="test"/>
    </target>

</project>
