<!--/*******************************************************************************
* 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">
    <property file="${user.home}/build.properties"/>
    <property file="build.properties"/>
    <!-- The following properties defined so they can be overridden for testing -->
    <property name="mavenant.dir" value="${build.deps.dir}/mavenant"/>
    <property name="eclipselink.root.download.dir" value="home/data/httpd/download.eclipse.org/rt/eclipselink"/>
    
    <path id="maven-ant-tasks.classpath" path="${mavenant.dir}/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" />

    <!-- "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.util.plugins.dir"   value="${maven.build.location}/utils/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-static-built-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"/>
        <property name="sdoapi.prefix"      value="commonj.sdo"/>
        <property name="sdoapi.criteria"    value="[2.1.1,2.2.0)"/>
        <property name="sdoapi.name"        value="SDO API"/>
        <property name="antlr.prefix"       value="org.eclipse.persistence.antlr"/>
        <property name="antlr.criteria"     value="[3.0.0,4.0.0)"/>
        <property name="antlr.name"         value="EclipseLink ANTLR"/>
        <property name="asm.prefix"         value="org.eclipse.persistence.asm"/>
        <property name="asm.criteria"       value="[3.0.0,4.0.0)"/>
        <property name="asm.name"           value="EclipseLink ASM"/>
        <property name="oracleddl.prefix"   value="org.eclipse.persistence.tools.oracleddl"/>
        <property name="oracleddl.criteria" value="[1.0.0,9.0.0)"/>
        <property name="oracleddl.name"     value="EclipseLink OracleDDL Parser"/>

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

    <target name="upload-maven-init" depends="discover-static-built-info">
        <!-- Defaults for testing, will be previously set on real run -->
        <tstamp>
            <format property="build.date" pattern="yyyyMMdd"/>
        </tstamp>
 
        <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}${antlr.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}${asm.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}"/>
        <property name="dep.sdoapi"        value="${dep.grp}commonj.sdo${dep.art}commonj.sdo${dep.ver}${sdoapi.version}${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.sdoapi}${dep.moxy}${dep.core}${deps.foot}"/>
    </target>

    <target name="upload-static-built-jars" depends="discover-static-built-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>
        <antcall target="upload-release-artifact-no-src">
            <param name="repo.dir"        value="/${maven.repo.dir}/commonj/sdo/${sdoapi.prefix}/${sdoapi.version}"/>
            <param name="groupId"         value="${sdoapi.prefix}"/>
            <param name="artifactId"      value="${sdoapi.prefix}"/>
            <param name="artifactVersion" value="${sdoapi.version}"/>
            <param name="artifact"        value="${maven.2.sdo.plugins.dir}/${sdoapi.prefix}_${sdoapi.version}.jar"/>
            <param name="artifactName"    value="${sdoapi.name}"/>
            <param name="dependencies"    value=""/>
        </antcall>
        <antcall target="upload-release-artifact">
            <param name="repo.dir"        value="/${maven.repo.dir}/org/eclipse/persistence/${antlr.prefix}/${antlr.version}"/>
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="${antlr.prefix}"/>
            <param name="artifactVersion" value="${antlr.version}"/>
            <param name="artifact"        value="${maven.2.common.plugins.dir}/${antlr.prefix}_${antlr.version}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/${antlr.prefix}.source_${antlr.version}.jar"/>
            <param name="artifactName"    value="${antlr.name}"/>
            <param name="dependencies"    value=""/>
        </antcall>
        <antcall target="upload-release-artifact">
            <param name="repo.dir"        value="/${maven.repo.dir}/org/eclipse/persistence/${asm.prefix}/${asm.version}"/>
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="${asm.prefix}"/>
            <param name="artifactVersion" value="${asm.version}"/>
            <param name="artifact"        value="${maven.2.common.plugins.dir}/${asm.prefix}_${asm.version}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/${asm.prefix}.source_${asm.version}.jar"/>
            <param name="artifactName"    value="${asm.name}"/>
            <param name="dependencies"    value=""/>
        </antcall>
        <antcall target="upload-release-artifact">
            <param name="repo.dir"        value="/${maven.repo.dir}/org/eclipse/persistence/${oracleddl.prefix}/${oracleddl.version}"/>
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="${oracleddl.prefix}"/>
            <param name="artifactVersion" value="${oracleddl.version}"/>
            <param name="artifact"        value="${maven.2.util.plugins.dir}/${oracleddl.prefix}_${oracleddl.version}.jar"/>
            <param name="artifactSrc"     value="${maven.2.util.plugins.dir}/${oracleddl.prefix}.source_${oracleddl.version}.jar"/>
            <param name="artifactName"    value="${oracleddl.name}"/>
            <param name="dependencies"    value=""/>
        </antcall>
    </target>

    <target name="upload-eclipselink" depends="upload-maven-init,upload-static-built-jars">
        <!-- 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.core"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact" value="${maven.2.common.plugins.dir}/${eclipselink.core.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${maven.2.common.plugins.dir}/${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="${maven.2.common.plugins.dir}/${eclipselink.oracle.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${maven.2.common.plugins.dir}/${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="${maven.2.common.plugins.dir}/${eclipselink.jpa.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${maven.2.common.plugins.dir}/${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="${maven.2.common.plugins.dir}/${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="${maven.2.common.plugins.dir}/${eclipselink.modelgen.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${maven.2.common.plugins.dir}/${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="${maven.2.common.plugins.dir}/${eclipselink.weaving.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${maven.2.common.plugins.dir}/${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="${maven.2.common.plugins.dir}/${eclipselink.equinox.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${maven.2.common.plugins.dir}/${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="${maven.2.common.plugins.dir}/${eclipselink.osgi.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${maven.2.common.plugins.dir}/${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="${maven.2.common.plugins.dir}/${eclipselink.moxy.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${maven.2.common.plugins.dir}/${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="${maven.2.common.plugins.dir}/${eclipselink.sdo.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${maven.2.common.plugins.dir}/${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="${maven.2.common.plugins.dir}/${eclipselink.dbws.bndl.prefix}_${version.string}.jar"/>
            <param name="artifactSrc" value="${maven.2.common.plugins.dir}/${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="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="${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="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 -->
        <!-- 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>


