blob: c3af4d95ae62b624f44e6db567868a67b10cd0bd [file] [log] [blame]
<project name="OpenEJB" default="jar" basedir="../">
<!--
Contributions by:
Daniel S. Haischt <sirabyss@gmx.net>
-->
<!-- Give user a chance to override without editing this file
(and without typing -D each time they invoke a target) -->
<!-- Allow any user specific values to override the defaults -->
<property file="${user.home}/build.properties" />
<!-- Set default values for the build -->
<property file="src/build.properties" />
<property name="build.src" value="${build.dir}/src"/>
<property name="build.dest" value="${build.dir}/classes"/>
<property name="src.java.dir" value="${src.dir}"/>
<property name="src.doc.dir" value="${docs.src}"/>
<property name="dest.doc.dir" value="${docs.dest}"/>
<property name="dest.javadoc.dir" value="${javadoc.destdir}"/>
<property name="final.name" value="${project}-${version}"/>
<property name="final.dir" value="dist/${final.name}/"/>
<property name="reports.tests.dir" value="test/reports"/>
<!-- these jars are for the test target -->
<property name="proxy.factory.jar" value="dist/${project}-${version}.jar"/>
<property name="client.testrunner.jar" value="dist/${project}_testsuite-${version}.jar"/>
<!-- Build classpath -->
<path id="project.classpath">
<pathelement location="${jrefactory.jar}"/>
<pathelement location="${castor.home}/${castor.jar}"/>
<pathelement location="${castor.home}/${castor.xml.jar}"/>
<pathelement location="${ejb11.jar}"/>
<pathelement location="${ejb20.jar}"/>
<pathelement location="${jaas.home}/${jaas.jar}"/>
<pathelement location="${jca.jar}"/>
<pathelement location="${jdbcext.jar}"/>
<pathelement location="${jdk12proxy.jar}"/>
<pathelement location="${jedi.home}/lib/${jedi.jar}"/>
<pathelement location="${jedi.home}/lib/${jediplugin.jar}"/>
<pathelement location="${jms.jar}"/>
<pathelement location="${jndi.jar}"/>
<pathelement location="${jta.jar}"/>
<pathelement location="${log4j.jar}"/>
<pathelement location="${minerva.jar}"/>
<pathelement location="${openorb.home}/${openorb.jar}"/>
<pathelement location="${openorb.home}/${openorb.rmi.jar}"/>
<pathelement location="${openorb.home}/${openorb.tools.jar}"/>
<pathelement location="${jts.jar}"/>
<pathelement location="${tyrex.home}/${tyrex.jar}"/>
<pathelement location="${tyrex.home}/${tyrex.iiop.jar}"/>
<pathelement location="${jaxp.home}/${jaxp.parser.jar}"/>
<pathelement location="${jaxp.home}/${jaxp.parserapi.jar}"/>
<pathelement location="${jaxp.home}/${jaxp.xsltprocessor.jar}"/>
<pathelement location="${jaxp.home}/${jaxp.xalan1compat.jar}"/>
<pathelement location="${junit.jar}"/>
<pathelement location="${jakarta.regexp.jar}"/>
</path>
<!-- Build classpath for test cases -->
<path id="project.test.classpath">
<path refid="project.classpath"/>
<pathelement path="${build.dest}/testsuite"/>
<pathelement path="${build.dest}/openejb"/>
<pathelement location="${proxy.factory.jar}"/>
<pathelement location="${client.testrunner.jar}"/>
<fileset dir="dist">
<include name="${project}*-${version}.jar"/>
</fileset>
</path>
<!-- ================================================================== -->
<!-- Task definition for the JRefactory pretty printer -->
<!-- -->
<!-- You have to uncomment this section if you want to use this -->
<!-- feature! -->
<!-- ================================================================== -->
<!--
<taskdef name="pretty" classname="org.acm.seguin.ant.Pretty">
<classpath>
<path refid="project.classpath"/>
</classpath>
</taskdef>
-->
<!-- ================================================================== -->
<!-- Prints useful build environment values -->
<!-- ================================================================== -->
<target name="env" depends="check_available">
<tstamp/>
<!--
<echo message="version = ${version}"/>
<echo message="DSTAMP = ${DSTAMP}"/>
<echo message="TSTAMP = ${TSTAMP}"/>
<echo message="java.home = ${java.home}"/>
<echo message="user.home = ${user.home}"/>
<echo message="jrefactory.jar = ${jrefactory.jar}"/>
<echo message="castor.jar = ${castor.home}/${castor.jar}"/>
<echo message="castor.xml.jar = ${castor.home}/${castor.xml.jar}"/>
<echo message="ejb11.jar = ${ejb11.jar}"/>
<echo message="ejb20.jar = ${ejb20.jar}"/>
<echo message="jaas.jar = ${jaas.home}/${jaas.jar}"/>
<echo message="jca.jar = ${jca.jar}"/>
<echo message="jdbcext.jar = ${jdbcext.jar}"/>
<echo message="jdk12proxy.jar = ${jdk12proxy.jar}"/>
<echo message="jedi.jar = ${jedi.home}/lib/${jedi.jar}"/>
<echo message="jediplugin.jar = ${jedi.home}/lib/${jediplugin.jar}"/>
<echo message="jms.jar = ${jms.jar}"/>
<echo message="jndi.jar = ${jndi.jar}"/>
<echo message="jta.jar = ${jta.jar}"/>
<echo message="log4j.jar = ${log4j.jar}"/>
<echo message="minerva.jar = ${minerva.jar}"/>
<echo message="openorb.jar = ${openorb.home}/${openorb.jar}"/>
<echo message="openorb.rmi.jar = ${openorb.home}/${openorb.rmi.jar}"/>
<echo message="openorb.tools.jar = ${openorb.home}/${openorb.tools.jar}"/>
<echo message="jts.jar = ${jts.jar}"/>
<echo message="tyrex.jar = ${tyrex.home}/${tyrex.jar}"/>
<echo message="tyrex.iiop.jar = ${tyrex.home}/${tyrex.iiop.jar}"/>
<echo message="jaxp.jar = ${jaxp.home}/jaxp.jar"/>
<echo message="jaxp.parser.jar = ${jaxp.home}/${jaxp.parser.jar}"/>
<echo message="jaxp.xsltprocessor.jar = ${jaxp.home}/${jaxp.xsltprocessor.jar}"/>
<echo message="jaxp.xalan1compat.jar = ${jaxp.home}/${jaxp.xalan1compat.jar}"/>
<echo message="junit.jar = ${junit.jar}"/>
<echo message="jakarta.regexp.jar = ${jakarta.regexp.jar}"/>
-->
</target>
<!-- ================================================================== -->
<!-- Help on usage -->
<!-- ================================================================== -->
<target name="usage">
<echo message="use -projecthelp to see the available targets"/>
</target>
<target name="targets">
<echo message="use -projecthelp to see the available targets"/>
</target>
<!-- ================================================================== -->
<!-- Check to see what optional dependencies are available -->
<!-- ================================================================== -->
<target name="check_available">
<available
classname="org.acm.seguin.ant.Pretty"
property="jrefactory.present"
classpathref="project.classpath"
/>
<available
classname="org.exolab.castor.jdo.JDO"
property="castor.present"
classpathref="project.classpath"
/>
<available
file="${ejb11.jar}"
property="ejb11.present"
classpathref="project.classpath"
/>
<available
classname="javax.ejb.MessageDrivenBean"
property="ejb20.present"
classpathref="project.classpath"
/>
<available
classname="javax.ejb.MessageDrivenBean"
property="ejb20.present"
classpathref="project.classpath"
/>
<available
classname="javax.security.auth.Subject"
property="jaas.present"
classpathref="project.classpath"
/>
<available
classname="javax.resource.cci.Connection"
property="jca.present"
classpathref="project.classpath"
/>
<available
classname="javax.sql.DataSource"
property="jdbcext.present"
classpathref="project.classpath"
/>
<available
classname="org.opentools.proxies.Proxy"
property="jdk12proxy.present"
classpathref="project.classpath"
/>
<available
classname="org.opentools.deployer.gui.MainPanel"
property="jedi.present"
classpathref="project.classpath"
/>
<available
classname="org.opentools.deployer.plugins.j2ee12.J2ee12Plugin"
property="jediplugin.present"
classpathref="project.classpath"
/>
<available
classname="javax.jms.Message"
property="jms.present"
classpathref="project.classpath"
/>
<available
classname="javax.naming.Name"
property="jndi.present"
classpathref="project.classpath"
/>
<available
classname="javax.transaction.Transaction"
property="jta.present"
classpathref="project.classpath"
/>
<available
classname="org.apache.log4j.Category"
property="log4j.present"
classpathref="project.classpath"
/>
<available
classname="org.opentools.minerva.connector.PoolManager"
property="minerva.present"
classpathref="project.classpath"
/>
<available
classname="org.omg.CORBA.Context"
property="openorb.present"
classpathref="project.classpath"
/>
<available
classname="org.openorb.rmi.DefaultORB"
property="openorb.rmi.present"
classpathref="project.classpath"
/>
<available
classname="org.openorb.compiler.IdlCompiler"
property="openorb.tools.present"
classpathref="project.classpath"
/>
<available
classname="org.omg.CosTransactions.TransactionFactory"
property="jts.present"
classpathref="project.classpath"
/>
<available
classname="tyrex.tm.impl.TransactionImpl"
property="tyrex.present"
classpathref="project.classpath"
/>
<available
classname="tyrex.corba.OTSServer"
property="tyrex.iiop.present"
classpathref="project.classpath"
/>
<available
classname="javax.xml.parsers.SAXParser"
property="jaxp.present"
classpathref="project.classpath"
/>
<available
classname="org.xml.sax.Parser"
property="jaxp.parser.present"
classpathref="project.classpath"
/>
<available
classname="org.apache.xalan.processor.TransformerFactoryImpl"
property="jaxp.xsltprocessor.present"
classpathref="project.classpath"
/>
<available
classname="org.apache.xalan.xslt.XSLTProcessor"
property="jaxp.xalan1compat.present"
classpathref="project.classpath"
/>
<available
classname="junit.framework.Test"
property="junit.present"
classpathref="project.classpath"
/>
<available
classname="org.apache.regexp.RE"
property="jakarta.regexp.present"
classpathref="project.classpath"
/>
<available
property="jdk12"
classname="java.util.Map"
classpathref="project.classpath"
/>
<available
property="jdk13"
classname="java.lang.reflect.Proxy"
classpathref="project.classpath"
/>
</target>
<!-- uncomment this section if you wanna use the pretty printer -->
<!--
<target name="check.jrefactory" unless="jrefactory.present">
<antcall target="property-warning">
<param name="name" value="jrefactory.jar"/>
<param name="value" value="${jrefactory.jar}"/>
</antcall>
</target>
-->
<target name="check.castor" unless="castor.present">
<antcall target="property-warning">
<param name="name" value="castor.jar"/>
<param name="value" value="${castor.home}/dist/${castor.jar}"/>
</antcall>
</target>
<target name="check.ejb11" unless="ejb11.present">
<antcall target="property-warning">
<param name="name" value="ejb11.jar"/>
<param name="value" value="${ejb11.jar}"/>
</antcall>
</target>
<target name="check.ejb20" unless="ejb20.present">
<antcall target="property-warning">
<param name="name" value="ejb20.jar"/>
<param name="value" value="${ejb20.jar}"/>
</antcall>
</target>
<target name="check.jaas" unless="jaas.present">
<antcall target="property-warning">
<param name="name" value="jaas.jar"/>
<param name="value" value="${jaas.home}/lib/${jaas.jar}"/>
</antcall>
</target>
<target name="check.jca" unless="jca.present">
<antcall target="property-warning">
<param name="name" value="jca.jar"/>
<param name="value" value="${jca.jar}"/>
</antcall>
</target>
<target name="check.jdbcext" unless="jdbcext.present">
<antcall target="property-warning">
<param name="name" value="jdbcext.jar"/>
<param name="value" value="${jdbcext.jar}"/>
</antcall>
</target>
<target name="check.jdk12proxy" unless="jdbcext.present">
<antcall target="property-warning">
<param name="name" value="jdk12proxy.jar"/>
<param name="value" value="${jdk12proxy.jar}"/>
</antcall>
</target>
<target name="check.jedi" unless="jedi.present">
<antcall target="property-warning">
<param name="name" value="jedi.jar"/>
<param name="value" value="${jedi.home}/lib/${jedi.jar}"/>
</antcall>
</target>
<target name="check.jediplugin" unless="jediplugin.present">
<antcall target="property-warning">
<param name="name" value="jediplugin.jar"/>
<param name="value" value="${jedi.home}/lib/${jediplugin.jar}"/>
</antcall>
</target>
<target name="check.jms" unless="jms.present">
<antcall target="property-warning">
<param name="name" value="jms.jar"/>
<param name="value" value="${jms.jar}"/>
</antcall>
</target>
<target name="check.jndi" unless="jndi.present">
<antcall target="property-warning">
<param name="name" value="jndi.jar"/>
<param name="value" value="${jndi.jar}"/>
</antcall>
</target>
<target name="check.jta" unless="jta.present">
<antcall target="property-warning">
<param name="name" value="jta.jar"/>
<param name="value" value="${jta.jar}"/>
</antcall>
</target>
<target name="check.log4j" unless="log4j.present">
<antcall target="property-warning">
<param name="name" value="log4j.jar"/>
<param name="value" value="${log4j.jar}"/>
</antcall>
</target>
<target name="check.minerva" unless="minerva.present">
<antcall target="property-warning">
<param name="name" value="minerva.jar"/>
<param name="value" value="${minerva.jar}"/>
</antcall>
</target>
<target name="check.openorb" unless="openorb.present">
<antcall target="property-warning">
<param name="name" value="openorb.jar"/>
<param name="value" value="${openorb.home}/${openorb.jar}"/>
</antcall>
</target>
<target name="check.openorb.rmi" unless="openorb.rmi.present">
<antcall target="property-warning">
<param name="name" value="openorb.rmi.jar"/>
<param name="value" value="${openorb.home}/${openorb.rmi.jar}"/>
</antcall>
</target>
<target name="check.openorb.tools" unless="openorb.tools.present">
<antcall target="property-warning">
<param name="name" value="openorb.tools.jar"/>
<param name="value" value="${openorb.home}/${openorb.tools.jar}"/>
</antcall>
</target>
<target name="check.jts" unless="jts.present">
<antcall target="property-warning">
<param name="name" value="jts.jar"/>
<param name="value" value="${jts.jar}"/>
</antcall>
</target>
<target name="check.tyrex" unless="tyrex.present">
<antcall target="property-warning">
<param name="name" value="tyrex.jar"/>
<param name="value" value="${tyrex.home}/dist/${tyrex.jar}"/>
</antcall>
</target>
<target name="check.tyrex.iiop" unless="tyrex.iiop.present">
<antcall target="property-warning">
<param name="name" value="tyrex.iiop.jar"/>
<param name="value" value="${tyrex.home}/dist/${tyrex.iiop.jar}"/>
</antcall>
</target>
<target name="check.jaxp" unless="jaxp.present">
<antcall target="property-warning">
<param name="name" value="jaxp.jar"/>
<param name="value" value="${jaxp.home}/jaxp.jar"/>
</antcall>
</target>
<target name="check.jaxp.parser" unless="jaxp.parser.present">
<antcall target="property-warning">
<param name="name" value="jaxp.parser.jar"/>
<param name="value" value="${jaxp.home}/${jaxp.parser.jar}"/>
</antcall>
</target>
<target name="check.jaxp.xsltprocessor" unless="jaxp.xsltprocessor.present">
<antcall target="property-warning">
<param name="name" value="jaxp.xsltprocessor.jar"/>
<param name="value" value="${jaxp.home}/${jaxp.xsltprocessor.jar}"/>
</antcall>
</target>
<target name="check.jaxp.xalan1compat" unless="jaxp.xalan1compat.present">
<antcall target="property-warning">
<param name="name" value="jaxp.xalan1compat.jar"/>
<param name="value" value="${jaxp.home}/${jaxp.xalan1compat.jar}"/>
</antcall>
</target>
<target name="check.junit" unless="junit.present">
<antcall target="property-warning">
<param name="name" value="junit.jar"/>
<param name="value" value="${junit.jar}"/>
</antcall>
</target>
<target name="check.jakarta.regexp" unless="jakarta.regexp.present">
<antcall target="property-warning">
<param name="name" value="jakarta.regexp.jar"/>
<param name="value" value="${jakarta.regexp.jar}"/>
</antcall>
</target>
<!-- ================================================================== -->
<!-- Print a requirement waring if a requirement check fails -->
<!-- ================================================================== -->
<target name="property-warning">
<echo>
+----------------------------------------------------------------+
+ F A I L E D R E Q U I R E M E N T |
+----------------------------------------------------------------+
| You must define the following property in order |
| to build OpenEJB: |
| |
| ${name} = ${value}
| |
| You can set this property in the provided build.properties |
| file, or you may set this property in your |
| ${user.home}/build.properties file.
+----------------------------------------------------------------+
</echo>
<fail message="Failed Requirement"/>
</target>
<!-- ================================================================== -->
<!-- Prepares the build directory -->
<!-- -->
<!-- You have to include the dependency 'check.jrefactory' if you -->
<!-- wanna use the pretty printer. -->
<!-- ================================================================== -->
<target name="prepare"
depends="env,
check.castor,
check.ejb11,
check.ejb20,
check.jaas,
check.jca,
check.jdbcext,
check.jdk12proxy,
check.jedi,
check.jediplugin,
check.jms,
check.jndi,
check.jta,
check.log4j,
check.minerva,
check.openorb,
check.openorb.rmi,
check.openorb.tools,
check.jts,
check.tyrex,
check.tyrex.iiop,
check.jaxp,
check.jaxp.parser,
check.jaxp.xsltprocessor,
check.junit,
check.jakarta.regexp"
description="--> prepares the build environment">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.src}"/>
<mkdir dir="${build.dest}"/>
<mkdir dir="${dest.doc.dir}"/>
<mkdir dir="${dest.javadoc.dir}"/>
<mkdir dir="./beans"/>
<mkdir dir="./logs"/>
<style
style="src/doc/style/changelog.xsl"
in="${docs.src}/CHANGELOG.xml"
out="${final.dir}/src/etc/CHANGELOG"
processor="trax">
<param name="version" expression="${version}"/>
</style>
<antcall target="delegate">
<param name="target.name" value="prepare"/>
</antcall>
</target>
<!-- ================================================================== -->
<!-- Compiles the source directory -->
<!-- ================================================================== -->
<target name="compile"
depends="prepare"
description="--> compiles the java source files">
<antcall target="delegate">
<param name="target.name" value="compile"/>
</antcall>
</target>
<!-- ================================================================== -->
<!-- Compiles the source directory and creates a .jar file -->
<!-- ================================================================== -->
<target name="jar"
depends="compile"
description="--> generates all java archives (default)">
<antcall target="delegate">
<param name="target.name" value="jar"/>
</antcall>
</target>
<!-- ================================================================== -->
<!-- Creates the API documentation -->
<!-- ================================================================== -->
<target name="javadocs"
depends="compile"
description="--> generates the API documentation">
<copy todir="build/src/javadoc">
<fileset dir="src/main" includes="**/**.java,**/**.html" excludes="**/CVS/**"/>
<fileset dir="src/facilities" includes="**/**.java,**/**.html" excludes="**/modern/**,**/ui/**,**/sp/**,**/CVS/**"/>
</copy>
<mkdir dir="${docs.dest}/html/apidocs"/>
<javadoc packagenames="org.openejb.*"
sourcepath="build/src/javadoc"
destdir="${docs.dest}/html/apidocs"
doctitle="${name} JavaDoc"
windowtitle="${name} JavaDoc"
package="true"
author="true"
version="true"
noindex="true"
classpathref="project.classpath">
<bottom><![CDATA[
<table width="100%" cellspacing="0" cellpadding="1" border="0">
<tr>
<td><img src="http://openejb.sourceforge.net/images/logo_ejb.gif"></td>
<td align="right"><img src="http://sourceforge.net/sflogo.php?group_id=44351&amp;type=2" width="125" height="37" border="0"></td>
</tr>
<tr bgcolor="#7270c2">
<td><font face="Arial" color="#FFFFFF">Copyright &#169; 2002 OpenEJB Group. All Rights Reserved.</font></td>
<td align="right"><font face="Arial" color="#FFFFFF"><a href="http://openejb.sourceforge.net">http://openejb.sourceforge.net</a></font></td>
</tr>
</table>
]]></bottom>
</javadoc>
</target>
<!-- ================================================================== -->
<!-- Creates the OpenEJB documentation -->
<!-- ================================================================== -->
<target name="docs"
depends="prepare"
description="--> generates documentation from XML files via XSLT">
<copy todir="${docs.dest}/html/spec">
<fileset dir="${docs.src}/spec" />
</copy>
<style basedir="${docs.src}"
destdir="${docs.dest}/html"
style="src/doc/style/sysdesign.xsl"
includes="**/design_*.xml"
excludes="style/**,src/doc/faq**,project.xml,CHANGELOG.xml,download.xml,release-plan.xml"
processor="trax">
<classpath>
<path refid="project.classpath"/>
</classpath>
</style>
<style basedir="${docs.src}"
destdir="${docs.dest}/html"
style="src/doc/style/faq.xsl"
includes="**/faq*.xml"
excludes="style/**,project.xml,CHANGELOG.xml,download.xml,release-plan.xml"
processor="trax">
<classpath>
<path refid="project.classpath"/>
</classpath>
</style>
<style basedir="${docs.src}"
destdir="${docs.dest}/html"
style="src/doc/style/website.xsl"
includes="**/**.xml"
excludes="style/**,src/doc/design_**,src/doc/faq**,project.xml,CHANGELOG.xml,download.xml,release-plan.xml"
processor="trax">
<classpath>
<path refid="project.classpath"/>
</classpath>
</style>
<style style="src/doc/style/download.xsl"
in="${docs.src}/CHANGELOG.xml"
out="${docs.dest}/html/download.html"
processor="trax">
<classpath>
<path refid="project.classpath"/>
</classpath>
</style>
<style style="src/doc/style/release-plan.xsl"
in="${docs.src}/CHANGELOG.xml"
out="${docs.dest}/html/release-plan.html"
processor="trax">
<classpath>
<path refid="project.classpath"/>
</classpath>
</style>
<style style="src/doc/style/release-notes.xsl"
in="${docs.src}/CHANGELOG.xml"
out="${docs.dest}/release-notes.html"
processor="trax">
<classpath>
<path refid="project.classpath"/>
</classpath>
</style>
<style style="src/doc/style/change-notes.xsl"
in="${docs.src}/CHANGELOG.xml"
out="${docs.dest}/change-notes.html"
processor="trax">
<classpath>
<path refid="project.classpath"/>
</classpath>
</style>
<copy todir="${docs.dest}/html/images">
<fileset dir="${docs.src}/images" />
</copy>
<copy todir="${docs.dest}/html/images">
<fileset dir="${docs.src}/style/images" includes="*.gif"/>
</copy>
<copy todir="${docs.dest}/html/">
<fileset dir="${docs.src}/style" includes="*.css"/>
</copy>
<copy todir="${docs.dest}/html">
<fileset dir="${docs.src}" includes="license.txt,document.dtd,*.pdf,*.java,faq_template.xml"/>
</copy>
<copy todir="${docs.dest}/html">
<fileset dir="${docs.src}" includes="*.ppt"/>
</copy>
</target>
<!-- ================================================================== -->
<!-- Cleans up the build directory -->
<!-- ================================================================== -->
<target name="clean"
description="--> cleans up the build directory">
<delete dir="${build.dir}"/>
<delete dir="${dest.doc.dir}"/>
<delete dir="dist"/>
<delete dir="${reports.tests.dir}"/>
</target>
<!-- ================================================================== -->
<!-- Beautifies the whole java source code -->
<!-- -->
<!-- Uncomment this section if you wanna use the pretty printer -->
<!-- ================================================================== -->
<!--
<target name="beautify">
<pretty settingsDir="${user.home}" cvs="true">
<fileset dir="${src.java.dir}">
<include name="**/*.java" />
</fileset>
</pretty>
</target>
-->
<!-- ================================================================== -->
<!-- T E S T S -->
<!-- ================================================================== -->
<target name="prepare-test"
depends="jar,
check_test_available,
check.proxy.factory,
check.client.testrunner"
/>
<target name="check_test_available">
<available
classname="org.openejb.util.proxy.ProxyFactory"
property="proxy.factory.present"
classpathref="project.test.classpath"
/>
<available
classname="org.openejb.test.TestRunner"
property="client.testrunner.present"
classpathref="project.test.classpath"
/>
</target>
<target name="check.proxy.factory" unless="proxy.factory.present">
<antcall target="property-warning">
<param name="name" value="proxy.factory.jar"/>
<param name="value" value="${proxy.factory.jar}"/>
</antcall>
</target>
<target name="check.client.testrunner" unless="client.testrunner.present">
<antcall target="property-warning">
<param name="name" value="client.testrunner.jar"/>
<param name="value" value="${client.testrunner.jar}"/>
</antcall>
</target>
<target name="test-runner">
<java classname="org.openejb.test.TestRunner" fork="true">
<jvmarg value="-Dopenejb.testsuite.properties=${testsuite.properties}"/>
<jvmarg value="-Dopenejb.test.server=${test.server}"/>
<jvmarg value="-Dopenejb.test.database=org.openejb.test.InstantDbTestDatabase"/>
<jvmarg value="-Dopenejb.home=${basedir}"/>
<arg line="org.openejb.test.ClientTestSuite"/>
<classpath refid="project.test.classpath"/>
</java>
</target>
<target name="test.local"
depends="prepare-test"
description="--> runs OpenEJB Local Server (aka IntraVM Server) unit tests"
if="junit.present">
<antcall target="test-runner">
<param name="testsuite.properties" value="src/tests-ejb/IvmServer_config.properties"/>
<param name="test.server" value="org.openejb.test.IvmTestServer"/>
</antcall>
</target>
<target name="test.remote"
depends="prepare-test"
description="--> runs OpenEJB Remote Server unit tests"
if="junit.present">
<antcall target="test-runner">
<param name="testsuite.properties" value="src/tests-ejb/RemoteServer_config.properties"/>
<param name="test.server" value="org.openejb.test.RemoteTestServer"/>
</antcall>
</target>
<target name="test"
depends="prepare-test,
test.local,
test.remote"
description="--> runs OpenEJB unit tests"
if="junit.present">
</target>
<!-- ================================================================== -->
<!-- Creates distribution packages (*.tar.gz and *.zip files) -->
<!-- ================================================================== -->
<target name="package"
depends="jar, javadocs, docs, package.zip, package.tar.gz"
description="--> archives all files as a complete OpenEJB distribution package"/>
<target name="prepare-package">
<mkdir dir="${final.dir}"/>
<mkdir dir="${final.dir}/bin"/>
<mkdir dir="${final.dir}/conf"/>
<mkdir dir="${final.dir}/docs"/>
<mkdir dir="${final.dir}/lib"/>
<mkdir dir="${final.dir}/dist"/>
<mkdir dir="${final.dir}/src"/>
<mkdir dir="${final.dir}/beans"/>
<mkdir dir="${final.dir}/logs"/>
<!-- copy required jar files -->
<copy todir="${final.dir}/dist">
<fileset dir="dist" >
<include name="openejb-${version}.jar"/>
<include name="openejb_client-${version}.jar"/>
<include name="openejb_server-${version}.jar"/>
<include name="openejb_loader-${version}.war"/>
<include name="openejb_loader-${version}.jar"/>
<include name="openejb_ejb_tests-${version}.jar"/>
</fileset>
</copy>
<!-- copy required jar files -->
<copy todir="${final.dir}/beans">
<fileset dir="dist" >
<include name="openejb_ejb_tests-${version}.jar"/>
</fileset>
</copy>
<!-- copy OpenEJB jar files -->
<copy todir="${final.dir}/lib">
<fileset dir="lib" >
<include name="*.jar"/>
</fileset>
</copy>
<!-- copy documentation files -->
<copy todir="${final.dir}/docs">
<fileset dir="docs/html" >
<include name="**/**"/>
<exclude name="**/OpenEJB_Specification.doc"/>
<exclude name="**/OpenEJB_Specification.ps"/>
</fileset>
</copy>
<!-- copy source files -->
<copy todir="${final.dir}/src">
<fileset dir="src" >
<include name="**/**"/>
<exclude name="**/ObjectAA"/>
<exclude name="**/ObjectBB"/>
<exclude name="**/ObjectCC"/>
<exclude name="**/ObjectDD"/>
</fileset>
</copy>
<!-- copy configuration files -->
<copy todir="${final.dir}/conf">
<fileset dir="conf" >
<include name="default.cmp_global_tx_database.xml"/>
<include name="default.cmp_local_tx_database.xml"/>
<include name="default.cmp_mapping.xml"/>
<include name="default.idb_database.conf"/>
<include name="default.logging.conf"/>
<include name="default.openejb.conf"/>
<include name="default.service-jar.xml"/>
<include name="postgresql.*"/>
<include name="instantdb.*"/>
</fileset>
</copy>
<!-- copy configuration files -->
<copy file="conf/default.openejb.conf" tofile="${final.dir}/conf/openejb.conf" />
<!-- copy shel/batch files -->
<copy todir="${final.dir}/bin">
<fileset dir="bin/" >
<include name="*.sh"/>
<include name="*.bat"/>
<include name="*.txt"/>
</fileset>
</copy>
<chmod dir="${final.dir}/bin" perm="ugo+rx" includes="**/*.sh"/>
<!-- copy shel/batch files -->
<copy todir="${final.dir}">
<fileset dir="./" >
<include name="openejb.sh"/>
<include name="openejb.bat"/>
</fileset>
</copy>
<chmod dir="${final.dir}" perm="ugo+rx" includes="**/*.sh"/>
<fixcrlf srcdir="${final.dir}" eol="lf" eof="remove" includes="**/*.sh" />
<copy todir="${final.dir}">
<fileset dir="src/etc" >
<include name="README"/>
<include name="LICENSE"/>
<include name="CREDITS"/>
</fileset>
</copy>
</target>
<target name="package.zip" depends="prepare-package">
<!-- create a zip file containing the whole OpenEJB dist -->
<zip zipfile="dist/${project}-${version}.zip">
<zipfileset dir="${final.dir}"
prefix="./${project}-${version}" />
</zip>
<!-- create a zip file containing just jar files -->
<zip zipfile="dist/${project}-${version}-lib.zip">
<zipfileset dir="${final.dir}/lib"
prefix="./${project}-${version}/lib" />
</zip>
<!-- create a zip file containing just documentation files -->
<zip zipfile="dist/${project}-${version}-doc.zip">
<zipfileset dir="${final.dir}/docs"
prefix="./${project}-${version}/docs" />
</zip>
</target>
<target name="package.tar.gz" depends="prepare-package">
<!-- create a zip file containing the whole OpenEJB dist -->
<tar tarfile="dist/${project}-${version}.tar">
<tarfileset dir="${final.dir}/.." mode="755">
<include name="**/**.sh"/>
</tarfileset>
<tarfileset dir="${final.dir}/..">
<include name="${project}-${version}/**"/>
<exclude name="**/**.sh"/>
</tarfileset>
</tar>
<gzip zipfile="dist/${project}-${version}.tar.gz"
src="dist/${project}-${version}.tar"/>
<!-- create a zip file containing just jar files -->
<tar tarfile="dist/${project}-${version}-lib.tar">
<tarfileset dir="${final.dir}/lib"/>
</tar>
<gzip zipfile="dist/${project}-${version}-lib.tar.gz"
src="dist/${project}-${version}-lib.tar"/>
<!-- create a zip file containing just documentation files -->
<tar tarfile="dist/${project}-${version}-doc.tar">
<tarfileset dir="${final.dir}/docs"/>
</tar>
<gzip zipfile="dist/${project}-${version}-doc.tar.gz"
src="dist/${project}-${version}-doc.tar"/>
</target>
<target name="delegate">
<antcall target="pre-delegate">
<param name="module" value="openejb"/>
</antcall>
<antcall target="pre-delegate">
<param name="module" value="openejb-loader"/>
</antcall>
<antcall target="pre-delegate">
<param name="module" value="webadmin"/>
</antcall>
<antcall target="pre-delegate">
<param name="module" value="openejb-server"/>
</antcall>
<!--
<antcall target="pre-delegate">
<param name="module" value="corba"/>
</antcall>
<antcall target="pre-delegate">
<param name="module" value="ri-client"/>
</antcall>
<antcall target="pre-delegate">
<param name="module" value="ri-server"/>
</antcall>
-->
<antcall target="pre-delegate">
<param name="module" value="testsuite"/>
</antcall>
<antcall target="pre-delegate">
<param name="module" value="unit-tests"/>
</antcall>
</target>
<target name="pre-delegate">
<available
property="build-${module}.present"
file="src/build-${module}.xml"
/>
<antcall target="post-delegate" />
</target>
<target name="post-delegate" if="build-${module}.present">
<echo message="${target.name} ${module}"/>
<ant antfile="src/build-${module}.xml" target="${target.name}">
<property file="build.properties"/>
<property name="build.src" value="${build.src}"/>
<property name="build.dest" value="${build.dest}"/>
<property name="src.java.dir" value="${src.java.dir}"/>
<property name="src.doc.dir" value="${src.doc.dir}"/>
<property name="dest.doc.dir" value="${dest.doc.dir}"/>
<property name="dest.javadoc.dir" value="${dest.javadoc.dir}"/>
<property name="final.name" value="${final.name}"/>
<property name="final.dir" value="${final.dir}/"/>
</ant>
</target>
</project>