blob: a4a1957517343457190e1b5dbc402afd85c4d2a2 [file] [log] [blame]
<?xml version="1.0"?>
<!--/*******************************************************************************
* 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
* egwin - update to adopt calling standards
#******************************************************************************/-->
<project name="org.eclipse.persistence.dbws.builder" default="build" basedir=".">
<!-- Test to make certain that build is run from component dir -->
<available file="../${ant.project.name}" type="dir" property="dbwsbldr.is.local"/>
<fail unless="dbwsbldr.is.local" message="Not running from '${ant.project.name}' directory"/>
<dirname property="dbwsbldr.build.location_temp" file="${ant.file.org.eclipse.persistence.dbws.builder}"/>
<pathconvert targetos="unix" property="dbwsbldr.build.location">
<path>
<pathelement location="${dbwsbldr.build.location_temp}"/>
</path>
</pathconvert>
<echo message="dbwsbldr.build.location = '${dbwsbldr.build.location}'"/>
<condition property="dbwsbldr.2.base.dir" value="../.." else="..">
<contains string="${dbwsbldr.build.location}" substring="utils/${ant.project.name}"/>
</condition>
<echo message="dbwsbldr.2.base.dir = '${dbwsbldr.2.base.dir}'"/>
<property name="dbwsbldr.2.common.plugins.dir" value="${dbwsbldr.2.base.dir}/plugins"/>
<property name="dbwsbldr.2.plugins.dir" value="${dbwsbldr.build.location}/../plugins"/>
<property name="dbwsbldr.2.buildsys.dir" value="${dbwsbldr.2.base.dir}/buildsystem"/>
<!-- OS environment variables have 'env' as a prefix -->
<property environment="env"/>
<!-- local property overrides -->
<condition property="custom.properties.message" value="Loading ${user.home}/build.properties..."
else="Custom properties file '${user.home}/build.properties' not found to load.">
<available file="${user.home}/build.properties"/>
</condition>
<echo message="${custom.properties.message}"/>
<property file="${user.home}/build.properties"/>
<property file="${dbwsbldr.build.location}/antbuild.properties"/>
<!-- Dependency variables -->
<property name="ddlparser.prefix" value="org.eclipse.persistence.oracleddlparser"/>
<property name="ddlparser.criteria" value="[1.0.0,2.0.0)"/>
<!-- Primary Targets: "jar" separate for dev use -->
<target name="build" depends="jar" description="build ${ant.project.name} component"/>
<target name="jar" depends="package" description="package ${ant.project.name} component"/>
<!-- initialize varables and paths needed for compile -->
<!-- the number of properties needed now is too great for lazy loading without a target -->
<target name="init">
<property name="custom.tasks.lib" value="${dbwsbldr.2.buildsys.dir}/ant_customizations.jar"/>
<available file="${custom.tasks.lib}" property="ant_customizations.exist"/>
<fail unless="ant_customizations.exist" message="Cannot find custom tasks library: '${custom.tasks.lib}'"/>
<property name="custom.echo.task.class" value="org.eclipse.persistence.buildtools.ant.taskdefs.Say"/>
<property name="custom.selectbundle.task.class" value="org.eclipse.persistence.buildtools.ant.taskdefs.SelectBundle"/>
<taskdef name="say" classname="${custom.echo.task.class}" classpath="${custom.tasks.lib}"/>
<taskdef name="selectbundle" classname="${custom.selectbundle.task.class}" classpath="${custom.tasks.lib}"/>
<!-- 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="${dbwsbldr.2.base.dir}/../extension.lib.external"
else="${dbwsbldr.build.location}">
<available file="${dbwsbldr.2.base.dir}/../extension.lib.external" type="dir"/>
</condition>
<echo message="extensions.depend.dir = '${extensions.depend.dir}'"/>
<!-- 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 ${release.version} Build"/>
<property name="specification.title" value="EclipseLink DBWS Builder"/>
<property name="specification.vendor" value="Eclipse.org - EclipseLink Project"/>
<property name="implementation.vendor" value="${specification.vendor}"/>
<!-- dependency properties -->
<property name="core.lib" value="${dbwsbldr.2.common.plugins.dir}/org.eclipse.persistence.core_${version.string}.jar"/>
<property name="dbws.lib" value="${dbwsbldr.2.common.plugins.dir}/org.eclipse.persistence.dbws_${version.string}.jar"/>
<property name="moxy.lib" value="${dbwsbldr.2.common.plugins.dir}/org.eclipse.persistence.moxy_${version.string}.jar"/>
<property name="jpa.lib" value="${dbwsbldr.2.common.plugins.dir}/org.eclipse.persistence.jpa_${version.string}.jar"/>
<property name="servlet.lib" value="${dbwsbldr.2.common.plugins.dir}/${servlet.jar}"/>
<property name="asm.lib" value="${dbwsbldr.2.common.plugins.dir}/${asm.jar}"/>
<property name="wsdl.lib" value="${dbwsbldr.2.plugins.dir}/${wsdl.jar}"/>
<selectbundle basename="${ddlparser.prefix}" directory="${dbwsbldr.2.plugins.dir}"
criterion="${ddlparser.criteria}" property="ddlparser.jar"
/>
<property name="ddlparser.lib" value="${dbwsbldr.2.plugins.dir}/${ddlparser.jar}"/>
<say message="ddlparser.jar = '${ddlparser.jar}'"/>
<!-- dependency tests -->
<available file="${asm.lib}" property="asm.bundle.exist"/>
<available file="${core.lib}" property="core.bundle.exist"/>
<available file="${dbws.lib}" property="dbws.bundle.exist"/>
<available file="${moxy.lib}" property="moxy.bundle.exist"/>
<available file="${jpa.lib}" property="jpa.bundle.exist"/>
<available file="${servlet.lib}" property="servlet.lib.exist"/>
<available file="${wsdl.lib}" property="wsdl.lib.exist"/>
<available file="${ddlparser.lib}" property="ddlparser.lib.exist"/>
<fail message="Cannot find: '${asm.lib}'" unless="asm.bundle.exist"/>
<fail message="Cannot find: '${core.lib}'" unless="core.bundle.exist"/>
<fail message="Cannot find: '${dbws.lib}'" unless="dbws.bundle.exist"/>
<fail message="Cannot find: '${moxy.lib}'" unless="moxy.bundle.exist"/>
<fail message="Cannot find: '${servlet.lib}'" unless="servlet.lib.exist"/>
<fail message="Cannot find: '${wsdl.lib}'" unless="wsdl.lib.exist"/>
<fail message="Cannot find: '${ddlparser.lib}'" unless="ddlparser.lib.exist"/>
<!-- Set Compile Path-->
<path id="dbwsbldr.compile.path">
<pathelement path="${asm.lib}"/>
<pathelement path="${servlet.lib}"/>
<pathelement path="${core.lib}"/>
<pathelement path="${dbws.lib}"/>
<pathelement path="${moxy.lib}"/>
<pathelement path="${jpa.lib}"/>
<pathelement path="${wsdl.lib}"/>
<pathelement path="${ddlparser.lib}"/>
</path>
<property name="manifest.dir" value="${dbwsbldr.build.location}/META-INF"/>
</target>
<target name="package-src" depends="init" description="jar OSGI Source bundle">
<jar jarfile="${dbwsbldr.2.common.plugins.dir}/${ant.project.name}.source_${version.string}.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="${specification.title} 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="${dbwsbldr.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>
<fileset dir="${resource.dir}">
<include name="org/eclipse/persistence/**/*.xsd"/>
</fileset>
</jar>
</target>
<target name="package" depends="init, package-src" description="jar OSGI bundle">
<jar jarfile="${dbwsbldr.2.common.plugins.dir}/${ant.project.name}_${version.string}.jar" manifest="${manifest.dir}/MANIFEST.MF">
<fileset dir="${dbwsbldr.2.base.dir}">
<include name="about.html"/>
<include name="readme.html"/>
<include name="license.*"/>
</fileset>
<fileset dir="${classes.dir}">
<include name="**/*.class"/>
</fileset>
<fileset dir="${resource.dir}">
<include name="org/eclipse/persistence/**/*.xsd"/>
</fileset>
<fileset dir="${src.dir}">
<include name="META-INF/services/**/*.*"/>
</fileset>
</jar>
</target>
</project>