|
- <html>
-
- <head>
- <meta http-equiv="Content-Language" content="en-us">
- <title>Ant EJB Tasks</title>
-
- </head>
-
- <body>
-
- <h1>Ant EJB Tasks User Manual</h1>
- <p>by</p>
- <!-- Names are in alphabetical order, on last name -->
- <ul>
- <li>Tim Fennell (<a href="mailto:tfenne@rcn.com">tfenne@rcn.com</a>)</li>
- <li>Conor MacNeill (<a href="mailto:conor@cortexebusiness.com.au">conor@cortexebusiness.com.au</a>)</li>
- </ul>
-
- <p>Version 1.1 - 2000/07/18</p>
- <hr>
- <h2>Table of Contents</h2>
- <ul>
- <li><a href="#introduction">Introduction</a></li>
- <li><a href="#ejbtasks">EJB Tasks</a></li>
- </ul>
-
- <hr>
- <h2><a name="introduction">Introduction</a></h2>
- <p>Ant provides a number of optional tasks for developing
- <a href="http://java.sun.com/products/ejb">Enterprise Java Beans (EJBs)</a>.
- In general these tasks are specific to the particular vendor's EJB Server. At present the tasks support
- <a href="http://www.bea.com">Weblogic</a> 4.5.1 and 5.1 EJB servers. Over time we expect further optional tasks
- to support additional EJB Servers.
-
- <hr>
- <h2><a name="ejbtasks">EJB Tasks</a></h2>
- <table border="1" cellpadding="5">
- <tr><td>Task</td><td>Application Servers</td></tr>
- <tr><td><a href="#ddcreator">ddcreator</a></td><td>Weblogic 4.5</td></tr>
- <tr><td><a href="#ejbc">ejbc</a></td><td>Weblogic 4.5</td></tr>
- <tr><td><a href="#wlrun">wlrun</a></td><td>Weblogic 4.5</td></tr>
- <tr><td><a href="#wlstop">wlstop</a></td><td>Weblogic 4.5</td></tr>
- <tr><td><a href="#ejbjar">ejbjar</a></td><td>Weblogic 5.1</td></tr>
- </table>
-
- <hr>
- <h2><a name="ddcreator">ddcreator</a></h2>
- <h3><b>Description:</b></h3>
- <p>ddcreator will compile a set of Weblogic text-based deployment descriptors into a serialized
- EJB deployment descriptor. The selection of which of the text-based descriptors are to be compiled
- is based on the standard Ant include and exclude selection mechanisms.
-
-
- <h3>Parameters:</h3>
- <table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">descriptors</td>
- <td valign="top">This is the base directory from which descriptors are selected.</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">dest</td>
- <td valign="top">The directory where the serialised deployment descriptors will be written</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">classpath</td>
- <td valign="top">This is the classpath to use to run the underlying weblogic ddcreator tool.
- This must include the <code>weblogic.ejb.utils.DDCreator</code> class</td>
- <td valign="top" align="center">No</td>
- </tr>
- </table>
- <h3>Examples</h3>
- <pre><ddcreator descriptors="${dd.dir}"
- dest="${gen.classes}"
- classpath="${descriptorbuild.classpath}">
- <include name="*.txt" />
- </ddcreator></code>
- </pre>
-
- <hr>
- <h2><a name="ejbc">ejbc</a></h2>
- <h3><b>Description:</b></h3>
- <p>The ejbc task will run Weblogic's ejbc tool. This tool will take a serialised deployment descriptor,
- examine the various EJB interfaces and bean classes and then generate the required support classes
- necessary to deploy the bean in a Weblogic EJB container. This will include the RMI stubs and skeletons
- as well as the classes which implement the bean's home and remote interfaces.
- <p>
- The ant task which runs this tool is able to compile several beans in a single operation. The beans to be
- compiled are selected by including their serialised deployment descriptors. The standard ant
- <code>include</code> and <code>exclude</code> constructs can be used to select the deployment descriptors
- to be included.
- <p>
- Each descriptor is examined to determiune whether the generated classes are out of date and need to be
- regenerated. The deployment descriptor is de-serialized to discover the home, remote and
- implementation classes. The corresponding source files are determined and checked to see their
- modification times. These times and the modification time of the serialised descriptor itself are
- compared with the modification time of the generated classes. If the generated classes are not present
- or are out of date, the ejbc tool is run to generate new versions.
- <h3>Parameters:</h3>
- <table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">descriptors</td>
- <td valign="top">This is the base directory from which the serialised deployment descriptors are selected.</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">dest</td>
- <td valign="top">The base directory where the generated classes, RIM stubs and RMI skeletons are written</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">manifest</td>
- <td valign="top">The name of a manifest file to be written. This manifest will contain an entry for each EJB processed</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">src</td>
- <td valign="top">The base directory of the source tree containing the source files of the home interface,
- remote interface and bean implementation classes.</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">classpath</td>
- <td valign="top">This classpath must include both the <code>weblogic.ejbc</code> class and the
- classfiles of the bean, home interface, remote interface, etc of the bean being
- processed.</td>
- <td valign="top" align="center">No</td>
- </tr>
- </table>
- <h3>Examples</h3>
- <pre><ejbc descriptors="${gen.classes}"
- src="${src.dir}"
- dest="${gen.classes}"
- manifest="${build.manifest}"
- classpath="${descriptorbuild.classpath}">
- <include name="*.ser" />
- </ejbc></code>
- </pre>
-
- <hr>
- <h2><a name="wlrun">wlrun</a></h2>
- <h3><b>Description:</b></h3>
- <p>This is an experimental task and is not currently documented.
-
- <hr>
- <h2><a name="wlstop">wlstop</a></h2>
- <h3><b>Description:</b></h3>
- <p>This is an experimental task and is not currently documented.
-
- <hr>
- <h2><a name="ejbjar">ejbjar</a></h2>
- <h3><b>Description:</b></h3>
- <p>This task is designed to support building of arbitrary EJB1.1 jar files. Support is currently
- provided for 'vanilla' EJB1.1 jar files - i.e. those containing only the user generated class
- files and the standard deployment descriptor. Nested elements provide support for vendor
- specific deployment tools. Currently a nested element is provided for Weblogic 5.1 using the
- weblogic.ejbc tool.</p>
-
- <p>This task assumes a particular naming convention for deployment descriptor files. For an
- Account bean, for example, the deployment descriptor would be named <code>Account-ejb-jar.xml</code>.
- This naming convention allows the task to distinguish deployment descriptors without relying on
- their positioning within a source tree. It is also used to derive the name of the .jar file
- which is generated. For the example this would be <code>Account.jar</code>. Vendor specific files
- are assumed to be named in a similar fashion. The deployment descriptor file which defines
- additional weblogic specific information for the above bean would be
- <code>Account-weblogic-ejb-jar.xml</code>.
-
- <p>The task works as a directory scanning task, and performs an action for each deployment descriptor
- found. As such the includes and excludes should be set to ensure that all desired EJB1.1
- descriptors are found, but no application server descriptors are found. For each descriptor
- found, ejbjar will parse the deployment descriptor to determine the necessary class files which
- implement the bean. These files are assembled along with the deployment descriptors into a well
- formed EJB jar file. Note that support classes used by the bean but which are not part of the
- bean's interfaces are not included in the assembled jar. These need to be collected into a
- separate support jar file.</p>
-
- <p>If no nested vendor-specific deployment elements are present, the task will simply generate a
- generic EJB jar. Such jars are typically used as the input to vendor-specific deployment tools.
- For each nested deployment element, a vendor specific deployment tool is run to generate a jar file
- ready for deployment in that vendor's EJB container. Note that at this time the only supported tool is
- Weblogic's ejbc tool.
-
- <p>The jar files are only built if they are out of date. Each deployment tool element will examine
- its target jar file and determine if it is out of date with respect to the class files and
- deployment descriptors that make up the bean. If any of these files are newer than the jar file
- the jar will be rebuilt otherwise a message is logged that the jar file is up to date.</p>
-
- <h3>Parameters:</h3>
- <table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">descriptordir</td>
- <td valign="top">The base directory under which to scan for EJB deployment descriptors.</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">srcdir</td>
- <td valign="top">The base directory containg the .class files that make up the bean.
- Note that this can be the same as the descrptordir if all files are
- in the same directory tree.</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">destdir</td>
- <td valign="top">The base directory into which generated jar files are deposited. Jar files are deposited in
- directories correpsonding to their location within the descriptordir namespace. Note that
- this attribute is only used if the task is generating generic jars (i.e. no vendor-specific
- deployment elements have been specified).</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">basenameterminator</td>
- <td valign="top">String value used to substring out a string from the name of each deployment descriptor found,
- which is then used to locate related deployment descriptors (e.g. the WebLogic descriptors).
- For example, a basename of '.' and a deployment descriptor called 'FooBean.ejb-jar.xml' would
- result in a basename of 'FooBean' which would then be used to find FooBean.weblogic-ejb-jar.xml
- and FooBean.weblogic-cmp-rdbms-jar.xml, as well as to create the filenames of the jar files as
- FooBean-generic.jar and FooBean-wl.jar.</td>
- <td valign="top" align="center">No, defaults to '-'.</td>
- </tr>
- <tr>
- <td valign="top">genericjarsuffix</td>
- <td valign="top">String value appended to the basename of the deployment descriptor to create the filename of the
- generic EJB jar file.</td>
- <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
- </tr>
- </table>
-
- <h3>Vendor-specific deployment elements</h3>
-
- Each vendor-specific nested element controls the generation of a deployable jar specific to that vendor's
- EJB container. The parameters for each supported deployment element are detailed here.
-
- <h3>Weblogic element</h3>
- <table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">destdir</td>
- <td valign="top">The base directory into which the generated weblogic ready jar files are deposited. Jar files are deposited in
- directories correpsonding to their location within the descriptordir namespace. </td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">genericjarsuffix</td>
- <td valign="top">A generic jar is generated as an intermeditate step in build the weblogic deployment
- jar. The suffix used to generate the generic jar file is not particularly important
- unless it is desired to keep the generic jar file. It should not, however, be the same
- as the suffix setting.</td>
- <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
- </tr>
- <tr>
- <td valign="top">suffix</td>
- <td valign="top">String value appended to the basename of the deployment descriptor to create the filename of the
- WebLogic EJB jar file.</td>
- <td valign="top" align="center">No, defaults to '.jar'.</td>
- </tr>
- <tr>
- <td valign="top">classpath</td>
- <td valign="top">The classpath to be used when running the weblogic ejbc tool. Note that this tool
- typically requires the classes that make up the bean to be available on the classpath.
- Currently, however, this will cause the ejbc tool to be run in a separate VM</td>
- <td valign="top" align="center">No</td>
- </tr>
- <tr>
- <td valign="top">keepgeneric</td>
- <td valign="top">This controls whether the generic fiule used as input to ejbc is retained.</td>
- <td valign="top" align="center">No, defaults to false</td>
- </tr>
- </table>
-
-
- <h3>Examples</h3>
- This example shows ejbjar being used to generate deployment jars for a Weblogic EJB container.
- <pre>
- <ejbjar srcdir="${build.classes}"
- descriptordir="${descriptor.dir}">
- <weblogic destdir="${deploymentjars.dir}"
- classpath="${descriptorbuild.classpath}"/>
- <include name="**/*-ejb-jar.xml"/>
- <exclude name="**/*weblogic*.xml"/>
- </ejbjar>
- </pre>
- </body>
-
- </html>
-
|