<!--/*******************************************************************************
* 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:
*     egwin - initial API and implementation
#******************************************************************************/-->

<project name="oraclelibs" default="build" basedir=".">

    <available file="../${ant.project.name}" type="dir" property="p2.is.local"/>
    <!-- Test to make sure that the calling script doesn't inherit the variable -->
    <!-- (should be set locally, and be destroyed upon return) -->
    <fail message="Not running from '${ant.project.name}' directory" unless="p2.is.local"/>

    <!-- Need generate "dependency bundle" in p2.bundle.dir from supplied oracle jars bundles,
         and create the features into the "p2.repos.dir/plugins" dir; also need to filter copy
         the feature xml files to "p2.repos.dir/features" to substitute the actual version.qualifer string into it.
         Then can Generate P2.
    -->
    <target name="build"                         depends="init, clean, generate-p2"/>

    <target name="init">
        <tstamp>
           <format property="oraclelibs.build.date" pattern="yyyyMMdd"/>
           <format property="oraclelibs.build.time" pattern="HHmm"/>
        </tstamp>

        <dirname  property="oraclelibs.build.location_temp" file="${ant.file.oraclelibs}"/>
        <pathconvert targetos="unix" property="oraclelibs.build.location">
            <path>
                <pathelement location="${oraclelibs.build.location_temp}"/>
            </path>
        </pathconvert>
        <!-- oraclelibs.2.base.dir needs to be explicit (not relative) for antcall usage            -->
        <!-- (I think the selectbundle call reverts to calling dir - despite the antcall "dir=") -->
        <property name="oraclelibs.2.base.dir"            value="${oraclelibs.build.location}/../.."/>
        <property name="oraclelibs.2.buildsys.dir"        value="${oraclelibs.2.base.dir}/buildsystem"/>

        <echo message="ant.project.name               ='${ant.project.name}'"/>
        <echo message="basedir                        ='${basedir}'"/>
        <echo message="oraclelibs.build.location      ='${oraclelibs.build.location}'"/>
        <echo message="oraclelibs.2.base.dir          ='${oraclelibs.2.base.dir}'"/>
        <echo message="oraclelibs.2.buildsys.dir      ='${oraclelibs.2.buildsys.dir}'"/>
        <echo message=" ---"/>

        <condition property="custom.properties.message" value="Loading user defined properties from: '${user.home}/build.properties'"
                                                         else="No custom properties file at '${user.home}/build.properties'. Continuing build using defaults.">
            <available file="${user.home}/build.properties"/>
        </condition>
        <echo message="${custom.properties.message}"/>
        <property file="${user.home}/build.properties"/>
        <echo message=" "/>

        <!-- Sets default for all extensions.depend dir locations to static paths -->
        <property name="oracle.extensions.depend.dir" value="${oraclelibs.2.base.dir}/../extension.oracle.lib.external"/>
        <echo message="oracle.extensions.depend.dir   = '${oracle.extensions.depend.dir}'"/>
        <!-- This HAS to be defined after allowing user redefinitions (which will cause the condition not to set anything) -->
        <!-- This tests to make sure the extensions dir exists, if not sets to a existant dummy location -->
        <condition property="extensions.depend.dir"   value="${oraclelibs.2.base.dir}/../extension.lib.external"
                                                       else="${oraclelibs.build.location}">
            <available file="${oraclelibs.2.base.dir}/../extension.lib.external" type="dir"/>
        </condition>
        <echo message="extensions.depend.dir          = '${extensions.depend.dir}'"/>
        <property name="ojdbc.jar"     value="ojdbc7.jar"/>
        <property name="orai18n.jar"   value="orai18n.jar"/>
        <property name="sdoapi.jar"    value="sdoapi.jar"/>
        <property name="xdb.jar"       value="xdb.jar"/>
        <property name="xmlparser.jar" value="xmlparserv2.jar"/>
        <property name="ucp.jar"       value="ucp.jar"/>
        <property name="dms.jar"       value="dms.jar"/>
        <property name="aqapi.jar"     value="aqapi.jar"/>
        <property name="xml.jar"       value="xml.jar"/>
        <property name="kvclient.jar"  value="kvclient-1.1.100.jar"/>
        <echo message=" "/>
        <echo message="Defined Oracle dependencies:"/>
        <echo message="   ojdbc.jar                  = '${ojdbc.jar}'"/>
        <echo message="   orai18n.jar                = '${orai18n.jar}'"/>
        <echo message="   sdoapi.jar                 = '${sdoapi.jar}'"/>
        <echo message="   xdb.jar                    = '${xdb.jar}'"/>
        <echo message="   xmlparser.jar              = '${xmlparser.jar} '"/>
        <echo message="   ucp.jar                    = '${ucp.jar}'"/>
        <echo message="   dms.jar                    = '${dms.jar}'"/>
        <echo message="   aqapi.jar                  = '${aqapi.jar} '"/>
        <echo message="   xml.jar                    = '${xml.jar}'"/>
        <echo message="   kvclient.jar               = '${kvclient.jar}'"/>
        <echo message=" ---"/>

        <!-- Custom task definitions -->
        <property name="custom.tasks.lib"               value="${oraclelibs.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"/>
        <echo message="custom.tasks.lib               ='${custom.tasks.lib}'"/>
        <echo message="custom.echo.task.class         ='${custom.echo.task.class}'"/>
        <echo message="custom.selectbundle.task.class ='${custom.selectbundle.task.class}'"/>
        <echo message=" ---"/>
        <taskdef name="say"          classname="${custom.echo.task.class}"         classpath="${custom.tasks.lib}"/>
        <taskdef name="selectbundle" classname="${custom.selectbundle.task.class}" classpath="${custom.tasks.lib}"/>

        <!-- Defaults of Pre-Set variables -->
        <property name="oraclelibs.version"             value="1.0.0"/>
        <property name="oraclelibs.qualifier"           value="v${oraclelibs.build.date}${oraclelibs.build.time}"/>
        <property name="oraclelibs.version.string"      value="${oraclelibs.version}.${oraclelibs.qualifier}"/>
        <property name="bld.src.dir"                    value="${oraclelibs.build.location}/target"/>
        <property name="p2.repos.dir"                   value="${oraclelibs.build.location}/p2repo"/>
        <property name="specification.vendor"           value="Eclipse.org - EclipseLink Project"/>
        <echo message="oraclelibs.version             ='${oraclelibs.version}'"/>
        <echo message="oraclelibs.qualifier           ='${oraclelibs.qualifier}'"/>
        <echo message="oraclelibs.version.string      ='${oraclelibs.version.string}'"/>
        <echo message="p2.repos.dir                   ='${p2.repos.dir}'"/>
        <echo message="specification.vendor           ='${specification.vendor}'"/>
        <echo message=" ---"/>

        <!-- Tool definitions -->
        <property name="eclipse.install.dir"            value="D:/Juno-M7/eclipse"/>
        <property name="eclipse.plugin.dir"             value="${eclipse.install.dir}/plugins"/>
        <property name="p2.publisher.prefix"            value="org.eclipse.equinox.p2.publisher"/>
        <property name="p2.launcher.prefix"             value="org.eclipse.equinox.launcher"/>
        <property name="p2.artifact.prefix"             value="org.eclipse.equinox.artifact.repository"/>
        <available file="${eclipse.plugin.dir}" property="sdk.install.exist"/>
        <echo message="eclipse.install.dir            ='${eclipse.install.dir}'"/>
        <say  message="eclipse.plugin.dir             ='${eclipse.plugin.dir}'"    if="sdk.install.exist"/>
        <say  message="eclipse.plugin.dir:  '${eclipse.plugin.dir}' not found!" unless="sdk.install.exist"/>
        <echo message="p2.publisher.jar               ='${p2.publisher.jar}'"/>
        <echo message="p2.launcher.jar                ='${p2.launcher.jar}'"/>
        <echo message="p2.artifact.jar                ='${p2.artifact.jar}'"/>
        <echo message=" ---"/>

        <!-- Input definitions -->
        <property name="p2.feature.dir"                 value="${p2.repos.dir}/features"/>
        <property name="p2.bundle.dir"                  value="${p2.repos.dir}/plugins"/>
        <echo message="p2.feature.dir                 ='${p2.feature.dir}'"/>
        <echo message="p2.bundle.dir                  ='${p2.bundle.dir}'"/>
        <echo message=" ---"/>

        <!-- Helper definitions derived from Pre-set variables -->
        <property name="oraclelibs.build.dir"           value="${p2.feature.dir}"/>
        <echo message="oraclelibs.build.dir           ='${oraclelibs.build.dir}'"/>
        <echo message=" ---"/>

        <!-- Output definitions -->
        <property name="p2.repos.url"                   value="file:/${p2.repos.dir}"/> <!-- DO NOT Override this one -->
        <property name="p2.release.repos.name"          value="EclipseLink oraclelibs Repository"/>
        <property name="metadata.repos.name"            value="&quot;${p2.release.repos.name}&quot;"/>
        <property name="artifact.repos.name"            value="&quot;EclipseLink oraclelibs Artifacts&quot;"/>
        <echo message="p2.repos.url                   ='${p2.repos.url}'"/>
        <echo message="p2.release.repos.name          ='${p2.release.repos.name}'"/>
        <echo message="metadata.repos.name            ='${metadata.repos.name}'"/>
        <echo message="artifact.repos.name            ='${artifact.repos.name}'"/>

        <!-- Feature Dependency variables -->
        <property name="oracle.libs.prefix" value="oracle.libs"/>
        <property name="oracle.libs.criteria" value="[0.0.1,5.0.0)"/>
    </target>


    <!-- Targets to build dependency jar for deployment to p2 -->
    <target name="check-oracle-dependencies" depends="init">
        <condition property="ojdbc.lib"     value="${oracle.extensions.depend.dir}/${ojdbc.jar}"
                                                    else="${extensions.depend.dir}/${ojdbc.jar}">
            <available file="${oracle.extensions.depend.dir}/${ojdbc.jar}"/>
        </condition>
        <condition property="sdoapi.lib"    value="${oracle.extensions.depend.dir}/${sdoapi.jar}"
                                                    else="${extensions.depend.dir}/${sdoapi.jar}">
            <available file="${oracle.extensions.depend.dir}/${sdoapi.jar}"/>
        </condition>
        <condition property="xdb.lib"       value="${oracle.extensions.depend.dir}/${xdb.jar}"
                                                    else="${extensions.depend.dir}/${xdb.jar}">
            <available file="${oracle.extensions.depend.dir}/${xdb.jar}"/>
        </condition>
        <condition property="xmlparser.lib" value="${oracle.extensions.depend.dir}/${xmlparser.jar}"
                                                    else="${extensions.depend.dir}/${xmlparser.jar}">
            <available file="${oracle.extensions.depend.dir}/${xmlparser.jar}"/>
        </condition>
        <condition property="ucp.lib"       value="${oracle.extensions.depend.dir}/${ucp.jar}"
                                                    else="${extensions.depend.dir}/${ucp.jar}">
            <available file="${oracle.extensions.depend.dir}/${ucp.jar}"/>
        </condition>
        <condition property="dms.lib"       value="${oracle.extensions.depend.dir}/${dms.jar}"
                                                    else="${extensions.depend.dir}/${dms.jar}">
            <available file="${oracle.extensions.depend.dir}/${dms.jar}"/>
        </condition>
        <condition property="aqapi.lib"     value="${oracle.extensions.depend.dir}/${aqapi.jar}"
                                                    else="${extensions.depend.dir}/${aqapi.jar}">
            <available file="${oracle.extensions.depend.dir}/${aqapi.jar}"/>
        </condition>
        <condition property="xml.lib"       value="${oracle.extensions.depend.dir}/${xml.jar}"
                                                    else="${extensions.depend.dir}/${xml.jar}">
            <available file="${oracle.extensions.depend.dir}/${xml.jar}"/>
        </condition>
        <condition property="kvclient.lib"  value="${oracle.extensions.depend.dir}/${kvclient.jar}"
                                                    else="${extensions.depend.dir}/${kvclient.jar}">
            <available file="${oracle.extensions.depend.dir}/${kvclient.jar}"/>
        </condition>

        <!-- oracle dependency tests -->
        <available file="${ojdbc.lib}"      property="ojdbc.bundle.exist"/>
        <available file="${sdoapi.lib}"     property="sdoapi.bundle.exist"/>
        <available file="${xdb.lib}"        property="xdb.bundle.exist"/>
        <available file="${xmlparser.lib}"  property="xmlparser.bundle.exist"/>
        <available file="${ucp.lib}"        property="ucp.bundle.exist"/>
        <available file="${dms.lib}"        property="dms.bundle.exist"/>
        <available file="${aqapi.lib}"      property="aqapi.bundle.exist"/>
        <available file="${xml.lib}"        property="xml.bundle.exist"/>
        <available file="${kvclient.lib}"   property="kvclient.bundle.exist"/>
        <condition property="dependencies.exist" value="true">
            <and>
                <isset property="ojdbc.bundle.exist"/>
                <isset property="sdoapi.bundle.exist"/>
                <isset property="xdb.bundle.exist"/>
                <isset property="xmlparser.bundle.exist"/>
                <isset property="ucp.bundle.exist"/>
                <isset property="dms.bundle.exist"/>
                <isset property="aqapi.bundle.exist"/>
                <isset property="xml.bundle.exist"/>
                <isset property="kvclient.bundle.exist"/>
            </and>
        </condition>

        <say message="Found:       '${ojdbc.lib}'"           if="ojdbc.bundle.exist"/>
        <say message="Cannot find: '${ojdbc.lib}'"       unless="ojdbc.bundle.exist"/>
        <say message="Found:       '${sdoapi.lib}'"          if="sdoapi.bundle.exist"/>
        <say message="Cannot find: '${sdoapi.lib}'"      unless="sdoapi.bundle.exist"/>
        <say message="Found:       '${xdb.lib}'"             if="xdb.bundle.exist"/>
        <say message="Cannot find: '${xdb.lib}'"         unless="xdb.bundle.exist"/>
        <say message="Found:       '${xmlparser.lib}'"       if="xmlparser.bundle.exist"/>
        <say message="Cannot find: '${xmlparser.lib}'"   unless="xmlparser.bundle.exist"/>
        <say message="Found:       '${ucp.lib}'"             if="ucp.bundle.exist"/>
        <say message="Cannot find: '${ucp.lib}'"         unless="ucp.bundle.exist"/>
        <say message="Found:       '${dms.lib}'"             if="dms.bundle.exist"/>
        <say message="Cannot find: '${dms.lib}'"         unless="dms.bundle.exist"/>
        <say message="Found:       '${aqapi.lib}'"           if="aqapi.bundle.exist"/>
        <say message="Cannot find: '${aqapi.lib}'"       unless="aqapi.bundle.exist"/>
        <say message="Found:       '${xml.lib}'"             if="xml.bundle.exist"/>
        <say message="Cannot find: '${xml.lib}'"         unless="xml.bundle.exist"/>
        <say message="Found:       '${kvclient.lib}'"        if="kvclient.bundle.exist"/>
        <say message="Cannot find: '${kvclient.lib}'"    unless="kvclient.bundle.exist"/>
        <fail message="All dependencies not found! Aborting..."   unless="dependencies.exist"/>
    </target>

    <target name="package-oracle-dep-jar" depends="check-oracle-dependencies" description="package single jar with OSGi manifest, and Oracle POJO dependency jars">
        <delete dir="${p2.bundle.dir}" failonerror="false"/>
        <mkdir dir="${p2.bundle.dir}"/>
        <echo message="Packaging: '${p2.bundle.dir}/${oracle.libs.prefix}_${oraclelibs.version.string}.jar'..."/>
        <delete file="${p2.bundle.dir}/${oracle.libs.prefix}_${oraclelibs.version.string}.jar"/>
        <jar jarfile="${p2.bundle.dir}/${oracle.libs.prefix}_${oraclelibs.version.string}.jar" duplicate="preserve">
            <manifest>
               <attribute name="Manifest-Version"       value="1.0"/>
               <attribute name="Bundle-ManifestVersion" value="2"/>
               <attribute name="Bundle-Name"            value="Oracle Target Libraries"/>
               <attribute name="Bundle-SymbolicName"    value="${oracle.libs.prefix}"/>
               <attribute name="Bundle-Version"         value="${oraclelibs.version.string}"/>
               <attribute name="Bundle-ClassPath"       value="${xmlparser.jar},${aqapi.jar},${dms.jar},${ojdbc.jar},${sdoapi.jar},${xdb.jar},${xml.jar},${ucp.jar},${kvclient.jar}"/>
               <attribute name="Bundle-Vendor"          value="Oracle"/>
               <attribute name="Export-Package"         value="javax.xml,javax.xml.bind,javax.xml.bind.helpers,javax.xml.bind.util,javax.xml.namespace,javax.xml.parsers,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.sax,javax.xml.transform.stream,javax.xml.xpath,oracle.AQ,oracle.core.lmx,oracle.core.lvf,oracle.dms,oracle.dms.instrument,oracle.dms.spy,oracle.jdbc,oracle.jdbc.aq,oracle.jdbc.connector,oracle.jdbc.dcn,oracle.jdbc.driver,oracle.jdbc.internal,oracle.jdbc.oci,oracle.jdbc.oracore,oracle.jdbc.pool,oracle.jdbc.rowset,oracle.jdbc.util,oracle.jdbc.xa,oracle.jdbc.xa.client,oracle.jms,oracle.jpub.runtime,oracle.kv,oracle.net.TNSAddress,oracle.net.ano,oracle.net.aso,oracle.net.jndi,oracle.net.nl,oracle.net.nl.mesg,oracle.net.ns,oracle.net.nt,oracle.net.resolver,oracle.security.o3logon,oracle.security.o5logon,oracle.spatial.geometry,oracle.sql,oracle.sql.converter,oracle.ucp,oracle.ucp.jdbc,oracle.ucp.jdbc.oracle,oracle.xdb,oracle.xdb.bean,oracle.xdb.dom,oracle.xdb.servlet,oracle.xdb.spi,oracle.xml.async,oracle.xml.binxml,oracle.xml.comp,oracle.xml.dbaccess,oracle.xml.differ,oracle.xml.io,oracle.xml.jaxb,oracle.xml.jaxp,oracle.xml.jdwp,oracle.xml.mesg,oracle.xml.parser.schema,oracle.xml.parser.v2,oracle.xml.pipeline.controller,oracle.xml.pipeline.processes,oracle.xml.scalable,oracle.xml.schemavalidator,oracle.xml.transviewer,oracle.xml.transx,oracle.xml.util,oracle.xml.xmlcomp,oracle.xml.xmldbaccess,oracle.xml.xpath,oracle.xml.xqxp,oracle.xml.xqxp.datamodel,oracle.xml.xqxp.functions,oracle.xml.xqxp.functions.builtIns,oracle.xml.xslt,oracle.xml.xsql,oracle.xml.xsql.actions,oracle.xml.xsql.serializers,org.w3c.dom,org.w3c.dom.bootstrap,org.w3c.dom.events,org.w3c.dom.ls,org.w3c.dom.ranges,org.w3c.dom.traversal,org.w3c.dom.validation,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers"/>
               <attribute name="Bundle-RequiredExecutionEnvironment" value="J2SE-1.5"/>
               <attribute name="Import-Package"         value="javax.jms;version=&quot;1.1.0&quot;;resolution:=optional,javax.resource;version=&quot;1.5.0&quot;;resolution:=optional,javax.resource.spi;version=&quot;1.5.0&quot;;resolution:=optional,javax.resource.spi.endpoint;version=&quot;1.5.0&quot;;resolution:=optional,javax.resource.spi.security;version=&quot;1.5.0&quot;;resolution:=optional,javax.servlet;version=&quot;2.4.0&quot;;resolution:=optional,javax.servlet.http;version=&quot;2.4.0&quot;;resolution:=optional,javax.transaction.xa;version=&quot;1.1.0&quot;;resolution:=optional"/>
            </manifest>
            <fileset dir="${oracle.extensions.depend.dir}">
              <include name="${ojdbc.jar}"/>
              <include name="${sdoapi.jar}"/>
              <include name="${xdb.jar}"/>
              <include name="${xmlparser.jar}"/>
              <include name="${ucp.jar}"/>
              <include name="${dms.jar}"/>
              <include name="${aqapi.jar}"/>
              <include name="${xml.jar}"/>
              <include name="${kvclient.jar}"/>
            </fileset>
            <fileset dir="${extensions.depend.dir}">
              <include name="${ojdbc.jar}"/>
              <include name="${sdoapi.jar}"/>
              <include name="${xdb.jar}"/>
              <include name="${xmlparser.jar}"/>
              <include name="${ucp.jar}"/>
              <include name="${dms.jar}"/>
              <include name="${aqapi.jar}"/>
              <include name="${xml.jar}"/>
              <include name="${kvclient.jar}"/>
            </fileset>
        </jar>
    </target>

    <!-- Feature Targets -->
    <!-- clean -->
    <target name="clean" depends="init" description="Clean all generated content">
        <delete dir="${bld.src.dir}" includeEmptyDirs="true" failonerror="false"/>
        <delete dir="${p2.repos.dir}"  includeEmptyDirs="true" failonerror="false"/>
    </target>

    <target name="resolve-feature-dependencies" depends="init, package-oracle-dep-jar">
        <echo message="Searching ${p2.bundle.dir}..."/>
        <selectbundle basename="${oracle.libs.prefix}"  directory="${p2.bundle.dir}"
                     criterion="${oracle.libs.criteria}" property="oracle.libs.version" versiononly="true"
        />
        <say  message="   oracle.libs.version      = '${oracle.libs.version}'"                                                      if="oracle.libs.version"/>
        <say  message="   '${oracle.libs.prefix}_${oracle.libs.criteria}.jar' not found! Generated features will be invalid."   unless="oracle.libs.version"/>
    </target>

    <!-- build feature jars -->
    <target name="jar-feature" description="General target for packaging a feature">
        <mkdir dir="${oraclelibs.build.dir}"/>
        <jar jarfile="${oraclelibs.build.dir}/${feature.name}_${oraclelibs.version.string}.jar" duplicate="preserve">
            <fileset dir="${bld.src.dir}/${feature.name}">
                <include name="*.*"/>
                <exclude name="*.bak"/>
            </fileset>
        </jar>
    </target>

    <target name="create-deployable-features" depends="resolve-feature-dependencies">
        <mkdir dir="${bld.src.dir}"/>
        <!--          Filters for feature.xml files                 -->
        <filter token="VERSION"              value="${oraclelibs.version}"/>
        <filter token="QUALIFIER"            value="${oraclelibs.qualifier}"/>
        <!--          Filters for dependencies in feature.xml files -->
        <filter token="ORACLE_LIBS_VERSION"  value="${oracle.libs.version}"/>
        <!--          Filters for feature.properties files          -->
        <filter token="PROVIDER"             value="${specification.vendor}"/>
        <filter token="REPOS_NAME"           value="${p2.release.repos.name}"/>
        <filter token="MILESTONE_REPOS"      value="${p2.release.repos.name}"/>
        <filter token="PRIME_UPDATE_URL"     value="${p2.repos.url}"/>
        <filter token="SECOND_UPDATE_URL"    value="${p2.repos.url}"/>
        <copy todir="${bld.src.dir}" filtering="true">
            <fileset dir="${oraclelibs.build.location}">
                <include name="**/feature*.*"/>
            </fileset>
        </copy>
        <antcall target="jar-feature">
          <param name="feature.name" value="oracle.libs.feature"/>
        </antcall>
    </target>

    <!-- P2 Targets -->
    <target name="configure-tooling" depends="init">
        <selectbundle basename="${p2.launcher.prefix}"   directory="${eclipse.plugin.dir}"
                     criterion="[0.0.1,9.0.0)" property="p2.launcher.jar"
        />
        <selectbundle basename="${p2.publisher.prefix}"  directory="${eclipse.plugin.dir}"
                     criterion="[0.0.1,9.0.0)" property="p2.publisher.jar"
        />
        <echo message="eclipse.plugin.dir ='${eclipse.plugin.dir}'"/>
        <say  message="p2.launcher.jar   ='${p2.launcher.jar}'"                                               if="p2.launcher.jar"/>
        <say  message="   '${p2.launcher.prefix}_[0.0.1,9.0.0).jar' not found! P2 Generation will fail."  unless="p2.launcher.jar"/>
        <say  message="p2.publisher.jar  ='${p2.publisher.jar}'"                                              if="p2.publisher.jar"/>
        <say  message="   '${p2.publisher.prefix}_[0.0.1,9.0.0).jar' not found!P2 Generation will fail."  unless="p2.publisher.jar"/>
        <condition property="p2.tooling.available">
            <and>
                <isset property="p2.launcher.jar"/>
                <isset property="p2.publisher.jar"/>
            </and>
        </condition>
        <say  message="All P2 Generation libraries not available. Generation aborted!"  unless="p2.tooling.available"/>
    </target>

    <target name="generate-p2" if="p2.tooling.available" depends="configure-tooling, create-deployable-features">
        <echo message="java.home        ='${java.home}'"/>
        <echo message="-----"/>
        <echo message="eclipse.plugin.dir='${eclipse.plugin.dir}'"/>
        <echo message="p2.launcher.jar  ='${p2.launcher.jar}'"/>
        <echo message="p2.publisher.jar ='${p2.publisher.jar}'"/>
        <echo message="-----"/>
        <echo message="p2.repos.dir     ='${p2.repos.dir}'"/>
        <echo message="p2.repos.url     ='${p2.repos.url}'"/>
        <echo message="-----"/>
        <!-- Metadata generator apparently doesn't rebuild the artifact and content xml files if they already exist -->
        <delete  failonerror="false">
            <fileset dir="${p2.repos.dir}" includes="artifact*.*, content*.*"/>
        </delete>
        <java classname="org.eclipse.equinox.launcher.Main" fork="true" timeout="10800000" taskname="p2"
            jvm="${java.home}/bin/java" failonerror="false" maxmemory="256m">
            <classpath>
                <fileset dir="${eclipse.plugin.dir}"
                    includes="${p2.launcher.jar},
                              ${p2.publisher.jar}"/>
                <pathelement location="${eclipse.plugin.dir}" />
            </classpath>
            <arg line=" -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher" />
            <arg line=" -metadataRepository ${p2.repos.url}" />
            <arg line=" -artifactRepository ${p2.repos.url}" />
            <arg line=" -source ${p2.repos.dir}" />
            <arg line=" -compress -publishArtifacts -configs all" />
        </java>
    </target>

</project>
