<!--/*******************************************************************************
* 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
*     egwin    - updated for publishing to Maven Central, split nexus handling to
*                new script
*     egwin    - converted svn.revision to git.hash (was missed in original
*                migration to Git)
#******************************************************************************/-->
<!-- 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"
*         git.hash        - for stamping pom, to link build with source repo
*    Optional variables:
*         bundle.dir      - if location of bundles to publish isn't a git "view"
*
*********************************************************************************-->
<!-- Build Assumptions:
*         running from a "view"
*            Needs:
*               ${mavenant.dir}/maven-ant-tasks-2.0.8.jar (assumes: ${build.deps.dir}/mavenant)
*               build.properties
*               ./buildsystem/ant_customizations.jar
*
*********************************************************************************-->
<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.1.3.jar" />
    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant"
             classpathref="maven-ant-tasks.classpath" />

    <!-- Tool version definitions -->
    <property name="gpg.plugin.version"   value="1.4"/>
    <property name="wagon.http.version"   value="2.4"/>

    <!-- The repository info of where maven artifacts will be uploaded -->
    <!--    Override value to change defaults                          -->
    <property name="stagingId"   value="sonatype-nexus-staging"/>
    <property name="stagingURL"  value="https://oss.sonatype.org/service/local/staging/deploy/maven2"/>
    <property name="snapshotId"  value="sonatype-nexus-snapshots"/>
    <property name="snapshotURL" value="https://oss.sonatype.org/content/repositories/snapshots"/>

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

    <target name="environment-init" if="bundle.dir">
        <!--  If "bundle.dir" specified that means that the Push to Maven is occurring from a constructed -->
        <!--  dir (expanded zips), rather than directly from a "view" (git repo) dir structure.           -->
        <property name="maven.2.pojo.dir"           value="${bundle.dir}"/>
        <property name="maven.2.common.plugins.dir" value="${bundle.dir}"/>
        <property name="maven.2.jpa.plugins.dir"    value="${bundle.dir}"/>
        <property name="maven.2.sdo.plugins.dir"    value="${bundle.dir}"/>
        <property name="maven.2.util.plugins.dir"   value="${bundle.dir}"/>
    </target>

    <target name="init" depends="environment-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.pojo.dir"           value="${maven.build.location}"/>
        <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"/>
        <property name="custom.stripqualifier.task.class" value="org.eclipse.persistence.buildtools.ant.taskdefs.StripQualifier"/>
        <taskdef name="say"            classname="${custom.echo.task.class}"           classpath="${custom.tasks.lib}"/>
        <taskdef name="selectbundle"   classname="${custom.selectbundle.task.class}"   classpath="${custom.tasks.lib}"/>
        <taskdef name="stripQualifier" classname="${custom.stripqualifier.task.class}" classpath="${custom.tasks.lib}"/>

        <echo message="maven.build.location                = ${maven.build.location}"/>
        <echo message="maven.2.pojo.dir  (eclipselink.jar) = ${maven.2.pojo.dir}"/>
        <echo message="maven.2.common.plugins.dir (common) = ${maven.2.common.plugins.dir}"/>
        <echo message="maven.2.jpa.plugins.dir  (JPA-API)  = ${maven.2.jpa.plugins.dir}"/>
        <echo message="maven.2.sdo.plugins.dir  (commonj)  = ${maven.2.sdo.plugins.dir}"/>
        <echo message="maven.2.util.plugins.dir (DDLparser)= ${maven.2.util.plugins.dir}"/>
        <echo message="maven.2.buildsys.dir                = ${maven.2.buildsys.dir}"/>

        <!-- 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"/>
        <fail message="Cannot upload to Maven without 'git.hash' defined!"        unless="git.hash"/>

        <!-- Set version.string. variable should only be used for uploaded filenames -->
        <!--    or manifest entries.                                                 -->
        <!--    NOTE: Mostly redundant. version.string should already be set.        -->
        <property name="version.string" value="${release.version}.v${build.date}-${git.hash}"/>

        <!-- 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}"
                                             else="${release.version}-${build.type}">
            <equals arg1="${build.type}" arg2="RELEASE"/>
        </condition>

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

        <condition property="sign">
            <not> <equals arg1="${build.type}" arg2="SNAPSHOT"/> </not>
        </condition>

        <condition property="target.repo.message" value="Target repository ID: '${stagingId}' URL:'${stagingURL}'"
                                                   else="Target repository ID: '${snapshotId}' URL:'${snapshotURL}'">
            <isset property="sign"/>
        </condition>
        <echo message="${target.repo.message}"/>
    </target>

    <target name="discover-static-built-info" depends="init">
        <property name="jpaapi.prefix"        value="javax.persistence"/>
        <property name="jpaapi.criteria"      value="[2.0.100, 2.2)"/>
        <property name="jpaapi.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.oracleddlparser"/>
        <property name="oracleddl.criteria"   value="[1.0.0,9.0.0)"/>
        <property name="oracleddl.name"       value="EclipseLink OracleDDL Parser"/>
        <property name="oraclebndl.prefix"    value="org.eclipse.persistence.oracle"/>
        <property name="oraclebndl.criteria"  value="[1.0.0,9.0.0)"/>
        <property name="oraclbndl.name"       value="EclipseLink Oracle Extensions"/>
        <property name="oraclenosql.prefix"   value="org.eclipse.persistence.oracle.nosql"/>
        <property name="oraclenosql.criteria" value="[1.0.0,9.0.0)"/>
        <property name="oraclenosql.name"     value="EclipseLink Oracle NoSQL database Extensions"/>
        <property name="hermes.prefix"        value="org.eclipse.persistence.jpa.jpql"/>
        <property name="hermes.criteria"      value="[1.0.0,9.0.0)"/>
        <property name="hermes.name"          value="EclipseLink Hermes JPQL Parser"/>

        <selectbundle basename="${jpaapi.prefix}"  directory="${maven.2.jpa.plugins.dir}"
                     criterion="${jpaapi.criteria}" property="jpaapi.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"
        />
        <selectbundle basename="${oraclebndl.prefix}"  directory="${maven.2.common.plugins.dir}"
                     criterion="${oraclebndl.criteria}" property="oraclebndl.version" versiononly="true"
        />
        <selectbundle basename="${oraclenosql.prefix}"  directory="${maven.2.common.plugins.dir}"
                     criterion="${oraclenosql.criteria}" property="oraclenosql.version" versiononly="true"
        />
        <selectbundle basename="${hermes.prefix}"  directory="${maven.2.common.plugins.dir}"
                     criterion="${hermes.criteria}" property="hermes.version" versiononly="true"
        />

        <echo message="jpaapi.version     = ${jpaapi.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}"/>
        <echo message="oraclebndl.version = ${oraclebndl.version}"/>
        <echo message="oraclenosql.version= ${oraclenosql.version}"/>
        <echo message="hermes.version     = ${hermes.version}"/>

        <!-- Maven standards state we should publish with a stripped down 3-part version rather -->
        <!-- than the 4-part OSGi version. So we need to generate "(bundle).mvn.version" from   -->
        <!-- the discovered "(bundle).version" (after release) -->
        <stripQualifier input="${jpaapi.version}"      property="jpaapi.mvn.version"/>
        <!-- However, if the bundle versioning is such that only the qualifier will change on   -->
        <!-- a rebuild (convenient for publishing OSGi-ified jars but against OSGi spec) then   -->
        <!-- we will either violate Maven's "once published, never changes" rule, or newer      -->
        <!-- bundles will never be published.                                                   -->
        <!-- NOTE: Decision made to preserve former rather than latter for commonj.sdo, it has  -->
        <!--       not revved in several years and so is unlikely to do so in future (BD,DT,EG) -->
        <stripQualifier input="${sdoapi.version}"      property="sdoapi.mvn.version"/>
        <!-- In addition these jars are special cases:                                         -->
        <!--   Hermes OSGi versioning has changed, so will move into the regular build section -->
        <!--   soon.                                                                           -->
        <!--   OracleDDL is expected to follow suit                                            -->
        <!--   The Oracle bundles only build periodically, so the bundle version needs to be   -->
        <!--      'discovered' but they should be published as part of the build               -->
        <!--   ANTLR and ASM bundle versions follow the jar it is based upon, and so new builds-->
        <!--      only rev the qualifier. However they are uniquely EclipseLink due to the     -->
        <!--      package renaming, so while the version needs to be 'discovered' for artifact -->
        <!--      publishing they will be published under the EclipseLink build version        -->
        <!--   In addition, in all these listed cases, the artifacts are EclipseLink specific, -->
        <!--   and won't be available separately anyway.                                       -->

        <say  message="jpaapi.mvn.version = ${jpaapi.mvn.version}"      if="jpaapi.mvn.version"/>
        <say  message="sdoapi.mvn.version = ${sdoapi.mvn.version}"      if="sdoapi.mvn.version"/>
        <say  message="jpaapi.mvn.version:  Property not set!"      unless="jpaapi.mvn.version"/>
        <say  message="sdoapi.mvn.version:  Property not set!"      unless="sdoapi.mvn.version"/>
    </target>

    <target name="upload-maven-init" depends="discover-static-built-info">
        <!-- Setup static dependency definitions -->
        <!--  Would be nice to setup in the beginning, but the library definitions need version.string defined -->
        <!-- Also semi-static OSGi libraries need to use a stripped down 3-part version, rather than the 4-part OSGi version -->
        <!-- 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 -->
        <!-- Public APIs we depend upon that can be found on Maven Central -->
        <!-- Add as nosql dependency -->
        <property name="dep.resource"      value="${dep.grp}javax.resource${dep.art}connector-api${dep.ver}1.5${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.servlet"       value="${dep.grp}javax.servlet${dep.art}servlet-api${dep.ver}2.4${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.wsdl"          value="${dep.grp}wsdl4j${dep.art}wsdl4j${dep.ver}1.6.3${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <!-- These are EclipseLink maintained public API bundles so are published under the EclipseLink GroupID, but with their own version info -->
        <property name="dep.persistence"   value="${dep.grp}org.eclipse.persistence${dep.art}${jpaapi.prefix}${dep.ver}${jpaapi.mvn.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.sdoapi"        value="${dep.grp}org.eclipse.persistence${dep.art}${sdoapi.prefix}${dep.ver}${sdoapi.mvn.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <!-- These are EclipseLink jars so will be versioned with the build -->
        <property name="dep.antlr"         value="${dep.grp}org.eclipse.persistence${dep.art}${antlr.prefix}${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}${asm.prefix}${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.hermes"        value="${dep.grp}org.eclipse.persistence${dep.art}${hermes.prefix}${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}${oraclebndl.prefix}${dep.ver}${maven.version}${dep.type}jar${dep.scope}compile${dep.opt}false${dep.foot}"/>
        <property name="dep.nosql"         value="${dep.grp}org.eclipse.persistence${dep.art}org.eclipse.persistence.nosql${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.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.oracleddl"     value="${dep.grp}org.eclipse.persistence${dep.art}${oracleddl.prefix}${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}"/>

        <!-- These define the dependency block for a given artifact -->
        <!-- * 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="eclipselink.dependencies" value="${deps.head}${dep.persistence}${dep.sdoapi}${deps.foot}"/> <!-- would need the modelgen.jar for modelgen but cannot include dep -->
        <property name="jpql.dependencies"        value="${deps.head}${dep.hermes}${deps.foot}"/>
        <property name="core.dependencies"        value="${deps.head}${dep.asm}${deps.foot}"/>
        <property name="oracle.dependencies"      value="${deps.head}${dep.persistence}${dep.asm}${dep.core}${deps.foot}"/>
        <property name="jpa.dependencies"         value="${deps.head}${dep.persistence}${dep.asm}${dep.antlr}${dep.hermes}${dep.core}${deps.foot}"/>
        <property name="nosql.dependencies"       value="${deps.head}${dep.resource}${dep.persistence}${dep.asm}${dep.antlr}${dep.hermes}${dep.core}${deps.foot}"/>
        <property name="ora.nosql.dependencies"   value="${deps.head}${dep.nosql}${deps.foot}"/>
        <property name="modelgen.dependencies"    value="${deps.head}${dep.core}${dep.jpa}${deps.foot}"/>
        <property name="dbws.dependencies"        value="${deps.head}${dep.core}${deps.foot}"/>
        <property name="builder.dependencies"     value="${deps.head}${dep.core}${dep.dbws}${dep.moxy}${dep.jpa}${dep.nosql}${dep.oracle}${dep.servlet}${dep.wsdl}${dep.oracleddl}${deps.foot}"/>
        <property name="moxy.dependencies"        value="${deps.head}${dep.core}${dep.antlr}${deps.foot}"/>
        <property name="sdo.dependencies"         value="${deps.head}${dep.sdoapi}${dep.moxy}${dep.core}${deps.foot}"/>
    </target>

    <!-- Nexus typicaly is configured to disallow uploads of already published versions (non-snapshot)   -->
    <!--   Aditionally Sonatype is configured to disallow publishing of non-snapshot versions to the     -->
    <!--   snapshot server (400 error). Therefore Moving the JPA "snapshot" upload to the regular upload -->
    <!--   section, and setting this target to conditionally only run if not a build.type of SNAPSHOT,   -->
    <!--   and fix it so these uploads won't cause a build failure on Error (already uploaded)           -->
    <target name="upload-static-built-jars" if="sign" depends="discover-static-built-info">
        <!-- Removed "upload-release-artifact" because it depended upon filesystem access. See below. -->
        <!-- repo.dir and artifactId should be (bundle).mvn.version from (bundle).version -->
        <!-- (rather than the 4-part OSGi version, we use a stripped down 3-part version) -->
        <echo message="Skipping upload of static artifacts to Nexus..."/>
        <!-- antcall target="upload-artifact">
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="${jpaapi.prefix}"/>
            <param name="artifactVersion" value="${jpaapi.mvn.version}"/>
            <param name="artifact"        value="${maven.2.jpa.plugins.dir}/${jpaapi.prefix}_${jpaapi.version}.jar"/>
            <param name="artifactSrc"     value="${maven.2.jpa.plugins.dir}/${jpaapi.prefix}.source_${jpaapi.version}.jar"/>
            <param name="artifactName"    value="${jpaapi.name}"/>
            <param name="dependencies"    value=""/>
        </antcall -->
        <!-- Removed "upload-release-artifact" because it depended upon filesystem access. See below. -->
        <!-- antcall target="upload-release-artifact" -->
        <!-- antcall target="upload-artifact">
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="${sdoapi.prefix}"/>
            <param name="artifactVersion" value="${sdoapi.mvn.version}"/>
            <param name="artifact"        value="${maven.2.sdo.plugins.dir}/${sdoapi.prefix}_${sdoapi.version}.jar"/>
            <param name="artifactSrc"     value="${maven.2.sdo.plugins.dir}/${sdoapi.prefix}.source_${sdoapi.version}.jar"/>
            <param name="artifactName"    value="${sdoapi.name}"/>
            <param name="dependencies"    value=""/>
        </antcall -->
    </target>

    <target name="upload-eclipselink" depends="upload-maven-init,upload-static-built-jars">
        <!-- While JPA is pre-release use "upload-artifact" with fixed up 2.1.0-(EL ${build.type}) as version -->
        <!-- Changed back (commented out) for post-release builds                                                               -->
        <!-- antcall target="upload-artifact">
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="${jpaapi.prefix}"/>
            <param name="artifactVersion" value="${jpaapi.mvn.version}"/>
            <param name="artifact"        value="${maven.2.jpa.plugins.dir}/${jpaapi.prefix}_${jpaapi.version}.jar"/>
            <param name="artifactSrc"     value="${maven.2.jpa.plugins.dir}/${jpaapi.prefix}.source_${jpaapi.version}.jar"/>
            <param name="artifactName"    value="${jpaapi.name}"/>
            <param name="dependencies"    value=""/>
        </antcall -->
        <!-- call upload for each artifact we want to upload -->
        <antcall target="upload-artifact-with-javadoc">
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="eclipselink"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact"        value="${maven.2.pojo.dir}/eclipselink.jar"/>
            <param name="artifactSrc"     value="${maven.2.pojo.dir}/eclipselink-src.zip"/>
            <param name="artifactJavadoc" value="${maven.2.pojo.dir}/eclipselink-javadocs.zip"/>
            <param name="artifactName"    value="EclipseLink (non-OSGi)"/>
            <param name="dependencies"    value="${eclipselink.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="${hermes.prefix}"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact"        value="${maven.2.common.plugins.dir}/${hermes.prefix}_${hermes.version}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/${hermes.prefix}.source_${hermes.version}.jar"/>
            <param name="artifactName"    value="${hermes.name}"/>
            <param name="dependencies"    value=""/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="${antlr.prefix}"/>
            <param name="artifactVersion" value="${maven.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-artifact">
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="${asm.prefix}"/>
            <param name="artifactVersion" value="${maven.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-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}/org.eclipse.persistence.core_${version.string}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/org.eclipse.persistence.core.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="${oraclebndl.prefix}"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact"        value="${maven.2.common.plugins.dir}/${oraclebndl.prefix}_${oraclebndl.version}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/${oraclebndl.prefix}.source_${oraclebndl.version}.jar"/>
            <param name="artifactName"    value="${oraclebndl.name}"/>
            <param name="dependencies"    value="${oracle.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="${oraclenosql.prefix}"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact"        value="${maven.2.common.plugins.dir}/${oraclenosql.prefix}_${oraclenosql.version}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/${oraclenosql.prefix}.source_${oraclenosql.version}.jar"/>
            <param name="artifactJavadoc" value="${maven.2.pojo.dir}/nosql-javadocs.zip"/>
            <param name="artifactName"    value="${oraclenosql.name}"/>
            <param name="dependencies"    value="${ora.nosql.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact-with-javadoc">
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="org.eclipse.persistence.nosql"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact"        value="${maven.2.common.plugins.dir}/org.eclipse.persistence.nosql_${version.string}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/org.eclipse.persistence.nosql.source_${version.string}.jar"/>
            <param name="artifactJavadoc" value="${maven.2.pojo.dir}/nosql-javadocs.zip"/>
            <param name="artifactName"    value="EclipseLink NoSQL database Extensions"/>
            <param name="dependencies"    value="${nosql.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}/org.eclipse.persistence.jpa_${version.string}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/org.eclipse.persistence.jpa.source_${version.string}.jar"/>
            <param name="artifactName"    value="EclipseLink JPA"/>
            <param name="dependencies"    value="${jpa.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact-with-javadoc">
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="org.eclipse.persistence.jpars"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact"        value="${maven.2.common.plugins.dir}/org.eclipse.persistence.jpars_${version.string}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/org.eclipse.persistence.jpars.source_${version.string}.jar"/>
            <param name="artifactJavadoc" value="${maven.2.pojo.dir}/eclipselink-jpars-javadocs.zip"/>
            <param name="artifactName"    value="EclipseLink JPA-RS"/>
            <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.processor"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact"        value="${maven.2.common.plugins.dir}/org.eclipse.persistence.jpa.modelgen_${version.string}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/org.eclipse.persistence.jpa.modelgen.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.moxy"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact"        value="${maven.2.common.plugins.dir}/org.eclipse.persistence.moxy_${version.string}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/org.eclipse.persistence.moxy.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}/org.eclipse.persistence.sdo_${version.string}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/org.eclipse.persistence.sdo.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}/org.eclipse.persistence.dbws_${version.string}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/org.eclipse.persistence.dbws.source_${version.string}.jar"/>
            <param name="artifactName"    value="EclipseLink DBWS"/>
            <param name="dependencies"    value="${dbws.dependencies}"/>
        </antcall>
        <antcall target="upload-artifact">
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="${oracleddl.prefix}"/>
            <param name="artifactVersion" value="${maven.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>
        <antcall target="upload-artifact">
            <param name="groupId"         value="org.eclipse.persistence"/>
            <param name="artifactId"      value="org.eclipse.persistence.dbws.builder"/>
            <param name="artifactVersion" value="${maven.version}"/>
            <param name="artifact"        value="${maven.2.common.plugins.dir}/org.eclipse.persistence.dbws.builder_${version.string}.jar"/>
            <param name="artifactSrc"     value="${maven.2.common.plugins.dir}/org.eclipse.persistence.dbws.builder.source_${version.string}.jar"/>
            <param name="artifactName"    value="EclipseLink DBWS Builder"/>
            <param name="dependencies"    value="${builder.dependencies}"/>
        </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="git.hash"     value="${git.hash}"/>
            <filter token="artifactId"   value="${artifactId}"/>
            <filter token="artifactName" value="${artifactName}"/>
            <filter token="dependencies" value="${dependencies}"/>
           </filterset>
        </copy>
    </target>

    <!-- Uploads a single artifact & source to maven repository only if one doesn't already exist -->
    <!-- Removed "upload-release-artifact" because it depended upon filesystem access. Need a mechanism -->
    <!-- to verify an artifact is already uploaded to Nexus server. For now, am hoping nexus is smart enough -->
    <!-- to refuse redeployment. (Not hopeful though, seems too restrictive). -->

    <!-- Uploads a single artifact & source to maven repository -->
    <target name="upload-artifact" depends="prepare-pom, ua-snapshot, ua-staging, us-staging">
        <!-- cleanup -->
        <delete file="pom.xml"/>
    </target>
    <target name="ua-snapshot" unless="sign">
        <!-- Install provider for https protocol -->
        <artifact:install-provider artifactId="wagon-http" version="${wagon.http.version}"/>
        <!-- Deploy Artifact to repote repo, attach source -->
        <artifact:deploy file="${artifact}">
          <artifact:remoteRepository id="${snapshotId}" url="${snapshotURL}" />
          <artifact:pom id="maven.project" file="pom.xml" />
          <artifact:attach file="${artifactSrc}" classifier="sources"/>
        </artifact:deploy>
    </target>

    <!-- Uploads a single artifact, source & javadoc to maven repository -->
    <target name="upload-artifact-with-javadoc" depends="prepare-pom, uawj-snapshot, ua-staging, us-staging, uj-staging">
        <!-- cleanup -->
        <delete file="pom.xml"/>
    </target>
    <target name="uawj-snapshot" unless="sign">
        <!-- Install provider for https protocol -->
        <artifact:install-provider artifactId="wagon-http" version="${wagon.http.version}"/>
        <!-- Deploy Artifact to repote repo, attach source and javadoc -->
        <artifact:deploy file="${artifact}">
          <artifact:remoteRepository id="${snapshotId}" url="${snapshotURL}"/>
          <artifact:pom id="maven.project" file="pom.xml" />
          <artifact:attach file="${artifactSrc}"     type="jar" classifier="sources"/>
          <artifact:attach file="${artifactJavadoc}" type="zip" classifier="javadoc"/>
        </artifact:deploy>
    </target>

    <!-- Staging targets -->
    <target name="ua-staging" if="sign">
        <!-- sign and deploy the main artifact -->
        <artifact:mvn>
            <arg value="org.apache.maven.plugins:maven-gpg-plugin:${gpg.plugin.version}:sign-and-deploy-file"/>
            <arg value="-Durl=${stagingURL}"/>
            <arg value="-DrepositoryId=${stagingId}"/>
            <arg value="-DpomFile=${maven.build.location}/pom.xml"/>
            <arg value="-Dfile=${artifact}"/>
            <arg value="-Pgpg"/>
        </artifact:mvn>
    </target>
    <target name="us-staging" if="sign">
        <!-- sign and deploy the sources artifact -->
        <artifact:mvn>
            <arg value="org.apache.maven.plugins:maven-gpg-plugin:${gpg.plugin.version}:sign-and-deploy-file"/>
            <arg value="-Durl=${stagingURL}"/>
            <arg value="-DrepositoryId=${stagingId}"/>
            <arg value="-DpomFile=${maven.build.location}/pom.xml"/>
            <arg value="-Dfile=${artifactSrc}"/>
            <arg value="-Dclassifier=sources"/>
            <arg value="-Pgpg"/>
        </artifact:mvn>
    </target>
    <target name="uj-staging" if="sign">
        <!-- sign and deploy the javadoc artifact -->
        <artifact:mvn>
            <arg value="org.apache.maven.plugins:maven-gpg-plugin:${gpg.plugin.version}:sign-and-deploy-file"/>
            <arg value="-Durl=${stagingURL}"/>
            <arg value="-DrepositoryId=${stagingId}"/>
            <arg value="-DpomFile=${maven.build.location}/pom.xml"/>
            <arg value="-Dfile=${artifactJavadoc}"/>
            <arg value="-Dclassifier=javadoc"/>
            <arg value="-Pgpg"/>
        </artifact:mvn>
    </target>

    <!-- ************************************* NOT USED **************************************** -->
    <!-- Manual signing would look something like this (not commented out due to double dashes): -->
    <target name="sign-artifact">
        <echo message="Using gpg to sign '${artifactPath}'..."/>
        <exec executable="gpg" failonerror="false" logError="true">
            <arg value="-u ${keyID}"/>
            <arg value="--sign"/>
            <arg value="--detach-sign"/>
            <arg value="-a ${artifactPath}"/>
        </exec>
    </target>
    <!--  But the need to expose the key ID and somehow pass on the passphrase in the script is a major issue

    Signing and deployment would be called like this:
    -->
    <target name="uawj-staging" unless="sign">
        <!-- GPG signing calls:         -->
        <antcall target="sign-artifact">
            <param name="artifactPath"    value="${artifact}"/>
        </antcall>
        <antcall target="sign-artifact">
            <param name="artifactPath"    value="${artifactSrc}"/>
        </antcall>
        <antcall target="sign-artifact">
            <param name="artifactPath"    value="${artifactJavadoc}"/>
        </antcall>
        <!--  Deployment would then look something like:            -->
        <artifact:deploy file="${artifact}">
          <artifact:remoteRepository id="${stagingId}" url="${stagingURL}"/>
          <artifact:pom id="maven.project" file="pom.xml" />
          <artifact:attach file="${artifact}.asc"        type="asc" classifier="all???"/>
          <artifact:attach file="${artifactSrc}"         type="jar" classifier="sources"/>
          <artifact:attach file="${artifactSrc}.asc"     type="asc" classifier="all"/>
          <artifact:attach file="${artifactJavadoc}"     type="zip" classifier="javadoc"/>
          <artifact:attach file="${artifactJavadoc}.asc" type="asc" classifier="all"/>
        </artifact:deploy>
    </target>

</project>


