<?xml version="1.0"?>
<document url="http://openejb.sf.net/embedded.xml" toc="none">
  <properties>
    <title>OpenEJB Validation Tool</title>
  </properties>
  <body>

<section title="NAME" ref-id="name">
<p>
openejb validate - OpenEJB Validation Tool
</p>
</section>
<section title="SYNOPSIS" ref-id="synopsis">
<p>
openejb validate [options] jarfiles
</p>
</section>

<section title="NOTE" ref-id="note">
<p>
The OpenEJB Validation tool must be executed from the OPENEJB_HOME directory.  This is the 
directory where OpenEJB was installed or unpacked.  For for the remainder of this document
we will assume you unpacked OpenEJB into the directory C:\openejb.
</p>
<p>
In Windows, the validation tool can be executed as follows:
</p>
<p>
<command>C:\openejb> openejb validate -help</command>
</p>
<note>
    There is a bug in the openejb.bat script of OpenEJB 0.9.0 that doesn't allow you to execute the validate command as above.  For that release, Windows users can execute the following command:<br/><command>C:\openejb> bin\validate.bat -help</command>
</note>
<p>
In UNIX, Linux, or Mac OS X, the deploy tool can be executed as follows:
</p>
<p>
<command>[user@host openejb]# ./openejb.sh validate -help</command>
</p>
<p>
Depending on your OpenEJB version, you may need to change execution bits to
make the scripts executable.  You can do this with the following command.
</p>
<p>
<command>[user@host openejb]# chmod 755 openejb.sh bin/*.sh</command>
</p>
<p>
From here on out, it will be assumed that you know how to execute the right openejb script
for your operating system and commands will appear in shorthand as show below.
</p>
<p>
<command>openejb validate -help</command>
</p>

</section>

<section title="DESCRIPTION" ref-id="description">
<p>
The validation tool currently checks for the following things:
</p>
<ul>
<li>Does the Jar have all the ejb-class class files</li>
<li>Does the Jar have all the home class files</li>
<li>Does the Jar have all the remote class files</li>
<li>Is the ejb-class a sub-interface of SessionBean or EntityBean</li>
<li>Is the home a sub-interface of EJBHome</li>
<li>Is the remote a sub-interface of EJBObject</li>
<li>Are all the methods in the remote interface implemented in the ejb-class</li>
<li>Are there create methods in the home interface</li>
<li>Are the create methods in the home interface implemented in the ejb-class</li>
<li>Are the required post create methods in the ejb-class of EntityBeans</li>
<li>Are there any create methods in the ejb-class, but not in the home interface</li>
</ul>
<p>
More checks will be added in the future.
</p>
</section>

<section title="OPTIONS" ref-id="options">
<p>
<options>

<option flag="-v">Sets the output level to 1.  This will output just the minumum details on each failure.</option>
        
<option flag="-vv">Default. Sets the output level to 2. Outputs one line summaries of each failure. This is the default output level.</option>

<option flag="-vvv">Sets the output level to 3. Outputs verbose details on each failure, usually with details on how to correct the failures.</option>
         
<option flag="-xml">Outputs information in well-formed XML.</option>
        
<option flag="-nowarn">Suppresses warnings.</option>

<option flag="-version">Print the version.</option>

<option flag="-help">Print this help message.</option>

<option flag="-examples">Show examples of how to use the options.</option>

</options>
</p>
</section>
</body>
</document>
