| <!--/******************************************************************************* |
| * 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="${version.string}""/> |
| </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="${version.string}"${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/> |
| <echo message="Export-Package: org.eclipse.persistence.eis.adapters.aq;version="${version.string}",${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/> |
| <echo message=" org.eclipse.persistence.internal.eis.adapters.aq;version="${version.string}",${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/> |
| <echo message=" org.eclipse.persistence.internal.platform.database.oracle;version="${version.string}",${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/> |
| <echo message=" org.eclipse.persistence.internal.platform.database.oracle.xdb;version="${version.string}",${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/> |
| <echo message=" org.eclipse.persistence.platform.database.oracle;version="${version.string}",${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/> |
| <echo message=" org.eclipse.persistence.platform.database.oracle.converters;version="${version.string}",${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/> |
| <echo message=" org.eclipse.persistence.platform.xml.xdk;version="${version.string}"${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="1.5.0";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="1.5.0";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="${version.string}""/> |
| </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> |