You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by pl...@apache.org on 2003/01/26 07:53:13 UTC

cvs commit: jakarta-turbine-maven/src/plugins-build/appserver/xdocs appserver.xml changes.xml dirlayout.xml futures.xml goals.xml index.xml navigation.xml properties.xml

plynch      2003/01/25 22:53:13

  Added:       src/plugins-build/appserver/xdocs appserver.xml changes.xml
                        dirlayout.xml futures.xml goals.xml index.xml
                        navigation.xml properties.xml
  Log:
  o adding appserver documentation -- needs a good once over before the next release of the plugin as it probably contains a bunch of falsehoods
  
  Revision  Changes    Path
  1.1                  jakarta-turbine-maven/src/plugins-build/appserver/xdocs/appserver.xml
  
  Index: appserver.xml
  ===================================================================
  <?xml version="1.0"?>
  <document>
  
    <properties>
      <author email="plynch@apache.org">Peter Lynch</author>
      <title>Maven J2EE Plug-in: Appserver Notes</title>
    </properties>
  
    <body>
      <section name="Maven J2EE Appserver Control">
      <p>
      This page offers some general information about the appserver control
      features of the J2EE plug-in. Specific details about
      <a href="./goals.html#maven:appserver-install">related targets</a> and
      their <a href="./properties.html#Application Server" >properties</a> can be found elsewhere.
      </p>
      </section>
      <section name="Plug-in Rationale">
      <p>
        When developing a web application (or website for that matter), each developer
        working on the project needs to have an environment to run and test their
        application. Rather than store a complete application server install in source
        control, it is much more feasible to have a centralized install of that
        application server. Then, using only the minimum configuration files the
        developer can control a separate isolated instance of the application server
        on their machine.
      </p>
      <p>
        The Maven J2EE plug-in appserver features use this technique to install and control
        application server instances for your project needs. The appserver
        features <strong>are not</strong> for
        deploying webapps or war files into application servers.
      </p>
      </section>
  
      <section name="Supported Servers">
      <p>
        The following table shows the various appserver versions that are
        supported by the appserver control features of the Maven J2EE plug-in
        and what propety values are required to be set in order for the
        maven:appserver-* targets to work with those versions.
      </p>
      <table>
        <tr>
          <th>Server</th>
          <th>${maven.appserver.name}</th>
          <th>${maven.appserver.version}</th>
          <th>${maven.j2ee.version}</th>
        </tr>
        <tr>
          <td><a href="http://jakarta.apache.org/tomcat">Tomcat 4.x</a></td>
          <td><code>tomcat</code></td>
          <td><code>40</code></td>
          <td><code>12</code> or <code>13</code></td>
        </tr>
      </table>
  
      <p>The following application servers are expected to be supported soon:</p>
      <ul>
        <li><a href="http://enhydra.enhydra.org/">Enhydra</a></li>
        <li><a href="http://www.orionserver.com/">Orion</a></li>
        <li><a href="http://www.caucho.com/products/resin/">Resin</a></li>
        <li><a href="http://www.weblogic.com/">Weblogic</a></li>
      </ul>
      </section>
  
      <section name="Appserver Proxy Build File">
        <p>
        To make life even easier when using the appserver targets, the Maven J2EE
        plug-in includes a proxy build file. This means a file similar to the one
        below is copied to the directory specified by
        <a href="./properties.html#maven.appserver.dir">${maven.appserver.dir}</a>.
        </p>
        <table><tr><th>${maven.appserver.dir}/build.xml</th></tr></table>
        <source><![CDATA[
        <?xml version="1.0"?>
          <project name="Maven Application Server Plugin Proxy" default="install"
          basedir="@basedir@">
  
          <!-- ================================================================== -->
          <!-- Proxy for controlling an installed application server instance     -->
          <!-- ================================================================== -->
  
          <!-- ========================================================== -->
          <!-- Give user a chance to override without editing this file   -->
          <!-- (and without typing -D each time they compile)             -->
          <!-- ========================================================== -->
          <!-- all ant projects specific properties                       -->
          <property file="${user.home}/build.properties" />
          <!-- project/user specific settings                             -->
          <property file="@basedir@/build.properties" />
          <!-- anything here is expected to be project defaults           -->
          <property file="@basedir@/project.properties" />
          <!-- ========================================================== -->
  
          <target name="install">
            <ant antfile="${maven.home}/plugins/j2ee/build.xml"
              target="appserver-install" />
          </target>
  
          <target name="start">
          <ant antfile="${maven.home}/plugins/j2ee/build.xml"
            target="appserver-start" />
          </target>
  
          <target name="stop">
          <ant antfile="${maven.home}/plugins/j2ee/build.xml"
            target="appserver-stop" />
            </target>
  
          </project>]]>
        </source>
        <p>Using this build file, you can run the appserver related targets quickly
        from within your ${maven.appserver.dir} directory. Typing simply</p>
        <source><![CDATA[ant]]></source>
        <p>can stop, re-install, and re-start a started server instance.</p>
      </section>
    </body>
  </document>
  
  
  
  1.1                  jakarta-turbine-maven/src/plugins-build/appserver/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  <?xml version="1.0"?>
  <document>
    <properties>
      <title>Changes</title>
      <author email="dion@multitask.com.au">dIon Gillard</author>
    </properties>
  
    <body>
      <release version="1.1" date="in CVS">
        <action dev="dion" type="fix">
          Updated docs so that they referred to the current release and not
          b5
        </action>
        <action dev="dion" type="fix">
        	Fix for jars not being included in an EAR file
        </action>
        <action dev="dion" type="add">
          Added the new <a href="changes-report.html">changes report</a>.
        </action>
      </release>
    </body>
  </document>
  
  
  
  
  1.1                  jakarta-turbine-maven/src/plugins-build/appserver/xdocs/dirlayout.xml
  
  Index: dirlayout.xml
  ===================================================================
  <?xml version="1.0"?>
  <document>
  
    <properties>
      <author email="dion@multitask.com.au">dIon Gillard</author>
      <title>Maven J2EE Plug-in Directory Layout</title>
    </properties>
  
    <body>
  
      <section name="Rationale">
        <p>
          Having a common directory layout would allow for users familiar
          with one Maven project to immediately feel at home in another
          Maven project. The advantages are analogous to adopting a
          site-wide look-and-feel. Common Maven procedures strengthen the
          Maven brand.
        </p>
        <p>
          The next two sections document the directory layout expected by
          Maven and the directory layout created by Maven.  Please try to
          conform to this structure as much as possible; however, if you
          must these settings can be overridden via properties as
          documented in the <a
          href="http://jakarta.apache.org/turbine/maven/start/integrate.html#Properties">Integration</a> document.
        </p>
      </section>
      <section name="Common Directory Layout">
        <table>
          <tr>
            <th>Directory or file name</th>
            <th>Content</th>
            <th>Comment</th>
          </tr>
          <tr>
            <td>src/webapp</td>
            <td>The base directory under which web applications can be found.</td>
            <td>
              This directory contains the web application to 
              be built. The web application name is passed to maven as the
              property ${maven.j2ee.war.name}
            </td>
          </tr>
        </table>
      </section>
      <section name="Maven-Generated Layout">
        <table>
          <tr>
            <th>Directory name</th>
            <th>Content</th>
            <th>Comment</th>
          </tr>
          <tr>
            <td>target/</td>
            <td>Contains compiled WARs and EARs.</td>
            <td>
              This directory is used by the J2EE Plug-in as the destination of the
              built war and ear files
            </td>
          </tr>
        </table>
      </section>
    </body>
  </document>
  
  
  
  1.1                  jakarta-turbine-maven/src/plugins-build/appserver/xdocs/futures.xml
  
  Index: futures.xml
  ===================================================================
  <?xml version="1.0"?>
  <document>
  
    <properties>
      <author email="dion@multitask.com.au">dIon Gillard</author>
      <author email="plynch@apache.org">Peter Lynch</author>
      <title>Futures for the J2EE Plug-in</title>
    </properties>
  
    <body>
    <section name="Futures">
      <p>
      The following is a list of things that are being contemplated
      for the Maven J2EE Plug-in.
      </p>
      <ol>
        <li>
          We need to have Class-Path entries in generated J2EE EJB jars and 
          such. Quite tricky as it doesn't work the same for all application
          servers (and across versions of them !).
        </li>
        <li>
          Add HTML validation.
        </li>
        <li>
          Add EAR validation.
        </li>
        <li>
          Add validation of Tag libraries to the validate-war goal.
        </li>
        <li>
          Add technology specific validators, e.g. JSP/Turbine/Velocity/Struts
          etc
        </li>
        <li>
          Allow integration with a 'webserver' plugin so that application server
          requests can seamlessly be hooked into the application server.
        </li>
        <li>
          Tie where applicable the appserver instance to other Maven plugins that
          need an application server instance to do their work.
        </li>
     </ol>
     </section>
   </body>
  </document>
  
  
  
  1.1                  jakarta-turbine-maven/src/plugins-build/appserver/xdocs/goals.xml
  
  Index: goals.xml
  ===================================================================
  <?xml version="1.0"?>
  <document>
  
    <properties>
      <author email="dion@multitask.com.au">dIon Gillard</author>
      <author email="kevin@rocketred.com.au">Kevin O'Neill</author>
      <author email="plynch@apache.org">Peter Lynch</author>
      <title>Maven J2EE Plug-in Goals</title>
    </properties>
  
    <body>
      <section name="Overview">
        <p>
          This document describes the supplied 
          <a href="http://jakarta.apache.org/commons/sandbox/jelly/tags.html#jelly:werkz">goals</a>
          that are available when using the J2EE Plug-in with Maven.
        </p>
        <p>
          Please refer to the 
          <a href="../../start/integrate.html">Integration</a> document for
          more information on how to integrate these goals into
          your project.
        </p>
        <p>
          The build file utilizes various properties for default and
          user-configurable settings.  All J2EE Plug-in properties are described
          in the <a href="./properties.html">Properties</a> document.
  
          The rest of this document assumes your project follows the standard
          <a href="dirlayout.html">Directory Layout</a>; however, it is
          possible to override many of these defaults.
        </p>
      </section>
      <section name="J2EE Goals">
        <table>
          <tr><th>Goal</th><th>Description</th></tr>
          <tr>
            <td><a href="#j2ee:validate-war">j2ee:validate-war</a></td>
            <td>Validate a <code>WAR</code> file.</td>
          </tr>
          <tr>
            <td><a href="#j2ee:ejb">j2ee:ejb</a></td>
            <td>Creates an <code>EJB</code>jar file.</td>
          </tr>
          <tr>
            <td><a href="#j2ee:ear">j2ee:ear</a></td>
            <td>Creates an <code>EAR</code> file.</td>
          </tr>
          <tr>
            <td><a href="#j2ee:appserver-install">j2ee:appserver-install</a></td>
            <td>Installs an Application Server instance</td>
          </tr>
          <tr>
            <td><a href="#j2ee:appserver-start">j2ee:appserver-start</a></td>
            <td>Starts an Application Server instance</td>
          </tr>
          <tr>
            <td><a href="#j2ee:appserver-stop">j2ee:appserver-stop</a></td>
            <td>Stops an Application Server instance</td>
          </tr>
          <tr>
            <td><a href="#j2ee:appserver-clean">j2ee:appserver-clean</a></td>
            <td>Safely deletes the Application Server instance installation directory
            specified by the <code><a href="./properties.html">${maven.appserver.dir}</a></code>
            property.</td>
          </tr>
        </table>
        <p/>
        <subsection name="j2ee:validate-war">
          <p>
            The <code>j2ee:validate-war</code> target validates the newly
            produced war file.
          </p>
          <p>
            The validator checks the folowing:
            <ol>
              <li>The war file exists</li>
              <li>It is readable</li>
              <li>The war file has a web.xml (it's only a warning if it
                doesn't exist)</li>
              <li>Servlets defined by a <code>&lt;servlet&gt;</code> tag are loadable
                from the war file and <strong>not</strong> the classpath</li>
              <li>JSPs defined by a <code>&lt;servlet&gt;</code> tag exist in the war
              </li>
              <li>Taglibs defined by a <code>&lt;taglib&gt;</code> have a <code>
                &lt;taglib-location&gt;</code> that exists in the war</li>
              <li>Error pages specified by a <code>&lt;location&gt;</code> nested
                within an <code>&lt;error-page&gt;</code> element must exist in the
                war file</li>
              <li>Login and error pages specified in the <code>&lt;form-login-config
                &gt;</code> element must exist in the war file</li>
            </ol>
          </p>
        </subsection>
        <subsection name="j2ee:ejb">
          <p>
            The <code>j2ee:ejb</code> target generates the <code>ejb</code> jar file
            for the project. Optionally it can also create jars containing the local
            and remote interfaces. The files are produced in the
            <code><a href="../properties.html#Directory Layout Settings">${maven.build.dir}</a>/ejb</code>
            directory and have a name based on the
            <code><a href="properties.html#maven.j2ee.ejb.name">${maven.j2ee.ejb.name}</a></code>
            property.
          </p>
          <p>The files generated are:
            <ul>
              <li><code>${maven.j2ee.ejb.name}.jar</code></li>
              <li><code>${maven.j2ee.ejb.name}-remote.jar</code> <emp>(optional)</emp></li>
              <li><code>${maven.j2ee.ejb.name}-local.jar</code> <emp>(optional)</emp></li>
            </ul>
          </p>
          <p>
            Maven also includes the license file, LICENSE.txt, if it exists, in
            the META-INF directory.
          </p>
          <p>
            The contents of the ejb file include:
          </p>
          <table>
            <tr><th>Item</th><th>Description</th></tr>
            <tr>
              <td>ejb-jar.xml</td>
              <td>
                A J2EE enterprise bean deployment descriptor, which
                is placed in the root of the resulting ear file.
                The <code><a href="properties.html#maven.j2ee.ejb.conf.dir">
                ${maven.j2ee.ejb.conf.dir}</a></code> and associated includes and
                excludes properties defines the location of this file.
              </td>
            </tr>
            <tr>
              <td>Classes</td>
              <td>
                The files in the <code><a href="../properties.html#Directory Layout Settings">${maven.build.dest}</a></code>
                directory to be included is specified using the
                <code><a href="properties.html#maven.j2ee.ejb.includes">${maven.j2ee.ejb.includes}</a></code>
                and <code><a href="properties.html#maven.j2ee.ejb.excludes">${maven.j2ee.ejb.excludes}</a></code>
                properties.
              </td>
            </tr>
            <tr>
              <td>Meta-Inf</td>
              <td>
                Files to be included the <code>META-INF</code> directory of the ejb
                jar file may be specified using the
                <code><a href="properties.html#maven.j2ee.ejb.conf.dir">
                ${maven.j2ee.ejb.conf.dir}</a></code>,
                <code><a href="properties.html#maven.j2ee.ejb.conf.includes">
                ${maven.j2ee.ejb.conf.includes}</a></code> and
                <code><a href="properties.html#maven.j2ee.ejb.conf.excludes">
                ${maven.j2ee.ejb.conf.excludes}</a></code> properties.
              </td>
            </tr>
          </table>
        </subsection>
        <subsection name="j2ee:ear">
          <p>
            The <code>j2ee:ear</code> target generates an ear file for the
            project. The ear file is produced in the
            <code><a href="../properties.html#Directory Layout Settings">${maven.build.dir}</a></code>
            directory and has a name defined by the
            <code><a href="properties.html#maven.j2ee.ear.name">${maven.j2ee.ear.name}</a></code>
            property.
          </p>
          <p>
            Maven also includes the license file, LICENSE.txt, if it exists, under
            the directory META-INF.
          </p>
          <p>
            The contents of the ear file include:
          </p>
          <table>
            <tr><th>Item</th><th>Description</th></tr>
            <tr>
              <td>application.xml</td>
              <td>
                A J2EE enterprise application deployment descriptor, which
                is placed in the META-INF of the resulting ear file.
                The <code><a href="properties.html#maven.j2ee.ear.appxml">${maven.j2ee.ear.appxml}</a></code>
                property defines the location of this file. It defaults to 
                <code>src/application.xml</code>
              </td>
            </tr>
            <tr>
              <td>Other Content</td>
              <td>
                Any dependencies specified in your <code>project.xml</code>
                may be included by adding the ear.bundle.jar property to the 
                properties, e.g.
                <source><![CDATA[
  <dependency>
    <id>CustomerEjb</id>
    <version>2.4</version>
    <properties>
      <ear.bundle.jar>true</ear.bundle.jar>
    </properties>
  </dependency>
                ]]></source>
              </td>
            </tr>
          </table>
        </subsection>
  
        <!-- j2ee:appserver-* targets ======================================= -->
  
        <subsection name="j2ee:appserver-install">
          <p>
            The <code>j2ee:appserver-install</code> target installs the minimum
            directory and file structure necessary for an individual application
            server instance. Once the structure is created inside the
            directory specified by <a href="properties.html#maven.appserver.dir">${maven.appserver.dir}</a>
            , configuration files are installed using the copy task and the filter
            mechanism built into <a href="http://jakarta.apache.org/ant">Ant</a>.
            The exact work done by this target is specific to the
            name and version of the application server you specify using
            <a href="properties.html#maven.appserver.name">${maven.appserver.name}</a>
            and <a href="properties.html#maven.appserver.version">${maven.appserver.version}</a>
            properties.
          </p>
          <p>
            Optionally, you can invoke the <code>install</code> target of the
            Ant build.xml file copied to ${maven.appserver.dir} instead. See the
            <a href="appserver.html#Appserver Proxy Build File">appserver proxy build file</a> for more
            information.
          </p>
          <p>
            During the configuration process, all
            <a href="./properties.html#Application Server">maven.appserver.* properties</a>
            are used as filter tokens while files in
            ${maven.conf.dir}/${maven.appserver.name}${maven.appserver.version} are
            copied to ${maven.appserver.dir}. By default, certain files are
            excluded from copying to ${maven.appserver.dir}. Files excluded are:
           </p>
           <ul>
              <li>**/web.xml/**</li>
            </ul>
          <p>
            This allows you to keep you webapp specific conf files in the same
            directory and not have them installed with this target needlessly.
          </p>
          <p>
             Your configuration files may require additional processing ( using additional
             filter tokens for example). In that case you can use the
             <a href="properties.html#maven.appserver.post-appserver-install.buildFile">maven-post-appserver-install</a>
             callback target to re-configure files.
          </p>
          <p>
            This target has different behavior
            depending on the current status of the application server. The
            behavior is defined by the following rules:
          </p>
          <table>
            <tr><th>Server Status</th><th>Behavior</th></tr>
            <tr>
              <td>Not Installed</td>
              <td>
                Install and configure the application server.
              </td>
            </tr>
            <tr>
              <td>Installed and stopped</td>
              <td>
                 Re-install/re-configure the application server.
              </td>
            </tr>
            <tr>
              <td>Installed and started</td>
              <td>
                Stop, re-install/re-configure, re-start the application server.
              </td>
            </tr>
          </table>
          <p><strong>Note:</strong> In all situations, the <code>j2ee:appserver-install</code>
          target will overwrite existing appserver configuration files already
          installed. Maven does this because it cannot know if the you have changed
          your <a href="properties.html#Application Server">maven.appserver.* related properties</a>,
          so it always re-configures the configuration files. Since this
          operation has low overhead, it is considered a feature that allows dynamic
          updates to your appserver related property values.</p>
        </subsection>
  
        <subsection name="j2ee:appserver-start">
          <p>
            The <code>j2ee:appserver-start</code> target
            attempts to start the application server instance you have specified
            via properties.
          </p>
          <p>Optionally, you can invoke the <code>start</code> target of the
          Ant build.xml file copied to ${maven.appserver.dir} instead. See the
          <a href="appserver.html#Appserver Proxy Build File">appserver proxy build file</a> for more
          information.
          </p>
          <p>
            This target will cause two processes to run. One process will
            represent the running of the Ant build file for the Maven target.
            The other will be the forked JVM that actually starts the application
            server instance.
          </p>
          <p>
            If you don't want the processes to block your current terminal,
            you can execute the call to this target in the background using the
            traditional '&amp;' directive on unix-like systems.
          </p>
          <p> For example, to run the server in the background, go to your
          ${maven.appserver.dir} directory and type:</p>
          <source><![CDATA[ant start &]]></source>
          <p>
            This target has different behavior
            depending on the current status of the application server. The
            behavior is defined by the following rules:
          </p>
          <table>
            <tr><th>Server Status</th><th>Behavior</th></tr>
            <tr>
              <td>Not Installed</td>
              <td>
                Install/configure, then start the application server.
              </td>
            </tr>
            <tr>
              <td>Installed and stopped</td>
              <td>
                 Start the application server.
              </td>
            </tr>
            <tr>
              <td>Installed and started</td>
              <td>
                Stop and then re-start the application server. This is useful for
                application servers that are not set to auto-reload resources.
              </td>
            </tr>
          </table>
        </subsection>
  
        <subsection name="j2ee:appserver-stop">
          <p>
            The <code>j2ee:appserver-stop</code> target
            attempts to stop the application server instance you have specified
            via the <a href="properties.html">maven.appserver.* properties</a>.
          </p>
          <p>Optionally, you can invoke the <code>stop</code> target of the
          Ant build.xml file copied to ${maven.appserver.dir} instead. See the
          <a href="appserver.html#Appserver Proxy Build File">appserver proxy build file</a> for more
          information.
          </p>
          <p>
            This target only has relevance if the application server instance
            is actually started. All other situations do nothing.
          </p>
        </subsection>
  
  
        <subsection name="j2ee:appserver-clean">
          <p>
            The <code>j2ee:appserver-clean</code> target
            attempts to safely delete the directory specified by
            ${maven.appserver.dir}.
          </p>
          <p>
            This target has different behavior
            depending on the current status of the application server. The
            behavior is defined by the following rules:
          </p>
          <table>
            <tr><th>Server Status</th><th>Behavior</th></tr>
            <tr>
              <td>Installed and stopped</td>
              <td>
                 Deletes the directory specified by ${maven.appserver.dir}.
              </td>
            </tr>
            <tr>
              <td>Installed and started</td>
              <td>
                Stop the application server instance and then delete the directory
                specified by ${maven.appserver.dir}.
              </td>
            </tr>
          </table>
        </subsection>
      </section>
    </body>
  </document>
  
  
  
  1.1                  jakarta-turbine-maven/src/plugins-build/appserver/xdocs/index.xml
  
  Index: index.xml
  ===================================================================
  <?xml version="1.0"?>
  <document>
  
    <properties>
      <title>Maen J2EE Plug-in</title>
      <author email="dion@multitask.com.au">dIon Gillard</author>
      <author email="plynch@apache.org">Peter Lynch</author>
    </properties>
  
    <body>
      <section name="Maven J2EE Plug-in">
        <p>
          This document provides an overview of the reference section
          for the Maven J2EE Plug-in.
          The documents presented here are references, if you are looking
          for more verbose usage material, please refer to the <a
          href="../../start/index.html">Getting Started</a> section.
        </p>
  
        <subsection name="Overview of the J2EE Plug-in Reference Documentation">
          <table>
            <tr><th>Document</th><th>Description</th></tr>
            <tr><td><a href="goals.html">Goals</a></td>
              <td>
                This document provides detailed information on the various
                goals that are available as part of the Maven J2EE Plug-in.
              </td>
            </tr>
            <tr><td><a href="properties.html">Properties</a></td>
              <td>
                The behavior of the Maven J2EE Plug-in can be altered via numerous
                properties.  This document describes each property
                available as the default used.
              </td>
            </tr>
            <tr><td><a href="dirlayout.html">Directory Layout</a></td>
              <td>
                The preferred directory layout structure is documented
                here.  This is a useful document if you are trying to
                determine what a particular component of your directory
                hierarchy is used for.
              </td>
            </tr>
            <tr><td><a href="appserver.html">Appserver Notes</a></td>
              <td>
                <p>
                  This page contains additional reference material regarding the application server (
                  appserver ) control features of the Maven J2EE plugin.
                </p>
                <p>
                  For additional help in understanding what the appserver features of the
                  Maven J2EE plugin are, look at the
                  <a href="properties.html#Application Server">J2EE plug-in properties</a>
                  and <a href="./goals.html#maven:appserver-install">J2EE build file</a>
                  documents.
                </p>
              </td>
            </tr>
            <tr><td><a href="futures.html">Futures</a></td>
              <td>
                These are the current thoughts on additional items
                that could or should be added to the plug-in.
                They may or may not make it to an actual task list of a
                developer.
              </td>
            </tr>
          </table>
        </subsection>
      </section>
   </body>
  </document>
  
  
  
  1.1                  jakarta-turbine-maven/src/plugins-build/appserver/xdocs/navigation.xml
  
  Index: navigation.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <project name="Maven">
  
    <title>Maven</title>
  
    <body>
      <links>
        <item name="Maven"                   href="http://jakarta.apache.org/turbine/maven/"/>
      </links>
      <menu name="Overview">
        <item name="Goals"               href="/goals.html"/>
        <item name="Properties"          href="/properties.html"/>
        <item name="Directory Layout"    href="/dirlayout.html"/>
        <item name="Appserver Notes"     href="/appserver.html"/>
        <item name="Futures"             href="/futures.html"/>
      </menu>
    </body>
  </project>
  
  
  
  1.1                  jakarta-turbine-maven/src/plugins-build/appserver/xdocs/properties.xml
  
  Index: properties.xml
  ===================================================================
  <?xml version="1.0"?>
  <document>
  
    <properties>
      <author email="dion@multitask.com.au">dIon Gillard</author>
      <author email="kevino@jacus.com.au">Kevin O'Neill</author>
      <author email="plynch@apache.org">Peter Lynch</author>
      <title>Maven J2EE Plug-in Properties Documentation</title>
    </properties>
  
    <body>
      <section name="Maven J2EE Plug-in Properties">
        <p>
          The following is an overview of the various properties (and
          default values) used by the Maven J2EE Plug-in <a
            href="goals.html">goals</a>.  These properties
          control various aspects of the J2EE build.  Most of these
          properties are optional and have defaults; however, there are
          mandatory properties that must be set as described in this document.
        </p>
        <p>
          These properties can be overridden to change the default behavior of
          the Maven J2EE Plug-in.  If you need to override any of these properties,
          please refer to the
          <a href="http://jakarta.apache.org/turbine/maven/start/integrate.html">Integration</a>
          document for the preferred method of setting properties in your project.
        </p>
        <table>
          <tr><th>Section</th><th>Description</th></tr>
          <tr>
            <td><a href="#General Settings">General Settings</a></td>
            <td>
              These properties specify various settings that may be used in any
              J2EE Plug-in target.
            </td>
          </tr>
          <tr>
            <td><a href="#War Settings">War</a></td>
            <td>
              These properties specify various settings that control the build
              of a war file by the J2EE Plug-in.
            </td>
          </tr>
          <tr>
            <td><a href="#EJB Settings">EJB</a></td>
            <td>
              These properties specify various settings that control the build
              of a ejb jar by the J2EE Plug-in.
            </td>
          </tr>
          <tr>
            <td><a href="#Ear Settings">Ear</a></td>
            <td>
              These properties specify various settings that control the build
              of an ear file by the J2EE Plug-in.
            </td>
          </tr>
          <tr>
            <td><a href="#Application Server">Appserver</a></td>
            <td>
              These properties detail what application server instance you would
              like to install and control for your project and how to configure
              it.
            </td>
          </tr>
        </table>
      </section>
  
  
      <section name="General Settings" >
      <table>
          <tr><th>Property</th><th>Optional?</th><th>Description</th></tr>
          <tr>
            <td><a name="maven.j2ee.version">maven.j2ee.version</a></td>
            <td>
              No for the "appserver:install" goal.
              Otherwise, Yes.
            </td>
            <td>
              Specifies the version of J2EE you are trying to use. Valid values are:
              <ul>
                <li>12</li>
                <li>13</li>
              </ul>
              The above values represent version 1.2 and 1.3 respectively.
              The value of this property is especially important for the
              <a href="appserver.html#Supported Servers">supported servers</a>
              used with the appserver control features of this plugin.
            </td>
          </tr>
      </table>
      </section>
  
  
      <section name="War Settings">
        <table>
          <tr><th>Property</th><th>Optional?</th><th>Description</th></tr>
          <tr>
            <td><a name="maven.j2ee.war.name">maven.j2ee.war.name</a></td>
            <td>No</td>
            <td>
              Specifies the name of the web application to be built.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.war.src">maven.j2ee.war.src</a></td>
            <td>Yes</td>
            <td>
              Specifies the directory in the local file system that is
              used as the base directory for finding web applications. It defaults
              to <code><a href="../properties.html#Directory Layout Settings">${maven.src.dir}</a>/webapps</code>
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.war.content">maven.j2ee.war.content</a></td>
            <td>Yes</td>
            <td>
              Specifies the directory in the local file system that holds
              web content to be placed in the war file. It defaults
              to ${maven.j2ee.war.src}/${maven.j2ee.war.name}
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.war.classes.includes">maven.j2ee.war.classes.includes</a></td>
            <td>Yes</td>
            <td>
              Specifies the pattern of files in the directory specified by
              <code><a href="../properties.html#Directory Layout Settings">${maven.build.dest}</a></code>
              to be included in the <code>/WEB-INF/classes</code> of the resulting
              war file. It defaults to <code>**</code>, that is, all files.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.war.classes.excludes">maven.j2ee.war.classes.excludes</a></td>
            <td>Yes</td>
            <td>
              Specifies the pattern of files in the directory specified by
              <code><a href="../properties.html#Directory Layout Settings">${maven.build.dest}</a></code>
              that are <strong>not</strong> to be included in the
              <code>/WEB-INF/classes</code> of the resulting war file.
              It defaults to <code>**/package.html</code>.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.war.lib.includes">maven.j2ee.war.lib.includes</a></td>
            <td>Yes</td>
            <td>
              <p>WARNING: This property is temporarily unused.</p>
              Specifies the pattern of files in the
              <a href="../project-descriptor.html#dependencies">project dependencies</a>
              to be included in the <code>/WEB-INF/lib</code> of the resulting
              war file. It defaults to <code>*.jar</code>, that is, all dependencies.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.war.lib.excludes">maven.j2ee.war.lib.excludes</a></td>
            <td>Yes</td>
            <td>
              <p>WARNING: This property is temporarily unused.</p>
              Specifies the pattern of files in the
              <a href="http://jakarta.apache.org/turbine/maven/reference/project-descriptor.html#dependencies">project dependencies</a>
              not to be included in the <code>/WEB-INF/lib</code> of the resulting
              war file. It defaults to blank, that is, no dependencies are excluded.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.war.webxml">maven.j2ee.war.webxml</a></td>
            <td>Yes</td>
            <td>
              Specifies the deployment descriptor to be used when building the war
              file. It will be placed in <code>/WEB-INF/web.xml</code> of the resulting
              war file. It defaults to <code><a href="../properties.html#Directory Layout Settings">${maven.conf.dir}</a>/${maven.j2ee.war.name}-web.xml</code>
            </td>
          </tr>
        </table>
      </section>
  
      <section name="EJB Settings">
        <table>
          <tr><th>Property</th><th>Optional?</th><th>Description</th></tr>
          <tr>
            <td><a name="maven.j2ee.ejb.name">maven.j2ee.ejb.name</a></td>
            <td>No</td>
            <td>
              Specifies the name of the ejb jar to be built.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.ejb.conf.dir">maven.j2ee.ejb.conf.dir</a></td>
            <td>No</td>
            <td>
              Specifies the directory to be used to find the deployment descriptor
              and other files to be placed in <code>META-INF</code> directory of
              the resulting  ejb jar. It defaults to
              <code><a href="../properties.html#Directory Layout Settings">${maven.conf.dir}</a>/<a href="properties.html#maven.j2ee.ejb.name">${maven.j2ee.ejb.name}</a></code>
            </td>
          </tr>
          <tr>
            <td>
              <a name="maven.j2ee.ejb.conf.includes">maven.j2ee.ejb.conf.includes
              </a>
            </td>
            <td>Yes</td>
            <td>
              Specifies the a pattern of files to be included in the
              <code>META-INF</code> directory of the resulting ejb jar, relative
              to the <code>${maven.j2ee.ejb.conf.dir}</code>. It defaults to
              <code>ejb-jar.xml</code>.
            </td>
          </tr>
          <tr>
            <td>
              <a name="maven.j2ee.ejb.conf.excludes">maven.j2ee.ejb.conf.excludes
              </a>
            </td>
            <td>Yes</td>
            <td>
              Specifies the a pattern of files to be excluded from the
              <code>META-INF</code> directory of the resulting ejb jar, relative
              to the <code>${maven.j2ee.ejb.conf.dir}</code>. It defaults to
              blank.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.ejb.includes">maven.j2ee.ejb.includes</a></td>
            <td>Yes</td>
            <td>
              Specifies the pattern of files in the
              <a href="../properties.html#Directory Layout Settings">${maven.build.dest}</a>
              directory to be included in the generated ejb jar. Defaults to <code>**/*</code>.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.ejb.excludes">maven.j2ee.ejb.excludes</a></td>
            <td>Yes</td>
            <td>
              Specifies the pattern of compiled class files to be <strong>excluded</strong>
              from the generated ejb jar. Defaults to <code>**/package.html</code>.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.ejb.local.includes">maven.j2ee.ejb.local.includes</a></td>
            <td>Yes</td>
            <td>
              If this property exists then a jar file with the name
              <code><a href="properties.html#maven.j2ee.ejb.name">${maven.j2ee.ejb.name}</a>-local.jar</code>
              containing the matching files will be generated in
              <code><a href="../properties.html#Directory Layout Settings">${maven.build.dir}</a>/ejb</code>.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.ejb.local.excludes">maven.j2ee.ejb.local.excludes</a></td>
            <td>Yes</td>
            <td>
              Files to be <strong>excluded</strong> from the
              <code><a href="properties.html#maven.j2ee.ejb.name">${maven.j2ee.ejb.name}</a>-local.jar</code>
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.ejb.remote.includes">maven.j2ee.ejb.remote.includes</a></td>
            <td>Yes</td>
            <td>
              If this property exists then a jar file with the name
              <code><a href="properties.html#maven.j2ee.ejb.name">${maven.j2ee.ejb.name}</a>-remote.jar</code>
              containing the matching files will be generated in
              <code><a href="../properties.html#Directory Layout Settings">${maven.build.dir}</a>/ejb</code>.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.ejb.remote.excludes">maven.j2ee.ejb.remote.excludes</a></td>
            <td>Yes</td>
            <td>
              Files to be <strong>excluded</strong> from the
              <code><a href="properties.html#maven.j2ee.ejb.name">${maven.j2ee.ejb.name}</a>-remote.jar</code>
            </td>
          </tr>
        </table>
      </section>
  
  
      <section name="Ear Settings">
        <table>
          <tr><th>Property</th><th>Optional?</th><th>Description</th></tr>
          <tr>
            <td><a name="maven.j2ee.ear.name">maven.j2ee.ear.name</a></td>
            <td>No</td>
            <td>
              Specifies the name of the enterprise application to be built.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.ear.includes">maven.j2ee.ear.includes</a></td>
            <td>Yes</td>
            <td>
              Specifies the pattern of files in the
              <code><a href="../properties.html#Directory Layout Settings">${maven.build.dir}</a></code>
              directory to be included in the resulting ear file. It defaults to
              <code>*.jar, *.war</code>, that is, all jar and war files.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.ear.excludes">maven.j2ee.ear.excludes</a></td>
            <td>Yes</td>
            <td>
              Specifies the pattern of files in the
              <code><a href="../properties.html#Directory Layout Settings">${maven.build.dir}</a></code>
              directory that are not to be included in the resulting ear file.
              It defaults to blank, that is, nothing is excluded.
            </td>
          </tr>
          <tr>
            <td><a name="maven.j2ee.ear.appxml">maven.j2ee.ear.appxml</a></td>
            <td>Yes</td>
            <td>
              Specifies the deployment descriptor to be used when building the ear
              file. It will be placed in <code>/application.xml</code> of the resulting
              ear file. It defaults to <code><a href="../properties.html#Directory Layout Settings">${maven.conf.dir}</a>/${maven.j2ee.ear.name}-application.xml</code>
            </td>
          </tr>
  
        </table>
      </section>
  
  
  
      <section name="Application Server">
        <p> Although application server ( appserver ) instance control is part
        of the J2EE plugin, all appserver related properties begin with
        the "maven.appserver" prefix. This is indicative of the large scope of
        functionality within the appserver targets.
        </p>
        <table>
          <tr><th>Property</th><th>Optional?</th><th>Description</th></tr>
  
          <tr>
            <td><a name="maven.appserver.name">maven.appserver.name</a></td>
            <td>No</td>
            <td>
              Specifies the name of the application server to install and control
              for your project.
              <p />
              Please refer to the <a href="appserver.html#Supported Servers">supported servers</a>
              table for a current list of supported appservers and the ${maven.appserver.name}
              value they use use.
            </td>
          </tr>
  
          <tr>
            <td><a name="maven.appserver.version">maven.appserver.version</a></td>
            <td>No</td>
            <td>
              Specifies the version of the appserver to install and control
              for your project. Please refer to the
              <a href="appserver.html#Supported Servers">supported servers</a>
              table for a current list of supported appservers and the
              ${maven.appserver.version} value they use.
            </td>
          </tr>
  
          <tr>
            <td><a name="maven.appserver.home">maven.appserver.home</a></td>
            <td>No</td>
            <td>
              Specifies the directory where the shared installation of the appserver
              resides. This should be the home of the appserver specified by
              <a href="#maven.appserver.name">${maven.appserver.name}</a>
              and <a href="#maven.appserver.version">${maven.appserver.version}</a>.
            </td>
          </tr>
  
          <tr>
            <td><a name="maven.appserver.dir">maven.appserver.dir</a></td>
            <td>No</td>
            <td>
              Specifies the directory where the appserver instance is installed
              during the "appserver:install" goal.
              Defaults to be ${basedir}/server .
            </td>
          </tr>
  
          <tr>
            <td><a name="maven.appserver.host">maven.appserver.host</a></td>
            <td>No</td>
            <td>
              Specifies the default host to use to access the started server
              instance. Defaults to 'localhost'.
            </td>
          </tr>
  
          <tr>
            <td><a name="maven.appserver.port.http">maven.appserver.port.http</a></td>
            <td>No</td>
            <td>
              Specifies the HTTP port number to use to access the started server
              instance. Defaults to 8080.
            </td>
          </tr>
  
          <tr>
            <td><a name="maven.appserver.url">maven.appserver.url</a></td>
            <td>No</td>
            <td>
              The URL that is used to test if your appserver instance is running.
              This URL must point to a target that will return a response code &lt; 400
              when your appserver instance is started. Default value is
              http://${maven.appserver.host}:${maven.appserver.port.http}/index.html
            </td>
          </tr>
  
          <tr>
            <td><a name="maven.appserver.port.https">maven.appserver.port.https</a></td>
            <td>Yes</td>
            <td>
              Specifies the HTTPS port number to use to access the started server
              instance using SSL. Defaults to 444.
            </td>
          </tr>
  
          <tr>
            <td><a name="maven.appserver.port.one">maven.appserver.port.one</a></td>
            <td>Yes</td>
            <td>
              Optional additional port you can specify when configuring appserver files during
              install.
            </td>
          </tr>
          <tr>
            <td><a name="maven.appserver.port.two">maven.appserver.port.two</a></td>
            <td>Yes</td>
            <td>
              Optional additional port you can specify when configuring appserver files during
              install.
            </td>
          </tr>
          <tr>
            <td><a name="maven.appserver.port.three">maven.appserver.port.three</a></td>
            <td>Yes</td>
            <td>
              Optional additional port you can specify when configuring appserver files during
              install.
            </td>
          </tr>
  
          <tr>
            <td><a name="maven.appserver.classpath">maven.appserver.classpath</a></td>
            <td>Yes</td>
            <td>
              A <a href="http://jakarta.apache.org/ant/manual/using.html#path">path-like</a>
              value that can specify resources to make available as
              part of the classpath of the JVM used when controlling your appserver instance.
              For example, you may have several webapps running in the same container
              that require a JDBC driver be available. Adding a reference to that
              jar here will put it in the classpath of the JVM used to start
              your appserver.
              <p/>
              An example of a valid value might be:
              <p/>
              <code>/jars/database.jar;/jars/foobar.jar</code>
              <p/>
              Path seperators are automatically converted to their system correct values.
              By default, there are no additional paths. <strong>Jars required to control an appserver
              are automatically built-in and do not need to be added here.</strong>
            </td>
          </tr>
        </table>
      </section>
    </body>
  </document>