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 [2/19] - /websites/staging/openejb/trunk/content/

Added: websites/staging/openejb/trunk/content/basics---getting-things.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/basics---getting-things.cwiki (added)
+++ websites/staging/openejb/trunk/content/basics---getting-things.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,49 @@
+h1. Getting Stuff from the Container
+
+Generally speaking the only way to get a [Container-Managed Resource] is via *dependency injection* or *lookup* from within a [Container-Managed Component].
+
+The *unbreakable rules*.  Read these over and over again when things don't work.
+
+    # java:comp/env is the spec defined namespace for lookup of any [Container-Managed Resource]
+    # java:comp/env is *empty* by default
+    # java:comp/env is *read-only* at runtime
+    # java:comp/env is populated by [Declaring References] to [Container-Managed Resource] via xml or annotation
+    # only [Container-Managed Component]s, *not* their libraries, can [Declare References|Declaring References] via xml or annotation
+    # only [Container-Managed Component]s, *not* their libraries, can get dependency injection of [Container-Managed Resource]s
+    # only [Container-Managed Component]s, *and* their libraries, may lookup from java:comp/env
+    # you *must* use the *no-arg* 'new InitialContext()' constructor to lookup something from java:comp/env
+    # the annotations and xml for [Declaring References] are *identical* in functionality, both *always* configure lookup with *optional* dependency injection
+
+h2.  Common mistakes, misunderstandings, and myths
+
+- *_"I tried it via annotation and it didn't work, so I used xml and then it did work"_*
+
+See rule 9.  If one form worked and the other didn't, it means you simply made a mistake in using one versus the other.  Use what works for you, but understand both annotations or xml will work for either lookup or injection if used correctly.
+
+- *_"I need to use lookups, so I can't use the annotation"_*
+
+See rule 9.  Annotations are not just for injection, that is just how they are typically used.  Know that when you use an annotation for injection, it will *always* create an entry in java:comp/env.  As well you can use the annotation at the *class level* and it will cause no dependency injection and only the entry creation in java:comp/env.
+
+- *_"I don't want injection, so I can't use the annotation"_*
+
+See rule 9 and the above.  You can use the annotation at the *class level* and it will cause no dependency injection and only the entry creation in java:comp/env.
+
+- *_"I tried to list java:comp/env but it's empty?!"_*
+
+See rule 2 and rule 4.  There will be nothing in java:comp/env unless you [Declare a Reference|Declaring References] to it.  It does not matter if is a DataSource configured at the server level, etc.  Nothing is bound into java:comp/env unless you explicitly declare a reference to it.  The Java EE 5 TCK (Technology Compatibility Kit) tests for this extensively and is a rule we cannot break.  Java EE 6 does finally offer some new namesaces (java:global, java:app, and java:module) which will offer some great new options for more global-style lookups.
+
+- *_"I deployed the EJB but can't look it up, it's name is Foo"_*
+
+See rule 2 and the above.  Just creating an EJB doesn't cause it to be added to java:comp/env.  If a [Container-Managed Component] wants to lookup the EJB they must [Declare a Reference|Declaring References] to it via the @EJB annotionation or <ejb-local-ref> or <ejb-ref> in xml.  In Java EE 6, however, EJBs will be automatically bound to "java:global[/<app-name>]/<module-name>/<bean-name>[!<fully-qualified-interface-name>]" and can be looked up without declaring a reference first.
+
+- *_"Which InitialContextFactory do I use for java:comp/env?"_*
+
+See rule 8.  You are not allowed to use an InitialContextFactory for java:comp/env lookups.  Setting an InitialContextFactory via 'java.naming.factory.initial' in either System properties, InitialContext properties, or a jndi.properties file is illegal and will cause java:comp/env lookups to fail.
+
+- *_"My Client can't lookup the EJB from java:comp/env"_*
+
+See rule 7.  A plain, standalone, Java application cannot use java:comp/env. There is the official concept of a Java EE Application Client which can be packaged in an ear and deployed into the Container.  In practice, most people find them restrictive, cumbersome, and hard to use and are therefore rarely employed in "real world" projects.  Most people opt to use the non-standard, vendor-specific, approach to looking up EJBs from their plain java clients.  In OpenEJB this can be done via either the RemoteInitialContextFactory (for remote clients) or the LocalInitialContextFactory (for local clients of an embedded container).  The JNDI names can be configured as [shown here|JNDI Names].
+
+- *_"I declared the reference, but still can't look it up"_*
+
+See all of the above and reread the rules a few times.  Always check the log output as well.

Added: websites/staging/openejb/trunk/content/basics---getting-things.html
==============================================================================
--- websites/staging/openejb/trunk/content/basics---getting-things.html (added)
+++ websites/staging/openejb/trunk/content/basics---getting-things.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,209 @@
+<!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>Basics - Getting Things</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="Basics-GettingThings-GettingStufffromtheContainer"></a></p>
+
+<h1>Getting Stuff from the Container</h1>
+
+<p>Generally speaking the only way to get a <a href="container-managed-resource.html">Container-Managed Resource</a>
+ is via <em>dependency injection</em> or <em>lookup</em> from within a [Container-Managed Component]
+.</p>
+
+<p>The <em>unbreakable rules</em>.  Read these over and over again when things don't
+work.</p>
+
+<ol>
+<li>java:comp/env is the spec defined namespace for lookup of any <a href="container-managed-resource.html">Container-Managed Resource</a></li>
+<li>java:comp/env is <em>empty</em> by default</li>
+<li>java:comp/env is <em>read-only</em> at runtime</li>
+<li>java:comp/env is populated by <a href="declaring-references.html">Declaring References</a>
+to [Container-Managed Resource]
+via xml or annotation</li>
+<li>only <a href="container-managed-component.html">Container-Managed Component</a>
+s, <em>not</em> their libraries, can [Declare References|Declaring References]
+via xml or annotation</li>
+<li>only <a href="container-managed-component.html">Container-Managed Component</a>
+s, <em>not</em> their libraries, can get dependency injection of [Container-Managed Resource]
+s</li>
+<li>only <a href="container-managed-component.html">Container-Managed Component</a>
+s, <em>and</em> their libraries, may lookup from java:comp/env</li>
+<li>you <em>must</em> use the <em>no-arg</em> 'new InitialContext()' constructor to
+lookup something from java:comp/env</li>
+<li>the annotations and xml for <a href="declaring-references.html">Declaring References</a>
+are <em>identical</em> in functionality, both <em>always</em> configure lookup with
+<em>optional</em> dependency injection</li>
+</ol>
+
+<p><a name="Basics-GettingThings-Commonmistakes,misunderstandings,andmyths"></a></p>
+
+<h2>Common mistakes, misunderstandings, and myths</h2>
+
+<ul>
+<li><em><em>"I tried it via annotation and it didn't work, so I used xml and then
+it did work"</em></em></li>
+</ul>
+
+<p>See rule 9.  If one form worked and the other didn't, it means you simply
+made a mistake in using one versus the other.  Use what works for you, but
+understand both annotations or xml will work for either lookup or injection
+if used correctly.</p>
+
+<ul>
+<li><em><em>"I need to use lookups, so I can't use the annotation"</em></em></li>
+</ul>
+
+<p>See rule 9.  Annotations are not just for injection, that is just how they
+are typically used.  Know that when you use an annotation for injection, it
+will <em>always</em> create an entry in java:comp/env.  As well you can use the
+annotation at the <em>class level</em> and it will cause no dependency injection
+and only the entry creation in java:comp/env.</p>
+
+<ul>
+<li><em><em>"I don't want injection, so I can't use the annotation"</em></em></li>
+</ul>
+
+<p>See rule 9 and the above.  You can use the annotation at the <em>class level</em>
+and it will cause no dependency injection and only the entry creation in
+java:comp/env.</p>
+
+<ul>
+<li><em><em>"I tried to list java:comp/env but it's empty?!"</em></em></li>
+</ul>
+
+<p>See rule 2 and rule 4.  There will be nothing in java:comp/env unless you <a href="declaring-references.html">Declare a Reference</a>
+ to it.  It does not matter if is a DataSource configured at the server
+level, etc.  Nothing is bound into java:comp/env unless you explicitly
+declare a reference to it.  The Java EE 5 TCK (Technology Compatibility
+Kit) tests for this extensively and is a rule we cannot break.  Java EE 6
+does finally offer some new namesaces (java:global, java:app, and
+java:module) which will offer some great new options for more global-style
+lookups.</p>
+
+<ul>
+<li><em><em>"I deployed the EJB but can't look it up, it's name is Foo"</em></em></li>
+</ul>
+
+<p>See rule 2 and the above.  Just creating an EJB doesn't cause it to be
+added to java:comp/env.  If a <a href="container-managed-component.html">Container-Managed Component</a>
+ wants to lookup the EJB they must [Declare a Reference|Declaring References]
+ to it via the @EJB annotionation or <ejb-local-ref> or <ejb-ref> in xml. 
+In Java EE 6, however, EJBs will be automatically bound to
+"java:global[/<app-name>]/<module-name>/<bean-name>[!<fully-qualified-interface-name>]"
+and can be looked up without declaring a reference first.</p>
+
+<ul>
+<li><em><em>"Which InitialContextFactory do I use for java:comp/env?"</em></em></li>
+</ul>
+
+<p>See rule 8.  You are not allowed to use an InitialContextFactory for
+java:comp/env lookups.  Setting an InitialContextFactory via
+'java.naming.factory.initial' in either System properties, InitialContext
+properties, or a jndi.properties file is illegal and will cause
+java:comp/env lookups to fail.</p>
+
+<ul>
+<li><em><em>"My Client can't lookup the EJB from java:comp/env"</em></em></li>
+</ul>
+
+<p>See rule 7.  A plain, standalone, Java application cannot use
+java:comp/env. There is the official concept of a Java EE Application
+Client which can be packaged in an ear and deployed into the Container.  In
+practice, most people find them restrictive, cumbersome, and hard to use
+and are therefore rarely employed in "real world" projects.  Most people
+opt to use the non-standard, vendor-specific, approach to looking up EJBs
+from their plain java clients.  In OpenEJB this can be done via either the
+RemoteInitialContextFactory (for remote clients) or the
+LocalInitialContextFactory (for local clients of an embedded container). 
+The JNDI names can be configured as <a href="jndi-names.html">shown here</a>
+.</p>
+
+<ul>
+<li><em><em>"I declared the reference, but still can't look it up"</em></em></li>
+</ul>
+
+<p>See all of the above and reread the rules a few times.  Always check the
+log output as well.</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/basics---security.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/basics---security.cwiki (added)
+++ websites/staging/openejb/trunk/content/basics---security.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,34 @@
+This section is under construction, please check back later.
+
+h2. Related Documents
+
+[Security] \- login module configuration
+[Security Annotations] \- EJB3 related annotation based security.
+
+h2. Server Side Security
+
+There's a few things that should be noted about security from the server side perspective.
+
+h3. Security Propagation
+Note, this is partially documented in the EJB 3 spec section 14.8.1.1.
+
+# Once a remote bean has been instantiated, from within the container, it inherits the entire security context, and all roles will be inherited the same as the method where the bean is being looked up.
+# Looking up a bean via an InitialContext, or via injection, will inherit the security context (user, roles, etc), thereby propagating the security through to any container bean in the chain of method calls.
+# No properties are allowed for the InitialContext, and you *MUST* be calling the no args constructor only.  There are documents elsewhere that describe using the OpenEJB initial context factories and such, with usernames and passwords, etc; it should be noted that this method of using the factories is OpenEJB specific, to facilitate non-standard clients not running in an EJB container, etc.
+
+For example, here is an EJB that returns another bean, through a remote method call.  In this case, the *OtherBean* instance, will have the same security as *MyBean*, including the principal (username), roles, etc.
+
+{code}
+import javax.ejb.EJB;
+import javax.naming.InitialContext;
+
+@EJB(name = "otherBean", beanInterface = IOtherBean.class)
+public class MyBean
+{
+    public IOtherBean getOtherBean()
+    {
+        InitialContext context = new InitialContext();
+        return (IOtherBean) context.lookup("java:comp/env/otherBean");
+    }
+}
+{code}
\ No newline at end of file

Added: websites/staging/openejb/trunk/content/basics---security.html
==============================================================================
--- websites/staging/openejb/trunk/content/basics---security.html (added)
+++ websites/staging/openejb/trunk/content/basics---security.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>Basics - Security</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>This section is under construction, please check back later.</p>
+
+<p><a name="Basics-Security-RelatedDocuments"></a></p>
+
+<h2>Related Documents</h2>
+
+<p><a href="security.html">Security</a>
+ - login module configuration
+<a href="security-annotations.html">Security Annotations</a>
+ - EJB3 related annotation based security.</p>
+
+<p><a name="Basics-Security-ServerSideSecurity"></a></p>
+
+<h2>Server Side Security</h2>
+
+<p>There's a few things that should be noted about security from the server
+side perspective.</p>
+
+<p><a name="Basics-Security-SecurityPropagation"></a></p>
+
+<h3>Security Propagation</h3>
+
+<p>Note, this is partially documented in the EJB 3 spec section 14.8.1.1.</p>
+
+<ol>
+<li>Once a remote bean has been instantiated, from within the container, it
+inherits the entire security context, and all roles will be inherited the
+same as the method where the bean is being looked up.</li>
+<li>Looking up a bean via an InitialContext, or via injection, will inherit
+the security context (user, roles, etc), thereby propagating the security
+through to any container bean in the chain of method calls.</li>
+<li>No properties are allowed for the InitialContext, and you <em>MUST</em> be
+calling the no args constructor only.  There are documents elsewhere that
+describe using the OpenEJB initial context factories and such, with
+usernames and passwords, etc; it should be noted that this method of using
+the factories is OpenEJB specific, to facilitate non-standard clients not
+running in an EJB container, etc.</li>
+</ol>
+
+<p>For example, here is an EJB that returns another bean, through a remote
+method call.  In this case, the <em>OtherBean</em> instance, will have the same
+security as <em>MyBean</em>, including the principal (username), roles, etc.</p>
+
+<pre><code>import javax.ejb.EJB;
+import javax.naming.InitialContext;
+
+@EJB(name = "otherBean", beanInterface = IOtherBean.class)
+public class MyBean
+{
+    public IOtherBean getOtherBean()
+    {
+    InitialContext context = new InitialContext();
+    return (IOtherBean) context.lookup("java:comp/env/otherBean");
+    }
+}
+</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/basics---transactions.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/basics---transactions.cwiki (added)
+++ websites/staging/openejb/trunk/content/basics---transactions.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,30 @@
+One of the many benefits of EJB, is that transactions within the EJB container are generally managed entirely automatically.  Any EJB component will, by default, partake in that transaction.
+
+Here are some basic rules to understand about transactions.  Keep note that this is the default behaviour, and the system can be configured to behave differently, depending on the needs of your system, bean, or individual methods of your beans.
+
+h2. Participants
+
+Various components and parts of the EJB system can be part of a transaction. Examples are
+
+# Session bean
+# Message Driven Bean
+# EntityManager (a.k.a. Persistence context)
+
+h2. Behaviour
+
+The basic default behaviours are
+# A transaction starts at the beginning of the first EJB method call, in a chain of calls that are participating in the given transaction
+# A transaction ends at the end of the first EJB method, in the same chain
+# If a bean that has started a transaction, uses another bean, that bean will automatically use the same transaction as the calling bean.
+
+h2. Configuration
+
+You can configure your beans in a variety of ways.  Generally speaking, a transaction is started when a method is called, but can be configured using @TransactionAttribute(value = TransactionAttributeType.X), where X is one of...
+# REQUIRED - the default, which is to start a transaction if one does not exist, but to use the existing one if it has already been started.
+# REQUIRES_NEW - the transaction is created on every call, and ends when the call is completed.  Beans don't partake in transactions created by other parts of the system.
+# MANDATORY - a transaction must always exist prior to the call, and it will be used.  It is an error otherwise
+# NOT_SUPPORTED - component not included in the transaction
+# SUPPORTS - transaction will be used if it exists, but will not be created if it does not exist
+# NEVER - if a transaction exists, it is an error to call the method
+
+@TransactionAttribute applies to both methods and entire beans.  You may set one type of transaction behaviour (as seen above) on the bean, and a different one on a specific method of that same bean, which overrides the one configured for the overall bean.  For instance, maybe you want to make an audit entry in the database that you are about to attempt a credit card payment.  It really needs to be in it's own transaction so that it is IMMEDIATELY committed for audit purposes, if something goes wrong with the credit card payment.  So, perhaps you use MANDATORY on the bean, and REQUIRES_NEW on the method for audit logging.  As soon as the method that does the audit logging is complete, the transaction is committed, and the credit card payment transaction continues on it's way.
\ No newline at end of file

Added: websites/staging/openejb/trunk/content/basics---transactions.html
==============================================================================
--- websites/staging/openejb/trunk/content/basics---transactions.html (added)
+++ websites/staging/openejb/trunk/content/basics---transactions.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,151 @@
+<!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>Basics - Transactions</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>One of the many benefits of EJB, is that transactions within the EJB
+container are generally managed entirely automatically.  Any EJB component
+will, by default, partake in that transaction.</p>
+
+<p>Here are some basic rules to understand about transactions.  Keep note that
+this is the default behaviour, and the system can be configured to behave
+differently, depending on the needs of your system, bean, or individual
+methods of your beans.</p>
+
+<p><a name="Basics-Transactions-Participants"></a></p>
+
+<h2>Participants</h2>
+
+<p>Various components and parts of the EJB system can be part of a
+transaction. Examples are</p>
+
+<ol>
+<li>Session bean</li>
+<li>Message Driven Bean</li>
+<li>EntityManager (a.k.a. Persistence context)</li>
+</ol>
+
+<p><a name="Basics-Transactions-Behaviour"></a></p>
+
+<h2>Behaviour</h2>
+
+<p>The basic default behaviours are
+1. A transaction starts at the beginning of the first EJB method call, in a
+chain of calls that are participating in the given transaction
+1. A transaction ends at the end of the first EJB method, in the same chain
+1. If a bean that has started a transaction, uses another bean, that bean
+will automatically use the same transaction as the calling bean.</p>
+
+<p><a name="Basics-Transactions-Configuration"></a></p>
+
+<h2>Configuration</h2>
+
+<p>You can configure your beans in a variety of ways.  Generally speaking, a
+transaction is started when a method is called, but can be configured using
+@TransactionAttribute(value = TransactionAttributeType.X), where X is one
+of...
+1. REQUIRED - the default, which is to start a transaction if one does not
+exist, but to use the existing one if it has already been started.
+1. REQUIRES_NEW - the transaction is created on every call, and ends when
+the call is completed.  Beans don't partake in transactions created by
+other parts of the system.
+1. MANDATORY - a transaction must always exist prior to the call, and it
+will be used.  It is an error otherwise
+1. NOT_SUPPORTED - component not included in the transaction
+1. SUPPORTS - transaction will be used if it exists, but will not be created
+if it does not exist
+1. NEVER - if a transaction exists, it is an error to call the method</p>
+
+<p>@TransactionAttribute applies to both methods and entire beans.  You may
+set one type of transaction behaviour (as seen above) on the bean, and a
+different one on a specific method of that same bean, which overrides the
+one configured for the overall bean.  For instance, maybe you want to make
+an audit entry in the database that you are about to attempt a credit card
+payment.  It really needs to be in it's own transaction so that it is
+IMMEDIATELY committed for audit purposes, if something goes wrong with the
+credit card payment.  So, perhaps you use MANDATORY on the bean, and
+REQUIRES_NEW on the method for audit logging.  As soon as the method that
+does the audit logging is complete, the transaction is committed, and the
+credit card payment transaction continues on it's way.</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/built-in-type-converters.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/built-in-type-converters.cwiki (added)
+++ websites/staging/openejb/trunk/content/built-in-type-converters.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,86 @@
+The following built-in types are supported for @Resource injection in EJBs via <env-entry> elements in a META-INF/ejb-jar.xml or via plain properties in a META-INF/env-entries.properties file.
+
+EJB 3.0 required types:
+
+ - java.lang.Boolean
+ - java.lang.Byte
+ - java.lang.Character
+ - java.lang.Double
+ - java.lang.Float
+ - java.lang.Integer
+ - java.lang.Long
+ - java.lang.Short
+ - java.lang.String
+
+OpenEJB 3.0 additional types:
+
+ - java.lang.Class
+ - java.lang.Enum (any subclass of)
+ - java.io.File
+ - java.math.BigDecimal
+ - java.math.BigInteger
+ - java.net.Inet4Address
+ - java.net.Inet6Address
+ - java.net.InetAddress
+ - java.net.URI
+ - java.net.URL
+ - java.util.ArrayList
+ - java.util.Date
+ - java.util.HashMap
+ - java.util.Hashtable
+ - java.util.IdentityHashMap
+ - java.util.LinkedHashMap
+ - java.util.LinkedHashSet
+ - java.util.LinkedList
+ - java.util.List
+ - java.util.Map
+ - java.util.Properties
+ - java.util.Set
+ - java.util.SortedMap
+ - java.util.TreeMap
+ - java.util.TreeSet
+ - java.util.Vector
+ - java.util.WeakHashMap
+ - java.util.logging.Logger
+ - java.util.regex.Pattern
+ - javax.management.ObjectName
+ - javax.naming.Context
+ - org.apache.commons.logging.Log
+ - org.apache.log4j.Logger
+
+To use an OpenEJB additional type in xml, simply declare it as <env-entry-type>java.lang.String</env-entry-type> and it will be converted on the fly to the field/setter type used by the bean class.  For example:
+
+{code}
+package org.superbiz.foo;
+
+import java.util.Date;
+
+@Stateless
+public class MyBean {
+
+    @Resource
+    private Date myDate;
+}
+{code}
+
+Works with an ejb-jar.xml as follows:
+
+{code:xml|title=META-INF/ejb-jar.xml}
+<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.0" metadata-complete="false">
+  <enterprise-beans>
+    <session>
+      <ejb-name>MyBean</ejb-name>
+      <env-entry>
+        <env-entry-name>org.superbiz.foo.MyBean/myDate</env-entry-name>
+        <env-entry-value>2008-04-19</env-entry-value>
+        <env-entry-type>java.lang.String</env-entry-type>
+      </env-entry>
+    </session>
+  </enterprise-beans>
+</ejb-jar>
+{code}
+
+Or with an env-entries.properties file as follows:
+{code:none|title=META-INF/env-entries.properties}
+org.superbiz.foo.MyBean/myDate = 2008-04-19
+{code}

Added: websites/staging/openejb/trunk/content/built-in-type-converters.html
==============================================================================
--- websites/staging/openejb/trunk/content/built-in-type-converters.html (added)
+++ websites/staging/openejb/trunk/content/built-in-type-converters.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,180 @@
+<!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>Built-in Type Converters</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>The following built-in types are supported for @Resource injection in EJBs
+via <env-entry> elements in a META-INF/ejb-jar.xml or via plain properties
+in a META-INF/env-entries.properties file.</p>
+
+<p>EJB 3.0 required types:</p>
+
+<ul>
+<li>java.lang.Boolean</li>
+<li>java.lang.Byte</li>
+<li>java.lang.Character</li>
+<li>java.lang.Double</li>
+<li>java.lang.Float</li>
+<li>java.lang.Integer</li>
+<li>java.lang.Long</li>
+<li>java.lang.Short</li>
+<li>java.lang.String</li>
+</ul>
+
+<p>OpenEJB 3.0 additional types:</p>
+
+<ul>
+<li>java.lang.Class</li>
+<li>java.lang.Enum (any subclass of)</li>
+<li>java.io.File</li>
+<li>java.math.BigDecimal</li>
+<li>java.math.BigInteger</li>
+<li>java.net.Inet4Address</li>
+<li>java.net.Inet6Address</li>
+<li>java.net.InetAddress</li>
+<li>java.net.URI</li>
+<li>java.net.URL</li>
+<li>java.util.ArrayList</li>
+<li>java.util.Date</li>
+<li>java.util.HashMap</li>
+<li>java.util.Hashtable</li>
+<li>java.util.IdentityHashMap</li>
+<li>java.util.LinkedHashMap</li>
+<li>java.util.LinkedHashSet</li>
+<li>java.util.LinkedList</li>
+<li>java.util.List</li>
+<li>java.util.Map</li>
+<li>java.util.Properties</li>
+<li>java.util.Set</li>
+<li>java.util.SortedMap</li>
+<li>java.util.TreeMap</li>
+<li>java.util.TreeSet</li>
+<li>java.util.Vector</li>
+<li>java.util.WeakHashMap</li>
+<li>java.util.logging.Logger</li>
+<li>java.util.regex.Pattern</li>
+<li>javax.management.ObjectName</li>
+<li>javax.naming.Context</li>
+<li>org.apache.commons.logging.Log</li>
+<li>org.apache.log4j.Logger</li>
+</ul>
+
+<p>To use an OpenEJB additional type in xml, simply declare it as
+<env-entry-type>java.lang.String</env-entry-type> and it will be converted
+on the fly to the field/setter type used by the bean class.  For example:</p>
+
+<pre><code>package org.superbiz.foo;
+
+import java.util.Date;
+
+@Stateless
+public class MyBean {
+
+    @Resource
+    private Date myDate;
+}
+</code></pre>
+
+<p>Works with an ejb-jar.xml as follows:</p>
+
+<p>{code:xml|title=META-INF/ejb-jar.xml}
+<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"
+metadata-complete="false">
+  <enterprise-beans>
+    <session>
+      <ejb-name>MyBean</ejb-name>
+      <env-entry>
+    <env-entry-name>org.superbiz.foo.MyBean/myDate</env-entry-name>
+    <env-entry-value>2008-04-19</env-entry-value>
+    <env-entry-type>java.lang.String</env-entry-type>
+      </env-entry>
+    </session>
+  </enterprise-beans>
+</ejb-jar></p>
+
+<pre><code>Or with an env-entries.properties file as follows:
+{code:none|title=META-INF/env-entries.properties}
+org.superbiz.foo.MyBean/myDate = 2008-04-19
+</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/callbacks.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/callbacks.cwiki (added)
+++ websites/staging/openejb/trunk/content/callbacks.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,158 @@
+Correct usage of PostConstruct, PreDestroy, PrePassivate, PostActivate, and AroundInvoke for EJBs and Interceptors.
+
+For Stateful, Stateless, and MessageDriven, the syntax is as follows:
+
+ - @PostConstruct <any-scope> void <method-name>() 
+ - @PreDestroy <any-scope> void <method-name>() 
+ - @PrePassivate <any-scope> void <method-name>() 
+ - @PostActivate <any-scope> void <method-name>() 
+
+For an Interceptor, the syntax includes InvocationContext as follows:
+
+ - @PostConstruct <any-scope> void <method-name>(InvocationContext) 
+ - @PreDestroy <any-scope> void <method-name>(InvocationContext) 
+ - @PrePassivate <any-scope> void <method-name>(InvocationContext) 
+ - @PostActivate <any-scope> void <method-name>(InvocationContext) 
+
+The AroundInvoke syntax for an EJB or Interceptor is the same:
+
+ - @AroundInvoke <any-scope> Object <method-name>(InvocationContext) throws Exception
+
+
+h2. Stateless
+
+{code}
+import javax.ejb.Stateless;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.interceptor.AroundInvoke;
+import javax.interceptor.InvocationContext;
+
+@Stateless
+public class MyStatelessBean implements  MyBusinessInterface  {
+
+    @PostConstruct
+    public void constructed(){
+
+    }
+
+    @PreDestroy
+    public void destroy(){
+
+    }
+
+    @AroundInvoke
+    public Object invoke(InvocationContext invocationContext) throws Exception {
+        return invocationContext.proceed();
+    }
+}
+{code}
+
+h2. Stateful
+
+{code}
+import javax.ejb.Stateful;
+import javax.ejb.PostActivate;
+import javax.ejb.PrePassivate;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.interceptor.AroundInvoke;
+import javax.interceptor.InvocationContext;
+
+@Stateful
+public class MyStatefulBean implements  MyBusinessInterface  {
+
+    @PostConstruct
+    public void constructed(){
+
+    }
+
+    @PreDestroy
+    public void destroy(){
+
+    }
+
+    @AroundInvoke
+    public Object invoke(InvocationContext invocationContext) throws Exception {
+        return invocationContext.proceed();
+    }
+
+    @PostActivate
+    public void activated(){
+
+    }
+
+    @PrePassivate
+    public void passivate(){
+
+    }
+}
+{code}
+
+h2. MessageDriven
+
+{code}
+import javax.ejb.MessageDriven;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.interceptor.AroundInvoke;
+import javax.interceptor.InvocationContext;
+
+@MessageDriven
+public class MyMessageDrivenBean implements  MyListenerInterface  {
+
+    @PostConstruct
+    public void constructed(){
+
+    }
+
+    @PreDestroy
+    public void destroy(){
+
+    }
+
+    @AroundInvoke
+    public Object invoke(InvocationContext invocationContext) throws Exception {
+        return invocationContext.proceed();
+    }
+}
+{code}
+
+h2. Interceptor
+
+{code}
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.interceptor.InvocationContext;
+import javax.interceptor.AroundInvoke;
+import javax.ejb.PostActivate;
+import javax.ejb.PrePassivate;
+
+public class MyInterceptor {
+
+    @PostConstruct
+    public void constructed(InvocationContext invocationContext){
+
+    }
+
+    @PreDestroy
+    public void destroy(InvocationContext invocationContext){
+
+    }
+
+    @AroundInvoke
+    public Object invoke(InvocationContext invocationContext) throws Exception {
+        return invocationContext.proceed();
+    }
+
+    @PostActivate
+    public void activated(InvocationContext invocationContext){
+
+    }
+
+    @PrePassivate
+    public void passivate(InvocationContext invocationContext){
+
+    }
+}
+{code}

Added: websites/staging/openejb/trunk/content/callbacks.html
==============================================================================
--- websites/staging/openejb/trunk/content/callbacks.html (added)
+++ websites/staging/openejb/trunk/content/callbacks.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,266 @@
+<!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>Callbacks</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>Correct usage of PostConstruct, PreDestroy, PrePassivate, PostActivate, and
+AroundInvoke for EJBs and Interceptors.</p>
+
+<p>For Stateful, Stateless, and MessageDriven, the syntax is as follows:</p>
+
+<ul>
+<li>@PostConstruct <any-scope> void <method-name>() </li>
+<li>@PreDestroy <any-scope> void <method-name>() </li>
+<li>@PrePassivate <any-scope> void <method-name>() </li>
+<li>@PostActivate <any-scope> void <method-name>() </li>
+</ul>
+
+<p>For an Interceptor, the syntax includes InvocationContext as follows:</p>
+
+<ul>
+<li>@PostConstruct <any-scope> void <method-name>(InvocationContext) </li>
+<li>@PreDestroy <any-scope> void <method-name>(InvocationContext) </li>
+<li>@PrePassivate <any-scope> void <method-name>(InvocationContext) </li>
+<li>@PostActivate <any-scope> void <method-name>(InvocationContext) </li>
+</ul>
+
+<p>The AroundInvoke syntax for an EJB or Interceptor is the same:</p>
+
+<ul>
+<li>@AroundInvoke <any-scope> Object <method-name>(InvocationContext) throws
+Exception</li>
+</ul>
+
+<p><a name="Callbacks-Stateless"></a></p>
+
+<h2>Stateless</h2>
+
+<pre><code>import javax.ejb.Stateless;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.interceptor.AroundInvoke;
+import javax.interceptor.InvocationContext;
+
+@Stateless
+public class MyStatelessBean implements  MyBusinessInterface  {
+
+    @PostConstruct
+    public void constructed(){
+
+    }
+
+    @PreDestroy
+    public void destroy(){
+
+    }
+
+    @AroundInvoke
+    public Object invoke(InvocationContext invocationContext) throws
+</code></pre>
+
+<p>Exception {
+        return invocationContext.proceed();
+        }
+    }</p>
+
+<p><a name="Callbacks-Stateful"></a></p>
+
+<h2>Stateful</h2>
+
+<pre><code>import javax.ejb.Stateful;
+import javax.ejb.PostActivate;
+import javax.ejb.PrePassivate;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.interceptor.AroundInvoke;
+import javax.interceptor.InvocationContext;
+
+@Stateful
+public class MyStatefulBean implements  MyBusinessInterface  {
+
+    @PostConstruct
+    public void constructed(){
+
+    }
+
+    @PreDestroy
+    public void destroy(){
+
+    }
+
+    @AroundInvoke
+    public Object invoke(InvocationContext invocationContext) throws
+</code></pre>
+
+<p>Exception {
+        return invocationContext.proceed();
+        }</p>
+
+<pre><code>    @PostActivate
+    public void activated(){
+
+    }
+
+    @PrePassivate
+    public void passivate(){
+
+    }
+}
+</code></pre>
+
+<p><a name="Callbacks-MessageDriven"></a></p>
+
+<h2>MessageDriven</h2>
+
+<pre><code>import javax.ejb.MessageDriven;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.interceptor.AroundInvoke;
+import javax.interceptor.InvocationContext;
+
+@MessageDriven
+public class MyMessageDrivenBean implements  MyListenerInterface  {
+
+    @PostConstruct
+    public void constructed(){
+
+    }
+
+    @PreDestroy
+    public void destroy(){
+
+    }
+
+    @AroundInvoke
+    public Object invoke(InvocationContext invocationContext) throws
+</code></pre>
+
+<p>Exception {
+        return invocationContext.proceed();
+        }
+    }</p>
+
+<p><a name="Callbacks-Interceptor"></a></p>
+
+<h2>Interceptor</h2>
+
+<pre><code>import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.interceptor.InvocationContext;
+import javax.interceptor.AroundInvoke;
+import javax.ejb.PostActivate;
+import javax.ejb.PrePassivate;
+
+public class MyInterceptor {
+
+    @PostConstruct
+    public void constructed(InvocationContext invocationContext){
+
+    }
+
+    @PreDestroy
+    public void destroy(InvocationContext invocationContext){
+
+    }
+
+    @AroundInvoke
+    public Object invoke(InvocationContext invocationContext) throws
+</code></pre>
+
+<p>Exception {
+        return invocationContext.proceed();
+        }</p>
+
+<pre><code>    @PostActivate
+    public void activated(InvocationContext invocationContext){
+
+    }
+
+    @PrePassivate
+    public void passivate(InvocationContext invocationContext){
+
+    }
+}
+</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/client-server-transports.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/client-server-transports.cwiki (added)
+++ websites/staging/openejb/trunk/content/client-server-transports.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,11 @@
+h1.  Client/Server transports
+
+|| jar || transport description	||
+| openejb-ejbd-3.0.jar | provides the 'ejbd' protocol.	A binary protocol traveling over a socket |
+| openejb-http-3.0.jar | supports the ejbd protocol over http |
+| openejb-derbynet-3.0.jar | allows for	derby to accessed via it's network driver |
+| openejb-hsql-3.0.jar | allows	for hsqldb to be accessed via it's network driver |
+| openejb-cxf-3.0.jar |	turns on webservice ability, soap/http,	via cxf |
+| openejb-activemq-3.0.jar | supports remote jms clients via activemq |
+| openejb-telnet-3.0.jar | allows for connecting to the server	via telnet for monitoring |
+

Added: websites/staging/openejb/trunk/content/client-server-transports.html
==============================================================================
--- websites/staging/openejb/trunk/content/client-server-transports.html (added)
+++ websites/staging/openejb/trunk/content/client-server-transports.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,105 @@
+<!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>Client-Server Transports</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="Client-ServerTransports-Client/Servertransports"></a></p>
+
+<h1>Client/Server transports</h1>
+
+<table>
+<tr><th> jar </th><th> transport description </th></tr>
+<tr><td> openejb-ejbd-3.0.jar </td><td> provides the 'ejbd' protocol.   A binary protocol
+traveling over a socket </td></tr>
+<tr><td> openejb-http-3.0.jar </td><td> supports the ejbd protocol over http </td></tr>
+<tr><td> openejb-derbynet-3.0.jar </td><td> allows for derby to accessed via it's network
+driver </td></tr>
+<tr><td> openejb-hsql-3.0.jar </td><td> allows for hsqldb to be accessed via it's network
+driver </td></tr>
+<tr><td> openejb-cxf-3.0.jar </td><td> turns on webservice ability, soap/http, via cxf </td></tr>
+<tr><td> openejb-activemq-3.0.jar </td><td> supports remote jms clients via activemq </td></tr>
+<tr><td> openejb-telnet-3.0.jar </td><td> allows for connecting to the server   via telnet
+for monitoring </td></tr>
+</table>
+
+        </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/clients.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/clients.cwiki (added)
+++ websites/staging/openejb/trunk/content/clients.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,89 @@
+h1.  Local Client (embedded container)
+
+{code}
+Properties p = new Properties();
+p.put("java.naming.factory.initial", "org.apache.openejb.client.LocalInitialContextFactory");
+
+InitialContext ctx = new InitialContext(p);
+
+MyBean myBean = (MyBean) ctx.lookup("MyBeanRemote");
+{code}
+
+h1.  Local Client (non-default realm name)
+
+h2. Login configuration file (conf/login.config)
+
+{code}
+PropertiesLogin {
+    org.apache.openejb.core.security.jaas.PropertiesLoginModule required
+        Debug=true
+        UsersFile="users.properties"
+        GroupsFile="groups.properties";
+};
+MyApp {
+    org.apache.openejb.core.security.jaas.SQLLoginModule required
+	dataSourceName="MyDataSource"
+    	userSelect="SELECT username, password FROM users WHERE username=?"
+    	groupSelect="SELECT username, grp FROM users WHERE username=?";
+};
+{code}
+
+h2. Program code
+
+{code}
+Properties p = new Properties();
+p.put("java.naming.factory.initial", "org.apache.openejb.client.LocalInitialContextFactory");
+p.put("openejb.authentication.realmName", "MyApp");
+
+InitialContext ctx = new InitialContext(p);
+
+MyBean myBean = (MyBean) ctx.lookup("MyBeanRemote");
+{code}
+
+h1.  Remote Client (openejb standalone)
+
+{code}
+Properties p = new Properties();
+p.put("java.naming.factory.initial", "org.apache.openejb.client.RemoteInitialContextFactory");
+p.put("java.naming.provider.url", "ejbd://localhost:4201");
+// user and pass optional
+p.put("java.naming.security.principal", "myuser");
+p.put("java.naming.security.credentials", "mypass");
+
+InitialContext ctx = new InitialContext(p);
+
+MyBean myBean = (MyBean) ctx.lookup("MyBeanRemote");
+{code}
+
+h1.  Remote Client with HTTP (openejb standalone)
+
+{code}
+Properties p = new Properties();
+p.put("java.naming.factory.initial", "org.apache.openejb.client.RemoteInitialContextFactory");
+p.put("java.naming.provider.url", "http://localhost:4204/ejb");
+// user and pass optional
+p.put("java.naming.security.principal", "myuser");
+p.put("java.naming.security.credentials", "mypass");
+
+InitialContext ctx = new InitialContext(p);
+
+MyBean myBean = (MyBean) ctx.lookup("MyBeanRemote");
+{code}
+
+
+h1.  Remote Client with HTTP (in tomcat)
+
+{code}
+Properties p = new Properties();
+p.put("java.naming.factory.initial", "org.apache.openejb.client.RemoteInitialContextFactory");
+p.put("java.naming.provider.url", "http://127.0.0.1:8080/openejb/ejb");
+// user and pass optional
+p.put("java.naming.security.principal", "myuser");
+p.put("java.naming.security.credentials", "mypass");
+
+InitialContext ctx = new InitialContext(p);
+
+MyBean myBean = (MyBean) ctx.lookup("MyBeanRemote");
+{code}
+
+

Added: websites/staging/openejb/trunk/content/clients.html
==============================================================================
--- websites/staging/openejb/trunk/content/clients.html (added)
+++ websites/staging/openejb/trunk/content/clients.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,196 @@
+<!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>Clients</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="Clients-LocalClient(embeddedcontainer)"></a></p>
+
+<h1>Local Client (embedded container)</h1>
+
+<pre><code>Properties p = new Properties();
+p.put("java.naming.factory.initial",
+</code></pre>
+
+<p>"org.apache.openejb.client.LocalInitialContextFactory");</p>
+
+<pre><code>InitialContext ctx = new InitialContext(p);
+
+MyBean myBean = (MyBean) ctx.lookup("MyBeanRemote");
+</code></pre>
+
+<p><a name="Clients-LocalClient(non-defaultrealmname)"></a></p>
+
+<h1>Local Client (non-default realm name)</h1>
+
+<p><a name="Clients-Loginconfigurationfile(conf/login.config)"></a></p>
+
+<h2>Login configuration file (conf/login.config)</h2>
+
+<pre><code>PropertiesLogin {
+    org.apache.openejb.core.security.jaas.PropertiesLoginModule required
+    Debug=true
+    UsersFile="users.properties"
+    GroupsFile="groups.properties";
+};
+MyApp {
+    org.apache.openejb.core.security.jaas.SQLLoginModule required
+    dataSourceName="MyDataSource"
+    userSelect="SELECT username, password FROM users WHERE username=?"
+    groupSelect="SELECT username, grp FROM users WHERE username=?";
+};
+</code></pre>
+
+<p><a name="Clients-Programcode"></a></p>
+
+<h2>Program code</h2>
+
+<pre><code>Properties p = new Properties();
+p.put("java.naming.factory.initial",
+</code></pre>
+
+<p>"org.apache.openejb.client.LocalInitialContextFactory");
+    p.put("openejb.authentication.realmName", "MyApp");</p>
+
+<pre><code>InitialContext ctx = new InitialContext(p);
+
+MyBean myBean = (MyBean) ctx.lookup("MyBeanRemote");
+</code></pre>
+
+<p><a name="Clients-RemoteClient(openejbstandalone)"></a></p>
+
+<h1>Remote Client (openejb standalone)</h1>
+
+<pre><code>Properties p = new Properties();
+p.put("java.naming.factory.initial",
+</code></pre>
+
+<p>"org.apache.openejb.client.RemoteInitialContextFactory");
+    p.put("java.naming.provider.url", "ejbd://localhost:4201");
+    // user and pass optional
+    p.put("java.naming.security.principal", "myuser");
+    p.put("java.naming.security.credentials", "mypass");</p>
+
+<pre><code>InitialContext ctx = new InitialContext(p);
+
+MyBean myBean = (MyBean) ctx.lookup("MyBeanRemote");
+</code></pre>
+
+<p><a name="Clients-RemoteClientwithHTTP(openejbstandalone)"></a></p>
+
+<h1>Remote Client with HTTP (openejb standalone)</h1>
+
+<pre><code>Properties p = new Properties();
+p.put("java.naming.factory.initial",
+</code></pre>
+
+<p>"org.apache.openejb.client.RemoteInitialContextFactory");
+    p.put("java.naming.provider.url", "http://localhost:4204/ejb");
+    // user and pass optional
+    p.put("java.naming.security.principal", "myuser");
+    p.put("java.naming.security.credentials", "mypass");</p>
+
+<pre><code>InitialContext ctx = new InitialContext(p);
+
+MyBean myBean = (MyBean) ctx.lookup("MyBeanRemote");
+</code></pre>
+
+<p><a name="Clients-RemoteClientwithHTTP(intomcat)"></a></p>
+
+<h1>Remote Client with HTTP (in tomcat)</h1>
+
+<pre><code>Properties p = new Properties();
+p.put("java.naming.factory.initial",
+</code></pre>
+
+<p>"org.apache.openejb.client.RemoteInitialContextFactory");
+    p.put("java.naming.provider.url", "http://127.0.0.1:8080/openejb/ejb");
+    // user and pass optional
+    p.put("java.naming.security.principal", "myuser");
+    p.put("java.naming.security.credentials", "mypass");</p>
+
+<pre><code>InitialContext ctx = new InitialContext(p);
+
+MyBean myBean = (MyBean) ctx.lookup("MyBeanRemote");
+</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/collapsed-ear-on-linux.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/collapsed-ear-on-linux.cwiki (added)
+++ websites/staging/openejb/trunk/content/collapsed-ear-on-linux.cwiki Sun Jul 10 05:37:04 2011
@@ -0,0 +1,79 @@
+{note:title=THIS PAGE WILL BE ARCHIVED AND REMOVED}
+Instructions on Collapsed EAR can be found at&nbsp; [Collapsed EAR]
+
+{note}
+
+h1. Commands Only
+
+A lot of times docs get chatty.  Sometimes there is nothing better than standing over someone's shoulder and watching how to setup something.  So, here we go.  This doc sets up the Moviefun example on Tomcat 5.0.28.  These are the exact commands I typed to set things up successfully.
+{note:title=/tmp}
+I use /tmp as the directory in this example to contain all the installations.  You really don't want to use that for real setup.  Your home dir or /usr/local/ would be better.
+{note}
+{quote}
+{color:darkgreen}mingus:/tmp 12:33:52{color}
+{color:darkblue}$ wget{color} {color:darkblue}[http://apache.downlod.in/jakarta/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.tar.gz]{color}
+\--12:34:36-\- [http://apache.downlod.in/jakarta/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.tar.gz]
+ => `jakarta-tomcat-5.0.28.tar.gz'
+Resolving apache.downlod.in... done.
+Connecting to apache.downlod.in\[OPENEJB:72.36.213.244\]:80... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 10,718,313 \[OPENEJB:application/x-gzip\]
+
+100%\[OPENEJB:=======================================================================================================>\] 10,718,313   476.67K/s    ETA 00:00
+
+12:34:58 (476.67 KB/s) - `jakarta-tomcat-5.0.28.tar.gz' saved \[OPENEJB:10718313/10718313\]
+
+{color:darkgreen}mingus:/tmp 12:34:58{color}
+{color:darkblue}$ tar xzf jakarta-tomcat-5.0.28.tar.gz{color}
+tar: A lone zero block at 82109
+
+{color:darkgreen}mingus:/tmp 12:35:18{color}
+{color:darkblue}$ wget{color} {color:darkblue}[http://dist.codehaus.org/openejb/distributions/openejb-1.0-beta1.tar.gz]{color}
+\--12:35:55-\- [http://dist.codehaus.org/openejb/distributions/openejb-1.0-beta1.tar.gz]
+ => `openejb-1.0-beta1.tar.gz'
+Resolving dist.codehaus.org... done.
+Connecting to dist.codehaus.org\[OPENEJB:64.7.141.17\]:80... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 5,086,662 \[OPENEJB:application/x-tar\]
+
+100%\[OPENEJB:=======================================================================================================>\] 5,086,662    280.05K/s    ETA 00:00
+
+12:36:13 (280.05 KB/s) - `openejb-1.0-beta1.tar.gz' saved \[OPENEJB:5086662/5086662\]
+
+{color:darkgreen}mingus:/tmp 12:36:13{color}
+{color:darkblue}$ tar xzf openejb-1.0-beta1.tar.gz{color}
+
+{color:darkgreen}mingus:/tmp 12:36:27{color}
+{color:darkblue}$ cp openejb-1.0-beta1/war/moviefun.war jakarta-tomcat-5.0.28/webapps/{color}
+
+{color:darkgreen}mingus:/tmp 12:37:30{color}
+{color:darkblue}$ ./jakarta-tomcat-5.0.28/bin/startup.sh{color}
+Using CATALINA_BASE:   /tmp/jakarta-tomcat-5.0.28
+Using CATALINA_HOME:   /tmp/jakarta-tomcat-5.0.28
+Using CATALINA_TMPDIR: /tmp/jakarta-tomcat-5.0.28/temp
+Using JAVA_HOME:       /Library/Java/Home
+
+{color:darkgreen}mingus:/tmp 12:37:45{color}
+{color:darkblue}$ emacs jakarta-tomcat-5.0.28/webapps/moviefun/WEB-INF/web.xml{color}
+{info:title=openejb.home}
+Must set the openejb.home, so edit the web.xml remove this line:
+ <param-value>*/Users/dblevins/work/openejb1/target/openejb-1.0-SNAPSHOT*</param-value>
+With this line:
+ <param-value>*/tmp/openejb-1.0-beta1*</param-value>
+{info}
+{color:darkgreen}mingus:/tmp 12:38:52{color}
+{color:darkblue}$ ./jakarta-tomcat-5.0.28/bin/shutdown.sh{color}
+Using CATALINA_BASE:   /tmp/jakarta-tomcat-5.0.28
+Using CATALINA_HOME:   /tmp/jakarta-tomcat-5.0.28
+Using CATALINA_TMPDIR: /tmp/jakarta-tomcat-5.0.28/temp
+
+{color:darkgreen}mingus:/tmp 12:40:15{color}
+{color:darkblue}$ ./jakarta-tomcat-5.0.28/bin/startup.sh{color}
+Using JAVA_HOME:       /Library/Java/Home
+Using CATALINA_BASE:   /tmp/jakarta-tomcat-5.0.28
+Using CATALINA_HOME:   /tmp/jakarta-tomcat-5.0.28
+Using CATALINA_TMPDIR: /tmp/jakarta-tomcat-5.0.28/temp
+Using JAVA_HOME:       /Library/Java/Home
+{quote}
+Now open your browser to [http://localhost:8080/moviefun/]
+Visit the [http://localhost:8080/moviefun/setup.jsp] at anytime to reset the example data.
\ No newline at end of file

Added: websites/staging/openejb/trunk/content/collapsed-ear-on-linux.html
==============================================================================
--- websites/staging/openejb/trunk/content/collapsed-ear-on-linux.html (added)
+++ websites/staging/openejb/trunk/content/collapsed-ear-on-linux.html Sun Jul 10 05:37:04 2011
@@ -0,0 +1,183 @@
+<!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 on Linux</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 Collapsed EAR can be found at&nbsp; <a href="collapsed-ear.html">Collapsed EAR</a></p>
+
+<p>{note}</p>
+
+<p><a name="CollapsedEARonLinux-CommandsOnly"></a></p>
+
+<h1>Commands Only</h1>
+
+<p>A lot of times docs get chatty.  Sometimes there is nothing better than
+standing over someone's shoulder and watching how to setup something.  So,
+here we go.  This doc sets up the Moviefun example on Tomcat 5.0.28.  These
+are the exact commands I typed to set things up successfully.
+{note:title=/tmp}
+I use /tmp as the directory in this example to contain all the
+installations.  You really don't want to use that for real setup.  Your
+home dir or /usr/local/ would be better.
+{note}
+{quote}
+{color:darkgreen}mingus:/tmp 12:33:52{color}
+{color:darkblue}$ wget{color} {color:darkblue}<a href="http://apache.downlod.in/jakarta/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.tar.gz">http://apache.downlod.in/jakarta/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.tar.gz</a>
+{color}
+--12:34:36-- <a href="http://apache.downlod.in/jakarta/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.tar.gz">http://apache.downlod.in/jakarta/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.tar.gz</a>
+ => `jakarta-tomcat-5.0.28.tar.gz'
+Resolving apache.downlod.in... done.
+Connecting to apache.downlod.in[OPENEJB:72.36.213.244](openejb:72.36.213.244.html)
+:80... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 10,718,313 [OPENEJB:application/x-gzip](openejb:application/x-gzip.html)</p>
+
+<p>100%[OPENEJB:=======================================================================================================>](openejb:=======================================================================================================>.html)
+ 10,718,313   476.67K/s    ETA 00:00</p>
+
+<p>12:34:58 (476.67 KB/s) - `jakarta-tomcat-5.0.28.tar.gz' saved [OPENEJB:10718313/10718313](openejb:10718313/10718313.html)</p>
+
+<p>{color:darkgreen}mingus:/tmp 12:34:58{color}
+{color:darkblue}$ tar xzf jakarta-tomcat-5.0.28.tar.gz{color}
+tar: A lone zero block at 82109</p>
+
+<p>{color:darkgreen}mingus:/tmp 12:35:18{color}
+{color:darkblue}$ wget{color} {color:darkblue}<a href="http://dist.codehaus.org/openejb/distributions/openejb-1.0-beta1.tar.gz">http://dist.codehaus.org/openejb/distributions/openejb-1.0-beta1.tar.gz</a>
+{color}
+--12:35:55-- <a href="http://dist.codehaus.org/openejb/distributions/openejb-1.0-beta1.tar.gz">http://dist.codehaus.org/openejb/distributions/openejb-1.0-beta1.tar.gz</a>
+ => `openejb-1.0-beta1.tar.gz'
+Resolving dist.codehaus.org... done.
+Connecting to dist.codehaus.org[OPENEJB:64.7.141.17](openejb:64.7.141.17.html)
+:80... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 5,086,662 [OPENEJB:application/x-tar](openejb:application/x-tar.html)</p>
+
+<p>100%[OPENEJB:=======================================================================================================>](openejb:=======================================================================================================>.html)
+ 5,086,662    280.05K/s    ETA 00:00</p>
+
+<p>12:36:13 (280.05 KB/s) - `openejb-1.0-beta1.tar.gz' saved [OPENEJB:5086662/5086662](openejb:5086662/5086662.html)</p>
+
+<p>{color:darkgreen}mingus:/tmp 12:36:13{color}
+{color:darkblue}$ tar xzf openejb-1.0-beta1.tar.gz{color}</p>
+
+<p>{color:darkgreen}mingus:/tmp 12:36:27{color}
+{color:darkblue}$ cp openejb-1.0-beta1/war/moviefun.war
+jakarta-tomcat-5.0.28/webapps/{color}</p>
+
+<p>{color:darkgreen}mingus:/tmp 12:37:30{color}
+{color:darkblue}$ ./jakarta-tomcat-5.0.28/bin/startup.sh{color}
+Using CATALINA_BASE:   /tmp/jakarta-tomcat-5.0.28
+Using CATALINA_HOME:   /tmp/jakarta-tomcat-5.0.28
+Using CATALINA_TMPDIR: /tmp/jakarta-tomcat-5.0.28/temp
+Using JAVA_HOME:       /Library/Java/Home</p>
+
+<p>{color:darkgreen}mingus:/tmp 12:37:45{color}
+{color:darkblue}$ emacs
+jakarta-tomcat-5.0.28/webapps/moviefun/WEB-INF/web.xml{color}
+{info:title=openejb.home}
+Must set the openejb.home, so edit the web.xml remove this line:</p>
+
+<p><param-value><em>/Users/dblevins/work/openejb1/target/openejb-1.0-SNAPSHOT</em></param-value>
+With this line:
+ <param-value><em>/tmp/openejb-1.0-beta1</em></param-value>
+{info}
+{color:darkgreen}mingus:/tmp 12:38:52{color}
+{color:darkblue}$ ./jakarta-tomcat-5.0.28/bin/shutdown.sh{color}
+Using CATALINA_BASE:   /tmp/jakarta-tomcat-5.0.28
+Using CATALINA_HOME:   /tmp/jakarta-tomcat-5.0.28
+Using CATALINA_TMPDIR: /tmp/jakarta-tomcat-5.0.28/temp</p>
+
+<p>{color:darkgreen}mingus:/tmp 12:40:15{color}
+{color:darkblue}$ ./jakarta-tomcat-5.0.28/bin/startup.sh{color}
+Using JAVA_HOME:       /Library/Java/Home
+Using CATALINA_BASE:   /tmp/jakarta-tomcat-5.0.28
+Using CATALINA_HOME:   /tmp/jakarta-tomcat-5.0.28
+Using CATALINA_TMPDIR: /tmp/jakarta-tomcat-5.0.28/temp
+Using JAVA_HOME:       /Library/Java/Home
+{quote}
+Now open your browser to <a href="http://localhost:8080/moviefun/">http://localhost:8080/moviefun/</a>
+Visit the <a href="http://localhost:8080/moviefun/setup.jsp">http://localhost:8080/moviefun/setup.jsp</a>
+ at anytime to reset the example data.</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>