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 07:37:10 UTC

svn commit: r792466 [12/19] - /websites/staging/openejb/trunk/content/

Added: websites/staging/openejb/trunk/content/local-client-injection.html
==============================================================================
--- websites/staging/openejb/trunk/content/local-client-injection.html (added)
+++ websites/staging/openejb/trunk/content/local-client-injection.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,175 @@
+<!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>Local Client Injection</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:title=OpenEJB 3.1.1 or later required}</p>
+
+<p>The <em>@LocalClient</em> annotation (org.apache.openejb.api.LocalClient) is an
+innovation that crosses concepts of an Java EE Application Client with a
+plain Java SE client.  This particular annotation is focused on clients of
+an Embeddable EJB container, i.e. local clients.  There is another
+annotation in development called @RemoteClient that will be focused on
+remote clients; clients running outside the vm the container runs.</p>
+
+<p>Any clients annotated with @LocalClient will be scanned at deployment time
+for usage of injection-related annotations.  The references in the
+@LocalClient will be processed with the application just as if the class
+was a Java EE Application Client module, but with a few slight differences:</p>
+
+<ol>
+<li>Declaring field/method injection points as 'static' is not required</li>
+<li>References to EntityManagers via @PersistenceContext are allowed</li>
+<li>References to local business interfaces via @EJB is allowed</li>
+<li>References to UserTransaction via @Resource is allowed</li>
+</ol>
+
+<p>As well since this is not a heavyweight Java EE Application Client, you are
+not required to use any special packaging or command-line parameters to run
+the client.  Your client can be a Unit Test or any plain java code that
+needs to pull objects from the Embedded EJB container.  Classes with
+@LocalClient can be placed in a Client module or an EJB module.  A given
+module may have as many classes annotated with @LocalClient as it wishes.</p>
+
+<p><a name="LocalClientInjection-Injection"></a></p>
+
+<h1>Injection</h1>
+
+<p>The injection occurs via acquiring a LocalInitialContext via the
+LocalInitialContextFactory and calling <em>bind("inject", instance)</em> passing
+in the instantiated local client object:</p>
+
+<pre><code>@LocalClient
+public class MoviesTest extends TestCase {
+
+    @EJB
+    private Movies movies;
+
+    @Resource
+    private UserTransaction userTransaction;
+
+    @PersistenceContext
+    private EntityManager entityManager;
+
+    public void setUp() throws Exception {
+    Properties p = new Properties();
+    p.put(Context.INITIAL_CONTEXT_FACTORY,
+</code></pre>
+
+<p>"org.apache.openejb.client.LocalInitialContextFactory");
+        InitialContext initialContext = new InitialContext(p);
+        initialContext.bind("inject", this);
+        }</p>
+
+<pre><code>    //... other test methods
+}
+</code></pre>
+
+<p><a name="LocalClientInjection-Discovery"></a></p>
+
+<h1>Discovery</h1>
+
+<p>All EJB modules are scanned for @LocalClient classes, even if those EJB
+Modules are inside .war files as with the <a href="openejb:collapsed-ear.html">OPENEJB:Collapsed EAR</a>
+.  As well any modules that contain a META-INF/application-client.xml file
+will be scanned for @LocalClient classes.</p>
+
+<p>If you see the following error message and are absolutely sure the module
+containing your @LocalClient class is being properly identified as an EJB
+module or a Client module, than it is possible you are seeing some
+classloading issues.</p>
+
+<p>{panel}
+javax.naming.NamingException: Unable to find injection meta-data for
+org.superbiz.MyClient.  Ensure that class was annotated with
+@org.apache.openejb.api.LocalClient and was successfully discovered and
+deployed.
+{panel}</p>
+
+<p>If you encounter this try setting this openejb-specific boot flag so that
+annotations will be treated specially and always loaded by the parent
+classloader</p>
+
+<p>{quote}openejb.tempclassloader.skip=annotations{quote}</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/lookup-of-other-ejbs-example.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/lookup-of-other-ejbs-example.cwiki (added)
+++ websites/staging/openejb/trunk/content/lookup-of-other-ejbs-example.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,93 @@
+h1. Overview
+
+This example shows how to configure JNDI to lookup other EJBs using either the *@EJB* annotation or the *ejb-jar.xml* deployment descriptor.
+
+There are a couple interesting aspects in this example intended to flush out some of the more confusing, and perhaps frustrating, aspects of referring to EJBs.
+
+ - beans themselves do not have JNDI names (this was only recently added in Java EE 6)
+
+This is the most frustrating and hard to accept.  Java EE 5 does not have a global namespace and therefore there is no *singular* name for your EJB.  It does not matter what you do to your EJB, there is no standard way to "give" the bean a name that can be used by the application globally.
+
+ - each EJB owns its own private {{java:comp/env}} namespace ({{java:comp/env}} is not global and cannot be treated that way)
+ - names do not magically appear in {{java:comp/env}}, they must be explicitly added.
+ - to get a reference to bean {{B}} in the {{java:comp/env}} namespace of bean {{A}}, bean {{A}} must declare a reference to bean {{B}}.
+
+You read this right.  If you have 10 EJBs and all of them want to refer to bean {{B}}, then you must declare bean {{B}} as a reference 10 times (once for each of the 10 beans).  There is no standard way in Java EE 5 to do this just once for all beans.  In Java EE 6 there is a "{{java:global}}" namespace, a "{{java:app}}" namespace, and a "{{java:module}}" namespace where names can be defined with the desired scope.  Java EE 5 has only {{java:comp}}.
+
+There are two things which make this even more confusing:
+
+ - Servlets have always defined {{java:comp/env}} differently.  In a webapp, the {{java:comp/env}} namespace is shared by all servlets.  This is essentially equivalent to the {{java:module}} namespace in Java EE 6.  Understand there is a conflict in definition here and that for EJBs, {{java:comp}} is scoped at the component (the EJB itself) not the module as with webapps.
+ - All vendors have some proprietary concept of global JNDI.  So you may be able to lookup "{{java:/MyBean}}" or "{{MyBeanLocal}}", but these are vendor-specific and non-portable.
+
+As well this example shows some other interesting aspects of referring to EJBs:
+
+ - Two beans may use the same business interfaces, the interface alone does not necessarily identify the exact bean
+ - circular references are possible
+
+To illustrate all of this, we have two simple @Stateless beans, {{RedBean}} and {{BlueBean}}.  Both implement the same business local interface, {{Friend}}.  Both {{RedBean}} and {{BlueBean}} define {{java:comp/env/myFriend}} differently which is allowed as {{java:comp}} is a namespace that is private to each bean and not visible to other beans -- so the names do not have to match. 
+
+
+h1. The Code
+
+Here we show the code for {{RedBean}} and {{BlueBean}} and their shared business local interface {{Friend}}.
+{snippet:id=code|url=openejb3/examples/lookup-of-ejbs/src/main/java/org/superbiz/ejblookup/RedBean.java|lang=java}
+{snippet:id=code|url=openejb3/examples/lookup-of-ejbs/src/main/java/org/superbiz/ejblookup/BlueBean.java|lang=java}
+{snippet:id=code|url=openejb3/examples/lookup-of-ejbs/src/main/java/org/superbiz/ejblookup/Friend.java|lang=java}
+
+The key items in the above are the following:
+ - {{@EJB}} has been used at the *class level* to declare {{myFriend}} in the {{java:comp/env}} namespace of each EJB
+ - because both beans share the *same interface*, {{Friend}}, we need to add *{{beanName}}* to the {{@EJB}} usage to specify the exact EJB we want
+ - for {{BlueBean}} the {{java:comp/env/myFriend}} name has been configured to point to {{RedBean}}
+ - for {{RedBean}} the {{java:comp/env/myFriend}} name has been configured to point to {{BlueBean}}
+
+h2. Alternative to annotations
+
+If there is a desire to not use annotations, the above annotation usage is equivalent to the following ejb-jar.xml
+{snippet:url=openejb3/examples/lookup-of-ejbs-with-descriptor/src/main/resources/META-INF/ejb-jar.xml|lang=xml}
+
+h1. Writing a unit test for the example
+
+Writing an unit test for this example is quite simple. We need just to write a setup method to create and initialize the InitialContext, and then write our test methods
+
+{snippet:id=code|url=openejb3/examples/lookup-of-ejbs/src/test/java/org/superbiz/ejblookup/EjbDependencyTest.java|lang=java}
+
+h1.  Running
+
+Running the example is fairly simple.  In the "lookup-of-ejbs" directory of the [examples zip|OPENEJB:Download], just run:
+
+{quote}
+$ mvn clean install
+{quote}
+
+Which should create output like the following.
+
+{noformat}
+-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.ejblookup.EjbDependencyTest
+Apache OpenEJB 3.1.5-SNAPSHOT    build: 20101129-09:51
+http://openejb.apache.org/
+INFO - openejb.home = /Users/dblevins/work/openejb-3.1.x/examples/lookup-of-ejbs
+INFO - openejb.base = /Users/dblevins/work/openejb-3.1.x/examples/lookup-of-ejbs
+INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
+INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
+INFO - Found EjbModule in classpath: /Users/dblevins/work/openejb-3.1.x/examples/lookup-of-ejbs/target/classes
+INFO - Beginning load: /Users/dblevins/work/openejb-3.1.x/examples/lookup-of-ejbs/target/classes
+INFO - Configuring enterprise application: classpath.ear
+INFO - Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container)
+INFO - Auto-creating a container for bean BlueBean: Container(type=STATELESS, id=Default Stateless Container)
+INFO - Enterprise application "classpath.ear" loaded.
+INFO - Assembling app: classpath.ear
+INFO - Jndi(name=BlueBeanLocal) --> Ejb(deployment-id=BlueBean)
+INFO - Jndi(name=RedBeanLocal) --> Ejb(deployment-id=RedBean)
+INFO - Created Ejb(deployment-id=RedBean, ejb-name=RedBean, container=Default Stateless Container)
+INFO - Created Ejb(deployment-id=BlueBean, ejb-name=BlueBean, container=Default Stateless Container)
+INFO - Deployed Application(path=classpath.ear)
+Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.244 sec
+
+Results :
+
+Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
+{noformat}
+

Added: websites/staging/openejb/trunk/content/lookup-of-other-ejbs-example.html
==============================================================================
--- websites/staging/openejb/trunk/content/lookup-of-other-ejbs-example.html (added)
+++ websites/staging/openejb/trunk/content/lookup-of-other-ejbs-example.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,247 @@
+<!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>Lookup of other EJBs Example</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="LookupofotherEJBsExample-Overview"></a></p>
+
+<h1>Overview</h1>
+
+<p>This example shows how to configure JNDI to lookup other EJBs using either
+the <em>@EJB</em> annotation or the <em>ejb-jar.xml</em> deployment descriptor.</p>
+
+<p>There are a couple interesting aspects in this example intended to flush
+out some of the more confusing, and perhaps frustrating, aspects of
+referring to EJBs.</p>
+
+<ul>
+<li>beans themselves do not have JNDI names (this was only recently added in
+Java EE 6)</li>
+</ul>
+
+<p>This is the most frustrating and hard to accept.  Java EE 5 does not have a
+global namespace and therefore there is no <em>singular</em> name for your EJB. 
+It does not matter what you do to your EJB, there is no standard way to
+"give" the bean a name that can be used by the application globally.</p>
+
+<ul>
+<li>each EJB owns its own private <em>java:comp/env</em> namespace
+(<em>java:comp/env</em> is not global and cannot be treated that way)</li>
+<li>names do not magically appear in <em>java:comp/env</em>, they must be
+explicitly added.</li>
+<li>to get a reference to bean <em>B</em> in the <em>java:comp/env</em> namespace of
+bean <em>A</em>, bean <em>A</em> must declare a reference to bean <em>B</em>.</li>
+</ul>
+
+<p>You read this right.  If you have 10 EJBs and all of them want to refer to
+bean <em>B</em>, then you must declare bean <em>B</em> as a reference 10 times (once
+for each of the 10 beans).  There is no standard way in Java EE 5 to do
+this just once for all beans.  In Java EE 6 there is a "<em>java:global</em>"
+namespace, a "<em>java:app</em>" namespace, and a "<em>java:module</em>" namespace
+where names can be defined with the desired scope.  Java EE 5 has only
+<em>java:comp</em>.</p>
+
+<p>There are two things which make this even more confusing:</p>
+
+<ul>
+<li>Servlets have always defined <em>java:comp/env</em> differently.    In a
+webapp, the <em>java:comp/env</em> namespace is shared by all servlets.  This is
+essentially equivalent to the <em>java:module</em> namespace in Java EE 6. 
+Understand there is a conflict in definition here and that for EJBs,
+<em>java:comp</em> is scoped at the component (the EJB itself) not the module as
+with webapps.</li>
+<li>All vendors have some proprietary concept of global JNDI.  So you may be
+able to lookup "<em>java:/MyBean</em>" or "<em>MyBeanLocal</em>", but these are
+vendor-specific and non-portable.</li>
+</ul>
+
+<p>As well this example shows some other interesting aspects of referring to
+EJBs:</p>
+
+<ul>
+<li>Two beans may use the same business interfaces, the interface alone does
+not necessarily identify the exact bean</li>
+<li>circular references are possible</li>
+</ul>
+
+<p>To illustrate all of this, we have two simple @Stateless beans, <em>RedBean</em>
+and <em>BlueBean</em>.  Both implement the same business local interface,
+<em>Friend</em>.  Both <em>RedBean</em> and <em>BlueBean</em> define
+<em>java:comp/env/myFriend</em> differently which is allowed as <em>java:comp</em> is
+a namespace that is private to each bean and not visible to other beans --
+so the names do not have to match. </p>
+
+<p><a name="LookupofotherEJBsExample-TheCode"></a></p>
+
+<h1>The Code</h1>
+
+<p>Here we show the code for <em>RedBean</em> and <em>BlueBean</em> and their shared
+business local interface <em>Friend</em>.
+{snippet:id=code|url=openejb3/examples/lookup-of-ejbs/src/main/java/org/superbiz/ejblookup/RedBean.java|lang=java}
+{snippet:id=code|url=openejb3/examples/lookup-of-ejbs/src/main/java/org/superbiz/ejblookup/BlueBean.java|lang=java}
+{snippet:id=code|url=openejb3/examples/lookup-of-ejbs/src/main/java/org/superbiz/ejblookup/Friend.java|lang=java}</p>
+
+<p>The key items in the above are the following:
+ - <em>@EJB</em> has been used at the <em>class level</em> to declare <em>myFriend</em> in
+the <em>java:comp/env</em> namespace of each EJB
+ - because both beans share the <em>same interface</em>, <em>Friend</em>, we need to
+add <strong>beanName</strong> to the <em>@EJB</em> usage to specify the exact EJB we want
+ - for <em>BlueBean</em> the <em>java:comp/env/myFriend</em> name has been configured
+to point to <em>RedBean</em>
+ - for <em>RedBean</em> the <em>java:comp/env/myFriend</em> name has been configured
+to point to <em>BlueBean</em></p>
+
+<p><a name="LookupofotherEJBsExample-Alternativetoannotations"></a></p>
+
+<h2>Alternative to annotations</h2>
+
+<p>If there is a desire to not use annotations, the above annotation usage is
+equivalent to the following ejb-jar.xml
+{snippet:url=openejb3/examples/lookup-of-ejbs-with-descriptor/src/main/resources/META-INF/ejb-jar.xml|lang=xml}</p>
+
+<p><a name="LookupofotherEJBsExample-Writingaunittestfortheexample"></a></p>
+
+<h1>Writing a unit test for the example</h1>
+
+<p>Writing an unit test for this example is quite simple. We need just to
+write a setup method to create and initialize the InitialContext, and then
+write our test methods</p>
+
+<p>{snippet:id=code|url=openejb3/examples/lookup-of-ejbs/src/test/java/org/superbiz/ejblookup/EjbDependencyTest.java|lang=java}</p>
+
+<p><a name="LookupofotherEJBsExample-Running"></a></p>
+
+<h1>Running</h1>
+
+<p>Running the example is fairly simple.  In the "lookup-of-ejbs" directory of
+the <a href="openejb:download.html">examples zip</a>
+, just run:</p>
+
+<p>{quote}
+$ mvn clean install
+{quote}</p>
+
+<p>Which should create output like the following.</p>
+
+<pre><code>-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.ejblookup.EjbDependencyTest
+Apache OpenEJB 3.1.5-SNAPSHOT    build: 20101129-09:51
+http://openejb.apache.org/
+INFO - openejb.home =
+</code></pre>
+
+<p>/Users/dblevins/work/openejb-3.1.x/examples/lookup-of-ejbs
+    INFO - openejb.base =
+/Users/dblevins/work/openejb-3.1.x/examples/lookup-of-ejbs
+    INFO - Configuring Service(id=Default Security Service,
+type=SecurityService, provider-id=Default Security Service)
+    INFO - Configuring Service(id=Default Transaction Manager,
+type=TransactionManager, provider-id=Default Transaction Manager)
+    INFO - Found EjbModule in classpath:
+/Users/dblevins/work/openejb-3.1.x/examples/lookup-of-ejbs/target/classes
+    INFO - Beginning load:
+/Users/dblevins/work/openejb-3.1.x/examples/lookup-of-ejbs/target/classes
+    INFO - Configuring enterprise application: classpath.ear
+    INFO - Configuring Service(id=Default Stateless Container, type=Container,
+provider-id=Default Stateless Container)
+    INFO - Auto-creating a container for bean BlueBean:
+Container(type=STATELESS, id=Default Stateless Container)
+    INFO - Enterprise application "classpath.ear" loaded.
+    INFO - Assembling app: classpath.ear
+    INFO - Jndi(name=BlueBeanLocal) --> Ejb(deployment-id=BlueBean)
+    INFO - Jndi(name=RedBeanLocal) --> Ejb(deployment-id=RedBean)
+    INFO - Created Ejb(deployment-id=RedBean, ejb-name=RedBean,
+container=Default Stateless Container)
+    INFO - Created Ejb(deployment-id=BlueBean, ejb-name=BlueBean,
+container=Default Stateless Container)
+    INFO - Deployed Application(path=classpath.ear)
+    Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.244 sec</p>
+
+<pre><code>Results :
+
+Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
+</code></pre>
+
+        </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/manual-installation.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/manual-installation.cwiki (added)
+++ websites/staging/openejb/trunk/content/manual-installation.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,192 @@
+{composition-setup}
+{composition-setup}
+h1. Overview
+
+The manual installation process is significantly harder then the [automatic installation|Tomcat] which we normally recommend.  In this installation process you will do the following:
+
+# Install openejb.war
+## Download openejb.war from the [OpenEJB download page|http://people.apache.org/~dain/openejb-temp]
+## Make webapps/openejb directory
+## Change to new webapps/openejb directory
+## Unpack the openejb.war file in the new directory
+# Add the OpenEJB listener the conf/server.xml file
+# Update the non-compliant Tomcat annotations-api.jar
+# Add the OpenEJB JavaAgent to the bin/catalina.bat or bin/catalina.bat script
+
+h1. {anchor:install-openejb}Install openejb.war
+
+Once Tomcat has been [installed|Tomcat Installation], the OpenEJB plugin for Tomcat can be installed.  The war can be obtained from the [OpenEJB download page|http://people.apache.org/~dain/openejb-temp].  The commands in this example are executed from within the Tomcat installation directory.
+
+h2. Unpack OpenEJB Tomcat plugin in Tomcat webapps directory
+
+{warning:title=Be Careful}This is the most error prone step.  A web application does not contain a root directory, so if you unpack it in the wrong directory, it is difficult to undo.  Please, follow this step closely, and most importantly *make sure you execute the unpack command from within the new webapps/openejb directory*.{warning}
+
+Due to the structure of war files, you must create a new directory for OpenEJB, change to the new directory and execute the unpack command from within the new directory.  If you get this wrong, it is difficult to undo, so follow the steps closely.
+
+{deck:id=unpack tomcat}
+{card:label=Windows}{noformat:nopanel=true}
+C:\apache-tomcat-6.0.14>mkdir webapps\openejb
+
+C:\apache-tomcat-6.0.14>cd webapps\openejb
+
+C:\apache-tomcat-6.0.14\webapps\openejb>jar -xvf \openejb.war
+  created: WEB-INF/
+  created: WEB-INF/classes/
+  created: WEB-INF/classes/org/
+  created: WEB-INF/classes/org/apache/
+  created: WEB-INF/classes/org/apache/openejb/
+...snip...
+
+C:\apache-tomcat-6.0.14\webapps\openejb>dir
+ Volume in drive C has no label.
+ Volume Serial Number is 0000-0000
+
+ Directory of C:\apache-tomcat-6.0.14\webapps\openejb
+
+09/21/2007  10:19 AM    <DIR>          .
+09/21/2007  10:19 AM    <DIR>          ..
+09/21/2007  10:19 AM             1,000 index.html
+09/21/2007  10:19 AM    <DIR>          lib
+09/21/2007  10:19 AM            11,358 LICENSE
+09/21/2007  10:19 AM    <DIR>          META-INF
+09/21/2007  10:19 AM            11,649 NOTICE
+09/21/2007  10:19 AM             1,018 openejb.xml
+09/21/2007  10:19 AM             1,886 README.txt
+09/21/2007  10:19 AM    <DIR>          tomcat
+09/21/2007  10:19 AM    <DIR>          WEB-INF
+               5 File(s)         26,911 bytes
+               6 Dir(s)   4,633,796,608 bytes free
+
+C:\apache-tomcat-6.0.14\webapps\openejb>cd ..\..
+
+C:\apache-tomcat-6.0.14>
+{noformat}{card}
+{card:label=Unix}{noformat:nopanel=true}
+apache-tomcat-6.0.14$ mkdir webapps/openejb
+
+apache-tomcat-6.0.14$ cd webapps/openejb/
+
+apache-tomcat-6.0.14/webapps/openejb$ jar -xvf path/to/openejb.war 
+  created: WEB-INF/
+  created: WEB-INF/classes/
+  created: WEB-INF/classes/org/
+  created: WEB-INF/classes/org/apache/
+  created: WEB-INF/classes/org/apache/openejb/
+...snip...
+
+apache-tomcat-6.0.14/webapps/openejb$ ls
+LICENSE      META-INF/    NOTICE       README.txt   WEB-INF/     index.html   lib/         openejb.xml  tomcat/
+
+apache-tomcat-6.0.14/webapps/openejb$ cd ../..
+
+apache-tomcat-6.0.14$
+{noformat}{card}
+{deck}
+
+h2. Add the OpenEJB listener to Tomcat 
+
+All Tomcat listener classes must be available in the Tomcat common class loader, so the openejb-loader jar must be copied into the Tomcat lib directory.
+
+{deck:id=copy openejb loader}
+{card:label=Windows}{noformat:nopanel=true}
+C:\apache-tomcat-6.0.14>copy webapps\openejb\lib\openejb-loader-3.0.0-SNAPSHOT.jar lib\openejb-loader.jar
+        1 file(s) copied.
+{noformat}{card}
+{card:label=Unix}{noformat:nopanel=true}
+apache-tomcat-6.0.14$ cp webapps/openejb/lib/openejb-loader-*.jar lib/openejb-loader.jar
+{noformat}{card}
+{deck}
+
+Add the following {highlight}highlighted lines{highlight} to your conf/server.xml file to load the OpenEJB listener:
+ 
+{panel:title=conf/server.xml}
+<!-- Note:  A "Server" is not itself a "Container", so you may not
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;define subcomponents such as "Valves" at this level.
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Documentation at /docs/config/server.html
+ -->
+<Server port="8005" shutdown="SHUTDOWN">
+&nbsp;&nbsp;{highlight}<!-- OpenEJB plugin for tomcat -->{highlight}
+&nbsp;&nbsp;{highlight}<Listener className="org.apache.openejb.loader.OpenEJBListener" />{highlight}
+
+&nbsp;&nbsp;<!--APR library loader. Documentation at /docs/apr.html -->
+&nbsp;&nbsp;<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
+...snip...
+{panel} 
+
+h2. Update the Tomcat annotations-api.jar file
+
+Tomcat contains an old non-compliant version of the javax.annotation classes and these invalid classes must be updated so OpenEJB can process annotations.  Simply, replace the annotations-api.jar in the Tomcat lib directory with the updated annotations-api.jar in the OpenEJB war.
+
+{deck:id=update annotations-api.jar}
+{card:label=Windows}{noformat:nopanel=true}
+C:\apache-tomcat-6.0.14>copy webapps\openejb\tomcat\annotations-api.jar lib\annotations-api.jar
+Overwrite lib\annotations-api.jar? (Yes/No/All): y
+        1 file(s) copied.
+{noformat}{card}
+{card:label=Unix}{noformat:nopanel=true}
+apache-tomcat-6.0.14$ cp webapps/openejb/tomcat/annotations-api.jar lib/annotations-api.jar 
+{noformat}{card}
+{deck}
+
+h2. {anchor:javaagent} Add OpenEJB javaagent to Tomcat startup
+
+OpenJPA, the Java Persistence implementation used by OpenEJB, currently must enhanced persistence classes to function properly, and this requires the installation of a javaagent into the Tomcat startup process.
+
+First, copy the OpenEJB JavaAgent jar into the lib directory.
+
+{deck:id=unpack tomcat}
+{card:label=Windows}{noformat:nopanel=true}
+C:\apache-tomcat-6.0.14>copy webapps\openejb\lib\openejb-javaagent-3.0.0-SNAPSHOT.jar lib\openejb-javaagent.jar
+        1 file(s) copied.
+{noformat}{card}
+{card:label=Unix}{noformat:nopanel=true}
+apache-tomcat-6.0.14$ cp webapps/openejb/lib/openejb-javaagent-*.jar lib/openejb-javaagent.jar
+{noformat}{card}
+{deck}
+
+Simply, add the following {highlight}highlighted lines{highlight} to the bin/catalina.bat (Windows) or bin/catalina.sh (Unix) file to enable the OpenEJB javaagent:
+
+{deck:id=update script}
+{card:label=Windows}
+{panel:title=bin/catalina.bat}
+...snip...
+if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuli
+set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
+:noJuli
+
+{highlight}rem Add OpenEJB javaagent
+if not exist "%CATALINA_BASE%\webapps\openejb\lib\openejb-javaagent.jar" goto noOpenEJBJavaagent
+set JAVA_OPTS="-javaagent:%CATALINA_BASE%\webapps\openejb\lib\openejb-javaagent.jar" %JAVA_OPTS%
+:noOpenEJBJavaagent{highlight}
+
+rem ----- Execute The Requested Command ---------------------------------------
+
+echo Using CATALINA_BASE:   %CATALINA_BASE%
+echo Using CATALINA_HOME:   %CATALINA_HOME%
+...snip...
+{panel} 
+{card}
+{card:label=Unix}
+{panel:title=bin/catalina.sh}
+...snip...
+\# Set juli LogManager if it is present
+if [OPENEJB: -r "$CATALINA_BASE"/conf/logging.properties ]; then
+&nbsp;&nbsp;JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" "-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties"
+fi
+
+{highlight}\# Add OpenEJB javaagent
+if [OPENEJB: -r "$CATALINA_BASE"/webapps/lib/openejb-javaagent.jar ]; then
+&nbsp;&nbsp;JAVA_OPTS=""-javaagent:$CATALINA_BASE/lib/openejb-javaagent.jar" $JAVA_OPTS"
+fi{highlight}
+
+\# ----- Execute The Requested Command -----------------------------------------
+
+\# Bugzilla 37848: only output this if we have a TTY
+if [OPENEJB: $have_tty -eq 1 ]; then
+&nbsp;&nbsp;echo "Using CATALINA_BASE:   $CATALINA_BASE"
+...snip...
+{panel} 
+{card}
+{deck}
+
+*NOTE:* The example above is an excerpt from the middle of the bin/catalina.sh file.  Search for "Execute" in the file to locate the correct position in the file to add the new lines.
\ No newline at end of file

Added: websites/staging/openejb/trunk/content/manual-installation.html
==============================================================================
--- websites/staging/openejb/trunk/content/manual-installation.html (added)
+++ websites/staging/openejb/trunk/content/manual-installation.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,351 @@
+<!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>Manual Installation</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}
+{composition-setup}
+<a name="ManualInstallation-Overview"></a></p>
+
+<h1>Overview</h1>
+
+<p>The manual installation process is significantly harder then the <a href="tomcat.html">automatic installation</a>
+ which we normally recommend.  In this installation process you will do the
+following:</p>
+
+<ol>
+<li>Install openejb.war</li>
+<li># Download openejb.war from the <a href="http://people.apache.org/~dain/openejb-temp">OpenEJB download page</a></li>
+<li># Make webapps/openejb directory</li>
+<li># Change to new webapps/openejb directory</li>
+<li># Unpack the openejb.war file in the new directory</li>
+<li>Add the OpenEJB listener the conf/server.xml file</li>
+<li>Update the non-compliant Tomcat annotations-api.jar</li>
+<li>Add the OpenEJB JavaAgent to the bin/catalina.bat or bin/catalina.bat
+script</li>
+</ol>
+
+<p><a name="ManualInstallation-{anchor:install-openejb}Installopenejb.war"></a></p>
+
+<h1>{anchor:install-openejb}Install openejb.war</h1>
+
+<p>Once Tomcat has been <a href="tomcat-installation.html">installed</a>
+, the OpenEJB plugin for Tomcat can be installed.  The war can be obtained
+from the [OpenEJB download page|http://people.apache.org/~dain/openejb-temp]
+.  The commands in this example are executed from within the Tomcat
+installation directory.</p>
+
+<p><a name="ManualInstallation-UnpackOpenEJBTomcatplugininTomcatwebappsdirectory"></a></p>
+
+<h2>Unpack OpenEJB Tomcat plugin in Tomcat webapps directory</h2>
+
+<p>{warning:title=Be Careful}This is the most error prone step.  A web
+application does not contain a root directory, so if you unpack it in the
+wrong directory, it is difficult to undo.  Please, follow this step
+closely, and most importantly <em>make sure you execute the unpack command
+from within the new webapps/openejb directory</em>.{warning}</p>
+
+<p>Due to the structure of war files, you must create a new directory for
+OpenEJB, change to the new directory and execute the unpack command from
+within the new directory.  If you get this wrong, it is difficult to undo,
+so follow the steps closely.</p>
+
+<p>{deck:id=unpack tomcat}
+{card:label=Windows}{noformat:nopanel=true}
+C:\apache-tomcat-6.0.14>mkdir webapps\openejb</p>
+
+<p>C:\apache-tomcat-6.0.14>cd webapps\openejb</p>
+
+<p>C:\apache-tomcat-6.0.14\webapps\openejb>jar -xvf \openejb.war
+  created: WEB-INF/
+  created: WEB-INF/classes/
+  created: WEB-INF/classes/org/
+  created: WEB-INF/classes/org/apache/
+  created: WEB-INF/classes/org/apache/openejb/
+...snip...</p>
+
+<p>C:\apache-tomcat-6.0.14\webapps\openejb>dir
+ Volume in drive C has no label.
+ Volume Serial Number is 0000-0000</p>
+
+<p>Directory of C:\apache-tomcat-6.0.14\webapps\openejb</p>
+
+<p>09/21/2007  10:19 AM    <DIR>          .
+09/21/2007  10:19 AM    <DIR>          ..
+09/21/2007  10:19 AM         1,000 index.html
+09/21/2007  10:19 AM    <DIR>          lib
+09/21/2007  10:19 AM        11,358 LICENSE
+09/21/2007  10:19 AM    <DIR>          META-INF
+09/21/2007  10:19 AM        11,649 NOTICE
+09/21/2007  10:19 AM         1,018 openejb.xml
+09/21/2007  10:19 AM         1,886 README.txt
+09/21/2007  10:19 AM    <DIR>          tomcat
+09/21/2007  10:19 AM    <DIR>          WEB-INF
+           5 File(s)     26,911 bytes
+           6 Dir(s)   4,633,796,608 bytes free</p>
+
+<p>C:\apache-tomcat-6.0.14\webapps\openejb>cd ....</p>
+
+<p>C:\apache-tomcat-6.0.14></p>
+
+<pre><code>{card:label=Unix}{noformat:nopanel=true}
+apache-tomcat-6.0.14$ mkdir webapps/openejb
+
+apache-tomcat-6.0.14$ cd webapps/openejb/
+
+apache-tomcat-6.0.14/webapps/openejb$ jar -xvf path/to/openejb.war 
+  created: WEB-INF/
+  created: WEB-INF/classes/
+  created: WEB-INF/classes/org/
+  created: WEB-INF/classes/org/apache/
+  created: WEB-INF/classes/org/apache/openejb/
+...snip...
+
+apache-tomcat-6.0.14/webapps/openejb$ ls
+LICENSE      META-INF/    NOTICE       README.txt   WEB-INF/     index.html
+</code></pre>
+
+<p>lib/         openejb.xml  tomcat/</p>
+
+<pre><code>apache-tomcat-6.0.14/webapps/openejb$ cd ../..
+
+apache-tomcat-6.0.14$
+</code></pre>
+
+<p>{deck}</p>
+
+<p><a name="ManualInstallation-AddtheOpenEJBlistenertoTomcat"></a></p>
+
+<h2>Add the OpenEJB listener to Tomcat</h2>
+
+<p>All Tomcat listener classes must be available in the Tomcat common class
+loader, so the openejb-loader jar must be copied into the Tomcat lib
+directory.</p>
+
+<p>{deck:id=copy openejb loader}
+{card:label=Windows}{noformat:nopanel=true}
+C:\apache-tomcat-6.0.14>copy
+webapps\openejb\lib\openejb-loader-3.0.0-SNAPSHOT.jar
+lib\openejb-loader.jar
+    1 file(s) copied.</p>
+
+<pre><code>{card:label=Unix}{noformat:nopanel=true}
+apache-tomcat-6.0.14$ cp webapps/openejb/lib/openejb-loader-*.jar
+</code></pre>
+
+<p>lib/openejb-loader.jar</p>
+
+<p>{deck}</p>
+
+<p>Add the following {highlight}highlighted lines{highlight} to your
+conf/server.xml file to load the OpenEJB listener:</p>
+
+<p>{panel:title=conf/server.xml}
+<!-- Note:  A "Server" is not itself a "Container", so you may not
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;define subcomponents such as "Valves" at this
+level.
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Documentation at /docs/config/server.html
+ -->
+<Server port="8005" shutdown="SHUTDOWN">
+&nbsp;&nbsp;{highlight}<!-- OpenEJB plugin for tomcat -->{highlight}
+&nbsp;&nbsp;{highlight}<Listener
+className="org.apache.openejb.loader.OpenEJBListener" />{highlight}</p>
+
+<p>&nbsp;&nbsp;<!--APR library loader. Documentation at /docs/apr.html -->
+&nbsp;&nbsp;<Listener
+className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
+...snip...
+{panel} </p>
+
+<p><a name="ManualInstallation-UpdatetheTomcatannotations-api.jarfile"></a></p>
+
+<h2>Update the Tomcat annotations-api.jar file</h2>
+
+<p>Tomcat contains an old non-compliant version of the javax.annotation
+classes and these invalid classes must be updated so OpenEJB can process
+annotations.  Simply, replace the annotations-api.jar in the Tomcat lib
+directory with the updated annotations-api.jar in the OpenEJB war.</p>
+
+<p>{deck:id=update annotations-api.jar}
+{card:label=Windows}{noformat:nopanel=true}
+C:\apache-tomcat-6.0.14>copy webapps\openejb\tomcat\annotations-api.jar
+lib\annotations-api.jar
+Overwrite lib\annotations-api.jar? (Yes/No/All): y
+    1 file(s) copied.</p>
+
+<pre><code>{card:label=Unix}{noformat:nopanel=true}
+apache-tomcat-6.0.14$ cp webapps/openejb/tomcat/annotations-api.jar
+</code></pre>
+
+<p>lib/annotations-api.jar </p>
+
+<p>{deck}</p>
+
+<p><a name="ManualInstallation-{anchor:javaagent}AddOpenEJBjavaagenttoTomcatstartup"></a></p>
+
+<h2>{anchor:javaagent} Add OpenEJB javaagent to Tomcat startup</h2>
+
+<p>OpenJPA, the Java Persistence implementation used by OpenEJB, currently
+must enhanced persistence classes to function properly, and this requires
+the installation of a javaagent into the Tomcat startup process.</p>
+
+<p>First, copy the OpenEJB JavaAgent jar into the lib directory.</p>
+
+<p>{deck:id=unpack tomcat}
+{card:label=Windows}{noformat:nopanel=true}
+C:\apache-tomcat-6.0.14>copy
+webapps\openejb\lib\openejb-javaagent-3.0.0-SNAPSHOT.jar
+lib\openejb-javaagent.jar
+    1 file(s) copied.</p>
+
+<pre><code>{card:label=Unix}{noformat:nopanel=true}
+apache-tomcat-6.0.14$ cp webapps/openejb/lib/openejb-javaagent-*.jar
+</code></pre>
+
+<p>lib/openejb-javaagent.jar</p>
+
+<p>{deck}</p>
+
+<p>Simply, add the following {highlight}highlighted lines{highlight} to the
+bin/catalina.bat (Windows) or bin/catalina.sh (Unix) file to enable the
+OpenEJB javaagent:</p>
+
+<p>{deck:id=update script}
+{card:label=Windows}
+{panel:title=bin/catalina.bat}
+...snip...
+if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuli
+set JAVA_OPTS=%JAVA_OPTS%
+-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
+-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
+:noJuli</p>
+
+<p>{highlight}rem Add OpenEJB javaagent
+if not exist "%CATALINA_BASE%\webapps\openejb\lib\openejb-javaagent.jar"
+goto noOpenEJBJavaagent
+set
+JAVA_OPTS="-javaagent:%CATALINA_BASE%\webapps\openejb\lib\openejb-javaagent.jar"
+%JAVA_OPTS%
+:noOpenEJBJavaagent{highlight}</p>
+
+<h2>rem ----- Execute The Requested Command</h2>
+
+<p>echo Using CATALINA_BASE:   %CATALINA_BASE%
+echo Using CATALINA_HOME:   %CATALINA_HOME%
+...snip...
+{panel} 
+{card}
+{card:label=Unix}
+{panel:title=bin/catalina.sh}
+...snip...
+# Set juli LogManager if it is present
+if <a href="openejb:--r-"$catalina_base"/conf/logging.properties-.html">OPENEJB: -r "$CATALINA_BASE"/conf/logging.properties </a>
+; then
+&nbsp;&nbsp;JAVA_OPTS="$JAVA_OPTS
+"-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
+"-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties"
+fi</p>
+
+<p>{highlight}# Add OpenEJB javaagent
+if <a href="openejb:--r-"$catalina_base"/webapps/lib/openejb-javaagent.jar-.html">OPENEJB: -r "$CATALINA_BASE"/webapps/lib/openejb-javaagent.jar </a>
+; then
+&nbsp;&nbsp;JAVA_OPTS=""-javaagent:$CATALINA_BASE/lib/openejb-javaagent.jar"
+$JAVA_OPTS"
+fi{highlight}</p>
+
+<h2># ----- Execute The Requested Command</h2>
+
+<p># Bugzilla 37848: only output this if we have a TTY
+if <a href="openejb:-$have_tty--eq-1-.html">OPENEJB: $have_tty -eq 1 </a>
+; then
+&nbsp;&nbsp;echo "Using CATALINA_BASE:   $CATALINA_BASE"
+...snip...
+{panel} 
+{card}
+{deck}</p>
+
+<p><em>NOTE:</em> The example above is an excerpt from the middle of the
+bin/catalina.sh file.  Search for "Execute" in the file to locate the
+correct position in the file to add the new lines.</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>

Modified: websites/staging/openejb/trunk/content/navigation.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/navigation.cwiki (original)
+++ websites/staging/openejb/trunk/content/navigation.cwiki Sun Jul 10 05:37:04 2011
@@ -1,39 +1 @@
-h3. Overview
-
-- [Home|Index]
-- [News]
-- [FAQ]
-- [Download]
-- [Documentation|OPENEJBx30:Index]
-- [Examples]
-- [Lightning Demos|http://cwiki.apache.org/confluence/display/OPENEJB/Lightening+Demos]
-- [Mailing Lists]
-- [Source Code]
-- [Project Blog|http://blogs.apache.org/openejb]
-
-h3. Servers
-
-- [Local|Local Server]
-- [Remote|Remote Server]
-
-h3. Integrations
-
-- [OPENEJBx30:Tomcat]
-- [Geronimo]
-- [WebObjects]
-
-h3. Community
-
-- [Team]
-- [Articles]
-- [IRC|http://webchat.freenode.net/?channels=openejb]
-
-h3. Related Projects
-
-- [ActiveMQ|http://activemq.apache.org]
-- [OpenJPA|http://openjpa.apache.org]
-- [CXF|http://cxf.apache.org]
-
-h3. Index
- - [Site Index|Space Index]
- - [Doc Index|OPENEJBx30:Space Index]
+{include:OPENEJB:Navigation}
\ No newline at end of file

Modified: websites/staging/openejb/trunk/content/navigation.html
==============================================================================
--- websites/staging/openejb/trunk/content/navigation.html (original)
+++ websites/staging/openejb/trunk/content/navigation.html Sun Jul 10 05:37:04 2011
@@ -67,70 +67,7 @@
         </div> <!-- lucy-left_nav_box -->
 
         <div id="lucy-main_content_box" class="grid_9">
-          <p><a name="Navigation-Overview"></a></p>
-
-<h3>Overview</h3>
-
-<ul>
-<li><a href="index.html">Home</a></li>
-<li><a href="news.html">News</a></li>
-<li><a href="faq.html">FAQ</a></li>
-<li><a href="download.html">Download</a></li>
-<li><a href="openejbx30:index.html">Documentation</a></li>
-<li><a href="examples.html">Examples</a></li>
-<li><a href="http://cwiki.apache.org/confluence/display/OPENEJB/Lightening+Demos">Lightning Demos</a></li>
-<li><a href="mailing-lists.html">Mailing Lists</a></li>
-<li><a href="source-code.html">Source Code</a></li>
-<li><a href="http://blogs.apache.org/openejb">Project Blog</a></li>
-</ul>
-
-<p><a name="Navigation-Servers"></a></p>
-
-<h3>Servers</h3>
-
-<ul>
-<li><a href="local-server.html">Local</a></li>
-<li><a href="remote-server.html">Remote</a></li>
-</ul>
-
-<p><a name="Navigation-Integrations"></a></p>
-
-<h3>Integrations</h3>
-
-<ul>
-<li><a href="openejbx30:tomcat.html">OPENEJBx30:Tomcat</a></li>
-<li><a href="geronimo.html">Geronimo</a></li>
-<li><a href="webobjects.html">WebObjects</a></li>
-</ul>
-
-<p><a name="Navigation-Community"></a></p>
-
-<h3>Community</h3>
-
-<ul>
-<li><a href="team.html">Team</a></li>
-<li><a href="articles.html">Articles</a></li>
-<li><a href="http://webchat.freenode.net/?channels=openejb">IRC</a></li>
-</ul>
-
-<p><a name="Navigation-RelatedProjects"></a></p>
-
-<h3>Related Projects</h3>
-
-<ul>
-<li><a href="http://activemq.apache.org">ActiveMQ</a></li>
-<li><a href="http://openjpa.apache.org">OpenJPA</a></li>
-<li><a href="http://cxf.apache.org">CXF</a></li>
-</ul>
-
-<p><a name="Navigation-Index"></a></p>
-
-<h3>Index</h3>
-
-<ul>
-<li><a href="space-index.html">Site Index</a></li>
-<li><a href="openejbx30:space-index.html">Doc Index</a></li>
-</ul>
+          <p>{include:OPENEJB:Navigation}</p>
 
         </div> <!-- lucy-main_content_box --> 
         <div class="clear"></div>

Added: websites/staging/openejb/trunk/content/new-instructions.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/new-instructions.cwiki (added)
+++ websites/staging/openejb/trunk/content/new-instructions.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,4 @@
+{note:title=THIS PAGE WILL BE ARCHIVED AND REMOVED}
+Instructions on OpenEJB Tomcat Installation can be found at&nbsp; [Tomcat]
+{note}
+

Added: websites/staging/openejb/trunk/content/new-instructions.html
==============================================================================
--- websites/staging/openejb/trunk/content/new-instructions.html (added)
+++ websites/staging/openejb/trunk/content/new-instructions.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,90 @@
+<!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>New Instructions</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:title=THIS PAGE WILL BE ARCHIVED AND REMOVED}
+Instructions on OpenEJB Tomcat Installation can be found at&nbsp; <a href="tomcat.html">Tomcat</a>
+{note}</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/online-javadocs.cwiki
==============================================================================
    (empty)

Added: websites/staging/openejb/trunk/content/online-javadocs.html
==============================================================================
--- websites/staging/openejb/trunk/content/online-javadocs.html (added)
+++ websites/staging/openejb/trunk/content/online-javadocs.html Sun Jul 10 05:37:04 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>Online Javadocs</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/openejb-per-tomcat-installation.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/openejb-per-tomcat-installation.cwiki (added)
+++ websites/staging/openejb/trunk/content/openejb-per-tomcat-installation.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,40 @@
+{note:title=THIS PAGE WILL BE ARCHIVED AND REMOVED}
+Instructions on OpenEJB Tomcat Installation can be found at&nbsp; [Tomcat]
+
+{note}
+
+h1. OpenEJB per Tomcat instance
+
+Configure OpenEJB per Tomcat instance requires the following steps:\* Copy the _war/openejb-loader-1.0-SNAPSHOT.war_ into the webapps dir of a running Tomcat install
+{code:title=Under Unix}
+$ cd $OPENEJB_HOME
+$ cp war/openejb-loader-1.0-SNAPSHOT.war $CATALINA_HOME/webapps
+{code}
+or
+{code:title=Under Windows}
+c:/> cd %OPENEJB_HOME%
+%OPENEJB_HOME%> cp war/openejb-loader-1.0-SNAPSHOT.war %CATALINA_HOME%/webapps
+{code}
+* Update the openejb.home init param (inside the WEB-INF/web.xml file) to point to where OpenEJB was installed.
+
+{code:title=Under Unix}
+$ cd $CATALINA_HOME/webapps
+$ jar -xvf openejb-loader-1.0-SNAPSHOT.war WEB-INF/web.xml
+...edit WEB-INF/web.xml...
+$ jar -uvf openejb-loader-1.0-SNAPSHOT.war WEB-INF/web.xml
+$ rm -rf WEB-INF
+{code}
+or
+{code:title=Under Windows}
+c:/> cd %CATALINA_HOME%/webapps
+%CATALINA_HOME%/webapps> jar -xvf openejb-loader-1.0-SNAPSHOT.war WEB-INF/web.xml
+...edit WEB-INF/web.xml...
+%CATALINA_HOME%/webapps> jar -uvf openejb-loader-1.0-SNAPSHOT.war WEB-INF/web.xml
+%CATALINA_HOME%/webapps> rmdir /S /Q WEB-INF
+{code}
+* Create the _temp_ directory under Tomcat's home directory
+{warning}
+This is because the beans that's been successfully validated are deployed. During validation OpenEJB creates temporary files under the _temp.dir_ directory, which is overriden by Tomcat to its temp directory. Unfortunatelly, the directory doesn't exist and needs to be created manually.
+{warning}
+* Deploy your webapps that are using the beans deployed onto OpenEJB
+* Start up Tomcat and have fun with the EJBs
\ No newline at end of file

Added: websites/staging/openejb/trunk/content/openejb-per-tomcat-installation.html
==============================================================================
--- websites/staging/openejb/trunk/content/openejb-per-tomcat-installation.html (added)
+++ websites/staging/openejb/trunk/content/openejb-per-tomcat-installation.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,143 @@
+<!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>OpenEJB per Tomcat installation</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:title=THIS PAGE WILL BE ARCHIVED AND REMOVED}
+Instructions on OpenEJB Tomcat Installation can be found at&nbsp; <a href="tomcat.html">Tomcat</a></p>
+
+<p>{note}</p>
+
+<p><a name="OpenEJBperTomcatinstallation-OpenEJBperTomcatinstance"></a></p>
+
+<h1>OpenEJB per Tomcat instance</h1>
+
+<p>Configure OpenEJB per Tomcat instance requires the following steps:* Copy
+the <em>war/openejb-loader-1.0-SNAPSHOT.war</em> into the webapps dir of a running
+Tomcat install
+<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>Under Unix</B></DIV><DIV class="codeContent panelContent">
+    $ cd $OPENEJB_HOME
+    $ cp war/openejb-loader-1.0-SNAPSHOT.war $CATALINA_HOME/webapps</p>
+
+<p>or
+<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>Under Windows</B></DIV><DIV class="codeContent panelContent">
+    c:/> cd %OPENEJB_HOME%
+    %OPENEJB_HOME%> cp war/openejb-loader-1.0-SNAPSHOT.war
+%CATALINA_HOME%/webapps</p>
+
+<ul>
+<li>Update the openejb.home init param (inside the WEB-INF/web.xml file) to
+point to where OpenEJB was installed.</li>
+</ul>
+
+<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>Under Unix</B></DIV><DIV class="codeContent panelContent">
+    $ cd $CATALINA_HOME/webapps
+    $ jar -xvf openejb-loader-1.0-SNAPSHOT.war WEB-INF/web.xml
+    ...edit WEB-INF/web.xml...
+    $ jar -uvf openejb-loader-1.0-SNAPSHOT.war WEB-INF/web.xml
+    $ rm -rf WEB-INF</p>
+
+<p>or
+<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>Under Windows</B></DIV><DIV class="codeContent panelContent">
+    c:/> cd %CATALINA_HOME%/webapps
+    %CATALINA_HOME%/webapps> jar -xvf openejb-loader-1.0-SNAPSHOT.war
+WEB-INF/web.xml
+    ...edit WEB-INF/web.xml...
+    %CATALINA_HOME%/webapps> jar -uvf openejb-loader-1.0-SNAPSHOT.war
+WEB-INF/web.xml
+    %CATALINA_HOME%/webapps> rmdir /S /Q WEB-INF</p>
+
+<ul>
+<li>Create the <em>temp</em> directory under Tomcat's home directory
+{warning}
+This is because the beans that's been successfully validated are deployed.
+During validation OpenEJB creates temporary files under the <em>temp.dir</em>
+directory, which is overriden by Tomcat to its temp directory.
+Unfortunatelly, the directory doesn't exist and needs to be created
+manually.
+{warning}</li>
+<li>Deploy your webapps that are using the beans deployed onto OpenEJB</li>
+<li>Start up Tomcat and have fun with the EJBs</li>
+</ul>
+
+        </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/openejb.xml.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/openejb.xml.cwiki (added)
+++ websites/staging/openejb/trunk/content/openejb.xml.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,57 @@
+h1. Overview
+
+The openejb.xml is the main configuration file for the container system and it's services such as transaction, security, and data sources.
+    
+The format is a mix of xml and properties inspired by the format of the httpd configuration file.  Basically:
+
+{code:xml}    
+<tag id="">
+  ...properties...
+</tag>
+{code}
+    
+Such as:
+    
+{code:xml}    
+<Resource id="MyDataSource" type="DataSource">
+  username foo
+  password bar
+</Resource>
+{code}
+
+*Note the space*.  White space is a valid name/value pair separator in any java properties file (along with semi-colon).  So the above is equivalent to:
+{code:xml}
+<Resource id="MyDataSource" type="DataSource">
+  username = foo
+  password = bar
+</Resource>
+{code}
+You are free to use white space, ":", or "=" for your name/value pair separator with no affect on OpenEJB.
+    
+h2. Property Defaults and Overriding
+    
+The openejb.xml file itself functions as an override, default values are specified via other means (service-jar.xml files in the classpath), therefore you only need to specify property values here for 2 reasons:
+# you wish to for documentation purposes 
+# you need to change the default value
+
+The default openejb.xml file has most of the useful properties for each component explicitly listed with default values for documentation purposes.  It is safe to delete them and be assured that no behavior will change if a smaller config file is desired.
+
+Overriding can also be done via the command line or plain Java system properties.  See [System Properties] for details.
+
+h2. What properties are available?
+    
+To know what properties can be overriden the './bin/openejb properties' command is very useful: see [Properties Tool]
+    
+It's function is to connect to a running server and print a canonical list of all properties OpenEJB can see via the various means of configuration.  When sending requests for help to the users list or jira, it is highly encouraged to send the output of this tool with your message.
+
+h2. Not configurable via openejb.xml
+    
+The only thing not yet configurable via this file are ServerServices due to OpenEJB's embeddable nature and resulting long standing tradition of keeping the container system separate from the server layer.  This may change someday, but untill then ServerServices are configurable via conf/<service-id>.properties files such as conf/ejbd.properties to configure the main protocol that services EJB client requests.
+
+The format those properties files is greatly adapted from the xinet.d style of configuration and even shares similar functionality and properties such as host-based authorization (HBA) via the 'only_from' property.
+
+h2. Restoring openejb.xml to the defaults
+
+To restore this file to its original default state, you can simply delete it or rename it and OpenEJB will see it's missing and unpack another openejb.xml into the conf/ directory when it starts.
+
+This is not only handy for recovering from a non-functional config, but also for upgrading as OpenEJB will not overwrite your existing configuration file should you choose to unpack an new distro over the top of an old one -- this style of upgrade is safe provided you move your old lib/ directory first.

Added: websites/staging/openejb/trunk/content/openejb.xml.html
==============================================================================
--- websites/staging/openejb/trunk/content/openejb.xml.html (added)
+++ websites/staging/openejb/trunk/content/openejb.xml.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,182 @@
+<!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>openejb.xml</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="openejb.xml-Overview"></a></p>
+
+<h1>Overview</h1>
+
+<p>The openejb.xml is the main configuration file for the container system and
+it's services such as transaction, security, and data sources.</p>
+
+<p>The format is a mix of xml and properties inspired by the format of the
+httpd configuration file.  Basically:</p>
+
+<pre><code>&lt;tag id=""&gt;
+  ...properties...
+&lt;/tag&gt;
+</code></pre>
+
+<p>Such as:</p>
+
+<pre><code>&lt;Resource id="MyDataSource" type="DataSource"&gt;
+  username foo
+  password bar
+&lt;/Resource&gt;
+</code></pre>
+
+<p><em>Note the space</em>.  White space is a valid name/value pair separator in any
+java properties file (along with semi-colon).  So the above is equivalent
+to:</p>
+
+<pre><code>&lt;Resource id="MyDataSource" type="DataSource"&gt;
+  username = foo
+  password = bar
+&lt;/Resource&gt;
+</code></pre>
+
+<p>You are free to use white space, ":", or "=" for your name/value pair
+separator with no affect on OpenEJB.</p>
+
+<p><a name="openejb.xml-PropertyDefaultsandOverriding"></a></p>
+
+<h2>Property Defaults and Overriding</h2>
+
+<p>The openejb.xml file itself functions as an override, default values are
+specified via other means (service-jar.xml files in the classpath),
+therefore you only need to specify property values here for 2 reasons:
+1. you wish to for documentation purposes 
+1. you need to change the default value</p>
+
+<p>The default openejb.xml file has most of the useful properties for each
+component explicitly listed with default values for documentation purposes.
+ It is safe to delete them and be assured that no behavior will change if a
+smaller config file is desired.</p>
+
+<p>Overriding can also be done via the command line or plain Java system
+properties.  See <a href="system-properties.html">System Properties</a>
+ for details.</p>
+
+<p><a name="openejb.xml-Whatpropertiesareavailable?"></a></p>
+
+<h2>What properties are available?</h2>
+
+<p>To know what properties can be overriden the './bin/openejb properties'
+command is very useful: see <a href="properties-tool.html">Properties Tool</a></p>
+
+<p>It's function is to connect to a running server and print a canonical list
+of all properties OpenEJB can see via the various means of configuration. 
+When sending requests for help to the users list or jira, it is highly
+encouraged to send the output of this tool with your message.</p>
+
+<p><a name="openejb.xml-Notconfigurableviaopenejb.xml"></a></p>
+
+<h2>Not configurable via openejb.xml</h2>
+
+<p>The only thing not yet configurable via this file are ServerServices due to
+OpenEJB's embeddable nature and resulting long standing tradition of
+keeping the container system separate from the server layer.  This may
+change someday, but untill then ServerServices are configurable via
+conf/<service-id>.properties files such as conf/ejbd.properties to
+configure the main protocol that services EJB client requests.</p>
+
+<p>The format those properties files is greatly adapted from the xinet.d style
+of configuration and even shares similar functionality and properties such
+as host-based authorization (HBA) via the 'only_from' property.</p>
+
+<p><a name="openejb.xml-Restoringopenejb.xmltothedefaults"></a></p>
+
+<h2>Restoring openejb.xml to the defaults</h2>
+
+<p>To restore this file to its original default state, you can simply delete
+it or rename it and OpenEJB will see it's missing and unpack another
+openejb.xml into the conf/ directory when it starts.</p>
+
+<p>This is not only handy for recovering from a non-functional config, but
+also for upgrading as OpenEJB will not overwrite your existing
+configuration file should you choose to unpack an new distro over the top
+of an old one -- this style of upgrade is safe provided you move your old
+lib/ directory first.</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/openjpa.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/openjpa.cwiki (added)
+++ websites/staging/openejb/trunk/content/openjpa.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,105 @@
+OpenJPA is bundled with OpenEJB as the default persistence provider.
+
+An example of  working persistence.xml for OpenJPA:
+
+{code:xml|title=persistence.xml}
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
+
+  <persistence-unit name="movie-unit">
+    <jta-data-source>movieDatabase</jta-data-source>
+    <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source>
+    <class>org.superbiz.injection.jpa.Movie</class>
+
+    <properties>
+      <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
+    </properties>
+  </persistence-unit>
+</persistence>
+{code}
+
+Where the datasources above are configured in your openejb.xml as follows:
+
+{code:xml|title=openejb.xml}
+<Resource id="movieDatabase" type="DataSource">
+  JdbcDriver = org.hsqldb.jdbcDriver
+  JdbcUrl = jdbc:hsqldb:mem:moviedb
+</Resource>
+
+<Resource id="movieDatabaseUnmanaged" type="DataSource">
+  JdbcDriver = org.hsqldb.jdbcDriver
+  JdbcUrl = jdbc:hsqldb:mem:moviedb
+  JtaManaged = false
+</Resource>
+{code}
+
+Or in properties as follows:
+
+{code:xml|title=java.lang.System or InitialContext properties}
+p.put("movieDatabase", "new://Resource?type=DataSource");
+p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver");
+p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
+
+p.put("movieDatabaseUnmanaged", "new://Resource?type=DataSource");
+p.put("movieDatabaseUnmanaged.JdbcDriver", "org.hsqldb.jdbcDriver");
+p.put("movieDatabaseUnmanaged.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
+p.put("movieDatabaseUnmanaged.JtaManaged", "false");
+{code}
+
+h1. Common exceptions
+
+h2. Table not found in statement
+
+Or as derby will report it "Table 'abc.xyz' doesn't exist"
+
+Someone has to create the database structure for your persistent objects.  If you add the *openjpa.jdbc.SynchronizeMappings* property as shown below OpenJPA will auto-create all your tables, all your primary keys and all foreign keys exactly to match your objects.
+
+{code:xml|title=persistence.xml}
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
+
+ <persistence-unit name="movie-unit">
+   <!-- your other stuff -->
+
+   <properties>
+     <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
+   </properties>
+ </persistence-unit>
+</persistence>
+{code}
+
+h2. Auto-commit can not be set while enrolled in a transaction
+
+Pending
+
+h2. This broker is not configured to use managed transactions.
+
+h3. Setup
+Using a EXTENDED persistence context ...
+{code:title=bean code}
+@PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.EXTENDED)
+EntityManager entityManager;
+{code}
+
+on a persistence unit setup as RESOURCE_LOCAL ...
+{code:xml|title=persistence.xml}
+<persistence-unit name="movie-unit" transaction-type="RESOURCE_LOCAL">
+  ...
+</persistence-unit>
+{code}
+
+inside of a transaction.
+{code:title=bean code}
+@TransactionAttribute(TransactionAttributeType.REQUIRED)
+public void addMovie(Movie movie) throws Exception {
+    entityManager.persist(movie);
+}
+{code}
+
+Note the default transaction attribute for any ejb method is REQUIRED unless explicitly set otherwise in the bean class or method in question.
+
+h3. Solutions
+
+You can either:
+ # Change your bean or it's method to use TransactionAttributeType.NOT_REQUIRED or TransactionAttributeType.NEVER which will guarantee it will not be invoked in a JTA transaction.
+ # Change your persistence.xml so the persistence-unit uses transaction-type="TRANSACTION" making it capable of participating in a JTA transaction.
+
+