blob: 82174882d3117300e7c5b1c77af51db408454a19 [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:
* egwin - initial API and implementation
#******************************************************************************/-->
<project name="javax.persistence" default="build" basedir=".">
<available file="../${ant.project.name}" type="dir" property="jpaproto.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="jpaproto.is.local"/>
<dirname property="jpaproto.build.location" file="${ant.file.org.eclipse.persistence.core}"/>
<echo message="jpaproto.build.location = '${jpaproto.build.location}'"/>
<condition property="jpaproto.2.base.dir" value="../../.." else="..">
<contains string="${jpaproto.build.location}" substring="jpa"/>
</condition>
<property name="jpaproto.2.common.plugins.dir" value="${jpaproto.2.base.dir}/plugins"/>
<tstamp>
<format property="build.date" pattern="yyyyMMdd"/>
<format property="build.time" pattern="HHmm"/>
</tstamp>
<property name="jpaproto.qualifier" value="v${build.date}${build.time}"/>
<property name="jpaproto.version" value="1.99.5"/>
<property name="jpaproto.jar" value="${ant.project.name}_2.0_preview.jar"/>
<property name="jpaproto.src.jar" value="${ant.project.name}.source_2.0_preview.jar"/>
<property name="src.dir" value="src"/>
<property name="package.dir" value=".."/>
<property name="classes.dir" value="classes"/>
<property name="jpaproto.resource.dir" value="META-INF"/>
<property name="implementation.vendor" value="Eclipse.org - EclipseLink Project"/>
<property name="javac.debug" value="true"/>
<property name="javac.optimize" value="off"/>
<property name="javac.deprecation" value="off"/>
<property name="javac.version" value="1.5"/>
<path id="jpaproto.compile.path">
<pathelement path="${jpaproto.2.common.plugins.dir}/osgi.core.zip"/>
<pathelement path="${jpaproto.2.common.plugins.dir}/osgi.cmpn_4.1.0.jar"/>
</path>
<!-- all -->
<target name="build" depends="clean, compile, generate-manifest, package" description="build JAXB 2.0 Prototype component"/>
<target name="clean" description="Clean the build">
<delete dir="${classes.dir}" includeEmptyDirs="true" quiet="true"/>
<delete file="${package.dir}/${jpaproto.jar}" quiet="true"/>
<delete file="${package.dir}/${jpaproto.src.jar}" quiet="true"/>
</target>
<!-- compile -->
<target name="compile" description="compile ${ant.project.name}">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}"
destdir="${classes.dir}"
includes="**"
debug="${javac.debug}"
debuglevel="${javac.debuglevel}"
optimize="${javac.optimize}"
source="${javac.version}"
target="${javac.version}"
deprecation="${javac.deprecation}"
failonerror="true"
memoryMaximumSize="512m"
fork="true">
<classpath>
<path refid="jpaproto.compile.path"/>
</classpath>
</javac>
</target>
<!-- package -->
<target name="package" description="package ${ant.project.name}">
<jar jarfile="${package.dir}/${jpaproto.jar}" duplicate="preserve" manifest="${classes.dir}/MANIFEST.MF">
<fileset dir="${jpaproto.2.base.dir}">
<include name="about.html"/>
<include name="readme.html"/>
<include name="license.*"/>
</fileset>
<fileset dir="."
includes="readme.txt"
/>
<fileset dir="${src.dir}"
includes="**/*.xsd"
/>
<fileset dir="${classes.dir}"
includes="**/*.class"
/>
<fileset dir="${jpaproto.resource.dir}"
includes="**"
excludes="MANIFEST.MF*"
/>
</jar>
<jar jarfile="${package.dir}/${jpaproto.src.jar}" duplicate="preserve">
<manifest>
<attribute name="Specification-Vendor" value="Sun Microsystems"/>
<attribute name="Specification-Version" value="1.0"/>
<attribute name="Implementation-Vendor" value="${implementation.vendor}"/>
<attribute name="Implementation-Version" value="${jpaproto.version}"/>
<attribute name="Bundle-ManifestVersion" value="2"/>
<attribute name="Bundle-Name" value="EclipseLink's javax.persistence 2.0 Library Preview Source"/>
<attribute name="Bundle-SymbolicName" value="${ant.project.name}.source"/>
<attribute name="Bundle-Vendor" value="${implementation.vendor}"/>
<attribute name="Bundle-Version" value="${jpaproto.version}.${jpaproto.qualifier}"/>
<attribute name="Eclipse-SourceBundle" value="${ant.project.name};version=&quot;${jpaproto.version}.${jpaproto.qualifier}&quot;"/>
</manifest>
<fileset dir="${jpaproto.2.base.dir}">
<include name="about.html"/>
<include name="readme.html"/>
<include name="license.*"/>
</fileset>
<fileset dir="."
includes="readme.txt"
/>
<fileset dir="${src.dir}"
includes="**"
/>
</jar>
</target>
<target name="generate-manifest" description="Generate the OSGi bundle manifest before jarring">
<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: Sun Microsystems Inc.${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Specification-Version: 1.0${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: 1.99${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: JPA 1.0 - Extended for OSGi (1.99)${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: ${jpaproto.version}.${jpaproto.qualifier}${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="Export-Package: javax.persistence;version=&quot;${jpaproto.version}.${jpaproto.qualifier}&quot;,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" javax.persistence.criteria;version=&quot;${jpaproto.version}.${jpaproto.qualifier}&quot;,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" javax.persistence.metamodel;version=&quot;${jpaproto.version}.${jpaproto.qualifier}&quot;,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" javax.persistence.spi;version=&quot;${jpaproto.version}.${jpaproto.qualifier}&quot;${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message="Bundle-Activator: javax.persistence.osgi.Activator${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: org.osgi.framework;resolution:=optional,${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
<echo message=" org.osgi.util.tracker;resolution:=optional${line.separator}" file="${classes.dir}/MANIFEST.MF" append="true"/>
</target>
</project>