<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- 
/*
 * Copyright 2001-2004 The Apache Software Foundation.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 -->

<document>

  <properties>
    <title>Properties</title>
    <author email="nathan.coast@blueyonder.co.uk">Nathan Coast</author>
  </properties>

  <body>
    <section name="ejb jar settings">
      <table>
        <tr><th>Property</th><th>Optional?</th><th>Description</th><th>Default</th></tr>
        <tr>
          <td>maven.ejb.index</td>
          <td>Yes</td>
          <td>
            Whether to create an index list to speed up classloading. 
            This is a JDK 1.3+ specific feature. Defaults to false.
          </td>
        </tr>
        <tr>
          <td>maven.ejb.src</td>
          <td>Yes</td>
          <td>
            Root of files to be included within the ejb-jar.
            The same directory structure will be followed within the assembled jar file.
            <strong>
              Please note this is not for your java code or class files, these are other resources.
              Alternatively, you can use the 
              <a href="http://maven.apache.org/reference/project-descriptor.html#resources">resources element</a>
              of the <code>project.xml</code> to specify resource across various
              directories, just as you would for a jar or war project.
            </strong>
          </td>
          <td>
            src/ejb
          </td>
        </tr>
        <tr>
          <td>maven.ejb.includes</td>
          <td>Yes</td>
          <td>
			Files to include in ejb
			Note: Files are relative to 
			<code>${maven.build.dest}</code>.
          </td>
          <td>**</td>
        </tr>
        <tr>
          <td>maven.ejb.excludes</td>
          <td>Yes</td>
          <td>
			Files to exclude in ejb
			Note: Files are relative to 
			<code>${maven.build.dest}</code>.
          </td>
          <td>**/package.html</td>
        </tr>
        <tr>
          <td>maven.ejb.client.index</td>
          <td>Yes</td>
          <td>
            Whether to create an index list to speed up classloading. 
            This is a JDK 1.3+ specific feature. Defaults to false.
          </td>
        </tr>
        <tr>
          <td>maven.ejb.client.base.excludes</td>
          <td>Yes</td>
          <td>
            Classes excluded by default from a client ejb jar
          </td>
          <td>
            **/*Bean.class,**/*CMP.class,**/*Session.class
          </td>
        </tr>
        <tr>
          <td>maven.ejb.client.excludes</td>
          <td>Yes</td>
          <td>
            Classes excluded from a client ejb jar
          </td>
          <td>
            None
          </td>
        </tr>
        <tr>
          <td>maven.ejb.manifest</td>
          <td>Yes</td>
          <td>
            Location of the manifest file to be used within the ejb jar file.
          </td>
          <td>
            ${maven.ejb.src}/META-INF/MANIFEST.MF
          </td>
        </tr>
      </table>
    </section>
    <section name="other settings">
      <table>
        <tr><th>Property</th><th>Description</th><th>See</th></tr>
        <tr>
          <td>maven.build.dir</td>
          <td>where the component will be assembled</td>
          <td>
            <A href="../java/properties.html#Other Settings">maven.build.dir</A>
          </td>
        </tr>
        <tr>
          <td>maven.final.name</td>
          <td>The assembled component will be <code>${maven.build.dir}/${maven.final.name}.jar</code></td>
          <td>
            <A href="../java/properties.html#Other Settings">maven.final.name</A>
          </td>
        </tr>
      </table>
    </section>
    <section name="Including Jars in standalone ejb jars">
      <p>
        You must tell Maven what jars you want included in the ejb. This is 
        probably only needed if you are building a standalone ejb jar. This
        is achieved by specifying meta-information in the POM, using the
        following syntax:
      </p>

  <source><![CDATA[
    <dependency>
      <id>jarid</id>
      <version>jarversion</version>
      <properties>
        <ejb.bundle>true</ejb.bundle>
      </properties>
    </dependency>
  ]]></source>

      </section>
    <section name="Generating the manifest Class-Path entry">
      <p>
        To access the classes within other jars (either within the same 
        ear file or embedded within the same ejbjar), you will need to 
        use the manifest Class-Path entry. To generate the classpath 
        for an ejb-jar from the dependencies use this syntax. 
      </p>

  <source><![CDATA[
    <dependency>
      <id>jarid</id>
      <version>jarversion</version>
      <properties>
        <ejb.manifest.classpath>true</ejb.manifest.classpath>
      </properties>
    </dependency>
  ]]></source>

      </section>
  </body>
</document>
