<!--/*******************************************************************************
* 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 (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:
*     eric.gwin - initial API and implementation (checked in by Tware)
#******************************************************************************/-->

<!-- =============================================================================
*  General Comments
*  This buildfile contains branch and automation specific instructions for the
*  automated build process using Hudson for EclipseLink at Eclipse and is intended
*  to be called by Hudson (generic user).
*
*  All publishing commands are now external to this file (see eclipselink.releng: publish.sh)
*================================================================================= -->
<project name="AutoBuild" basedir="." default="build-nightly">
<echo message="---- AutoBuild.xml ----"/>
    <dirname  property="build.location_temp" file="${ant.file.AutoBuild}"/>
    <pathconvert targetos="unix" property="build.location">
        <path>
            <pathelement location="${build.location_temp}"/>
        </path>
    </pathconvert>
    <echo message="build.location   = '${build.location}'"/>

    <!-- Define custom task for conditional echo command -->
    <property name="custom.tasks.lib" value="${build.location}/buildsystem/ant_customizations.jar"/>
    <property name="custom.echo.task.class" value="org.eclipse.persistence.buildtools.ant.taskdefs.Say"/>
    <available file="${custom.tasks.lib}" property="ant_customizations.exist"/>
    <fail unless="ant_customizations.exist" message="Cannot find custom tasks library: '${custom.tasks.lib}' directory"/>
    <taskdef  name="say"           classname="${custom.echo.task.class}"     classpath="${custom.tasks.lib}"/>

    <target name="build-nightly"    description="Trigger the nightly automated build and lrg tests"
            depends="clean, build, extract-build-artifacts, test-lrg, extract-test-results"
    />
    <target name="build-nightly-nopublish"    description="Trigger the nightly automated build and lrg tests without publish"
            depends="clean, build, test-lrg"
    />
    <target name="build-continuous" description="Trigger an automated build and run the tests if source changes exist"
            depends="clean, build-no-javadoc, build-utils, test-srg"
    />
    <target name="build-milestone" depends="promote-init, sign-and-wait, regen-archives, publish-milestone, create-tag" description="Promote a build: nightly to milestone or milestone to release ('release' is a special milestone in this case)"
    />
    <target name="build-ora-extension" description="Trigger the automated oracle extension build"
            depends="init, build-oracle-extension"
    />
    <target name="build-ora-nosql" description="Trigger the automated oracle nosql build"
            depends="init, build-oracle-nosql"
    />

    <target name="init" depends="pre-init, common-init"/>

    <target name="set-defaults">
        <!-- The following variables should be passed from Hudson:
                 env.JAVA_HOME   - JAVA_HOME as defined by Hudson
                 git.exec        - fully qualified path to git executable
                 build.deps.dir  - location on buildserver that stores dependencies (/shared/rt/eclipselink/bld_deps/master)
                 junit.dir       - directory where junit.jar can be found
                 junit.lib       - fully qualified path to junit jarfile (junit.dir/junit.jarname)
                 build.tool.root - root of build server (from here releng and db data files can be found)
                 hudson.workspace- WORKSPACE as defined by the Hudson slave
                 M2_HOME         - location of Maven3 install (on build server)
        -->
        <property name="branch" value="master"/>

        <condition property="git.exec"   value="${env.GIT_EXEC}">
            <isset property="env.GIT_EXEC"/>
        </condition>
        <property name="git.exec" value="/usr/bin/git"/>
        <property name="build.deps.dir"  value="${extensions.depend.dir}"/>
        <property name="junit.dir"       value="${build.deps.dir}/junit"/>
        <property name="build.tool.root" value="${build.location}"/>
        <property file="${build.tool.root}/db-${branch}.properties"/>

        <echo message=" "/>
        <echo message="git.exec        ='${git.exec}'"/>
        <echo message="build.deps.dir  = '${build.deps.dir}'"/>
        <echo message="build.tool.root = '${build.tool.root}'"/>
        <echo message="hudson.workspace= '${hudson.workspace}'"/>
        <echo message="M2_HOME         = '${M2_HOME}'"/>
        <echo message=" "/>
        <echo message="branch          = '${branch}'"/>
    </target>

    <target name="get-git-hash" unless="git.hash" depends="set-defaults">
        <!-- get git.hash    NOTE: if "get" fails defaulted to "NA" -->
        <exec outputproperty="git.hash"
            failonerror="false"
            failifexecutionfails="false"
            errorproperty="githash.failed"
            logError="true"
            executable="${git.exec}">
            <arg value="log"/>
            <arg value="-1"/>
            <arg value="--format=%h"/>
        </exec>
        <property name="git.hash" value="NA"/>
    </target>

    <target name="get-git-branch" unless="branch" depends="set-defaults">
        <!-- get git branch (parse results of "git branch")           -->
        <exec outputproperty="git.output"
            failonerror="false"
            failifexecutionfails="false"
            errorproperty="gitbranch.failed"
            logError="true"
            executable="${git.exec}">
            <arg value="branch"/>
        </exec>
        <exec outputproperty="branch"
            failonerror="false"
            failifexecutionfails="false"
            errorproperty="echo.failed"
            logError="true"
            executable="echo">
            <arg value="$git.output"/>
        </exec>
        <property name="git.hash" value="NA"/>
    </target>

    <target name="pre-init" depends="get-git-hash">
        <tstamp>
            <format property="build.date" pattern="yyyyMMdd"/>
            <format property="build.time" pattern="HHmm"/>
        </tstamp>
        <!-- #  The next properties defines are pulled out of the properties file  -->
        <!-- #       to highlight them.                                            -->
        <!-- # test.properties.run - defines which file to use to connect to the   -->
        <!-- #                       db for post-build testing.                    -->
        <!-- # coretest.prop.file  - the file generated by the build, that holds   -->
        <!-- #                       the db properties for automated testing       -->
        <property name="coretest.prop.file"   value="${build.location}/mysql.jpa.test.properties"/>
        <property name="test.properties.run"  value="${coretest.prop.file}"/>
        <!-- added because looks like property name may have changed, or override was failing -->
        <property name="core.test.properties" value="${coretest.prop.file}"/>

        <!-- build.type should default to "SNAPSHOT, unless it is set to "M#"    -->
        <!--   or "RELEASE" on the command-line for milestone or release builds  -->
        <property name="build.type" value="SNAPSHOT"/>

        <!-- Set version.qualifier appropriately. variable should only be used    -->
        <!--    for uploaded filenames  or manifest entries.                      -->
        <condition property="version.qualifier" value="qualifier"
                                                else="v${build.date}-${git.hash}">
            <equals arg1="${git.hash}" arg2="NA"/>
        </condition>

        <!-- M2_HOME defaults the value maven 3.0.3 install location on the build -->
        <!--   server, this is brittle, but easier for now                        -->
        <property name="M2_HOME" value="/shared/common/apache-maven-3.0.3"/>
        <echo message="'M2_HOME' set to: '${M2_HOME}'"/>

        <!-- Set location of executed scripts to hudson (is also set in promote-init for milestone publising) -->
        <property name="script.dir" value="${hudson.workspace}/buildsystem"/>

        <echo message="ANT_ARGS='${env.ANT_ARGS}'"/>
        <echo message="ANT_OPTS='${env.ANT_OPTS}'"/>
        <echo message=" "/>
        <echo message="env.JAVA_HOME   = '${env.JAVA_HOME}'"/>
        <echo message="env.ANT_HOME    = '${env.ANT_HOME}'"/>
        <echo message="env.JUNIT_HOME  = '${env.JUNIT_HOME}'"/>
        <echo message="env.MAVENANT_DIR= '${env.MAVENANT_DIR}'"/>
        <echo message="env.PATH        = '${env.PATH}'"/>
        <echo message="env.CLASSPATH   = '${env.CLASSPATH}'"/>
        <echo message="env.GIT_EXEC    = '${env.GIT_EXEC}'"/>
        <echo message="env.TARGET      = '${env.TARGET}'"/>
        <echo message=" "/>
        <echo message="java.version   ='${java.version}'"/>
        <echo message="os.name        ='${os.name}'"/>
        <echo message="os.arch        ='${os.arch}'"/>
        <echo message="os.version     ='${os.version}'"/>
        <echo message=" "/>
        <echo message="builddate.buildtime='${build.date}.${build.time}'"/>
        <echo message="coretest.prop.file ='${coretest.prop.file}'"/>
        <echo message="test.properties.run='${test.properties.run}'"/>
        <echo message="build.type         ='${build.type}'"/>
        <echo message="version.qualifier  ='${version.qualifier}'"/>
        <echo message=" "/>
        <echo message="build.deps.dir  ='${build.deps.dir}'"/>
        <echo message="build.tool.root ='${build.tool.root}'"/>
        <echo message="hudson.workspace='${hudson.workspace}'"/>
        <echo message=" "/>
    </target>

    <target name="common-init">
        <property file="${basedir}/autobuild.properties"/>

        <!-- Set version.string appropriately. variable should only be used for   -->
        <!--    uploaded filenames  or manifest entries.                          -->
        <property name="version.string" value="${release.version}.${version.qualifier}"/>

        <!-- Set extract.root.dir for this publishing  (not used for milestones, but has to be here due to use of "release.version"  -->
        <property name="extract.root.dir" value="${build.tool.root}/exported_builds"/>

        <!-- For signed archive name need "version.string" defined first -->
        <property name="p2.archive.presigned.zip" value="eclipselink-P2-${version.string}.zip"/>
        <property name="p2.archive.signed.zip"    value="eclipselink-P2signed-${version.string}.zip"/>

        <!-- generate Release Designation string for manifest                     -->
        <property name="release.designation" value="EclipseLink ${release.version}"/>

        <!-- generate string for tag creation (used for maven publish and handoff-version as well)  -->
        <condition property="milestone.tag" value="${release.version}">
            <equals arg1="${build.type}" arg2="RELEASE"/>
        </condition>
        <property name="milestone.tag" value="${release.version}-${build.type}"/>
        <echo message="milestone.tag        ='${milestone.tag}'"/>

        <!-- Now that all our overrides are complete, pull in the rest of the build properties -->
        <property file="${build.location}/antbuild.properties"/>

        <echo message="branch.name     ='${branch.name}'"/>
        <echo message="branch          ='${branch}'"/>
        <echo message="basedir         ='${basedir}'"/>
        <echo message="build.location  ='${build.location}'"/>
        <echo message="extract.root.dir='${extract.root.dir}'"/>
        <echo message="log.dir         ='${log.dir}'"/>
        <echo message="junit.dir       ='${junit.dir}'"/>
        <echo message="junit.lib       ='${junit.lib}'"/>
        <echo message=" "/>
        <echo message="git.exec        ='${git.exec}'"/>
        <echo message=" "/>
        <echo message="EL version     ='${release.version}'"/>
        <echo message="build.type     ='${build.type}'"/>
        <echo message="version.string ='${version.string}'"/>
        <echo message="build.number   ='${build.date}'"/>
        <echo message="git.hash       ='${git.hash}'"/>
        <echo message=" "/>
        <echo message="milestone.tag  ='${milestone.tag}'"/>
        <echo message=" "/>
        <echo message="jdbc.driver.jar='${jdbc.driver.jar}'"/>
        <echo message="db.driver      ='${db.driver}'"/>
        <echo message="db.url         ='${db.url}'"/>
        <echo message="db.user        ='${db.user}'"/>
        <echo message="db.pwd         = **********"/>
        <echo message="db.platform    ='${db.platform}'"/>
    </target>

    <target name="clean" depends="init">
        <ant antfile="antbuild.xml" dir="${build.location}" target="clean"/>
    </target>

    <target name="build" depends="init">
        <ant antfile="antbuild.xml" dir="${build.location}"          target="build-all-but-ext"/>
        <ant antfile="antbuild.xml" dir="${build.location}/features" target="build-features-create-signzip"/>
        <ant antfile="antbuild.xml" dir="${build.location}"          target="package-all"/>
    </target>

    <target name="build-oracle-extension">
        <ant antfile="antbuild.xml" dir="${build.location}" target="build-oracle-extension"/>
    </target>

    <target name="build-oracle-nosql">
        <ant antfile="antbuild.xml" dir="${build.location}" target="build-oracle-nosql"/>
    </target>

    <target name="build-no-javadoc" depends="init">
        <ant antfile="antbuild.xml" dir="${build.location}" target="build"/>
    </target>

    <target name="build-utils" depends="init">
        <ant antfile="antbuild.xml" dir="${build.location}" target="build-util"/>
    </target>

    <target name="build-test" depends="init">
        <!-- Builds all tests including MW tests (needed for nightly compile verification even if they aren't run) -->
        <ant antfile="antbuild.xml" dir="${build.location}" target="build-test"/>
    </target>

    <target name="build-core-test" depends="init">
        <ant antfile="antbuild.xml" dir="${build.location}" target="build-core-test"/>
    </target>

    <target name="test-srg">
        <!-- Generate Test properties file -->
        <echo message="# Generated db connection properties (by bootstrap.xml)${line.separator}" file="${coretest.prop.file}" append="false"/>
        <echo message="jdbc.driver.jar=${jdbc.driver.jar}${line.separator}" file="${coretest.prop.file}" append="true"/>
        <echo message="db.driver=${db.driver}${line.separator}"             file="${coretest.prop.file}" append="true"/>
        <echo message="db.url=${db.url}${line.separator}"                   file="${coretest.prop.file}" append="true"/>
        <echo message="db.user=${db.user}${line.separator}"                 file="${coretest.prop.file}" append="true"/>
        <echo message="db.pwd=${db.pwd}${line.separator}"                   file="${coretest.prop.file}" append="true"/>
        <echo message="db.platform=${db.platform}${line.separator}"         file="${coretest.prop.file}" append="true"/>

        <ant antfile="antbuild.xml" dir="${build.location}" target="test-srg">
            <property name="eclipselink.logging.level" value="${test.logging.level}"/>
        </ant>
        <!-- delete file="${coretest.prop.file}"/ -->
    </target>

    <target name="test-lrg">
        <!-- Generate Test properties file -->
        <echo message="# Generated db connection properties (by bootstrap.xml)${line.separator}" file="${coretest.prop.file}" append="false"/>
        <echo message="jdbc.driver.jar=${jdbc.driver.jar}${line.separator}" file="${coretest.prop.file}" append="true"/>
        <echo message="db.driver=${db.driver}${line.separator}"             file="${coretest.prop.file}" append="true"/>
        <echo message="db.url=${db.url}${line.separator}"                   file="${coretest.prop.file}" append="true"/>
        <echo message="db.user=${db.user}${line.separator}"                 file="${coretest.prop.file}" append="true"/>
        <echo message="db.pwd=${db.pwd}${line.separator}"                   file="${coretest.prop.file}" append="true"/>
        <echo message="db.platform=${db.platform}${line.separator}"         file="${coretest.prop.file}" append="true"/>

        <ant antfile="antbuild.xml" dir="${build.location}" target="test-lrg">
            <property name="eclipselink.logging.level" value="${test.logging.level}"/>
        </ant>
        <!-- delete file="${coretest.prop.file}"/ -->

    </target>

    <target name="test-browser" depends="init">
        <echo message="db.platform=${db.platform}${line.separator}"         file="${coretest.prop.file}" append="true"/>
        <ant antfile="antbuild.xml" dir="${build.location}" target="test-browser">
            <property name="eclipselink.logging.level" value="${test.logging.level}"/>
        </ant>
    </target>

    <!--  =====  #####        Post 'build' Processing Targets            #####  =====  -->
    <target name="generate-nightly-p2-site" depends="common-init">
        <!-- Set here because needed by both nightly-P2, and extract-build-artifacts -->
        <property name="build.extract.dir" value="${extract.root.dir}/build/${release.version}/${version.qualifier}"/>
        <mkdir dir="${build.extract.dir}"/>

        <property name="p2.archive.to.use"       value="${hudson.workspace}/features/${p2.archive.presigned.zip}"/>
        <property name="p2.repos.dir"            value="${build.extract.dir}/p2repo"/>
        <property name="metadata.repos.name"     value="&quot;${p2.nightly.repos.name}&quot;"/>
        <property name="artifact.repos.name"     value="&quot;EclipseLink Incremental Artifacts&quot;"/>
        <property name="p2.SDK.install.dir"      value="${build.deps.dir}/eclipse"/>
        <available file="${p2.SDK.install.dir}" type="dir" property="p2.SDK.install.dir.exist"/>
        <fail message="${p2.SDK.install.dir} dir not found. Build will fail, aborting now." unless="p2.SDK.install.dir.exist"/>
        <!-- Clean existing repos if it exists (should only be true of a release redo, or the latest milestone or nightly) -->
        <delete dir="${p2.repos.dir}" failonerror="false"/>
        <mkdir dir="${p2.repos.dir}"/>
        <!-- populate update site with feature and bundle jars, then publish repository -->
        <ant antfile="antbuild.xml" dir="${hudson.workspace}/features" target="assemble-repos">
            <property name="do.composite"        value="true"/>
            <property name="ready-to-go"         value="true"/>
            <property name="bundle.install.file" value="${hudson.workspace}/${eclipselink.plugins.install.prefix}${eclipselink.zip.suffix}"/>
            <property name="nosql.install.file"  value="${hudson.workspace}/${eclipselink.nosql.install.prefix}${eclipselink.zip.suffix}"/>
            <property name="p2.archive.zip"      value="${p2.archive.to.use}"/>
        </ant>
    </target>

    <!-- Extract build artifacts from Hudson Workspace and make them accessible to publish -->
    <target name="extract-build-artifacts" depends="generate-nightly-p2-site">
        <!-- New Publish Architecture -->
        <echo message="Extracting Build artifacts..."/>
        <echo message="   from '${hudson.workspace}'"/>
        <echo message="     to '${build.extract.dir}'"/>
        <copy file="${hudson.workspace}/eclipselink.jar"                                                tofile="${build.extract.dir}/eclipselink.jar"                                                               failonerror="false"/>
        <copy file="${hudson.workspace}/features/${p2.archive.presigned.zip}"                           tofile="${build.extract.dir}/${p2.archive.presigned.zip}"                                                   failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.install.prefix}${eclipselink.zip.suffix}"         tofile="${build.extract.dir}/${eclipselink.install.prefix}-${version.string}${eclipselink.zip.suffix}"      failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.src.install.prefix}${eclipselink.zip.suffix}"     tofile="${build.extract.dir}/${eclipselink.src.install.prefix}-${version.string}${eclipselink.zip.suffix}"  failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.tst.src.prefix}${eclipselink.zip.suffix}"         tofile="${build.extract.dir}/${eclipselink.tst.src.prefix}-${version.string}${eclipselink.zip.suffix}"      failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.tst.jar.prefix}${eclipselink.zip.suffix}"         tofile="${build.extract.dir}/${eclipselink.tst.jar.prefix}-${version.string}${eclipselink.zip.suffix}"      failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.plugins.install.prefix}${eclipselink.zip.suffix}" tofile="${build.extract.dir}/${eclipselink.plugins.install.prefix}-${version.string}${eclipselink.zip.suffix}" failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.nosql.install.prefix}${eclipselink.zip.suffix}"   tofile="${build.extract.dir}/${eclipselink.nosql.install.prefix}-${version.string}${eclipselink.zip.suffix}"   failonerror="false"/>
        <copy todir="${build.extract.dir}" failonerror="false">
            <fileset  dir="${hudson.workspace}">
                <include name="${eclipselink.install.prefix}*${version.qualifier}-shared-lib.zip"/>
            </fileset>
        </copy>
        <!-- Generate proper handoff file -->
        <antcall target="generate-handoff">
            <param name="procedure"   value="build"/>
            <param name="host"        value="Eclipse"/>
            <param name="extract.loc" value="${build.extract.dir}"/>
        </antcall>
    </target>

    <!-- Extract test artifacts from Hudson Workspace and make them accessible to publish -->
    <target name="extract-test-results" depends="common-init">
        <!-- 'Publish' from Hudson to Build -->
        <property name="host" value="Eclipse"/>
        <property name="test.extract.dir" value="${extract.root.dir}/test/${release.version}/${version.qualifier}/${host}"/>
        <mkdir dir="${test.extract.dir}"/>
        <echo message="Exporting test artifacts..."/>
        <echo message="   from '${hudson.workspace}'"/>
        <echo message="     to '${test.extract.dir}'"/>
        <copy file="${hudson.workspace}/${eclipselink.core.test}/${report.dir}/junit-noframes.html"         tofile="${test.extract.dir}/eclipselink-core-lrg-${version.string}.html"      failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.jpa.test}/${report.dir}/junit-noframes.html"          tofile="${test.extract.dir}/eclipselink-jpa-lrg-${version.string}.html"       failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.jpa.wdf.test}/${report.dir}/junit-noframes.html"      tofile="${test.extract.dir}/eclipselink-jpa-wdf-lrg-${version.string}.html"   failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.jpars.test}/${report.dir}/junit-noframes.html"        tofile="${test.extract.dir}/eclipselink-jpars-lrg-${version.string}.html"     failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.moxy.test}/${report.dir}/jaxb/junit-noframes.html"    tofile="${test.extract.dir}/eclipselink-jaxb-lrg-${version.string}.html"      failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.moxy.test}/${report.dir}/oxm/junit-noframes.html"     tofile="${test.extract.dir}/eclipselink-oxm-lrg-${version.string}.html"       failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.sdo.test}/${report.dir}/true/junit-noframes.html"     tofile="${test.extract.dir}/eclipselink-sdo-lrg-${version.string}.html"       failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.dbws.test}/${report.dir}/junit-noframes.html"         tofile="${test.extract.dir}/eclipselink-dbws-lrg-${version.string}.html"      failonerror="false"/>
        <copy file="${hudson.workspace}/${eclipselink.dbws.builder.test}/${report.dir}/junit-noframes.html" tofile="${test.extract.dir}/eclipselink-dbws-util-lrg-${version.string}.html" failonerror="false"/>
        <!-- Generate proper handoff file -->
        <antcall target="generate-handoff">
            <param name="procedure"   value="test"/>
            <param name="host"        value="${host}"/>
            <param name="extract.loc" value="${test.extract.dir}"/>
        </antcall>
    </target>

    <target name="cannot-generate-handoff" unless="procedure" depends="init">
        <fail message="'procedure' not set. Cannot generate handoff file!"/>
    </target>
    <target name="generate-handoff" if="procedure" depends="cannot-generate-handoff" description="generate the publishing handoff file">
        <property name="handoff.file" value="${build.tool.root}/handoff-file-${procedure}-${branch}-${version.qualifier}.dat"/>
        <echo message="Generating Publishing handoff file with the following values:"/>
        <echo message="    procedure    ='${procedure}'"/>
        <echo message="    extract.loc  ='${extract.loc}'"/>
        <echo message="    host         ='${host}'"/>
        <echo message="    milestone.tag='${milestone.tag}'"/>
        <echo message="    handoff.file ='${handoff.file}'"/>

        <echo message="extract.loc=${extract.loc} host=${host} maven.tag=${milestone.tag}" file="${handoff.file}" append="false"/>
        <!-- could use ${line.separator} to generate on separate lines, but don't as yet -->
    </target>


    <!--  =====  #####           Public Publishing Targets               #####  =====  -->

    <target name="publish-init" depends="common-init">
        <!-- Set download.dir appropriately depending upon build target          -->
        <condition property="download.dir" value="${eclipselink.root.download.dir}/nightly/${release.version}/${build.date}">
            <equals arg1="${build.type}" arg2="SNAPSHOT"/>
        </condition>
        <condition property="download.dir" value="${eclipselink.root.download.dir}/releases/${release.version}">
            <equals arg1="${build.type}" arg2="RELEASE"/>
        </condition>
        <property name="download.dir" value="${eclipselink.root.download.dir}/milestones/${release.version}/${build.type}"/>

        <!-- Set p2 repository path appropriately depending upon build target     -->
        <condition property="p2.composite.root.dir" value="${eclipselink.root.download.dir}/nightly-updates">
            <equals arg1="${build.type}" arg2="SNAPSHOT"/>
        </condition>
        <condition property="p2.composite.root.dir" value="${eclipselink.root.download.dir}/updates">
            <equals arg1="${build.type}" arg2="RELEASE"/>
        </condition>
        <property name="p2.composite.root.dir" value="${eclipselink.root.download.dir}/milestone-updates"/>

        <condition property="p2.repos.dir" value="${p2.composite.root.dir}/${version.string}">
            <equals arg1="${build.type}" arg2="SNAPSHOT"/>
        </condition>
        <condition property="p2.repos.dir" value="${p2.composite.root.dir}/${version.string}">
            <equals arg1="${build.type}" arg2="RELEASE"/>
        </condition>
        <property name="p2.repos.dir" value="${p2.composite.root.dir}/${version.string}_${build.type}"/>

        <!-- generate Release Designation string for manifest                     -->
        <property name="release.designation" value="EclipseLink ${release.version}"/>
        <!-- specify location of eclipse SDK install to use                       -->
        <property name="p2.SDK.install.dir"  value="${build.deps.dir}/eclipse"/>
        <!-- verify location of eclipse SDK install exists before proceeding...   -->
        <available file="${p2.SDK.install.dir}" type="dir" property="p2.SDK.install.dir.exist"/>
        <fail message="${p2.SDK.install.dir} dir not found. Build will fail, aborting now." unless="p2.SDK.install.dir.exist"/>

        <!-- generate P2 repository labels                                        -->
        <condition property="metadata.repos.name" value="&quot;${p2.nightly.repos.name}&quot;">
            <equals arg1="${build.type}" arg2="SNAPSHOT"/>
        </condition>
        <condition property="metadata.repos.name" value="&quot;${p2.release.repos.name}&quot;">
            <equals arg1="${build.type}" arg2="RELEASE"/>
        </condition>
        <property name="metadata.repos.name" value="&quot;${p2.milestone.repos.name}&quot;"/>

        <condition property="artifact.repos.name" value="&quot;EclipseLink Incremental Artifacts&quot;">
            <equals arg1="${build.type}" arg2="SNAPSHOT"/>
        </condition>
        <condition property="artifact.repos.name" value="&quot;EclipseLink Release Artifacts&quot;">
            <equals arg1="${build.type}" arg2="RELEASE"/>
        </condition>
        <property name="artifact.repos.name" value="&quot;EclipseLink Milestone Artifacts&quot;"/>

        <echo message="download.dir         ='${download.dir}'"/>
        <echo message="p2.composite.root.dir='${p2.composite.root.dir}'"/>
        <echo message="p2.repos.dir         ='${p2.repos.dir}'"/>
        <echo message="release.designation  ='${release.designation}'"/>
        <echo message="p2.SDK.install.dir   ='${p2.SDK.install.dir}'"/>
        <echo message="metadata.repos.name  ='${metadata.repos.name}'"/>
        <echo message="artifact.repos.name  ='${artifact.repos.name}'"/>
    </target>

    <!--  =====  Build Publish Targets -->
    <!-- Mostly removed because publish.sh now does the work -->

    <!-- target name="publish-oracle-extension">
        <echo message="oracle-extension commit in progress..."/>
        <exec executable="${git.exec}" failonerror="false" logError="true">
            <arg value="commit"/>
            <arg value="-m ${version.string}"/>
            <arg value="${hudson.workspace}/foundation/plugins/org.eclipse.persistence.oracle.jar"/>
            <arg value="${hudson.workspace}/foundation/plugins/org.eclipse.persistence.oracle.source.jar"/>
        </exec>
    </target>

    <target name="publish-oracle-nosql">
        <echo message="oracle-nosql commit in progress..."/>
        <exec executable="${git.exec}" failonerror="false" logError="true">
            <arg value="commit"/>
            <arg value="-m ${version.string}"/>
            <arg value="${hudson.workspace}/foundation/plugins/org.eclipse.persistence.oracle.nosql.jar"/>
            <arg value="${hudson.workspace}/foundation/plugins/org.eclipse.persistence.oracle.nosql.source.jar"/>
        </exec>
    </target -->

    <!--  =====     Milestone Init     =====  -->
    <target name="promote-init" depends="publish-init"> <!-- In order to promote need the settings from Publish-init too -->
        <!-- git.hash and build.time should already be set to the git hash and build date of the -->
        <!-- build being promoted - however, build.time is undefined (it is currently unused)                   -->
        <fail unless="git.hash"        message="git.hash doesn't exist and it should before we reach this point!"/>
        <fail unless="build.date"      message="build.date doesn't exist and it should before we reach this point!"/>
        <!-- build.type should be set to "M#" or "RELEASE" on the command-line for milestone or release builds  -->
        <fail unless="build.type"      message="build.type doesn't exist and it should before we reach this point!"/>
        <!-- releng.repo.dir should be passed in from the promote script. It is needed for maven promotion -->
        <fail unless="releng.repo.dir" message="releng.repo.dir doesn't exist and it should before we reach this point!"/>

        <tstamp>
            <format property="promote.date" pattern="MMM dd, yyyy"/>
            <format property="run.date" pattern="yyyyMMdd"/>
            <format property="run.time" pattern="HHmm"/>
        </tstamp>
        <!-- Not used, but need to keep for documentation purposes. Cannot comment out because double '-' not allowed in comment (format parameter) -->
        <property name="commit.hash.cmd" value="${git.exec} log -1 --format=%h"/>

        <echo message=" "/>
        <echo message="promote.date   ='${promote.date}'"/>
        <echo message="run.date       ='${run.date}'"/>
        <echo message="run.time       ='${run.time}'"/>

        <!-- Set build script location for p2 publishing -->
        <property name="script.dir" value="${releng.repo.dir}"/>

        <!-- This should already be set, but is set as a precaution -->
        <property name="eclipselink.root.download.dir" value="/home/data/httpd/download.eclipse.org/rt/eclipselink"/>
        <!-- This depends upon freezing nightly builds after an RC# build - otherwise the nightly to be -->
        <!-- promoted to a 'RELEASE' build (same as last milestone) could expire off the nightly site   -->
        <property name="promote.source.dir"            value="${eclipselink.root.download.dir}/nightly/${release.version}/${build.date}"/>
        <property name="promote.archive.unsigned.lib"  value="${promote.source.dir}/${p2.archive.presigned.zip}"/>
        <property name="promote.archive.signed.lib"    value="${promote.source.dir}/${p2.archive.signed.zip}"/>
        <available file="${promote.source.dir}"           property="promote.source.exist" type="dir"/>
        <available file="${promote.archive.unsigned.lib}" property="unsigned.archive.exist"/>
        <available file="${promote.archive.signed.lib}"   property="signed.archive.exist"/>
        <condition property="archive.exist">
            <or>
                <isset property="unsigned.archive.exist"/>
                <isset property="signed.archive.exist"/>
            </or>
        </condition>
        <!-- FAIL THIS PROMOTION if the source build is not found                                       -->
        <fail unless="promote.source.exist"     message="${promote.source.dir} not found! Cannot promote this build."/>
        <!-- Log status of signing archive for build                                                    -->
        <say message="${promote.archive.signed.lib} found." if="signed.archive.exist"/>
        <say message="${promote.archive.signed.lib} not found." unless="signed.archive.exist"/>
        <!-- FAIL THIS PROMOTION if neither the unsigned or signed archive are found                                       -->
        <fail unless="archive.exist"     message="Both the unsigned and signed archive is missing from ${promote.source.dir}! Cannot promote this build."/>
        <property name="temp.rebuild.dir" value="/tmp/EL${run.date}.${run.time}-${version.string}"/>
        <delete dir="${temp.rebuild.dir}" failonerror="false"/>
        <mkdir dir="${temp.rebuild.dir}"/>
    </target>

    <!--  =====     Milestone Signing     =====  -->
    <target name="sign-and-wait" unless="signed.archive.exist" depends="promote-init">
        <echo message="Proceeding with signing of unsigned archive..."/>
        <ant antfile="antbuild.xml" dir="${build.location}/features" target="sign-jars">
            <property name="signing.script"  value="sign"/>
            <property name="signed.archive.src.file"   value="${promote.archive.unsigned.lib}"/>
            <property name="signed.archive.dest.file"  value="${promote.archive.signed.lib}"/>
        </ant>
        <available file="${promote.archive.signed.lib}" property="signed.archive.exist"/>
    </target>

    <!--  =====     Milestone RegenArchives     =====  -->
    <target name="regen-archives" depends="check-to-continue, extract-signed-artifacts, regen-installer-archive, regen-plugin-archive, regen-nosql-archive, gen-build-for-maven"/>
    <target name="check-to-continue" unless="signed.archive.exist">
        <fail message="Signing appears to have failed. Verify existence of signed archive before retrying..."/>
    </target>
    <target name="extract-signed-artifacts">
        <echo message="Extracting signed jars from archive..."/>
        <property name="signed.jar.path" value="${temp.rebuild.dir}/signed"/>
        <unzip dest="${signed.jar.path}" src="${promote.source.dir}/${p2.archive.signed.zip}"/>
    </target>

    <target name="regen-installer-archive">
        <!--     THIS IS NOT DONE. Unless we start signing eclipselink.jar or DBWS Utils again. -->
        <echo message="     THIS IS NOT DONE. Unless we start signing eclipselink.jar or DBWS Utils again."/>
        <echo message="However, we still need a copy of eclipslink.jar and javadocs for maven. Extracting from original InstallerZip for later copy..."/>
        <!-- unzip original InstallerZip to working dir -->
        <!-- echo message="Creating signed versions of InstallerZip archive..."/ -->
        <unzip dest="${temp.rebuild.dir}/install" src="${promote.source.dir}/${eclipselink.install.prefix}-${version.string}${eclipselink.zip.suffix}">
            <patternset>
                <include name="**/*"/>
            </patternset>
        </unzip>
        <!-- Force overwrite of original content -->
        <!-- copy todir="${temp.rebuild.dir}/install/eclipselink/utils/dbws" file="${signed.jar.path}/${dbws-util.jar}"   failonerror="false"/>
        <copy todir="${temp.rebuild.dir}/install/eclipselink/jlib"       file="${signed.jar.path}/${eclipselink.jar}" failonerror="false"/ -->
        <!-- Rezip EclipseLink Installer Zip -->
        <!-- zip destfile="${temp.rebuild.dir}/${eclipselink.install.prefix}-${version.string}${eclipselink.zip.suffix}" update="true">
            <zipfileset dir="${temp.rebuild.dir}/install" includes="**/*" />
        </zip -->
    </target>

    <target name="regen-plugin-archive">
        <echo message="Creating signed versions of Plugins archive..."/>
        <!-- unzip original PluginInstaller to working dir -->
        <unzip dest="${temp.rebuild.dir}/bundlezip" src="${promote.source.dir}/${eclipselink.plugins.install.prefix}-${version.string}${eclipselink.zip.suffix}">
            <patternset>
                <include name="**/*"/>
            </patternset>
        </unzip>
        <!-- Force overwrite of original content -->
        <copy todir="${temp.rebuild.dir}/bundlezip" failonerror="false">
            <fileset dir="${signed.jar.path}/plugins">
                <include name="*.jar"/>
            </fileset>
        </copy>
        <!-- Rezip EclipseLink Plugins Zip -->
        <zip destfile="${temp.rebuild.dir}/${eclipselink.plugins.install.prefix}-${version.string}${eclipselink.zip.suffix}" update="true">
            <zipfileset dir="${temp.rebuild.dir}/bundlezip" includes="**/*" />
        </zip>
    </target>

    <target name="regen-nosql-archive">
        <echo message="Creating signed versions of NoSQL archive..."/>
        <!-- unzip original NoSQL PluginInstaller to working dir -->
        <unzip dest="${temp.rebuild.dir}/nosqlzip" src="${promote.source.dir}/${eclipselink.nosql.install.prefix}-${version.string}${eclipselink.zip.suffix}">
            <patternset>
                <include name="**/*"/>
            </patternset>
        </unzip>
        <!-- Force overwrite of original content -->
        <copy todir="${temp.rebuild.dir}/nosqlzip" failonerror="false">
            <fileset dir="${signed.jar.path}/plugins">
                <include name="*nosql*.jar"/>
            </fileset>
        </copy>
        <!-- Rezip EclipseLink NoSQL Plugins Zip -->
        <zip destfile="${temp.rebuild.dir}/${eclipselink.nosql.install.prefix}-${version.string}${eclipselink.zip.suffix}" update="true">
            <zipfileset dir="${temp.rebuild.dir}/nosqlzip" includes="**/*" />
        </zip>
    </target>

    <target name="gen-build-for-maven">
        <!-- MUST BE DONE AFTER Recreating "signed" version of the archives -->
        <echo message="Prepare for Maven publishing"/>
        <property name="tmp.maven.dir" value="${temp.rebuild.dir}/maven"/>
        <!-- need to setup a dir that contains the correct contents for maven to promote -->
        <mkdir dir="${tmp.maven.dir}"/>
        <!-- get eclipselink source zip -->
        <copy file="${promote.source.dir}/${eclipselink.src.install.prefix}-${version.string}${eclipselink.zip.suffix}" tofile="${tmp.maven.dir}/${eclipselink.src.install.prefix}${eclipselink.zip.suffix}" failonerror="false"/>
        <!-- get eclipselink.jar and javadoc (from temp InstallerZip location, so will work if signed or unsigned) -->
        <copy todir="${tmp.maven.dir}" file="${temp.rebuild.dir}/install/eclipselink/jlib/${eclipselink.jar}"/>
        <copy todir="${tmp.maven.dir}" file="${temp.rebuild.dir}/install/eclipselink/eclipselink-javadocs.zip"/>
        <copy todir="${tmp.maven.dir}" file="${temp.rebuild.dir}/install/eclipselink/eclipselink-jpars-javadocs.zip"/>
        <!-- get nosql javadoc (from temp NoSQL PluginInstaller location, so will work if signed or unsigned) -->
        <copy todir="${tmp.maven.dir}" file="${temp.rebuild.dir}/nosqlzip/nosql-javadocs.zip"/>
        <!-- get bundles -->
        <copy todir="${tmp.maven.dir}" flatten="true">
            <fileset dir="${temp.rebuild.dir}/bundlezip">
                <include name="javax*.jar"/>
                <exclude name="javax.wsdl*.jar"/>
            </fileset>
            <fileset dir="${signed.jar.path}/${plugins.dir}">
                <include name="org.eclipse.persistence.*.jar"/>
                <include name="*modelgen*.jar"/>
                <exclude name="*oracleddl*.jar"/>
            </fileset>
        </copy>
        <!-- get javax.persistence* -->
        <copy todir="${tmp.maven.dir}" flatten="true">
            <fileset dir="${temp.rebuild.dir}/bundlezip">
                <include name="javax.persistence*2.0*.jar"/>
            </fileset>
        </copy>
        <!-- get commonj.sdo -->
        <copy todir="${tmp.maven.dir}" flatten="true">
            <fileset dir="${temp.rebuild.dir}/bundlezip">
                <include name="commonj*.jar"/>
            </fileset>
        </copy>
        <!-- get utils - oracleddl/wsdl -->
        <copy todir="${tmp.maven.dir}" flatten="true">
            <fileset dir="${temp.rebuild.dir}/bundlezip">
                <include name="javax.wsdl*.jar"/>
            </fileset>
            <fileset dir="${signed.jar.path}/${plugins.dir}">
                <include name="org.eclipse.persistence.*oracleddl*.jar"/>
            </fileset>
        </copy>
    </target>

    <!--  =====     Milestone Publish   =====  -->
    <target name="publish-milestone" depends="publish-milestone-artifacts, publish-milestone-nexus, publish-milestone-p2-site"/>
    <target name="publish-milestone-artifacts">
        <!-- Publish from nightly published location to Milestone dir -->
        <mkdir dir="${download.dir}"/>
        <copy todir="${download.dir}" failonerror="false">
            <fileset dir="${temp.rebuild.dir}">
                <!-- Populate new "signed" version of archives (from temp rebuild location) -->
                <include name="${eclipselink.plugins.install.prefix}-${version.string}${eclipselink.zip.suffix}"/>
                <include name="${eclipselink.nosql.install.prefix}-${version.string}${eclipselink.zip.suffix}"/>
                <!-- copy eclipse build file for safekeeping (in case rebuild needed) -->
                <include name="**/eclipselink.build"/>
            </fileset>
            <!-- Populated directly from original (nightly) build area -->
            <fileset dir="${promote.source.dir}">
                <!-- copy signed P2 archive for safekeeping (in case rebuild needed) -->
                <include name="${p2.archive.signed.zip}"/>
                <!-- copy original zip installer, src, and test src archives -->
                <include name="${eclipselink.install.prefix}-${version.string}${eclipselink.zip.suffix}"/>
                <include name="${eclipselink.src.install.prefix}-${version.string}${eclipselink.zip.suffix}"/>
                <include name="${eclipselink.tst.src.prefix}-${version.string}${eclipselink.zip.suffix}"/>
                <include name="${eclipselink.tst.jar.prefix}-${version.string}${eclipselink.zip.suffix}"/>
                <include name="${eclipselink.install.prefix}*${version.qualifier}-shared-lib.zip"/>
                <include name="eclipselink-tools-*.zip"/>
                <!-- copy all test results pages -->
                <include name="**/eclipselink-*${version.string}.html"/>
                <include name="**/ResultSummary.dat"/>
                <include name="**/TestConfig.html"/>
            </fileset>
        </copy>
        <!-- Copy for maven to run -->
        <copy todir="${tmp.maven.dir}" file="${basedir}/pom.xml.template"  failonerror="false"/>
        <copy todir="${tmp.maven.dir}" file="${basedir}/uploadToMaven.xml" failonerror="false"/>
        <copy todir="${tmp.maven.dir}" file="${basedir}/uploadToNexus.xml" failonerror="false"/>
    </target>

    <target name="publish-milestone-maven">
        <echo message="Publish-milestone-maven: "/>
        <echo message="    using: ${basedir}/uploadToMaven.xml"/>
        <echo message="    from dir '${tmp.maven.dir}'"/>
        <echo message="    target: 'upload-maven-all'"/>
        <echo message="    properties: "/>
        <echo message="        build.deps.dir  ='${build.deps.dir}'"/>
        <echo message="        custom.tasks.lib='${custom.tasks.lib}'"/>
        <echo message="                         '${releng.repo.dir}/ant_customizations.jar'"/>
        <echo message="        release.version ='${release.version}'"/>
        <echo message="        version.string  ='${version.string}'"/>
        <echo message="                         '${release.version}.${version.qualifier}'"/>
        <echo message="        build.date      ='${build.date}'"/>
        <echo message="        build.type      ='${build.type}'"/>
        <echo message="        bundle.dir      ='${tmp.maven.dir}'"/>
        <ant antfile="uploadToMaven.xml" dir="${tmp.maven.dir}" target="upload-maven-all">
            <property name="build.deps.dir"   value="${build.deps.dir}"/>
            <property name="custom.tasks.lib" value="${releng.repo.dir}/ant_customizations.jar"/>
            <property name="release.version"  value="${release.version}"/>
            <property name="version.string"   value="${release.version}.${version.qualifier}"/>
            <property name="build.date"       value="${build.date}"/>
            <property name="build.type"       value="${build.type}"/>
            <property name="bundle.dir"       value="${tmp.maven.dir}"/>
        </ant>
    </target>

    <target name="publish-milestone-nexus">
        <echo message="Publish-milestone-nexus: "/>
        <echo message="    using: ${basedir}/uploadToNexus.xml"/>
        <echo message="    from dir '${tmp.maven.dir}'"/>
        <echo message="    target: 'upload-maven-all'"/>
        <echo message="    properties: "/>
        <echo message="        build.deps.dir  ='${build.deps.dir}'"/>
        <echo message="        custom.tasks.lib='${custom.tasks.lib}'"/>
        <echo message="                         '${releng.repo.dir}/ant_customizations.jar'"/>
        <echo message="        release.version ='${release.version}'"/>
        <echo message="        version.string  ='${version.string}'"/>
        <echo message="                         '${release.version}.${version.qualifier}'"/>
        <echo message="        build.date      ='${build.date}'"/>
        <echo message="        build.type      ='${build.type}'"/>
        <echo message="        bundle.dir      ='${tmp.maven.dir}'"/>
        <ant antfile="uploadToNexus.xml" dir="${tmp.maven.dir}" target="upload-maven-all">
            <property name="build.deps.dir"   value="${build.deps.dir}"/>
            <property name="custom.tasks.lib" value="${releng.repo.dir}/ant_customizations.jar"/>
            <property name="release.version"  value="${release.version}"/>
            <property name="version.string"   value="${release.version}.${version.qualifier}"/>
            <property name="build.date"       value="${build.date}"/>
            <property name="build.type"       value="${build.type}"/>
            <property name="bundle.dir"       value="${tmp.maven.dir}"/>
        </ant>
    </target>

    <target name="fix-permission">
        <chmod perm="ug+x">
            <fileset dir="${script.dir}">
                <include name="*.sh"/>
            </fileset>
        </chmod>
    </target>

    <target name="publish-milestone-p2-site" depends="fix-permission">
        <!-- since publish runs externally, this is only for milestone builds -->
        <property name="p2.archive.to.use" value="${download.dir}/${p2.archive.signed.zip}"/>
        <!-- Clean existing repos if it exists (should only be true of a release redo, or the latest milestone or nightly) -->
        <delete dir="${p2.repos.dir}" failonerror="false"/>
        <mkdir dir="${p2.repos.dir}"/>
        <!-- populate update site with feature and bundle jars, then publish repository -->
        <ant antfile="antbuild.xml" dir="${build.location}/features" target="assemble-repos">
            <property name="do.composite"        value="true"/>
            <property name="ready-to-go"         value="true"/>
            <property name="bundle.install.file" value="${download.dir}/${eclipselink.plugins.install.prefix}-${version.string}${eclipselink.zip.suffix}"/>
            <property name="nosql.install.file"  value="${download.dir}/${eclipselink.nosql.install.prefix}-${version.string}${eclipselink.zip.suffix}"/>
            <property name="p2.archive.zip"      value="${p2.archive.to.use}"/>
        </ant>
        <!-- Regenerate Composite Repos metadata -->
        <echo message="p2.composite.root.dir = '${p2.composite.root.dir}'"/>
        <echo message="metadata.repos.name   = '${metadata.repos.name}'"/>
        <exec executable="/bin/sh" failonerror="false" logError="true" >
            <arg value="${releng.repo.dir}/buildCompositeP2.sh"/>
            <arg value="${p2.composite.root.dir}"/>
            <arg value="${metadata.repos.name}"/>
        </exec>
        <!-- Can clean-up temp dir now -->
        <delete dir="${temp.rebuild.dir}" failonerror="false"/>
    </target>

    <!-- Unused?? -->
    <target name="cleanup-signing-dir">
        <delete failonerror="false">
            <fileset dir="${signing.dir}" includes="**/*.zip"/>
        </delete>
    </target>

    <!--  =====     Milestone Tag     =====  -->
    <target name="create-tag">
        <echo message="Create a tag (${milestone.tag}) of this revision (${git.hash}) for this milestone (${build.type})"/>
        <echo message="   branch.name   = ${branch.name}"/>
        <echo message="   "/>
        <echo message="${git.exec} tag -m'Create ${milestone.tag} Tag for ${version.string}' ${milestone.tag} ${git.hash}"/>
        <exec executable="${git.exec}" failonerror="false" logError="true">
            <arg value="tag"/>
            <arg value="-m'Create ${milestone.tag} Tag for ${version.string}'"/>
            <arg value="${milestone.tag}"/>
            <arg value="${git.hash}"/>
        </exec>
        <echo message="Now push the tag back to the Eclipse repo"/>
        <echo message="${git.exec} push --tags"/>
        <exec executable="${git.exec}" failonerror="false" logError="true">
            <arg value="push"/>
            <arg value="--tags"/>
        </exec>
    </target>

</project>
