<!--/*******************************************************************************
* 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:
*     mmeswani - initial API and implementation (checked in by tware)
*     egwin    - updated variables as they have changed in the rest of the system
*                updated svnversion to not break build, and default if exec fails
#******************************************************************************/-->
<!-- Variables Needed:
*         release.version - need three tokens: Major.Minor.Service
*         build.date      - in format YYYYMMDD
*         build.type      - should be set to "SNAPSHOT, "M##", or "RELEASE"
*
*********************************************************************************-->

<project name="Upload2Maven"  basedir="." xmlns:artifact="urn:maven-artifact-ant" default="upload-maven-all">
    <path id="maven-ant-tasks.classpath" path="${build.deps.dir}/mavenant/maven-ant-tasks-2.0.8.jar" />
    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant"
             classpathref="maven-ant-tasks.classpath" />

    <!-- root of "download dir" defined so can be overridden for testing -->
    <property name="eclipselink.root.download.dir" value="home/data/httpd/download.eclipse.org/rt/eclipselink"/>
    <!-- "maven dir" defined for later use ensuring only single upload occurs -->
    <property name="maven.repo.dir" value="${eclipselink.root.download.dir}/maven.repo"/>
    <!-- The repository where maven artifacts will be uploaded -->
    <artifact:remoteRepository id="eclipselink.repository" url="file:///${maven.repo.dir}" />

    <target name="upload-maven-all" depends="upload-eclipselink"/> <!--, upload-dependencies"/ -->

    <target name="discover-init">
        <dirname  property="maven.build.location_temp" file="${ant.file.Upload2Maven}"/>
        <pathconvert targetos="unix" property="maven.build.location">
            <path>
                <pathelement location="${maven.build.location_temp}"/>
            </path>
        </pathconvert>
        <property file="${user.home}/build.properties"/>
        <!-- discover path definitions -->
        <property name="maven.2.common.plugins.dir" value="${maven.build.location}/plugins"/>
        <property name="maven.2.jpa.plugins.dir"    value="${maven.build.location}/jpa/plugins"/>
        <property name="maven.2.sdo.plugins.dir"    value="${maven.build.location}/sdo/plugins"/>
        <property name="maven.2.buildsys.dir"       value="${maven.build.location}/buildsystem"/>

        <!-- Custom task definitions -->
        <property name="custom.tasks.lib" value="${maven.2.buildsys.dir}/ant_customizations.jar"/>
        <property name="custom.echo.task.class" value="org.eclipse.persistence.buildtools.ant.taskdefs.Say"/>
        <property name="custom.selectbundle.task.class" value="org.eclipse.persistence.buildtools.ant.taskdefs.SelectBundle"/>
        <taskdef name="say"          classname="${custom.echo.task.class}"         classpath="${custom.tasks.lib}"/>
        <taskdef name="selectbundle" classname="${custom.selectbundle.task.class}" classpath="${custom.tasks.lib}"/>
    </target>

    <target name="discover-jpaapi2-info" depends="discover-init">
        <property name="jpaapi2.prefix" value="javax.persistence"/>
        <property name="jpaapi2.criteria" value="[2.0.0,2.1.0)"/>
        <property name="jpaapi2.name" value="Javax Persistence"/>

        <selectbundle basename="${jpaapi2.prefix}" directory="${maven.2.jpa.plugins.dir}"
                     criterion="${jpaapi2.criteria}" property="jpaapi2.version" versiononly="true"
        />
        <echo message="jpaapi2.version = ${jpaapi2.version}"/>
    </target>

    <target name="upload-maven-init" depends="discover-jpaapi2-info">
        <fail message="Cannot upload to Maven without a release.version defined!" unless="release.version"/>
        <fail message="Cannot upload to Maven without a build.date defined!"      unless="build.date"/>
        <fail message="Cannot upload to Maven without a build.type defined!"      unless="build.type"/>

        <!--  Get the subversion version for current working copy. A freshly       -->
        <!--  checked out copy of workspace is guaranteed to not have mixed        -->
        <!--  revisions                                                            -->
        <exec outputproperty="svn.revision"
            failonerror="false"
            failifexecutionfails="false"
            errorproperty="svnversion.failed"
            executable="svnversion">
            <arg line="."/>
        </exec>
        <property name="svn.revision" value="NA"/>
        <!-- fail message="Cannot upload to Maven a build with an unknown revision!" if="svnversion.failed"/ -->

        <!-- Set version.string appropriately depending upon build.type and if svn -->
        <!--    is present. variable should only be used for uploaded filenames    -->
        <!--    or manifest entries.                                               -->
        <condition property="version.string" value="${release.version}.qualifier"
                                              else="${release.version}.v${build.date}-r${svn.revision}">
            <equals arg1="${svn.revision}" arg2="NA"/>
        </condition>

        <!-- Set maven.version appropriately depending upon ${build.type}.        -->
        <!--    variable should only be used for maven version element in POM.    -->
        <condition property="maven.version" value="${release.version}-${build.type}">
            <equals arg1="${build.type}" arg2="SNAPSHOT"/>
        </condition>
        <condition property="maven.version" value="${release.version}">
            <equals arg1="${build.type}" arg2="RELEASE"/>
        </condition>
        <property name="maven.version" value="${release.version}-${build.type}"/>

        <echo message="release.version: ${release.version}"/>
        <echo message="build.date:      ${build.date}"/>
        <echo message="build.type:      ${build.type}"/>
        <echo message="svn.revision:    ${svn.revision}"/>
        <echo message="version.string:  ${version.string}"/>
        <echo message="maven.version:   ${maven.version}"/>

        <!-- Setup static dependency definitions -->
        <!--  Would be nice to setup in the beginning, but the library definitions need version.string defined -->

        <!-- These need to be used in order -->
        <property name="deps.head" value="&lt;dependencies&gt;"/>
        <property name="dep.grp"   value="&lt;dependency&gt;&lt;groupId&gt;"/>
        <property name="dep.art"   value="&lt;/groupId&gt;&lt;artifactId&gt;"/>
        <property name="dep.ver"   value="&lt;/artifactId&gt;&lt;version&gt;"/>
        <property name="dep.type"  value="&lt;/version&gt;&lt;type&gt;"/>
        <property name="dep.scope" value="&lt;/type&gt;&lt;scope&gt;"/>
        <property name="dep.opt"   value="&lt;/scope&gt;&lt;optional&gt;"/>
        <property name="dep.foot"  value="&lt;/optional&gt;&lt;/dependency&gt;"/>
        <property name="deps.foot" value="&lt;/dependencies&gt;"/>

        <!-- These use above, in order, to define a single library for an artifact dependency -->
        <property name="dep.antlr"         value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.antlr${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.asm"           value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.asm${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.dbws"          value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.dbws${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.core"          value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.core${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.oracle"        value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.oracle${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.jpa"           value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.jpa${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.jpa.equinox"   value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.equinox${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.jpa.modelgen"  value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.jpa.modelgen${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.jpa.osgi"      value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.osgi${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.jpa.processor" value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.jpa.modelgen.processor${dep.ver}${maven.version}${dep.type}jar${dep.scope}runtime${dep.opt}false${dep.foot}"/>
        <property name="dep.jpa.weaving"   value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.weaving${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.moxy"          value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.moxy${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.sdo"           value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.sdo${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.eclipselink"   value="${dep.grp}org.eclipse.persistence${dep.art}eclipselink${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.persistence2"  value="${dep.grp}org.eclipse.persistence${dep.art}javax.persistence${dep.ver}${jpaapi2.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.persistence"   value="${dep.grp}org.eclipse.persistence${dep.art}javax.persistence${dep.ver}1.0.0.${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>

        <!-- These define the dependency block for a given artifact -->
        <!-- * JPA does have a dependency upon javax.persistence, but it is left unstated because while 2.0 functionality -->
        <!--   depends upon javax.persistence_2.0.x jpa 1.0 functionality can run with just javax.persistence_1.0         -->
        <!-- * The modelgen processor is a jar containing a single data resource used by the compiler to establish a      -->
        <!--   canonical modelgen processor during compilation. It has no real dependencies, nor is anything really       -->
        <!--   dependant upon it, but it is needed for this compiler functionality to work. (think of it as a compiler    -->
        <!--   add-on). It will need to be downloaded independently for this feature (modelgen) to work.                  -->
        <property name="core.dependencies"     value="${deps.head}${dep.asm}${dep.antlr}${deps.foot}"/>
        <property name="oracle.dependencies"   value="${deps.head}${dep.asm}${dep.core}${deps.foot}"/>
        <property name="jpa.dependencies"      value="${deps.head}${dep.asm}${dep.core}${deps.foot}"/>
        <property name="modelgen.dependencies" value="${deps.head}${dep.core}${dep.jpa}${dep.jpa.processor}${deps.foot}"/>
        <property name="osgi.dependencies"     value="${deps.head}${dep.jpa}${deps.foot}"/>
        <property name="weaving.dependencies"  value="${deps.head}${dep.jpa}${deps.foot}"/>
        <property name="equinox.dependencies"  value="${deps.head}${dep.jpa.weaving}${dep.jpa}${deps.foot}"/>
        <property name="dbws.dependencies"     value="${deps.head}${dep.core}${deps.foot}"/>
        <property name="moxy.dependencies"     value="${deps.head}${dep.core}${deps.foot}"/>
        <property name="sdo.dependencies"      value="${deps.head}${dep.moxy}${dep.core}${deps.foot}"/>
    </target>

    <target name="upload-jpaapi2" depends="discover-jpaapi2-info">
        <antcall target="upload-release-artifact">
            <param name="repo.dir"        value="/${maven.repo.dir}/org/eclipse/persistence/${jpaapi2.prefix}/${jpaapi2.version}"/>
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="${jpaapi2.prefix}"/>
            <param name="artifactVersion" value="${jpaapi2.version}"/>
            <param name="artifact"        value="${maven.2.jpa.plugins.dir}/${jpaapi2.prefix}_${jpaapi2.version}.jar"/>
            <param name="artifactSrc"     value="${maven.2.jpa.plugins.dir}/${jpaapi2.prefix}.source_${jpaapi2.version}.jar"/>
            <param name="artifactName"    value="${jpaapi2.name}"/>
            <param name="dependencies"    value=""/>
        </antcall>
    </target>

    <target name="upload-eclipselink" depends="upload-maven-init,upload-jpaapi2">
        <!-- call upload for each artifact we want to upload -->
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="eclipselink"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.jar}"/>
            <param name="artifactSrc" value="${eclipselink.src.install.prefix}${eclipselink.zip.suffix}"/>
            <param name="artifactName" value="EclipseLink (non-OSGi)"/>
            <param name="dependencies" value=""/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.antlr"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.antlr.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${eclipselink.plugins}/${eclipselink.antlr.bndl.prefix}.source_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink ANTLR"/>
            <param name="dependencies" value=""/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.asm"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.asm.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${eclipselink.plugins}/${eclipselink.asm.bndl.prefix}.source_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink ASM"/>
            <param name="dependencies" value=""/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.core"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.core.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${eclipselink.plugins}/${eclipselink.core.bndl.prefix}.source_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink Core"/>
            <param name="dependencies" value="${core.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.oracle"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.oracle.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${eclipselink.plugins}/${eclipselink.oracle.bndl.prefix}.source_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink Oracle Extensions"/>
            <param name="dependencies" value="${oracle.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.jpa"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.jpa.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${eclipselink.plugins}/${eclipselink.jpa.bndl.prefix}.source_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink JPA"/>
            <param name="dependencies" value="${jpa.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact-no-src">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.jpa.modelgen.processor"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.processor.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink JPA Modelgen Processor (non-OSGi)"/>
            <param name="dependencies" value=""/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.jpa.modelgen"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.modelgen.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${eclipselink.plugins}/${eclipselink.modelgen.bndl.prefix}.source_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink JPA Modelgen (non-OSGi)"/>
            <param name="dependencies" value="${modelgen.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.weaving"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.weaving.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${eclipselink.plugins}/${eclipselink.weaving.bndl.prefix}.source_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink JPA Weaving for Equinox Fragment"/>
            <param name="dependencies" value="${weaving.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.equinox"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.equinox.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${eclipselink.plugins}/${eclipselink.equinox.bndl.prefix}.source_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink JPA Equinox Fragment"/>
            <param name="dependencies" value="${equinox.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.osgi"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.osgi.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${eclipselink.plugins}/${eclipselink.osgi.bndl.prefix}.source_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink OSGi Deployment Fragment"/>
            <param name="dependencies" value="${equinox.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.moxy"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.moxy.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${eclipselink.plugins}/${eclipselink.moxy.bndl.prefix}.source_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink Moxy"/>
            <param name="dependencies" value="${moxy.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.sdo"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.sdo.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${eclipselink.plugins}/${eclipselink.sdo.bndl.prefix}.source_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink SDO"/>
            <param name="dependencies" value="${sdo.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId" value="org.eclipse.persistence"/>
            <param name="artifactId" value="org.eclipse.persistence.dbws"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${eclipselink.plugins}/${eclipselink.dbws.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${eclipselink.plugins}/${eclipselink.dbws.bndl.prefix}.source_${version.string}.jar"/>
            <param name="artifactName" value="EclipseLink DBWS"/>
            <param name="dependencies" value="${dbws.dependencies}"/>
        </antcall>
    </target>

    <!-- Targets to do the Dependency upload   -->
    <target name="discover-dependency-info" depends="discover-init">
        <!-- third-party Dependency variables -->
        <!-- Defaults, set var in ${user.home}/build.properties if different version required -->
        <property name="sdo.prefix" value="commonj.sdo"/>
        <property name="sdo.criteria" value="[2.1.1,2.2.0)"/>
        <property name="sdo.name" value="SDO API"/>
        <property name="activation.prefix" value="javax.activation"/>
        <property name="activation.criteria" value="[1.1.0,1.2.0)"/>
        <property name="activation.name" value="Javax Activation"/>
        <!-- property name="jms.prefix" value="javax.jms"/>
        <property name="jms.criteria" value="[1.1.0,1.2.0)"/>
        <property name="jms.name" value="Javax JMS"/ -->
        <property name="mail.prefix" value="javax.mail"/>
        <property name="mail.criteria" value="[1.4.0,1.5.0)"/>
        <property name="mail.name" value="Javax Mail"/>
        <property name="servlet.prefix" value="javax.servlet"/>
        <property name="servlet.criteria" value="[2.4.0,2.5.0)"/>
        <property name="servlet.name" value="Javax Servlet"/>
        <property name="xml.bind.prefix" value="javax.xml.bind"/>
        <property name="xml.bind.criteria" value="[2.2.0,2.3.0)"/>
        <property name="xml.bind.name" value="Javax XML Bind"/>
        <property name="xml.stream.prefix" value="javax.xml.stream"/>
        <property name="xml.stream.criteria" value="[1.0.1,1.1.0)"/>
        <property name="xml.stream.name" value="Javax XML Stream"/>

        <!-- Discover dependencies for branch/build -->
        <selectbundle basename="${sdo.prefix}" directory="${maven.2.sdo.plugins.dir}"
                     criterion="${sdo.criteria}" property="sdo.version" versiononly="true"
        />
        <selectbundle basename="${activation.prefix}" directory="${maven.2.common.plugins.dir}"
                     criterion="${activation.criteria}" property="activation.version" versiononly="true"
        />
        <selectbundle basename="${mail.prefix}" directory="${maven.2.common.plugins.dir}"
                     criterion="${mail.criteria}" property="mail.version" versiononly="true"
        />
        <selectbundle basename="${servlet.prefix}" directory="${maven.2.common.plugins.dir}"
                     criterion="${servlet.criteria}" property="servlet.version" versiononly="true"
        />
        <selectbundle basename="${xml.bind.prefix}" directory="${maven.2.common.plugins.dir}"
                     criterion="${xml.bind.criteria}" property="xml.bind.version" versiononly="true"
        />
        <selectbundle basename="${xml.stream.prefix}" directory="${maven.2.common.plugins.dir}"
                     criterion="${xml.stream.criteria}" property="xml.stream.version" versiononly="true"
        />
        <echo message="sdo.version        = ${sdo.version}"/>
        <echo message="activation.version = ${activation.version}"/>
        <echo message="mail.version       = ${mail.version}"/>
        <echo message="servlet.version    = ${servlet.version}"/>
        <echo message="xml.bind.version   = ${xml.bind.version}"/>
        <echo message="xml.stream.version = ${xml.stream.version}"/>
        <!-- selectbundle basename="${jms.prefix}" directory="${maven.2.common.plugins.dir}"
                     criterion="${jms.criteria}" property="jms.version" versiononly="true"
        />
        <selectbundle basename="${xjc.prefix}" directory="${maven.2.common.plugins.dir}"
                     criterion="${xjc.criteria}" property="xjc.version" versiononly="true"
        />
        <selectbundle basename="${xml.bind.impl.prefix}" directory="${maven.2.common.plugins.dir}"
                     criterion="${xml.bind.impl.criteria}" property="xml.bind.impl.version" versiononly="true"
        />
        <selectbundle basename="${xml.rcp.prefix}" directory="${maven.2.common.plugins.dir}"
                     criterion="${xml.rcp.criteria}" property="xml.rcp.version" versiononly="true"
        />
        <selectbundle basename="${xml.soap.prefix}" directory="${maven.2.common.plugins.dir}"
                     criterion="${xml.soap.criteria}" property="xml.soap.version" versiononly="true"
        />
        <echo message="====================================="/>
        <echo message="jms.version           = ${jms.version}"/>
        <echo message="xjc.version           = ${xjc.version}"/>
        <echo message="xml.bind.impl.version = ${xml.bind.impl.version}"/>
        <echo message="xml.rcp.version       = ${xml.rcp.version}"/>
        <echo message="xml.soap.version      = ${xml.soap.version}"/ -->
    </target>

    <target name="upload-dependencies" depends="discover-dependency-info">
        <!-- call upload for each artifact we want to upload -->
        <!-- SDO API -->
        <antcall target="upload-release-artifact-no-src">
            <param name="repo.dir" value="/${maven.repo.dir}/commonj/sdo/${sdo.prefix}/${sdo.version}"/>
            <param name="groupId" value="${sdo.prefix}"/>
            <param name="artifactId" value="${sdo.prefix}"/>
            <param name="artifactVersion" value="${sdo.version}"/>
            <param name="artifact" value="${maven.2.sdo.plugins.dir}/${sdo.prefix}_${sdo.version}.jar"/>
            <param name="artifactName" value="${sdo.name}"/>
            <param name="dependencies" value=""/>
        </antcall>
        <!-- ACTIVATION API -->
        <antcall target="upload-release-artifact-no-src">
            <param name="repo.dir" value="/${maven.repo.dir}/javax/activation/${activation.prefix}/${activation.version}"/>
            <param name="groupId" value="${activation.prefix}"/>
            <param name="artifactId" value="${activation.prefix}"/>
            <param name="artifactVersion" value="${activation.version}"/>
            <param name="artifact" value="${maven.2.common.plugins.dir}/${activation.prefix}_${activation.version}.jar"/>
            <param name="artifactName" value="${activation.name}"/>
            <param name="dependencies" value=""/>
        </antcall>
        <!-- JMS API -->
        <!-- antcall target="upload-release-artifact-no-src">
            <param name="repo.dir" value="/${maven.repo.dir}/javax/jms/${jms.prefix}/${jms.version}"/>
            <param name="groupId" value="${jms.prefix}"/>
            <param name="artifactId" value="${jms.prefix}"/>
            <param name="artifactVersion" value="${jms.version}"/>
            <param name="artifact" value="${maven.2.common.plugins.dir}/${jms.prefix}_${jms.version}.jar"/>
            <param name="artifactName" value="${jms.name}"/>
            <param name="dependencies" value=""/>
        </antcall -->
        <!-- MAIL API -->
        <antcall target="upload-release-artifact-no-src">
            <param name="repo.dir" value="/${maven.repo.dir}/javax/mail/${mail.prefix}/${mail.version}"/>
            <param name="groupId" value="${mail.prefix}"/>
            <param name="artifactId" value="${mail.prefix}"/>
            <param name="artifactVersion" value="${mail.version}"/>
            <param name="artifact" value="${maven.2.common.plugins.dir}/${mail.prefix}_${mail.version}.jar"/>
            <param name="artifactName" value="${mail.name}"/>
            <param name="dependencies" value=""/>
        </antcall>
        <!-- SERVLET API -->
        <antcall target="upload-release-artifact-no-src">
            <param name="repo.dir" value="/${maven.repo.dir}/javax/servlet/${servlet.prefix}/${servlet.version}"/>
            <param name="groupId" value="${servlet.prefix}"/>
            <param name="artifactId" value="${servlet.prefix}"/>
            <param name="artifactVersion" value="${servlet.version}"/>
            <param name="artifact" value="${maven.2.common.plugins.dir}/${servlet.prefix}_${servlet.version}.jar"/>
            <param name="artifactName" value="${servlet.name}"/>
            <param name="dependencies" value=""/>
        </antcall>
        <!-- XML BIND API -->
        <antcall target="upload-release-artifact-no-src">
            <param name="repo.dir" value="/${maven.repo.dir}/javax/xml.bind/${xml.bind.prefix}/${xml.bind.version}"/>
            <param name="groupId" value="${xml.bind.prefix}"/>
            <param name="artifactId" value="${xml.bind.prefix}"/>
            <param name="artifactVersion" value="${xml.bind.version}"/>
            <param name="artifact" value="${maven.2.common.plugins.dir}/${xml.bind.prefix}_${xml.bind.version}.jar"/>
            <param name="artifactName" value="${xml.bind.name}"/>
            <param name="dependencies" value=""/>
        </antcall>
        <!-- XML STREAM API -->
        <antcall target="upload-release-artifact-no-src">
            <param name="repo.dir" value="/${maven.repo.dir}/javax/xml.stream/${xml.stream.prefix}/${xml.stream.version}"/>
            <param name="groupId" value="${xml.stream.prefix}"/>
            <param name="artifactId" value="${xml.stream.prefix}"/>
            <param name="artifactVersion" value="${xml.stream.version}"/>
            <param name="artifact" value="${maven.2.common.plugins.dir}/${xml.stream.prefix}_${xml.stream.version}.jar"/>
            <param name="artifactName" value="${xml.stream.name}"/>
            <param name="dependencies" value=""/>
        </antcall>
    </target>


    <!-- Generic targets to do the Maven work  -->
    <target name="prepare-pom">
        <!-- Copy pom.template to pom.xml filtering various properties -->
        <copy file="pom.xml.template" tofile="pom.xml" overwrite="true">
          <filterset>
            <filter token="groupId"      value="${groupId}"/>
            <filter token="version"      value="${artifactVersion}"/>
            <filter token="svn.revision" value="${svn.revision}"/>
            <filter token="artifactId"   value="${artifactId}"/>
            <filter token="artifactName" value="${artifactName}"/>
            <filter token="dependencies" value="${dependencies}"/>
           </filterset>
        </copy>
    </target>

    <target name="verify-no-exist">
        <available file="${repo.dir}" property="repo.version.exist" type="dir" value="true"/>
        <say message="'${artifactName}' version '${artifactVersion}' already deployed to repository... skipping." if="repo.version.exist"/>
     </target>

    <!-- Uploads a single artifact & source to maven repository only if one doesn't already exist -->
    <target name="upload-release-artifact" unless="repo.version.exist" depends="verify-no-exist, prepare-pom">
        <echo message="Deploying '${artifactName}' version '${artifactVersion}' to repository..."/>
        <!-- Delploy the jar to maven repository along with sources -->
        <artifact:pom id="maven.project" file="pom.xml" />
        <artifact:deploy file="${artifact}">
          <remoteRepository refid="eclipselink.repository"/>
          <pom refid="maven.project"/>
          <artifact:attach file="${artifactSrc}" classifier="sources"/>
        </artifact:deploy>
        <!-- cleanup -->
        <delete file="pom.xml"/>
    </target>

    <!-- Uploads a single artifact without src to maven repository only if one doesn't already exist -->
    <target name="upload-release-artifact-no-src" unless="repo.version.exist" depends="verify-no-exist, prepare-pom">
        <echo message="Deploying '${artifactName}' version '${artifactVersion}' to repository..."/>
        <!-- Delploy the jar to maven repository along with sources -->
        <artifact:pom id="maven.project" file="pom.xml" />
        <artifact:deploy file="${artifact}">
          <remoteRepository refid="eclipselink.repository"/>
          <pom refid="maven.project"/>
        </artifact:deploy>
        <!-- cleanup -->
        <delete file="pom.xml"/>
    </target>

    <!-- Uploads a single artifact & source to maven repository -->
    <target name="upload-artifact" depends="prepare-pom">
        <!-- Delploy the jar to maven repository along with sources -->
        <artifact:pom id="maven.project" file="pom.xml" />
        <artifact:deploy file="${artifact}">
          <remoteRepository refid="eclipselink.repository"/>
          <pom refid="maven.project"/>
          <artifact:attach file="${artifactSrc}" classifier="sources"/>
        </artifact:deploy>
        <!-- cleanup -->
        <delete file="pom.xml"/>
    </target>

    <!-- Uploads a single artifact without src to maven repository -->
    <target name="upload-artifact-no-src" depends="prepare-pom">
        <!-- Delploy the jar to maven repository along with sources -->
        <artifact:pom id="maven.project" file="pom.xml" />
        <artifact:deploy file="${artifact}">
          <remoteRepository refid="eclipselink.repository"/>
          <pom refid="maven.project"/>
        </artifact:deploy>
        <!-- cleanup -->
        <delete file="pom.xml"/>
    </target>

</project>


