blob: 43430e79417f51a96f545ed8847f2293e7e99092 [file] [log] [blame]
<!--/*******************************************************************************
* 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 '.'
* - multi-word targets use hyphens '-'
* - multi-word macros use underscores '_'
* - multi-word macro attributes are concatinated
* e.g. 'runpathref'
* - multi-word tasks (taskdef) names are concatinated
* 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:
* tware - initial API and implementation
* egwin - update to adopt calling standards
#******************************************************************************/-->
<!-- This ant project includes the following tasks:
- build (default) : cleans, compiles, and packages all tests
- clean : cleans up all generated files and dirs
- compile : compiles all classes
- package : packages the oracle extensions OSGi bundle jar.
-->
<project name="org.eclipse.persistence.oracle" default="build" basedir=".">
<available file="../${ant.project.name}" type="dir" property="oracle.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="oracle.is.local"/>
<dirname property="oracle.build.location" file="${ant.file.org.eclipse.persistence.oracle}"/>
<condition property="oracle.2.base.dir" value="../.." else="..">
<contains string="${oracle.build.location}" substring="foundation"/>
</condition>
<property name="oracle.2.common.plugins.dir" value="${oracle.2.base.dir}/plugins"/>
<property name="oracle.plugins.dir" value="../plugins"/>
<property file="${user.home}/build.properties"/>
<!-- Sets default junit.lib and all extensions.depend dir locations to defaults based upon discovered dir heirarchy -->
<!-- Must be defined after ${user.home}/build.properties is included to allow redefinition -->
<condition property="oracle.extensions.depend.dir" value="../../../extension.oracle.lib.external" else="../../extension.oracle.lib.external">
<contains string="${oracle.build.location}" substring="foundation"/>
</condition>
<property file="build.properties"/>
<!-- versioning -->
<!-- These variables are set in autobuild.xml. A manual build gets defaults -->
<tstamp>
<format property="build.date" pattern="yyyyMMdd"/>
<format property="build.time" pattern="HHmm"/>
</tstamp>
<property name="build.type" value="SNAPSHOT"/>
<property name="svn.revision" value="NA"/>
<property name="version.qualifier" value="qualifier"/>
<property name="version.string" value="${release.version}.${version.qualifier}"/>
<property name="release.designation" value="EclipseLink DeveloperBuild"/>
<!-- Set Compile Path-->
<!-- Need multiple extensions dir includes because different systems are defaulting to different locations -->
<path id="oracle.compile.path">
<pathelement path="${oracle.2.common.plugins.dir}/org.eclipse.persistence.core_${version.string}.jar"/>
<fileset
dir="${oracle.2.common.plugins.dir}"
includes="${eclipselink.core.depend}"/>
<fileset
dir="${oracle.extensions.depend.dir}"
includes="${oracle.extensions.depend.jars}"/>
<fileset
dir="${extensions.depend.dir}"
includes="${oracle.extensions.depend.jars}"/>
</path>
<available file="${oracle.2.common.plugins.dir}/org.eclipse.persistence.core_${version.string}.jar" property="core.bundle.exist"/>
<available file="${oracle.extensions.depend.dir}" type="dir" property="oracle.depend.dir.exist"/>
<!-- all -->
<target name="build" depends="clean, compile, generate-manifest, package" description="build oracle component"/>
<!-- clean -->
<target name="clean" description="Clean all generated content">
<delete includeEmptyDirs="true" failonerror="false">
<fileset dir="${classes.dir}"/>
<fileset dir="${oracle.2.common.plugins.dir}" includes="${ant.project.name}_*.jar, ${ant.project.name}.source_*.jar"/>
</delete>
</target>
<!-- compile -->
<target name="compile" description="Compile EclipseLink Oracle extensions">
<fail message="Cannot find Core: '${oracle.2.common.plugins.dir}/org.eclipse.persistence.core_${version.string}.jar'." unless="core.bundle.exist"/>
<fail message="Cannot find Dependency dir:'${oracle.extensions.depend.dir}'." unless="oracle.depend.dir.exist"/>
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}"
destdir="${classes.dir}"
includes="org/eclipse/persistence/**/*.java"
debug="${javac.debug}"
debuglevel="${javac.debuglevel}"
optimize="${javac.optimize}"
source="${javac.version}"
target="${javac.version}"
deprecation="${javac.deprecation}"
failonerror="true"
memoryMaximumSize="512m"
fork="true"
classpathref="oracle.compile.path"
/>
</target>
<target name="package" description="jar OSGI bundles">
<jar jarfile="${oracle.plugins.dir}/${ant.project.name}.jar" manifest="${classes.dir}/MANIFEST.MF">
<fileset dir="${oracle.2.base.dir}">
<include name="about.html"/>
<include name="readme.html"/>
<include name="license.*"/>
</fileset>
<fileset dir="${classes.dir}">
<include name="org/eclipse/persistence/**/*.class"/>
</fileset>
</jar>
<jar jarfile="${oracle.plugins.dir}/${ant.project.name}.source.jar">
<manifest>
<attribute name="Specification-Vendor" value="${specification.vendor}"/>
<attribute name="Specification-Version" value="${release.version}"/>
<attribute name="Implementation-Vendor" value="${implementation.vendor}"/>
<attribute name="Implementation-Version" value="${version.string}"/>
<attribute name="Bundle-ManifestVersion" value="2"/>
<attribute name="Bundle-Name" value="EclipseLink Oracle Extensions Source"/>
<attribute name="Bundle-SymbolicName" value="${ant.project.name}.source"/>
<attribute name="Bundle-Vendor" value="${implementation.vendor}"/>
<attribute name="Bundle-Version" value="${version.string}"/>
<attribute name="Eclipse-SourceBundle" value="${ant.project.name};version=&quot;${version.string}&quot;"/>
</manifest>
<fileset dir="${oracle.2.base.dir}">
<include name="about.html"/>
<include name="readme.html"/>
<include name="license.*"/>
</fileset>
<fileset dir="${src.dir}">
<include name="org/eclipse/persistence/**/*.java"/>
</fileset>
</jar>
</target>
<target name="generate-manifest" description="Generate the OSGi bundle manifest before jarring">
<mkdir dir="${classes.dir}"/>
<delete file="${classes.dir}/MANIFEST.MF*" quiet="true"/>
<echo message="Manifest-Version: 1.0${line.separator}" file="${classes.dir}/MANIFEST.MF" append="false"/>
<echo message="Specification-Vendor: ${specification.vendor}${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Specification-Version: ${release.version}${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Implementation-Vendor: ${implementation.vendor}${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Implementation-Version: ${version.string}${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Bundle-ManifestVersion: 2${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Bundle-Name: EclipseLink Oracle Extensions${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Bundle-SymbolicName: ${ant.project.name}${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Bundle-Vendor: ${implementation.vendor}${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Bundle-Version: ${version.string}${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Bundle-RequiredExecutionEnvironment: J2SE-1.5${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Fragment-Host: org.eclipse.persistence.core;bundle-version=&quot;${version.string}&quot;${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Export-Package: org.eclipse.persistence.eis.adapters.aq;version=&quot;${version.string}&quot;,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" org.eclipse.persistence.internal.eis.adapters.aq;version=&quot;${version.string}&quot;,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" org.eclipse.persistence.internal.platform.database.oracle;version=&quot;${version.string}&quot;,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" org.eclipse.persistence.internal.platform.database.oracle.xdb;version=&quot;${version.string}&quot;,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" org.eclipse.persistence.platform.database.oracle;version=&quot;${version.string}&quot;,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" org.eclipse.persistence.platform.database.oracle.converters;version=&quot;${version.string}&quot;,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" org.eclipse.persistence.platform.xml.xdk;version=&quot;${version.string}&quot;${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Bundle-ClassPath: .${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Import-Package: javax.resource;version=&quot;1.5.0&quot;;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" javax.naming;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" javax.resource.cci;version=&quot;1.5.0&quot;;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" javax.sql;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" javax.xml.parsers;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" javax.xml.transform;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" javax.xml.transform.dom;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" javax.xml.transform.sax;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" javax.xml.transform.stream;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" javax.xml.validation;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" oracle.AQ;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" oracle.jdbc;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" oracle.jdbc.internal;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" oracle.jdbc.pool;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" oracle.spatial.geometry;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" oracle.sql;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" oracle.xdb;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" oracle.xdb.dom;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" oracle.xml.jaxp;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" oracle.xml.parser.schema;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" oracle.xml.parser.v2;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" oracle.xml.util;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" org.w3c.dom;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" org.xml.sax;resolution:=optional${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="HK2-Bundle-Name: org.eclipse.persistence:${ant.project.name}${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
</target>
<target name="repackage" depends="clean, generate-manifest" description="take existing source and classes from checked in bundles, and repackage with new manifest">
<jar jarfile="${oracle.2.common.plugins.dir}/${ant.project.name}_${version.string}.jar" manifest="${classes.dir}/MANIFEST.MF" duplicate="preserve">
<fileset dir="${oracle.2.base.dir}">
<include name="about.html"/>
<include name="readme.html"/>
<include name="license.*"/>
</fileset>
<zipgroupfileset dir="${oracle.plugins.dir}">
<include name="${ant.project.name}.jar"/>
</zipgroupfileset>
</jar>
<jar jarfile="${oracle.2.common.plugins.dir}/${ant.project.name}.source_${version.string}.jar" duplicate="preserve">
<manifest>
<attribute name="Specification-Vendor" value="${specification.vendor}"/>
<attribute name="Specification-Version" value="${release.version}"/>
<attribute name="Implementation-Vendor" value="${implementation.vendor}"/>
<attribute name="Implementation-Version" value="${version.string}"/>
<attribute name="Bundle-ManifestVersion" value="2"/>
<attribute name="Bundle-Name" value="EclipseLink Oracle Extensions Source"/>
<attribute name="Bundle-SymbolicName" value="${ant.project.name}.source"/>
<attribute name="Bundle-Vendor" value="${implementation.vendor}"/>
<attribute name="Bundle-Version" value="${version.string}"/>
<attribute name="Eclipse-SourceBundle" value="${ant.project.name};version=&quot;${version.string}&quot;"/>
</manifest>
<fileset dir="${oracle.2.base.dir}">
<include name="about.html"/>
<include name="readme.html"/>
<include name="license.*"/>
</fileset>
<zipgroupfileset dir="${oracle.plugins.dir}">
<include name="${ant.project.name}.source.jar"/>
</zipgroupfileset>
</jar>
</target>
</project>