You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by bu...@apache.org on 2011/07/10 06:35:00 UTC

svn commit: r792464 [3/23] - /websites/staging/openejb/trunk/content/

Added: websites/staging/openejb/trunk/content/august2007.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/august2007.cwiki (added)
+++ websites/staging/openejb/trunk/content/august2007.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,7 @@
+Work on the OpenEJB 3.0 release is coming to a close. Documentation remains the largest outstanding item. A complete audit of all documentation was completed and concrete steps to improve it were detailed.  Progress on updating the out-of-date documentation has already been made.
+
+The usability of the codebase has matured significantly through many contributions from the community and very little remains to be completed in that regard.
+
+Developer activity is up. We are delighted to have voted in a dedicated contributor, Karan Malhi, as a new committer and he has proudly excepted. No CLA is on file yet.
+
+User list activity overall remains low, though some new faces have started to pop up whom we are hoping can provide us with some good pre-release feedback.  We hoping to see a measurable increase in user list activity post release.

Added: websites/staging/openejb/trunk/content/august2007.html
==============================================================================
--- websites/staging/openejb/trunk/content/august2007.html (added)
+++ websites/staging/openejb/trunk/content/august2007.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title>August2007</title>
+    <link rel="stylesheet" type="text/css" media="screen" href="http://incubator.apache.org/lucy/css/lucy.css">
+  </head>
+
+  <body>
+
+    <div id="lucy-rigid_wrapper">
+
+      <div id="lucy-top" class="container_16 lucy-white_box_3d">
+
+        <div id="lucy-logo_box" class="grid_8">
+          <a href="/OpenEJB/"><img src="http://openejb.apache.org/images/logo_openejb.gif" alt="Apache OpenEJB™"></a>
+        </div> <!-- lucy-logo_box -->
+
+        <div #id="lucy-top_nav_box" class="grid_8">
+          <div id="lucy-top_nav_bar" class="container_8">
+            <ul>
+              <li><a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a></li>
+              <li><a href="http://www.apache.org/licenses/" title="License">License</a></li>
+              <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
+              <li><a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+              <li><a href="http://www.apache.org/security/ " title="Security">Security</a></li>
+            </ul>
+          </div> <!-- lucy-top_nav_bar -->
+          <p><a href="http://www.apache.org/">Apache</a>&nbsp;&raquo&nbsp;<a href="/">Incubator</a></p>
+          <form name="lucy-top_search_box" id="lucy-top_search_box" action="http://www.google.com/search" method="get">
+            <input value="*.apache.org" name="sitesearch" type="hidden"/>
+            <input type="text" name="q" id="query" style="width:85%">
+            <input type="submit" id="submit" value="Search">
+          </form>
+        </div> <!-- lucy-top_nav_box -->
+
+        <div class="clear"></div>
+
+      </div> <!-- lucy-top -->
+
+      <div id="lucy-main_content" class="container_16 lucy-white_box_3d">
+
+        <div class="grid_4" id="lucy-left_nav_box">
+          <h6>About</h6>
+            <ul>
+              <li><a href="/lucy/">Welcome</a></li>
+              <li><a href="/lucy/faq.html">FAQ</a></li>
+              <li><a href="/lucy/people.html">People</a></li>
+            </ul>
+          <h6>Resources</h6>
+            <ul>
+              <li><a href="/lucy/download.html">Download</a></li>
+              <li><a href="/lucy/mailing_lists.html">Mailing Lists</a></li>
+              <li><a href="/lucy/docs/perl/">Documentation</a></li>
+              <li><a href="http://wiki.apache.org/lucy/">Wiki</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/LUCY">Issue Tracker</a></li>
+              <li><a href="/lucy/version_control.html">Version Control</a></li>
+            </ul>
+          <h6>Related Projects</h6>
+            <ul>
+              <li><a href="http://lucene.apache.org/java/">Lucene</a></li>
+              <li><a href="http://lucene.apache.org/solr/">Solr</a></li>
+              <li><a href="http://incubator.apache.org/lucene.net/">Lucene.NET</a></li>
+              <li><a href="http://lucene.apache.org/pylucene/">PyLucene</a></li>
+              <li><a href="http://lucene.apache.org/openrelevance/">Open Relevance</a></li>
+            </ul>
+        </div> <!-- lucy-left_nav_box -->
+
+        <div id="lucy-main_content_box" class="grid_9">
+          <p>Work on the OpenEJB 3.0 release is coming to a close. Documentation remains
+the largest outstanding item. A complete audit of all documentation was
+completed and concrete steps to improve it were detailed.  Progress on
+updating the out-of-date documentation has already been made.</p>
+
+<p>The usability of the codebase has matured significantly through many
+contributions from the community and very little remains to be completed in
+that regard.</p>
+
+<p>Developer activity is up. We are delighted to have voted in a dedicated
+contributor, Karan Malhi, as a new committer and he has proudly excepted.
+No CLA is on file yet.</p>
+
+<p>User list activity overall remains low, though some new faces have started
+to pop up whom we are hoping can provide us with some good pre-release
+feedback.  We hoping to see a measurable increase in user list activity
+post release.</p>
+
+        </div> <!-- lucy-main_content_box --> 
+        <div class="clear"></div>
+
+      </div> <!-- lucy-main_content -->
+
+      <div id="lucy-copyright" class="container_16">
+        <p>Copyright &#169; 2010-2011 The Apache Software Foundation, Licensed under the 
+           <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+           <br/>
+          
+        </p>
+      </div> <!-- lucy-copyright -->
+
+    </div> <!-- lucy-rigid_wrapper -->
+
+  </body>
+</html>

Added: websites/staging/openejb/trunk/content/building-from-source.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/building-from-source.cwiki (added)
+++ websites/staging/openejb/trunk/content/building-from-source.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,32 @@
+h1. Building from source
+
+h3. Checking out the source
+
+To checkout the source, run this command with your subversion client.
+
+{code}
+  svn checkout https://svn.apache.org/repos/asf/openejb/trunk/openejb-eclipse-plugin openejb-eclipse-plugin
+{code}
+
+h3. Building the source
+
+To build the plugin you will need Maven (the build has been tested with Maven 2.0.7). To run the build, issue this command
+{code}
+  mvn -Dassemble clean install
+{code}
+
+You should be aware that this will download any dependencies, including a copy of Eclipse. This will take a while for your first build.
+
+h3. Importing the plugin code into an Eclipse workspace
+
+You can generate the Eclipse projects for the plugins by running the following command
+
+{code}
+  mvn eclipse:clean eclipse:eclipse
+{code}
+
+You can add the M2_REPO classpath variable to your Eclipse workspace by running the following command
+
+{code}
+  mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repo
+{code}

Added: websites/staging/openejb/trunk/content/building-from-source.html
==============================================================================
--- websites/staging/openejb/trunk/content/building-from-source.html (added)
+++ websites/staging/openejb/trunk/content/building-from-source.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title>Building from source</title>
+    <link rel="stylesheet" type="text/css" media="screen" href="http://incubator.apache.org/lucy/css/lucy.css">
+  </head>
+
+  <body>
+
+    <div id="lucy-rigid_wrapper">
+
+      <div id="lucy-top" class="container_16 lucy-white_box_3d">
+
+        <div id="lucy-logo_box" class="grid_8">
+          <a href="/OpenEJB/"><img src="http://openejb.apache.org/images/logo_openejb.gif" alt="Apache OpenEJB™"></a>
+        </div> <!-- lucy-logo_box -->
+
+        <div #id="lucy-top_nav_box" class="grid_8">
+          <div id="lucy-top_nav_bar" class="container_8">
+            <ul>
+              <li><a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a></li>
+              <li><a href="http://www.apache.org/licenses/" title="License">License</a></li>
+              <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
+              <li><a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+              <li><a href="http://www.apache.org/security/ " title="Security">Security</a></li>
+            </ul>
+          </div> <!-- lucy-top_nav_bar -->
+          <p><a href="http://www.apache.org/">Apache</a>&nbsp;&raquo&nbsp;<a href="/">Incubator</a></p>
+          <form name="lucy-top_search_box" id="lucy-top_search_box" action="http://www.google.com/search" method="get">
+            <input value="*.apache.org" name="sitesearch" type="hidden"/>
+            <input type="text" name="q" id="query" style="width:85%">
+            <input type="submit" id="submit" value="Search">
+          </form>
+        </div> <!-- lucy-top_nav_box -->
+
+        <div class="clear"></div>
+
+      </div> <!-- lucy-top -->
+
+      <div id="lucy-main_content" class="container_16 lucy-white_box_3d">
+
+        <div class="grid_4" id="lucy-left_nav_box">
+          <h6>About</h6>
+            <ul>
+              <li><a href="/lucy/">Welcome</a></li>
+              <li><a href="/lucy/faq.html">FAQ</a></li>
+              <li><a href="/lucy/people.html">People</a></li>
+            </ul>
+          <h6>Resources</h6>
+            <ul>
+              <li><a href="/lucy/download.html">Download</a></li>
+              <li><a href="/lucy/mailing_lists.html">Mailing Lists</a></li>
+              <li><a href="/lucy/docs/perl/">Documentation</a></li>
+              <li><a href="http://wiki.apache.org/lucy/">Wiki</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/LUCY">Issue Tracker</a></li>
+              <li><a href="/lucy/version_control.html">Version Control</a></li>
+            </ul>
+          <h6>Related Projects</h6>
+            <ul>
+              <li><a href="http://lucene.apache.org/java/">Lucene</a></li>
+              <li><a href="http://lucene.apache.org/solr/">Solr</a></li>
+              <li><a href="http://incubator.apache.org/lucene.net/">Lucene.NET</a></li>
+              <li><a href="http://lucene.apache.org/pylucene/">PyLucene</a></li>
+              <li><a href="http://lucene.apache.org/openrelevance/">Open Relevance</a></li>
+            </ul>
+        </div> <!-- lucy-left_nav_box -->
+
+        <div id="lucy-main_content_box" class="grid_9">
+          <p><a name="Buildingfromsource-Buildingfromsource"></a></p>
+
+<h1>Building from source</h1>
+
+<p><a name="Buildingfromsource-Checkingoutthesource"></a></p>
+
+<h3>Checking out the source</h3>
+
+<p>To checkout the source, run this command with your subversion client.</p>
+
+<pre><code>  svn checkout
+</code></pre>
+
+<p>https://svn.apache.org/repos/asf/openejb/trunk/openejb-eclipse-plugin
+openejb-eclipse-plugin</p>
+
+<p><a name="Buildingfromsource-Buildingthesource"></a></p>
+
+<h3>Building the source</h3>
+
+<p>To build the plugin you will need Maven (the build has been tested with
+Maven 2.0.7). To run the build, issue this command</p>
+
+<pre><code>  mvn -Dassemble clean install
+</code></pre>
+
+<p>You should be aware that this will download any dependencies, including a
+copy of Eclipse. This will take a while for your first build.</p>
+
+<p><a name="Buildingfromsource-ImportingtheplugincodeintoanEclipseworkspace"></a></p>
+
+<h3>Importing the plugin code into an Eclipse workspace</h3>
+
+<p>You can generate the Eclipse projects for the plugins by running the
+following command</p>
+
+<pre><code>  mvn eclipse:clean eclipse:eclipse
+</code></pre>
+
+<p>You can add the M2_REPO classpath variable to your Eclipse workspace by
+running the following command</p>
+
+<pre><code>  mvn -Declipse.workspace=&lt;path-to-eclipse-workspace&gt;
+</code></pre>
+
+<p>eclipse:add-maven-repo</p>
+
+        </div> <!-- lucy-main_content_box --> 
+        <div class="clear"></div>
+
+      </div> <!-- lucy-main_content -->
+
+      <div id="lucy-copyright" class="container_16">
+        <p>Copyright &#169; 2010-2011 The Apache Software Foundation, Licensed under the 
+           <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+           <br/>
+          
+        </p>
+      </div> <!-- lucy-copyright -->
+
+    </div> <!-- lucy-rigid_wrapper -->
+
+  </body>
+</html>

Added: websites/staging/openejb/trunk/content/card-test.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/card-test.cwiki (added)
+++ websites/staging/openejb/trunk/content/card-test.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,11 @@
+{composition-setup}
+
+{deck:id=My Deck}
+{card:label=Card 1}
+Card 1 contents.
+{card}
+{card:label=Card 2}
+Card 2 contents.
+{card}
+{deck}
+

Added: websites/staging/openejb/trunk/content/card-test.html
==============================================================================
--- websites/staging/openejb/trunk/content/card-test.html (added)
+++ websites/staging/openejb/trunk/content/card-test.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title>Card Test</title>
+    <link rel="stylesheet" type="text/css" media="screen" href="http://incubator.apache.org/lucy/css/lucy.css">
+  </head>
+
+  <body>
+
+    <div id="lucy-rigid_wrapper">
+
+      <div id="lucy-top" class="container_16 lucy-white_box_3d">
+
+        <div id="lucy-logo_box" class="grid_8">
+          <a href="/OpenEJB/"><img src="http://openejb.apache.org/images/logo_openejb.gif" alt="Apache OpenEJB™"></a>
+        </div> <!-- lucy-logo_box -->
+
+        <div #id="lucy-top_nav_box" class="grid_8">
+          <div id="lucy-top_nav_bar" class="container_8">
+            <ul>
+              <li><a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a></li>
+              <li><a href="http://www.apache.org/licenses/" title="License">License</a></li>
+              <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
+              <li><a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+              <li><a href="http://www.apache.org/security/ " title="Security">Security</a></li>
+            </ul>
+          </div> <!-- lucy-top_nav_bar -->
+          <p><a href="http://www.apache.org/">Apache</a>&nbsp;&raquo&nbsp;<a href="/">Incubator</a></p>
+          <form name="lucy-top_search_box" id="lucy-top_search_box" action="http://www.google.com/search" method="get">
+            <input value="*.apache.org" name="sitesearch" type="hidden"/>
+            <input type="text" name="q" id="query" style="width:85%">
+            <input type="submit" id="submit" value="Search">
+          </form>
+        </div> <!-- lucy-top_nav_box -->
+
+        <div class="clear"></div>
+
+      </div> <!-- lucy-top -->
+
+      <div id="lucy-main_content" class="container_16 lucy-white_box_3d">
+
+        <div class="grid_4" id="lucy-left_nav_box">
+          <h6>About</h6>
+            <ul>
+              <li><a href="/lucy/">Welcome</a></li>
+              <li><a href="/lucy/faq.html">FAQ</a></li>
+              <li><a href="/lucy/people.html">People</a></li>
+            </ul>
+          <h6>Resources</h6>
+            <ul>
+              <li><a href="/lucy/download.html">Download</a></li>
+              <li><a href="/lucy/mailing_lists.html">Mailing Lists</a></li>
+              <li><a href="/lucy/docs/perl/">Documentation</a></li>
+              <li><a href="http://wiki.apache.org/lucy/">Wiki</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/LUCY">Issue Tracker</a></li>
+              <li><a href="/lucy/version_control.html">Version Control</a></li>
+            </ul>
+          <h6>Related Projects</h6>
+            <ul>
+              <li><a href="http://lucene.apache.org/java/">Lucene</a></li>
+              <li><a href="http://lucene.apache.org/solr/">Solr</a></li>
+              <li><a href="http://incubator.apache.org/lucene.net/">Lucene.NET</a></li>
+              <li><a href="http://lucene.apache.org/pylucene/">PyLucene</a></li>
+              <li><a href="http://lucene.apache.org/openrelevance/">Open Relevance</a></li>
+            </ul>
+        </div> <!-- lucy-left_nav_box -->
+
+        <div id="lucy-main_content_box" class="grid_9">
+          <p>{composition-setup}</p>
+
+<p>{deck:id=My Deck}
+{card:label=Card 1}
+Card 1 contents.
+{card}
+{card:label=Card 2}
+Card 2 contents.
+{card}
+{deck}</p>
+
+        </div> <!-- lucy-main_content_box --> 
+        <div class="clear"></div>
+
+      </div> <!-- lucy-main_content -->
+
+      <div id="lucy-copyright" class="container_16">
+        <p>Copyright &#169; 2010-2011 The Apache Software Foundation, Licensed under the 
+           <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+           <br/>
+          
+        </p>
+      </div> <!-- lucy-copyright -->
+
+    </div> <!-- lucy-rigid_wrapper -->
+
+  </body>
+</html>

Added: websites/staging/openejb/trunk/content/collapsed-ear.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/collapsed-ear.cwiki (added)
+++ websites/staging/openejb/trunk/content/collapsed-ear.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,31 @@
+h1. One archive
+
+The basic idea of this approach is that your Servlets and EJBs are together in your WAR file as one app.
+* No classloader boundries between Servlets and EJBs
+* EJBs and Servlets can share all third-party libraries (like Spring\!) - no EAR required.
+* Can put the web.xml and ejb-jar.xml in the same archive (the WAR file).
+* EJBs can see Servlet classes and vice versa.
+
+h1. Not quite J2EE (it is truly JEE6)
+
+This is very different than J2EE or Java EE 5 as there aren't several levels of separation and classloader hierarchy.  This is going to take some getting used to and it should be understood that this style of packaging isn't J2EE compliant. Who would care tough as it is a feature of Java EE 6 we would've been waiting for so long.
+
+ J2EE classloading rules:
+* You cannot ever have EJBs and servlets in the same classloader.
+
+* Three classloader minimum; a classloader for the ear, one for each ejb-jar, and one for each WAR file.
+
+* Servlets can see EJBs, but EJBs cannot see servlets.
+
+ To pull that off, J2EE has to kill you on packaging:
+* You cannot have EJB classes and Servlet classes in the same archive.
+
+* You need at least three archives to combine servlets and ejbs; 1 EAR containing 1 EJB jar and 1 servlet WAR.
+
+* Shared libraries must go in the EAR and be included in a specially formatted 'Class-Path' entry in the EAR's MANIFEST file.
+
+ Critically speaking, forcing more than one classloader on an application is where J2EE "jumps the shark" for a large majority of people's needs.
+
+h1. Example with Tomcat
+
+If you want to try to work with Servlets/JSP and OpenEJB using Tomcat, see the [setup page|OPENEJBx30:Tomcat] and the "/webapps/ejb-examples" section of the [openejb-examples.zip|Download] available on the download page.
\ No newline at end of file

Added: websites/staging/openejb/trunk/content/collapsed-ear.html
==============================================================================
--- websites/staging/openejb/trunk/content/collapsed-ear.html (added)
+++ websites/staging/openejb/trunk/content/collapsed-ear.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title>Collapsed EAR</title>
+    <link rel="stylesheet" type="text/css" media="screen" href="http://incubator.apache.org/lucy/css/lucy.css">
+  </head>
+
+  <body>
+
+    <div id="lucy-rigid_wrapper">
+
+      <div id="lucy-top" class="container_16 lucy-white_box_3d">
+
+        <div id="lucy-logo_box" class="grid_8">
+          <a href="/OpenEJB/"><img src="http://openejb.apache.org/images/logo_openejb.gif" alt="Apache OpenEJB™"></a>
+        </div> <!-- lucy-logo_box -->
+
+        <div #id="lucy-top_nav_box" class="grid_8">
+          <div id="lucy-top_nav_bar" class="container_8">
+            <ul>
+              <li><a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a></li>
+              <li><a href="http://www.apache.org/licenses/" title="License">License</a></li>
+              <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
+              <li><a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+              <li><a href="http://www.apache.org/security/ " title="Security">Security</a></li>
+            </ul>
+          </div> <!-- lucy-top_nav_bar -->
+          <p><a href="http://www.apache.org/">Apache</a>&nbsp;&raquo&nbsp;<a href="/">Incubator</a></p>
+          <form name="lucy-top_search_box" id="lucy-top_search_box" action="http://www.google.com/search" method="get">
+            <input value="*.apache.org" name="sitesearch" type="hidden"/>
+            <input type="text" name="q" id="query" style="width:85%">
+            <input type="submit" id="submit" value="Search">
+          </form>
+        </div> <!-- lucy-top_nav_box -->
+
+        <div class="clear"></div>
+
+      </div> <!-- lucy-top -->
+
+      <div id="lucy-main_content" class="container_16 lucy-white_box_3d">
+
+        <div class="grid_4" id="lucy-left_nav_box">
+          <h6>About</h6>
+            <ul>
+              <li><a href="/lucy/">Welcome</a></li>
+              <li><a href="/lucy/faq.html">FAQ</a></li>
+              <li><a href="/lucy/people.html">People</a></li>
+            </ul>
+          <h6>Resources</h6>
+            <ul>
+              <li><a href="/lucy/download.html">Download</a></li>
+              <li><a href="/lucy/mailing_lists.html">Mailing Lists</a></li>
+              <li><a href="/lucy/docs/perl/">Documentation</a></li>
+              <li><a href="http://wiki.apache.org/lucy/">Wiki</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/LUCY">Issue Tracker</a></li>
+              <li><a href="/lucy/version_control.html">Version Control</a></li>
+            </ul>
+          <h6>Related Projects</h6>
+            <ul>
+              <li><a href="http://lucene.apache.org/java/">Lucene</a></li>
+              <li><a href="http://lucene.apache.org/solr/">Solr</a></li>
+              <li><a href="http://incubator.apache.org/lucene.net/">Lucene.NET</a></li>
+              <li><a href="http://lucene.apache.org/pylucene/">PyLucene</a></li>
+              <li><a href="http://lucene.apache.org/openrelevance/">Open Relevance</a></li>
+            </ul>
+        </div> <!-- lucy-left_nav_box -->
+
+        <div id="lucy-main_content_box" class="grid_9">
+          <p><a name="CollapsedEAR-Onearchive"></a></p>
+
+<h1>One archive</h1>
+
+<p>The basic idea of this approach is that your Servlets and EJBs are together
+in your WAR file as one app.
+* No classloader boundries between Servlets and EJBs
+* EJBs and Servlets can share all third-party libraries (like Spring!) -
+no EAR required.
+* Can put the web.xml and ejb-jar.xml in the same archive (the WAR file).
+* EJBs can see Servlet classes and vice versa.</p>
+
+<p><a name="CollapsedEAR-NotquiteJ2EE(itistrulyJEE6)"></a></p>
+
+<h1>Not quite J2EE (it is truly JEE6)</h1>
+
+<p>This is very different than J2EE or Java EE 5 as there aren't several
+levels of separation and classloader hierarchy.  This is going to take some
+getting used to and it should be understood that this style of packaging
+isn't J2EE compliant. Who would care tough as it is a feature of Java EE 6
+we would've been waiting for so long.</p>
+
+<p>J2EE classloading rules:
+* You cannot ever have EJBs and servlets in the same classloader.</p>
+
+<ul>
+<li><p>Three classloader minimum; a classloader for the ear, one for each
+ejb-jar, and one for each WAR file.</p></li>
+<li><p>Servlets can see EJBs, but EJBs cannot see servlets.</p>
+
+<p>To pull that off, J2EE has to kill you on packaging:</p></li>
+<li><p>You cannot have EJB classes and Servlet classes in the same archive.</p></li>
+<li><p>You need at least three archives to combine servlets and ejbs; 1 EAR
+containing 1 EJB jar and 1 servlet WAR.</p></li>
+<li><p>Shared libraries must go in the EAR and be included in a specially
+formatted 'Class-Path' entry in the EAR's MANIFEST file.</p>
+
+<p>Critically speaking, forcing more than one classloader on an application
+is where J2EE "jumps the shark" for a large majority of people's needs.</p></li>
+</ul>
+
+<p><a name="CollapsedEAR-ExamplewithTomcat"></a></p>
+
+<h1>Example with Tomcat</h1>
+
+<p>If you want to try to work with Servlets/JSP and OpenEJB using Tomcat, see
+the <a href="openejbx30:tomcat.html">setup page</a>
+ and the "/webapps/ejb-examples" section of the [openejb-examples.zip|Download]
+ available on the download page.</p>
+
+        </div> <!-- lucy-main_content_box --> 
+        <div class="clear"></div>
+
+      </div> <!-- lucy-main_content -->
+
+      <div id="lucy-copyright" class="container_16">
+        <p>Copyright &#169; 2010-2011 The Apache Software Foundation, Licensed under the 
+           <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+           <br/>
+          
+        </p>
+      </div> <!-- lucy-copyright -->
+
+    </div> <!-- lucy-rigid_wrapper -->
+
+  </body>
+</html>

Added: websites/staging/openejb/trunk/content/common-errors.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/common-errors.cwiki (added)
+++ websites/staging/openejb/trunk/content/common-errors.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,14 @@
+
+h1. Cannot find container "FOO" for bean "BAR"
+
+When a bean gets deployed in OpenEJB, it gets associated with a particular container. Subsequently, that container may not be configured in that instance of the server. When the server loads the Jar with the deployed beans, it places beans in the containers that the beans were configured with. Here, the bean BAR wants to go into the container FOO, which is not currently configured.
+
+This message is displayed when the server is starting up.
+h1. Cannot find bean "FOO" referenced by bean "BAR".
+
+When a bean gets deployed in OpenEJB, it may contain references to other beans. Subsequently, those beans may not be configured in that instance of the server. When the server loads the Jar with the deployed beans, it stores those references to those beans. Here, the bean BAR references FOO, which is not currently configured in the JNDI namespace.
+
+This message is displayed when the server is starting up.
+
+This message is usally the result of a deployment descriptor that has been created by hand.
+

Added: websites/staging/openejb/trunk/content/common-errors.html
==============================================================================
--- websites/staging/openejb/trunk/content/common-errors.html (added)
+++ websites/staging/openejb/trunk/content/common-errors.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title>Common Errors</title>
+    <link rel="stylesheet" type="text/css" media="screen" href="http://incubator.apache.org/lucy/css/lucy.css">
+  </head>
+
+  <body>
+
+    <div id="lucy-rigid_wrapper">
+
+      <div id="lucy-top" class="container_16 lucy-white_box_3d">
+
+        <div id="lucy-logo_box" class="grid_8">
+          <a href="/OpenEJB/"><img src="http://openejb.apache.org/images/logo_openejb.gif" alt="Apache OpenEJB™"></a>
+        </div> <!-- lucy-logo_box -->
+
+        <div #id="lucy-top_nav_box" class="grid_8">
+          <div id="lucy-top_nav_bar" class="container_8">
+            <ul>
+              <li><a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a></li>
+              <li><a href="http://www.apache.org/licenses/" title="License">License</a></li>
+              <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
+              <li><a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+              <li><a href="http://www.apache.org/security/ " title="Security">Security</a></li>
+            </ul>
+          </div> <!-- lucy-top_nav_bar -->
+          <p><a href="http://www.apache.org/">Apache</a>&nbsp;&raquo&nbsp;<a href="/">Incubator</a></p>
+          <form name="lucy-top_search_box" id="lucy-top_search_box" action="http://www.google.com/search" method="get">
+            <input value="*.apache.org" name="sitesearch" type="hidden"/>
+            <input type="text" name="q" id="query" style="width:85%">
+            <input type="submit" id="submit" value="Search">
+          </form>
+        </div> <!-- lucy-top_nav_box -->
+
+        <div class="clear"></div>
+
+      </div> <!-- lucy-top -->
+
+      <div id="lucy-main_content" class="container_16 lucy-white_box_3d">
+
+        <div class="grid_4" id="lucy-left_nav_box">
+          <h6>About</h6>
+            <ul>
+              <li><a href="/lucy/">Welcome</a></li>
+              <li><a href="/lucy/faq.html">FAQ</a></li>
+              <li><a href="/lucy/people.html">People</a></li>
+            </ul>
+          <h6>Resources</h6>
+            <ul>
+              <li><a href="/lucy/download.html">Download</a></li>
+              <li><a href="/lucy/mailing_lists.html">Mailing Lists</a></li>
+              <li><a href="/lucy/docs/perl/">Documentation</a></li>
+              <li><a href="http://wiki.apache.org/lucy/">Wiki</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/LUCY">Issue Tracker</a></li>
+              <li><a href="/lucy/version_control.html">Version Control</a></li>
+            </ul>
+          <h6>Related Projects</h6>
+            <ul>
+              <li><a href="http://lucene.apache.org/java/">Lucene</a></li>
+              <li><a href="http://lucene.apache.org/solr/">Solr</a></li>
+              <li><a href="http://incubator.apache.org/lucene.net/">Lucene.NET</a></li>
+              <li><a href="http://lucene.apache.org/pylucene/">PyLucene</a></li>
+              <li><a href="http://lucene.apache.org/openrelevance/">Open Relevance</a></li>
+            </ul>
+        </div> <!-- lucy-left_nav_box -->
+
+        <div id="lucy-main_content_box" class="grid_9">
+          <p><a name="CommonErrors-Cannotfindcontainer"FOO"forbean"BAR""></a></p>
+
+<h1>Cannot find container "FOO" for bean "BAR"</h1>
+
+<p>When a bean gets deployed in OpenEJB, it gets associated with a particular
+container. Subsequently, that container may not be configured in that
+instance of the server. When the server loads the Jar with the deployed
+beans, it places beans in the containers that the beans were configured
+with. Here, the bean BAR wants to go into the container FOO, which is not
+currently configured.</p>
+
+<p>This message is displayed when the server is starting up.
+<a name="CommonErrors-Cannotfindbean"FOO"referencedbybean"BAR"."></a></p>
+
+<h1>Cannot find bean "FOO" referenced by bean "BAR".</h1>
+
+<p>When a bean gets deployed in OpenEJB, it may contain references to other
+beans. Subsequently, those beans may not be configured in that instance of
+the server. When the server loads the Jar with the deployed beans, it
+stores those references to those beans. Here, the bean BAR references FOO,
+which is not currently configured in the JNDI namespace.</p>
+
+<p>This message is displayed when the server is starting up.</p>
+
+<p>This message is usally the result of a deployment descriptor that has been
+created by hand.</p>
+
+        </div> <!-- lucy-main_content_box --> 
+        <div class="clear"></div>
+
+      </div> <!-- lucy-main_content -->
+
+      <div id="lucy-copyright" class="container_16">
+        <p>Copyright &#169; 2010-2011 The Apache Software Foundation, Licensed under the 
+           <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+           <br/>
+          
+        </p>
+      </div> <!-- lucy-copyright -->
+
+    </div> <!-- lucy-rigid_wrapper -->
+
+  </body>
+</html>

Added: websites/staging/openejb/trunk/content/community.cwiki
==============================================================================
    (empty)

Added: websites/staging/openejb/trunk/content/community.html
==============================================================================
--- websites/staging/openejb/trunk/content/community.html (added)
+++ websites/staging/openejb/trunk/content/community.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title>Community</title>
+    <link rel="stylesheet" type="text/css" media="screen" href="http://incubator.apache.org/lucy/css/lucy.css">
+  </head>
+
+  <body>
+
+    <div id="lucy-rigid_wrapper">
+
+      <div id="lucy-top" class="container_16 lucy-white_box_3d">
+
+        <div id="lucy-logo_box" class="grid_8">
+          <a href="/OpenEJB/"><img src="http://openejb.apache.org/images/logo_openejb.gif" alt="Apache OpenEJB™"></a>
+        </div> <!-- lucy-logo_box -->
+
+        <div #id="lucy-top_nav_box" class="grid_8">
+          <div id="lucy-top_nav_bar" class="container_8">
+            <ul>
+              <li><a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a></li>
+              <li><a href="http://www.apache.org/licenses/" title="License">License</a></li>
+              <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
+              <li><a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+              <li><a href="http://www.apache.org/security/ " title="Security">Security</a></li>
+            </ul>
+          </div> <!-- lucy-top_nav_bar -->
+          <p><a href="http://www.apache.org/">Apache</a>&nbsp;&raquo&nbsp;<a href="/">Incubator</a></p>
+          <form name="lucy-top_search_box" id="lucy-top_search_box" action="http://www.google.com/search" method="get">
+            <input value="*.apache.org" name="sitesearch" type="hidden"/>
+            <input type="text" name="q" id="query" style="width:85%">
+            <input type="submit" id="submit" value="Search">
+          </form>
+        </div> <!-- lucy-top_nav_box -->
+
+        <div class="clear"></div>
+
+      </div> <!-- lucy-top -->
+
+      <div id="lucy-main_content" class="container_16 lucy-white_box_3d">
+
+        <div class="grid_4" id="lucy-left_nav_box">
+          <h6>About</h6>
+            <ul>
+              <li><a href="/lucy/">Welcome</a></li>
+              <li><a href="/lucy/faq.html">FAQ</a></li>
+              <li><a href="/lucy/people.html">People</a></li>
+            </ul>
+          <h6>Resources</h6>
+            <ul>
+              <li><a href="/lucy/download.html">Download</a></li>
+              <li><a href="/lucy/mailing_lists.html">Mailing Lists</a></li>
+              <li><a href="/lucy/docs/perl/">Documentation</a></li>
+              <li><a href="http://wiki.apache.org/lucy/">Wiki</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/LUCY">Issue Tracker</a></li>
+              <li><a href="/lucy/version_control.html">Version Control</a></li>
+            </ul>
+          <h6>Related Projects</h6>
+            <ul>
+              <li><a href="http://lucene.apache.org/java/">Lucene</a></li>
+              <li><a href="http://lucene.apache.org/solr/">Solr</a></li>
+              <li><a href="http://incubator.apache.org/lucene.net/">Lucene.NET</a></li>
+              <li><a href="http://lucene.apache.org/pylucene/">PyLucene</a></li>
+              <li><a href="http://lucene.apache.org/openrelevance/">Open Relevance</a></li>
+            </ul>
+        </div> <!-- lucy-left_nav_box -->
+
+        <div id="lucy-main_content_box" class="grid_9">
+          
+
+        </div> <!-- lucy-main_content_box --> 
+        <div class="clear"></div>
+
+      </div> <!-- lucy-main_content -->
+
+      <div id="lucy-copyright" class="container_16">
+        <p>Copyright &#169; 2010-2011 The Apache Software Foundation, Licensed under the 
+           <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+           <br/>
+          
+        </p>
+      </div> <!-- lucy-copyright -->
+
+    </div> <!-- lucy-rigid_wrapper -->
+
+  </body>
+</html>

Added: websites/staging/openejb/trunk/content/concepts.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/concepts.cwiki (added)
+++ websites/staging/openejb/trunk/content/concepts.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,21 @@
+OpenEJB was founded on the idea that it would be embedded into third-party environments whom would likely already have three things:
+
+ - their one "server" platform with existing clients and protocols
+ - their own way to configure their platform
+ - existing services like TransactionManager, Security, and Connector
+
+Thus the focus of OpenEJB was to create an EJB implementation that would be easily embeddible, configurable, and customizable.  
+
+Part of achieving that is a drive to be as simple as possible as to not over-define and therefore restrict the ability to be embeddible, configurable and customizable.  Smaller third-party environments could easily 'downscale' OpenEJB in their integrations by replacing standard components with lighter implementations or removing them all together and larger environments could 'upscale' OpenEJB by replacing and adding heavier implementations of those standard components likely tailored to their systems and infrastructure.
+
+Container and Server are mentioned in the EJB spec as being separate things but are never defined formally.  In our world Containers, which implement the basic component contract and lifecycle of a bean are not coupled to any particular Server, which has the job of providing a naming service and providing a way for it's clients to reference and invoke components (beans) hosted in Containers.  Because Containers have no dependence at all only Server, you can run OpenEJB without any Server at all in an embedded environment for example without any work or any extra overhead.  Similarly you can add as many new Server components as you want without ever having to modify any Containers.
+
+There is a very strong pluggability focus in OpenEJB as it was always intended to be embedded and customized in other environments.  As a result all Containers are pluggable, isolated from each other, and no one Container is bound to another Container and therefore removing or adding a Container has no repercussions on the other Containers in the system.  TransactionManager, SecurityService and Connector also pluggable and are services exposed to Containers.  A Container may not be dependent on specific implementations of those services.  Service Providers define what services they are offering (Container, Connector, Security, Transaction, etc.) in a file they place in their jar called service-jar.xml.  
+
+The service-jar.xml should be placed not in the META-INF but somewhere in your package hierarchy (ours is in /org/apache/openejb/service-jar.xml) which allows the services in your service-jar.xml to be referenced by name (such as DefaultStatefulContainer) or more specifically by package and id (such as org.apache.openejb#DefaultStatefulContainer).  
+
+The same implementation of a service can be declared several times in a service-jar.xml with different ids.  This allows for you to setup several several different profiles or pre-configured versions of the services you provide each with a different name and different set of default values for its properties.  
+
+In your openejb.conf file when you declare Containers and Connectors, we are actually hooking you up with Service Providers automatically.  You get what is in the org/apache/openejb/service-jar.xml by default, but you are able to point specifically to a specific Service Provider by the 'provider' attribute on the Container, Connector, TransactionManager, SecurityService, etc. elements of the openejb.conf file.  When you declare a service (Container, Connector, etc.) in your openejb.conf file the properties you supply override the properties supplied by the Service Provider, thus you only need to specify the properties you'd like to change and can have your openejb.conf file as large or as small as you would like it.  The act of doing this can be thought of as essentially instantiating the Service Provider and configuring that instance for inclusion in the runtime system.  
+
+For example Container(id=NoTimeoutStatefulContainer, provider=DefaultStatefulContainer) could be declared with it's Timeout property set to 0 for never, and a Container(id=ShortTimeoutStatefulContainer, provider=DefaultStatefulContainer) could be declared with it's Timeout property set to 15 minutes.  Both would be instances of the DefaultStatefulContainer Service Provider which is a service of type Container.
\ No newline at end of file

Added: websites/staging/openejb/trunk/content/concepts.html
==============================================================================
--- websites/staging/openejb/trunk/content/concepts.html (added)
+++ websites/staging/openejb/trunk/content/concepts.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title>Concepts</title>
+    <link rel="stylesheet" type="text/css" media="screen" href="http://incubator.apache.org/lucy/css/lucy.css">
+  </head>
+
+  <body>
+
+    <div id="lucy-rigid_wrapper">
+
+      <div id="lucy-top" class="container_16 lucy-white_box_3d">
+
+        <div id="lucy-logo_box" class="grid_8">
+          <a href="/OpenEJB/"><img src="http://openejb.apache.org/images/logo_openejb.gif" alt="Apache OpenEJB™"></a>
+        </div> <!-- lucy-logo_box -->
+
+        <div #id="lucy-top_nav_box" class="grid_8">
+          <div id="lucy-top_nav_bar" class="container_8">
+            <ul>
+              <li><a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a></li>
+              <li><a href="http://www.apache.org/licenses/" title="License">License</a></li>
+              <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
+              <li><a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+              <li><a href="http://www.apache.org/security/ " title="Security">Security</a></li>
+            </ul>
+          </div> <!-- lucy-top_nav_bar -->
+          <p><a href="http://www.apache.org/">Apache</a>&nbsp;&raquo&nbsp;<a href="/">Incubator</a></p>
+          <form name="lucy-top_search_box" id="lucy-top_search_box" action="http://www.google.com/search" method="get">
+            <input value="*.apache.org" name="sitesearch" type="hidden"/>
+            <input type="text" name="q" id="query" style="width:85%">
+            <input type="submit" id="submit" value="Search">
+          </form>
+        </div> <!-- lucy-top_nav_box -->
+
+        <div class="clear"></div>
+
+      </div> <!-- lucy-top -->
+
+      <div id="lucy-main_content" class="container_16 lucy-white_box_3d">
+
+        <div class="grid_4" id="lucy-left_nav_box">
+          <h6>About</h6>
+            <ul>
+              <li><a href="/lucy/">Welcome</a></li>
+              <li><a href="/lucy/faq.html">FAQ</a></li>
+              <li><a href="/lucy/people.html">People</a></li>
+            </ul>
+          <h6>Resources</h6>
+            <ul>
+              <li><a href="/lucy/download.html">Download</a></li>
+              <li><a href="/lucy/mailing_lists.html">Mailing Lists</a></li>
+              <li><a href="/lucy/docs/perl/">Documentation</a></li>
+              <li><a href="http://wiki.apache.org/lucy/">Wiki</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/LUCY">Issue Tracker</a></li>
+              <li><a href="/lucy/version_control.html">Version Control</a></li>
+            </ul>
+          <h6>Related Projects</h6>
+            <ul>
+              <li><a href="http://lucene.apache.org/java/">Lucene</a></li>
+              <li><a href="http://lucene.apache.org/solr/">Solr</a></li>
+              <li><a href="http://incubator.apache.org/lucene.net/">Lucene.NET</a></li>
+              <li><a href="http://lucene.apache.org/pylucene/">PyLucene</a></li>
+              <li><a href="http://lucene.apache.org/openrelevance/">Open Relevance</a></li>
+            </ul>
+        </div> <!-- lucy-left_nav_box -->
+
+        <div id="lucy-main_content_box" class="grid_9">
+          <p>OpenEJB was founded on the idea that it would be embedded into third-party
+environments whom would likely already have three things:</p>
+
+<ul>
+<li>their one "server" platform with existing clients and protocols</li>
+<li>their own way to configure their platform</li>
+<li>existing services like TransactionManager, Security, and Connector</li>
+</ul>
+
+<p>Thus the focus of OpenEJB was to create an EJB implementation that would be
+easily embeddible, configurable, and customizable.  </p>
+
+<p>Part of achieving that is a drive to be as simple as possible as to not
+over-define and therefore restrict the ability to be embeddible,
+configurable and customizable.  Smaller third-party environments could
+easily 'downscale' OpenEJB in their integrations by replacing standard
+components with lighter implementations or removing them all together and
+larger environments could 'upscale' OpenEJB by replacing and adding heavier
+implementations of those standard components likely tailored to their
+systems and infrastructure.</p>
+
+<p>Container and Server are mentioned in the EJB spec as being separate things
+but are never defined formally.  In our world Containers, which implement
+the basic component contract and lifecycle of a bean are not coupled to any
+particular Server, which has the job of providing a naming service and
+providing a way for it's clients to reference and invoke components (beans)
+hosted in Containers.  Because Containers have no dependence at all only
+Server, you can run OpenEJB without any Server at all in an embedded
+environment for example without any work or any extra overhead.  Similarly
+you can add as many new Server components as you want without ever having
+to modify any Containers.</p>
+
+<p>There is a very strong pluggability focus in OpenEJB as it was always
+intended to be embedded and customized in other environments.  As a result
+all Containers are pluggable, isolated from each other, and no one
+Container is bound to another Container and therefore removing or adding a
+Container has no repercussions on the other Containers in the system. 
+TransactionManager, SecurityService and Connector also pluggable and are
+services exposed to Containers.  A Container may not be dependent on
+specific implementations of those services.  Service Providers define what
+services they are offering (Container, Connector, Security, Transaction,
+etc.) in a file they place in their jar called service-jar.xml.  </p>
+
+<p>The service-jar.xml should be placed not in the META-INF but somewhere in
+your package hierarchy (ours is in /org/apache/openejb/service-jar.xml)
+which allows the services in your service-jar.xml to be referenced by name
+(such as DefaultStatefulContainer) or more specifically by package and id
+(such as org.apache.openejb#DefaultStatefulContainer).  </p>
+
+<p>The same implementation of a service can be declared several times in a
+service-jar.xml with different ids.  This allows for you to setup several
+several different profiles or pre-configured versions of the services you
+provide each with a different name and different set of default values for
+its properties.  </p>
+
+<p>In your openejb.conf file when you declare Containers and Connectors, we
+are actually hooking you up with Service Providers automatically.  You get
+what is in the org/apache/openejb/service-jar.xml by default, but you are
+able to point specifically to a specific Service Provider by the 'provider'
+attribute on the Container, Connector, TransactionManager, SecurityService,
+etc. elements of the openejb.conf file.  When you declare a service
+(Container, Connector, etc.) in your openejb.conf file the properties you
+supply override the properties supplied by the Service Provider, thus you
+only need to specify the properties you'd like to change and can have your
+openejb.conf file as large or as small as you would like it.  The act of
+doing this can be thought of as essentially instantiating the Service
+Provider and configuring that instance for inclusion in the runtime system. </p>
+
+<p>For example Container(id=NoTimeoutStatefulContainer,
+provider=DefaultStatefulContainer) could be declared with it's Timeout
+property set to 0 for never, and a
+Container(id=ShortTimeoutStatefulContainer,
+provider=DefaultStatefulContainer) could be declared with it's Timeout
+property set to 15 minutes.  Both would be instances of the
+DefaultStatefulContainer Service Provider which is a service of type
+Container.</p>
+
+        </div> <!-- lucy-main_content_box --> 
+        <div class="clear"></div>
+
+      </div> <!-- lucy-main_content -->
+
+      <div id="lucy-copyright" class="container_16">
+        <p>Copyright &#169; 2010-2011 The Apache Software Foundation, Licensed under the 
+           <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+           <br/>
+          
+        </p>
+      </div> <!-- lucy-copyright -->
+
+    </div> <!-- lucy-rigid_wrapper -->
+
+  </body>
+</html>

Added: websites/staging/openejb/trunk/content/configuration-and-assembly.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/configuration-and-assembly.cwiki (added)
+++ websites/staging/openejb/trunk/content/configuration-and-assembly.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,127 @@
+{note}
+Disclaimer that we do tweak and change this code frequently, without notice.  It is the very heart of OpenEJB.  To keep things tight and clean, we reserve the right to change it at anytime.  Do not consider it a stable public API.
+{note}
+
+h1. Overview in Code
+
+First a glimpse of how OpenEJB looks internally.  Here's a test that builds OpenEJB using it's internal API.  This is somewhat similar to how you might see people constructing Jetty in code.  All our internal tests look like this.
+
+This usage involves no xml parsing or classpath scanning.  If you don't give it to OpenEJB, OpenEJB doesn't know about it.  This is OpenEJB with all the magic stripped away.  At a high level:
+
+  # You build your app in code using the JAXB tree in code and hand it to the {{ConfigurationFactory}}.
+  ## The {{org.apache.openejb.jee}} package contains JAXB trees for ejb-jar.xml, beans.xml and all the Java EE deployment descriptors.
+  # The {{ConfigurationFactory}} will produce a fully canonical version of the app called the {{Info}} tree by:
+  ## Merging all sources of meta-data -- xml and annotations
+  ## Resolving all ejb, persistence unit, datasource and other references
+  ## Validating the app and looking for mistakes
+  # The {{Info}} tree is
+  ## The singular source of information about the application from this point forward.
+  ## Pure data with no smarts or logic of any kind.
+  ## The instruction set of what would be built by the assembler.
+  # The {{Assembler}} will build and start the application exactly as described in the {{Info}} tree.
+  ## When this step completes, you have a running application.
+  ## Any failures prior to this point require no cleanup.  Only the assembler builds "live" objects.
+
+
+{code:title=StatefulTest.java}
+import javax.ejb.LocalBean;
+import javax.ejb.Stateful;
+import javax.naming.InitialContext;
+
+import junit.framework.TestCase;
+import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.SecurityServiceInfo;
+import org.apache.openejb.assembler.classic.TransactionServiceInfo;
+import org.apache.openejb.client.LocalInitialContextFactory;
+import org.apache.openejb.config.ConfigurationFactory;
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.StatefulBean;
+
+public class StatefulTest extends TestCase {
+
+    @Override
+    protected void setUp() throws Exception {
+
+        System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
+
+        ConfigurationFactory config = new ConfigurationFactory();
+        Assembler assembler = new Assembler();
+
+        assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
+        assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
+
+        EjbJar ejbJar = new EjbJar();
+        ejbJar.addEnterpriseBean(new StatefulBean(MyBean.class));
+
+        assembler.createApplication(config.configureApplication(ejbJar));
+    }
+
+    public void test() throws Exception {
+        InitialContext context = new InitialContext();
+        MyBean myBean = (MyBean) context.lookup("MyBeanLocalBean");
+
+        assertEquals("pan", myBean.echo("nap"));
+    }
+
+    @Stateful
+    @LocalBean
+    public static class MyBean {
+
+        public String echo(String string) {
+            StringBuilder sb = new StringBuilder(string);
+            return sb.reverse().toString();
+        }
+    }
+}
+{code}
+
+h1. Logical Overview
+
+Slightly more detailed account of the above.  Our startup and deploy world is broken into two phases:
+  
+  1. configuration (app.jar -> AppInfo)  we build up a fully normalized and validated tree.  Some of the steps are
+       - read in descriptors
+       - process annotations filling in the descriptor tree
+       - validating app compliance
+       - resolving resource references
+       - resolving ejb references
+       - turning the descriptor tree into Info objects for final assembly
+       - final validation check
+
+  2. assembly (AppInfo -> actual running app)  we assemble a running app as detailed by the AppInfo
+       - creating classloaders for the application
+       - creating EntityManagers and EntityManagerFactories
+       - creating live objects associated with resource-env-refs
+       - creating deployment (CoreDeploymentInfo) objects for each ejb
+       - creating the jndi enc of each ejb
+       - adding method permission objects into the security system (JACC Provider)
+       - creating transaction policy objects for each ejb
+       - creating interceptor stacks and bindings for each ejb      
+       - adding ejbs to containers (which may also do things like create pools)
+       - adding ejbs to the live ContainerSystem registry of ejbs
+       - adding global jndi entries for each ejb
+
+
+The listings above aren't necesarrily complete or perfectly ordered, but generally show the nature of the work done in each phase.  
+
+h2. Configuration Phase
+
+A goal is that nothing gets through configuration and into assembly if it can't actually be built.  The configuration phase is where we're supposed to wipe away any ambiguity, fully normalize the app, make sure it's internally consistent, spec compliant and generally good to go.  If it's not, no worries as we actually haven't built anything permanent yet.  Everything in the configuration phase is temporary.  If it fails the configuration phase we just issue an error and say "App will not be loaded" and that's it, there's nothing to undo.  
+
+h2. Info Objects - Data between Configuration and Assembly
+
+The output of the configuration phase is what we call Info objects and the root of that tree is OpenEjbConfiguration.  These objects are all simple, serializable data types with no methods, no constructors and no code or logic of any kind.  We even have a test that uses ASM to walk down the Info tree and check that everything is compliant to these strict rules.
+
+All of the aforementioned configuration phase sits behind this info object tree and an interface that produces it:
+
+  org.apache.openejb.assembler.classic.OpenEjbConfiguration
+  org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory
+
+The job of the OpenEjbConfigurationFactory is simply to produce an  OpenEjbConfiguration tree.  With this simple decoupling when the time comes we can actually support much different styles of use/topologies.  For example, a cluster scenario.  We could create an OpenEjbConfigurationFactory implementation that actually pulled the OpenEjbConfiguration from a central store or some sort of configuration server of our creation.  Perhaps, someday we write an OpenEjbConfigurationFactory implementation to wrap the existing one and look for any changed files.  If nothing has changed since last boot, we simple deserialize an OpenEjbConfiguration tree saved from a previous boot as a way of reducing startup time on very large apps.
+
+h2. Assembly
+
+The assembly phase is where real running things are actually built.  This process is inherently ingrained in the details on how OpenEJB works internally.  Keeping it separated from descriptor parsing, validation, resolving, etc. keeps the actual "openejb building" code as simple as possible.  It also allows for some flexibility and change to take place architecturally with less chance of it rippling through the entire system.  However it's also not so generic (like spring, etc.) that becomes very difficult to get things built in a certain way or in a certain order requiring you to jump through several hoops just to keep the generic system as beautiful as possible.  It knows all the details on how to build each individual part and in what order to build them. 
+
+In OpenEJB, the Assembler is not supposed to be the gem of the project that we keep clean, motivating us to push complex things out into other areas for other people (usually users) to worry about.  In fact, it's the opposite.  The runtime system gets top priority on it's architectural needs and the assembler gets last priority.  If there's something we can do in the Assembler that saves the rest of the system from complexity, we gladly throw the Assembler on that grenade.  Our philosophy is that you can't make 100% of your system "perfect" all the time and sometime the mess has to go somewhere.  The assembler is where.  It's purposely not over architected so that it can continue to serve as a place to take up slack and not make all this stuff harder than it has to be.
+

Added: websites/staging/openejb/trunk/content/configuration-and-assembly.html
==============================================================================
--- websites/staging/openejb/trunk/content/configuration-and-assembly.html (added)
+++ websites/staging/openejb/trunk/content/configuration-and-assembly.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,297 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title>Configuration and Assembly</title>
+    <link rel="stylesheet" type="text/css" media="screen" href="http://incubator.apache.org/lucy/css/lucy.css">
+  </head>
+
+  <body>
+
+    <div id="lucy-rigid_wrapper">
+
+      <div id="lucy-top" class="container_16 lucy-white_box_3d">
+
+        <div id="lucy-logo_box" class="grid_8">
+          <a href="/OpenEJB/"><img src="http://openejb.apache.org/images/logo_openejb.gif" alt="Apache OpenEJB™"></a>
+        </div> <!-- lucy-logo_box -->
+
+        <div #id="lucy-top_nav_box" class="grid_8">
+          <div id="lucy-top_nav_bar" class="container_8">
+            <ul>
+              <li><a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a></li>
+              <li><a href="http://www.apache.org/licenses/" title="License">License</a></li>
+              <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
+              <li><a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+              <li><a href="http://www.apache.org/security/ " title="Security">Security</a></li>
+            </ul>
+          </div> <!-- lucy-top_nav_bar -->
+          <p><a href="http://www.apache.org/">Apache</a>&nbsp;&raquo&nbsp;<a href="/">Incubator</a></p>
+          <form name="lucy-top_search_box" id="lucy-top_search_box" action="http://www.google.com/search" method="get">
+            <input value="*.apache.org" name="sitesearch" type="hidden"/>
+            <input type="text" name="q" id="query" style="width:85%">
+            <input type="submit" id="submit" value="Search">
+          </form>
+        </div> <!-- lucy-top_nav_box -->
+
+        <div class="clear"></div>
+
+      </div> <!-- lucy-top -->
+
+      <div id="lucy-main_content" class="container_16 lucy-white_box_3d">
+
+        <div class="grid_4" id="lucy-left_nav_box">
+          <h6>About</h6>
+            <ul>
+              <li><a href="/lucy/">Welcome</a></li>
+              <li><a href="/lucy/faq.html">FAQ</a></li>
+              <li><a href="/lucy/people.html">People</a></li>
+            </ul>
+          <h6>Resources</h6>
+            <ul>
+              <li><a href="/lucy/download.html">Download</a></li>
+              <li><a href="/lucy/mailing_lists.html">Mailing Lists</a></li>
+              <li><a href="/lucy/docs/perl/">Documentation</a></li>
+              <li><a href="http://wiki.apache.org/lucy/">Wiki</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/LUCY">Issue Tracker</a></li>
+              <li><a href="/lucy/version_control.html">Version Control</a></li>
+            </ul>
+          <h6>Related Projects</h6>
+            <ul>
+              <li><a href="http://lucene.apache.org/java/">Lucene</a></li>
+              <li><a href="http://lucene.apache.org/solr/">Solr</a></li>
+              <li><a href="http://incubator.apache.org/lucene.net/">Lucene.NET</a></li>
+              <li><a href="http://lucene.apache.org/pylucene/">PyLucene</a></li>
+              <li><a href="http://lucene.apache.org/openrelevance/">Open Relevance</a></li>
+            </ul>
+        </div> <!-- lucy-left_nav_box -->
+
+        <div id="lucy-main_content_box" class="grid_9">
+          <p>{note}
+Disclaimer that we do tweak and change this code frequently, without
+notice.  It is the very heart of OpenEJB.  To keep things tight and clean,
+we reserve the right to change it at anytime.  Do not consider it a stable
+public API.
+{note}</p>
+
+<p><a name="ConfigurationandAssembly-OverviewinCode"></a></p>
+
+<h1>Overview in Code</h1>
+
+<p>First a glimpse of how OpenEJB looks internally.  Here's a test that builds
+OpenEJB using it's internal API.  This is somewhat similar to how you might
+see people constructing Jetty in code.  All our internal tests look like
+this.</p>
+
+<p>This usage involves no xml parsing or classpath scanning.  If you don't
+give it to OpenEJB, OpenEJB doesn't know about it.  This is OpenEJB with
+all the magic stripped away.  At a high level:</p>
+
+<ol>
+<li>You build your app in code using the JAXB tree in code and hand it to
+the <em>ConfigurationFactory</em>.</li>
+<li># The <em>org.apache.openejb.jee</em> package contains JAXB trees for
+ejb-jar.xml, beans.xml and all the Java EE deployment descriptors.</li>
+<li>The <em>ConfigurationFactory</em> will produce a fully canonical version of
+the app called the <em>Info</em> tree by:</li>
+<li># Merging all sources of meta-data -- xml and annotations</li>
+<li># Resolving all ejb, persistence unit, datasource and other references</li>
+<li># Validating the app and looking for mistakes</li>
+<li>The <em>Info</em> tree is</li>
+<li># The singular source of information about the application from this
+point forward.</li>
+<li># Pure data with no smarts or logic of any kind.</li>
+<li># The instruction set of what would be built by the assembler.</li>
+<li>The <em>Assembler</em> will build and start the application exactly as
+described in the <em>Info</em> tree.</li>
+<li># When this step completes, you have a running application.</li>
+<li># Any failures prior to this point require no cleanup.  Only the
+assembler builds "live" objects.</li>
+</ol>
+
+<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><B>StatefulTest.java</B></DIV><DIV class="codeContent panelContent">
+    import javax.ejb.LocalBean;
+    import javax.ejb.Stateful;
+    import javax.naming.InitialContext;</p>
+
+<pre><code>import junit.framework.TestCase;
+import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.SecurityServiceInfo;
+import org.apache.openejb.assembler.classic.TransactionServiceInfo;
+import org.apache.openejb.client.LocalInitialContextFactory;
+import org.apache.openejb.config.ConfigurationFactory;
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.StatefulBean;
+
+public class StatefulTest extends TestCase {
+
+    @Override
+    protected void setUp() throws Exception {
+
+    System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
+</code></pre>
+
+<p>LocalInitialContextFactory.class.getName());</p>
+
+<pre><code>    ConfigurationFactory config = new ConfigurationFactory();
+    Assembler assembler = new Assembler();
+</code></pre>
+
+<p>assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));</p>
+
+<p>assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));</p>
+
+<pre><code>    EjbJar ejbJar = new EjbJar();
+    ejbJar.addEnterpriseBean(new StatefulBean(MyBean.class));
+
+    assembler.createApplication(config.configureApplication(ejbJar));
+    }
+
+    public void test() throws Exception {
+    InitialContext context = new InitialContext();
+    MyBean myBean = (MyBean) context.lookup("MyBeanLocalBean");
+
+    assertEquals("pan", myBean.echo("nap"));
+    }
+
+    @Stateful
+    @LocalBean
+    public static class MyBean {
+
+    public String echo(String string) {
+        StringBuilder sb = new StringBuilder(string);
+        return sb.reverse().toString();
+    }
+    }
+}
+</code></pre>
+
+<p><a name="ConfigurationandAssembly-LogicalOverview"></a></p>
+
+<h1>Logical Overview</h1>
+
+<p>Slightly more detailed account of the above.  Our startup and deploy world
+is broken into two phases:</p>
+
+<ol>
+<li><p>configuration (app.jar -> AppInfo)  we build up a fully normalized and
+validated tree.  Some of the steps are</p>
+
+<ul>
+<li>read in descriptors</li>
+<li>process annotations filling in the descriptor tree</li>
+<li>validating app compliance</li>
+<li>resolving resource references</li>
+<li>resolving ejb references</li>
+<li>turning the descriptor tree into Info objects for final assembly</li>
+<li>final validation check</li>
+</ul></li>
+<li><p>assembly (AppInfo -> actual running app)  we assemble a running app as
+detailed by the AppInfo</p>
+
+<ul>
+<li>creating classloaders for the application</li>
+<li>creating EntityManagers and EntityManagerFactories</li>
+<li>creating live objects associated with resource-env-refs</li>
+<li>creating deployment (CoreDeploymentInfo) objects for each ejb</li>
+<li>creating the jndi enc of each ejb</li>
+<li>adding method permission objects into the security system (JACC
+Provider)</li>
+<li>creating transaction policy objects for each ejb</li>
+<li>creating interceptor stacks and bindings for each ejb      </li>
+<li>adding ejbs to containers (which may also do things like create
+pools)</li>
+<li>adding ejbs to the live ContainerSystem registry of ejbs</li>
+<li>adding global jndi entries for each ejb</li>
+</ul></li>
+</ol>
+
+<p>The listings above aren't necesarrily complete or perfectly ordered, but
+generally show the nature of the work done in each phase.  </p>
+
+<p><a name="ConfigurationandAssembly-ConfigurationPhase"></a></p>
+
+<h2>Configuration Phase</h2>
+
+<p>A goal is that nothing gets through configuration and into assembly if it
+can't actually be built.  The configuration phase is where we're supposed
+to wipe away any ambiguity, fully normalize the app, make sure it's
+internally consistent, spec compliant and generally good to go.  If it's
+not, no worries as we actually haven't built anything permanent yet. 
+Everything in the configuration phase is temporary.  If it fails the
+configuration phase we just issue an error and say "App will not be loaded"
+and that's it, there's nothing to undo.  </p>
+
+<p><a name="ConfigurationandAssembly-InfoObjects-DatabetweenConfigurationandAssembly"></a></p>
+
+<h2>Info Objects - Data between Configuration and Assembly</h2>
+
+<p>The output of the configuration phase is what we call Info objects and the
+root of that tree is OpenEjbConfiguration.  These objects are all simple,
+serializable data types with no methods, no constructors and no code or
+logic of any kind.  We even have a test that uses ASM to walk down the Info
+tree and check that everything is compliant to these strict rules.</p>
+
+<p>All of the aforementioned configuration phase sits behind this info object
+tree and an interface that produces it:</p>
+
+<p>org.apache.openejb.assembler.classic.OpenEjbConfiguration
+  org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory</p>
+
+<p>The job of the OpenEjbConfigurationFactory is simply to produce an 
+OpenEjbConfiguration tree.  With this simple decoupling when the time comes
+we can actually support much different styles of use/topologies.  For
+example, a cluster scenario.  We could create an
+OpenEjbConfigurationFactory implementation that actually pulled the
+OpenEjbConfiguration from a central store or some sort of configuration
+server of our creation.  Perhaps, someday we write an
+OpenEjbConfigurationFactory implementation to wrap the existing one and
+look for any changed files.  If nothing has changed since last boot, we
+simple deserialize an OpenEjbConfiguration tree saved from a previous boot
+as a way of reducing startup time on very large apps.</p>
+
+<p><a name="ConfigurationandAssembly-Assembly"></a></p>
+
+<h2>Assembly</h2>
+
+<p>The assembly phase is where real running things are actually built.  This
+process is inherently ingrained in the details on how OpenEJB works
+internally.  Keeping it separated from descriptor parsing, validation,
+resolving, etc. keeps the actual "openejb building" code as simple as
+possible.  It also allows for some flexibility and change to take place
+architecturally with less chance of it rippling through the entire system. 
+However it's also not so generic (like spring, etc.) that becomes very
+difficult to get things built in a certain way or in a certain order
+requiring you to jump through several hoops just to keep the generic system
+as beautiful as possible.  It knows all the details on how to build each
+individual part and in what order to build them. </p>
+
+<p>In OpenEJB, the Assembler is not supposed to be the gem of the project that
+we keep clean, motivating us to push complex things out into other areas
+for other people (usually users) to worry about.  In fact, it's the
+opposite.  The runtime system gets top priority on it's architectural needs
+and the assembler gets last priority.  If there's something we can do in
+the Assembler that saves the rest of the system from complexity, we gladly
+throw the Assembler on that grenade.  Our philosophy is that you can't make
+100% of your system "perfect" all the time and sometime the mess has to go
+somewhere.  The assembler is where.  It's purposely not over architected so
+that it can continue to serve as a place to take up slack and not make all
+this stuff harder than it has to be.</p>
+
+        </div> <!-- lucy-main_content_box --> 
+        <div class="clear"></div>
+
+      </div> <!-- lucy-main_content -->
+
+      <div id="lucy-copyright" class="container_16">
+        <p>Copyright &#169; 2010-2011 The Apache Software Foundation, Licensed under the 
+           <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+           <br/>
+          
+        </p>
+      </div> <!-- lucy-copyright -->
+
+    </div> <!-- lucy-rigid_wrapper -->
+
+  </body>
+</html>

Added: websites/staging/openejb/trunk/content/configuration.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/configuration.cwiki (added)
+++ websites/staging/openejb/trunk/content/configuration.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,119 @@
+h1. Short Overview
+
+h2. Configuration Properties
+
+*  *openejb.home* - OpenEJB home (installation) directory path. All relative paths are resolved against the property unless openejb.base is set. Unless set, the value is assigned to the _user.dir_ Java property.
+*  *openejb.base* - OpenEJB base directory path. If set, the directory pointed by the property is searched for resources before openejb.home.
+*  *openejb.configuration* - OpenEJB configuration file path.
+*  *openejb.loader* - OpenEJB loader that's responsible for loading EJBs. There are 3 different loader types:  
+**  *tomcat-webapp* - set it when inside of Tomcat scoped at just the webapp, aka. [Collapsed EAR]
+**  *tomcat* - set it when inside of Tomcat scoped for all webapps to share
+**  *system* (also: bootstrap)
+**  *embedded* (also: noload)
+*  *openejb.configurator* (default: _org.openejb.alt.config.ConfigurationFactory_ ) - a class that builds org.openejb.alt.assembler.classic.OpenEjbConfiguration object; implements the org.openejb.alt.assembler.classic.OpenEjbConfigurationFactory interface
+*  *openejb.descriptors.output* - possible values: true|false - When set OpenEJB saves deployment descriptors - ejb-jar.xml and openejb-jar.xml
+
+h2. Configuration File
+
+Show a config file with the elements hyperlinked.
+
+{code:xml|title=openejb.conf}
+<?xml version="1.0"?>
+<openejb>
+  <Container id="Default CMP Container" ctype="CMP_ENTITY">
+    Global_TX_Database  c:/my/app/conf/postgresql.cmp_global_database.xml
+    Local_TX_Database   c:/my/app/conf/postgresql.cmp_local_database.xml
+  </Container>
+  <Connector id="Default JDBC Database">
+    JdbcDriver org.postgresql.Driver
+    JdbcUrl jdbc:postgresql://localhost/mydb
+    UserName username
+    Password password
+  </Connector>
+  <SecurityService id="Default Security Service"/>
+  <TransactionService id="Default Transaction Manager"/>
+  <Deployments jar="c:/my/app/employee.jar"/>
+  <Deployments dir="beans/" />
+</openejb>
+{code}
+
+h1.  Basic Layout
+
+Basically, openejb.base is the source for 100% of all configuration information and third party config files (log4j, castor, instantdb, whatever).  This includes finding where the, possibly many, <Deployment> entries in the openejb.conf point.  The openejb.home is where the code loading OpenEJB will look for all the OpenEJB libraries.  Usually openejb.base is not explicitly set and defaults to the value of openejb.home, so many people are used to only dealing with openejb.home.
+
+The point of having and openejb.base and openejb.home was basically to allow several independently configured instances of OpenEJB running on a system (perhaps embedded in Swing apps, in Tomcat, running as a standalone Server, or even in Groovy as Mr. Strachan did!) but without the need to copy all the OpenEJB system libraries everywhere.
+
+*openejb.home* 
+  * can be set explicitly via a system property.  
+  * if not set it default's to user.dir, which is the current working directory.
+
+*openejb.base*
+  * can be set explicitly via a system property.  
+  * If not set it default's to openejb.home.
+
+*openejb.configuration*
+  * can be set to explicitly point to the file containing your configuration.  
+  * If set to a relative path, we first look in user.dir/your-conf-file, then in openejb.base/your-conf-file
+  * If not set we check in openejb.base/conf/openejb.conf
+  * If no conf file is found, we create one in openejb.base/conf/openejb.conf
+
+
+*relative paths in openejb.conf*
+  * Deployment entries are resolved relative to openejb.base.
+  * Containers use openejb.base to resolve their own config files.  For example, Castor JDO to loads the database.xml and all other files from the openejb.base directory.
+  * Resource adapters that are embedded usually have config files of their own and are also loaded from the openeb.base.
+
+*log files*
+  * The log4.configuration file is resolved relative to openejb.base.
+  * The properties in the config file that point to files are also resolved relative to openejb.base.
+
+*OpenEJB libraries*
+  * The jars in the lib and dist directories under openejb.home are added to the classpath.
+
+h2. Summary
+
+A summary of the above in a different notation:
+
+{noformat}
+openejb.home = user.dir (can be set explicitly)
+openejb.base = openejb.home (can be set explicitly)
+openejb.conf = openejb.base/conf/openejb.conf (can be set explicitly)
+logging.conf = openejb.base/conf/logging.conf (can be set explicitly)
+deployments  = paths listed in openejb.conf (relative paths resolved from openejb.base)
+Classpath includes openejb.home/lib and openejb.home/dist
+{noformat}
+
+h2. Example layout
+
+In this one the openejb.home and openejb.base are set, everything else is defaulted.  The openejb.conf file as been updated to point to the ejb jars by name (abc-ejbs.jar and xyz-ejbs.jar).
+
+An example layout:
+{noformat}
+/usr/local/openejb  (openejb.home)
+/usr/local/openejb/lib  (in classpath)
+/usr/local/openejb/dist (in classpath)
+/home/jsmith/foo_app  (openejb.base)
+/home/jsmith/foo_app/conf/openejb.conf
+/home/jsmith/foo_app/conf/logging.conf
+/home/jsmith/foo_app/abc-ejbs.jar (Deployment entry in openejb.conf)
+/home/jsmith/foo_app/xyz-ejbs.jar (Deployment entry in openejb.conf)
+/home/jsmith/foo_app/logs/  
+{noformat}
+
+
+h2. Another Example layout
+
+In this example openejb.home and openejb.base are setup as well as the explicit paths for the openejb and log4j configuration files.
+
+An example layout:
+{noformat}
+/usr/local/openejb  (openejb.home)
+/usr/local/openejb/lib  (in classpath)
+/usr/local/openejb/dist (in classpath)
+/home/jsmith/foo_app  (openejb.base)
+/home/jsmith/foo_app/openejb.xml  (openejb.configuration)
+/home/jsmith/foo_app/abc-ejbs.jar (Deployment entry in openejb.xml)
+/home/jsmith/foo_app/xyz-ejbs.jar (Deployment entry in openejb.xml)
+/home/jsmith/foo_app/log4j.conf  (log4j.configuration)
+/home/jsmith/foo_app/mylogs/  (logging dir as defined in log4j.conf)
+{noformat}