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

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

Added: websites/staging/openejb/trunk/content/deployment-id.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/deployment-id.cwiki (added)
+++ websites/staging/openejb/trunk/content/deployment-id.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,142 @@
+h1. What is a Deployment ID?
+
+Every bean deployed in OpenEJB has a unique deployment-id that identifies it within the scope of the entire container system. The server and container system refer beans at run-time using the bean's deployment id.
+
+h2. Like ejb-name
+
+This deployment id is much like the <ejb-name> element of the ejb-jar.xml , with one very important difference. The <ejb-name> is only required to be unique within the scope of the ejb-jar.xml in the bean's jar. The deployment id is required to be unique across all beans and jars in OpenEJB. This is a subtle, but important, distinction.
+
+Remember that the EJB specification was designed so that enterprise beans could be create, packaged, and sold by vendors (EJB Providers). Furthermore, users should be able to buy a packaged set of beans (a jar with an ejb-jar.xml in it) and deploy it into an EJB Container without modification.
+
+h2. The ejb-name is not unique
+
+Let's consider this, what happens if two vendors each sell a package (jar) that contains a bean with the <ejb-name> PurchaseOrder? Both are completely different in terms functionality and are different beans in every other respect. The EJB spec says, this is fine, ejb-names only have to unique within the jar and that jar's ejb-jar.xml file. It's redictulous to excpect EJB Providers to call each other up and ask, "Are you already using the name 'PurchaseOrder' in your jar?" Remember that the EJB specification was designed so that enterprise beans could be create, packaged, and sold by vendors (EJB Providers). Furthermore, users should be able to buy a packaged set of beans (a jar with an ejb-jar.xml in it) and deploy it into an EJB Container without modification. This is all fine and dandy, but it still leaves it up to the EJB Container/Server providers to settle the difference.
+
+h2. The deployment-id is unique
+
+OpenEJB solves this with the OpenEJB-specific deployment id. By requiring that each bean deployed into OpenEJB has a unique name, we can guarantee that we are always refering to the right bean at all times. Futhermore, it allows you to deploy different versions of the same package several times in the same container system, each time giving the beans new deployment ids.
+
+h2. Using ejb-name as deployment-id anyway
+
+If you're lazy -- as any truly great programmer should be -- and don't want to type a deployment id for each bean every time you deploy a jar, you can use the -D option of the Deploy Tool. This will throw caution to the wind, and automatically assign the bean's ejb-name as the value of the bean's OpenEJB deployment id. This leaves up to you to guarantee that bean's ejb-name will be unique across all beans and jars in the container system. In other words, be very careful with the -D option!
+
+h1. How is it used?
+
+h2. In the container system
+
+In the container system, the deployment id is used to undex the bean in a system-wide registry. This registry is refered to on every call made in the container system. Being able to safely hash and cache bean information by id is a must. This stresses the importance of unique ids for every bean deployed in OpenEJB.
+
+h2. In the Local Server
+
+The Local (IntraVM) Server is an integral part of the container system and the two are, in many ways, inseparable. The Local Server takes care of all bean to bean and client to bean invocations made inside the virtual machine. For this reason, it often refered to as the IntraVM Server.
+
+For bean to bean communications, the Local Server must create a JNDI namespace (JNDI ENC) for each bean as defined by the bean's <env-entry>, <ejb-ref>, and <resource-ref> elements of the bean's ejb-jar.xml file. Every bean litterally gets its very own JNDI namespace. When a bean makes a JNDI call, the Local Server intercepts this call and uses the deployment id of the calling bean to retreive that bean's private JNDI namespace from the container system's index. The Local Server then carries out the lookup on that bean's namespace.
+
+All non-bean clients share one big global namespace. Since non-bean clients are not deployed and do not have a deployment descriptor like an ejb-jar.xml, the Local Server is unable to taylor a namespace for each non-bean client as it can for bean clients. The Local server cannot identify non-bean clients as they have no deployment id. All JNDI calls made by clients that the Local Server cannot identify go to the public, global namespace. The public, global JNDI namespace contains all beans and resources in the container system. name.
+
+Each bean is added to the public, global namespace using it's deployment id as its JNDI lookup. For example, if a bean had a deployment-id of "/my/bean/foo", a non-bean client could lookup that bean as follows.
+
+{code:title=MyAppClient.java}
+...
+Object bean = initialContext.lookup("/my/bean/Foo");
+...
+{code}
+
+If a bean in the container system made the above JNDI call, the Local Server would see the bean's identity (deployment id) hidden in the Thread, go get the bean's private JNDI namespace and finish the lookup on that. Since all names in bean's JNDI namespace are required start with "java:comp/env", the lookup would fail and the bean would receive a javax.naming.NameNotFoundException.
+
+In short...
+
+For beans:
+ - Each bean has it's own private, personalized JNDI namespace
+ - The names in it are the same names it uses in its ejb-jar.xml
+ - Beans can only access their private namespace, period
+
+For non-beans (everyone else):
+ - Non-bean clients share the public, global JNDI namespace
+ - The names in it are the deployment ids of all the beans
+ - Non-bean clients can only access the one global namespace
+
+h2. In the Remote Server
+
+The Remote Server has a public, global namespace just as the Local Server does. The difference being that the Remote Server only serves clients outside the container system and outside the virtual machine. So, all clients from the perspective of the Remote Server are non-bean clients. As a result, the Remote Server only has the one public, global JNDI namespace. Just as in the Local Server, the names in this namespacse consist of the deployment ids of the beans in the container system.
+
+Just as before, clients can lookup beans from the Remote Server using the bean's deployment id. For example, if a bean had a deployment-id of "/my/bean/foo", a client could lookup that bean as follows.
+
+{code:title=MyAppClient.java}
+...
+Object bean = initialContext.lookup("/my/bean/Foo");
+...
+{code}
+
+h2. In the CORBA Adapter
+
+The CORBA Adapter is separate than the Remote Server. It adapts the OpenEJB Container System and the Local Server into OpenORB as an embedded library. It provides users of OpenORB the ability to lookup and execute beans (EJBs) via the RMI-IIOP protocol. All the EJBHome and EJBObject interfaces of beans in OpenEJB are implemented by OpenORB as CORBA stubs and ties.
+
+The beans are exported into OpenORB's naming service by deployment id. So, just as with the Local Server and Remote Server, clients can lookup beans using the bean's deployment id. OpenORB has a JNDI implementation of their naming service, so lookups can be done just as before.
+
+{code:title=MyAppClient.java}
+...
+Object bean = initialContext.lookup("/my/bean/Foo");
+...
+{}
+
+CORBA clients can also access beans in OpenEJB as CORBA objects. These can be looked up from OpenORB's naming service (CosNaming) as follows.
+
+{code:title=MyCorbaAppClient.java}
+...
+String[] args = ...
+
+// The ORB and Object
+org.omg.CORBA.ORB    orb  = null;
+org.omg.CORBA.Object bean = null.
+
+// The Naming Service and Object Name
+org.omg.CosNaming.NamingContext   context = null;
+org.omg.CosNaming.NameComponent[]    name = null;
+
+// Get the ORB
+orb = org.omg.CORBA.ORB.init( args, null );                  
+ 
+// Get the Naming Service 
+org.omg.CORBA.Object ref = null;
+ref = orb.resolve_initial_references("NameService");
+context = org.omg.CosNaming.NamingContextHelper.narrow( ref );
+
+// Get the Name as a component
+// Note: the string is the bean's deployment id 
+name    = new org.omg.CosNaming.NameComponent[ 1 ];
+name[0] = new org.omg.CosNaming.NameComponent("/my/bean/foo","");
+
+// Finally, get the bean as a CORBA object
+// Equvalent to an InitialContext.lookup("/my/bean/foo");
+bean = context.resolve( name );
+...
+{code}
+
+h1. What happens if there is a duplicate deployment ID?
+
+The deployment ID uniquely identifies the bean in the OpenEJB container system. Therefore, no two beans can share the same deployment ID.
+
+If a bean attempts to use a deployment ID that is already in use by another bean, the second bean and all beans in it's jar will not be loaded. In addition, the system will log a warning like the following one asking you to redeploy the jar and choose an different deployment ID for the bean.
+
+{panel:title=openejb.log}
+WARN : Jar C:\openejb\beans\fooEjbs.jar cannot be loaded.  The 
+Deployment ID "/my/bean/foo" is already in use.  Please redeploy 
+this jar and assign a different deployment ID to the bean with 
+the ejb-name "FooBean".
+{panel}
+
+For example, the acmeEjbs.jar contains a bean with the ejb-name "DaffyDuckBean". The disneyEjbs.jar contains contains a bean with the ejb-name "DonaldDuckBean".
+
+We deploy the acmeEjbs.jar and give the "DaffyDuckBean" the deployment ID of "/my/favorite/duck". Sometime afterwards, we deploy the disneyEjbs.jar and assign the "DonaldDuckBean" the deployment ID "/my/favorite/duck", having forgotten that we already gave that unique ID to the "DaffyDuckBean" in the acmeEjbs.jar.
+
+When the container system is started, the system will begin loading all the beans one jar at a time. It will first load the acmeEjbs.jar and index each bean by deployment ID. But, when the system reaches the disneyEjbs.jar, it will discover that it cannot index the "DonaldDuckBean" using the deployment ID "/my/favorite/duck" because that index is already taken.
+
+The system cannot load the "DonaldDuckBean" and must also ignore the rest of the beans in the disneyEjbs.jar as they may need the "DonaldDuckBean" bean to function properly. The disneyEjbs.jar is skipped and the following warning is logged.
+
+{panel:title=openejb.log}
+WARN : Jar C:\openejb\beans\disneyEjbs.jar cannot be loaded.  The 
+Deployment ID "/my/favorite/duck" is already in use.  Please redeploy 
+this jar and assign a different deployment ID to the bean with 
+the ejb-name "DonaldDuckBean".
+{panel}
\ No newline at end of file

Added: websites/staging/openejb/trunk/content/deployment-id.html
==============================================================================
--- websites/staging/openejb/trunk/content/deployment-id.html (added)
+++ websites/staging/openejb/trunk/content/deployment-id.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,353 @@
+<!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>Deployment ID</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="DeploymentID-WhatisaDeploymentID?"></a></p>
+
+<h1>What is a Deployment ID?</h1>
+
+<p>Every bean deployed in OpenEJB has a unique deployment-id that identifies
+it within the scope of the entire container system. The server and
+container system refer beans at run-time using the bean's deployment id.</p>
+
+<p><a name="DeploymentID-Likeejb-name"></a></p>
+
+<h2>Like ejb-name</h2>
+
+<p>This deployment id is much like the <ejb-name> element of the ejb-jar.xml ,
+with one very important difference. The <ejb-name> is only required to be
+unique within the scope of the ejb-jar.xml in the bean's jar. The
+deployment id is required to be unique across all beans and jars in
+OpenEJB. This is a subtle, but important, distinction.</p>
+
+<p>Remember that the EJB specification was designed so that enterprise beans
+could be create, packaged, and sold by vendors (EJB Providers).
+Furthermore, users should be able to buy a packaged set of beans (a jar
+with an ejb-jar.xml in it) and deploy it into an EJB Container without
+modification.</p>
+
+<p><a name="DeploymentID-Theejb-nameisnotunique"></a></p>
+
+<h2>The ejb-name is not unique</h2>
+
+<p>Let's consider this, what happens if two vendors each sell a package (jar)
+that contains a bean with the <ejb-name> PurchaseOrder? Both are completely
+different in terms functionality and are different beans in every other
+respect. The EJB spec says, this is fine, ejb-names only have to unique
+within the jar and that jar's ejb-jar.xml file. It's redictulous to excpect
+EJB Providers to call each other up and ask, "Are you already using the
+name 'PurchaseOrder' in your jar?" Remember that the EJB specification was
+designed so that enterprise beans could be create, packaged, and sold by
+vendors (EJB Providers). Furthermore, users should be able to buy a
+packaged set of beans (a jar with an ejb-jar.xml in it) and deploy it into
+an EJB Container without modification. This is all fine and dandy, but it
+still leaves it up to the EJB Container/Server providers to settle the
+difference.</p>
+
+<p><a name="DeploymentID-Thedeployment-idisunique"></a></p>
+
+<h2>The deployment-id is unique</h2>
+
+<p>OpenEJB solves this with the OpenEJB-specific deployment id. By requiring
+that each bean deployed into OpenEJB has a unique name, we can guarantee
+that we are always refering to the right bean at all times. Futhermore, it
+allows you to deploy different versions of the same package several times
+in the same container system, each time giving the beans new deployment
+ids.</p>
+
+<p><a name="DeploymentID-Usingejb-nameasdeployment-idanyway"></a></p>
+
+<h2>Using ejb-name as deployment-id anyway</h2>
+
+<p>If you're lazy -- as any truly great programmer should be -- and don't want
+to type a deployment id for each bean every time you deploy a jar, you can
+use the -D option of the Deploy Tool. This will throw caution to the wind,
+and automatically assign the bean's ejb-name as the value of the bean's
+OpenEJB deployment id. This leaves up to you to guarantee that bean's
+ejb-name will be unique across all beans and jars in the container system.
+In other words, be very careful with the -D option!</p>
+
+<p><a name="DeploymentID-Howisitused?"></a></p>
+
+<h1>How is it used?</h1>
+
+<p><a name="DeploymentID-Inthecontainersystem"></a></p>
+
+<h2>In the container system</h2>
+
+<p>In the container system, the deployment id is used to undex the bean in a
+system-wide registry. This registry is refered to on every call made in the
+container system. Being able to safely hash and cache bean information by
+id is a must. This stresses the importance of unique ids for every bean
+deployed in OpenEJB.</p>
+
+<p><a name="DeploymentID-IntheLocalServer"></a></p>
+
+<h2>In the Local Server</h2>
+
+<p>The Local (IntraVM) Server is an integral part of the container system and
+the two are, in many ways, inseparable. The Local Server takes care of all
+bean to bean and client to bean invocations made inside the virtual
+machine. For this reason, it often refered to as the IntraVM Server.</p>
+
+<p>For bean to bean communications, the Local Server must create a JNDI
+namespace (JNDI ENC) for each bean as defined by the bean's <env-entry>,
+<ejb-ref>, and <resource-ref> elements of the bean's ejb-jar.xml file.
+Every bean litterally gets its very own JNDI namespace. When a bean makes a
+JNDI call, the Local Server intercepts this call and uses the deployment id
+of the calling bean to retreive that bean's private JNDI namespace from the
+container system's index. The Local Server then carries out the lookup on
+that bean's namespace.</p>
+
+<p>All non-bean clients share one big global namespace. Since non-bean clients
+are not deployed and do not have a deployment descriptor like an
+ejb-jar.xml, the Local Server is unable to taylor a namespace for each
+non-bean client as it can for bean clients. The Local server cannot
+identify non-bean clients as they have no deployment id. All JNDI calls
+made by clients that the Local Server cannot identify go to the public,
+global namespace. The public, global JNDI namespace contains all beans and
+resources in the container system. name.</p>
+
+<p>Each bean is added to the public, global namespace using it's deployment id
+as its JNDI lookup. For example, if a bean had a deployment-id of
+"/my/bean/foo", a non-bean client could lookup that bean as follows.</p>
+
+<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>MyAppClient.java</B></DIV><DIV class="codeContent panelContent">
+    ...
+    Object bean = initialContext.lookup("/my/bean/Foo");
+    ...</p>
+
+<p>If a bean in the container system made the above JNDI call, the Local
+Server would see the bean's identity (deployment id) hidden in the Thread,
+go get the bean's private JNDI namespace and finish the lookup on that.
+Since all names in bean's JNDI namespace are required start with
+"java:comp/env", the lookup would fail and the bean would receive a
+javax.naming.NameNotFoundException.</p>
+
+<p>In short...</p>
+
+<p>For beans:
+ - Each bean has it's own private, personalized JNDI namespace
+ - The names in it are the same names it uses in its ejb-jar.xml
+ - Beans can only access their private namespace, period</p>
+
+<p>For non-beans (everyone else):
+ - Non-bean clients share the public, global JNDI namespace
+ - The names in it are the deployment ids of all the beans
+ - Non-bean clients can only access the one global namespace</p>
+
+<p><a name="DeploymentID-IntheRemoteServer"></a></p>
+
+<h2>In the Remote Server</h2>
+
+<p>The Remote Server has a public, global namespace just as the Local Server
+does. The difference being that the Remote Server only serves clients
+outside the container system and outside the virtual machine. So, all
+clients from the perspective of the Remote Server are non-bean clients. As
+a result, the Remote Server only has the one public, global JNDI namespace.
+Just as in the Local Server, the names in this namespacse consist of the
+deployment ids of the beans in the container system.</p>
+
+<p>Just as before, clients can lookup beans from the Remote Server using the
+bean's deployment id. For example, if a bean had a deployment-id of
+"/my/bean/foo", a client could lookup that bean as follows.</p>
+
+<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>MyAppClient.java</B></DIV><DIV class="codeContent panelContent">
+    ...
+    Object bean = initialContext.lookup("/my/bean/Foo");
+    ...</p>
+
+<p><a name="DeploymentID-IntheCORBAAdapter"></a></p>
+
+<h2>In the CORBA Adapter</h2>
+
+<p>The CORBA Adapter is separate than the Remote Server. It adapts the OpenEJB
+Container System and the Local Server into OpenORB as an embedded library.
+It provides users of OpenORB the ability to lookup and execute beans (EJBs)
+via the RMI-IIOP protocol. All the EJBHome and EJBObject interfaces of
+beans in OpenEJB are implemented by OpenORB as CORBA stubs and ties.</p>
+
+<p>The beans are exported into OpenORB's naming service by deployment id. So,
+just as with the Local Server and Remote Server, clients can lookup beans
+using the bean's deployment id. OpenORB has a JNDI implementation of their
+naming service, so lookups can be done just as before.</p>
+
+<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>MyAppClient.java</B></DIV><DIV class="codeContent panelContent">
+    ...
+    Object bean = initialContext.lookup("/my/bean/Foo");
+    ...
+    {}</p>
+
+<pre><code>CORBA clients can also access beans in OpenEJB as CORBA objects. These can
+</code></pre>
+
+<p>be looked up from OpenORB's naming service (CosNaming) as follows.</p>
+
+<pre><code>{code:title=MyCorbaAppClient.java}
+...
+String[]
+</code></pre>
+
+<p>args = ...</p>
+
+<pre><code>// The ORB and Object
+org.omg.CORBA.ORB    orb  = null;
+org.omg.CORBA.Object bean = null.
+
+// The Naming Service and Object Name
+org.omg.CosNaming.NamingContext   context = null;
+org.omg.CosNaming.NameComponent[]
+name = null;
+
+// Get the ORB
+orb = org.omg.CORBA.ORB.init( args, null );          
+
+// Get the Naming Service 
+org.omg.CORBA.Object ref = null;
+ref = orb.resolve_initial_references("NameService");
+context = org.omg.CosNaming.NamingContextHelper.narrow( ref );
+
+// Get the Name as a component
+// Note: the string is the bean's deployment id 
+name    = new org.omg.CosNaming.NameComponent[ 1 ]
+</code></pre>
+
+<p>;
+    name[0]
+ = new org.omg.CosNaming.NameComponent("/my/bean/foo","");</p>
+
+<pre><code>// Finally, get the bean as a CORBA object
+// Equvalent to an InitialContext.lookup("/my/bean/foo");
+bean = context.resolve( name );
+...
+</code></pre>
+
+<p><a name="DeploymentID-WhathappensifthereisaduplicatedeploymentID?"></a></p>
+
+<h1>What happens if there is a duplicate deployment ID?</h1>
+
+<p>The deployment ID uniquely identifies the bean in the OpenEJB container
+system. Therefore, no two beans can share the same deployment ID.</p>
+
+<p>If a bean attempts to use a deployment ID that is already in use by another
+bean, the second bean and all beans in it's jar will not be loaded. In
+addition, the system will log a warning like the following one asking you
+to redeploy the jar and choose an different deployment ID for the bean.</p>
+
+<p>{panel:title=openejb.log}
+WARN : Jar C:\openejb\beans\fooEjbs.jar cannot be loaded.  The 
+Deployment ID "/my/bean/foo" is already in use.  Please redeploy 
+this jar and assign a different deployment ID to the bean with 
+the ejb-name "FooBean".
+{panel}</p>
+
+<p>For example, the acmeEjbs.jar contains a bean with the ejb-name
+"DaffyDuckBean". The disneyEjbs.jar contains contains a bean with the
+ejb-name "DonaldDuckBean".</p>
+
+<p>We deploy the acmeEjbs.jar and give the "DaffyDuckBean" the deployment ID
+of "/my/favorite/duck". Sometime afterwards, we deploy the disneyEjbs.jar
+and assign the "DonaldDuckBean" the deployment ID "/my/favorite/duck",
+having forgotten that we already gave that unique ID to the "DaffyDuckBean"
+in the acmeEjbs.jar.</p>
+
+<p>When the container system is started, the system will begin loading all the
+beans one jar at a time. It will first load the acmeEjbs.jar and index each
+bean by deployment ID. But, when the system reaches the disneyEjbs.jar, it
+will discover that it cannot index the "DonaldDuckBean" using the
+deployment ID "/my/favorite/duck" because that index is already taken.</p>
+
+<p>The system cannot load the "DonaldDuckBean" and must also ignore the rest
+of the beans in the disneyEjbs.jar as they may need the "DonaldDuckBean"
+bean to function properly. The disneyEjbs.jar is skipped and the following
+warning is logged.</p>
+
+<p>{panel:title=openejb.log}
+WARN : Jar C:\openejb\beans\disneyEjbs.jar cannot be loaded.  The 
+Deployment ID "/my/favorite/duck" is already in use.  Please redeploy 
+this jar and assign a different deployment ID to the bean with 
+the ejb-name "DonaldDuckBean".
+{panel}</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/details-on-openejb-jar.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/details-on-openejb-jar.cwiki (added)
+++ websites/staging/openejb/trunk/content/details-on-openejb-jar.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,121 @@
+
+h1. What is an openejb-jar.xml?
+
+This is the file created by the Deploy Tool that maps your bean's deployment descriptor (ejb-jar.xml) to actual containers and resources declared in your OpenEJB configuration (openejb.conf). In fact, the Deploy tool really does nothing more than create this file and put it in your jar, that's it.
+
+h1. When is the openejb-jar.xml used?
+
+At startup, any jar containing a openejb-jar.xml is loaded by the container system. The configuration tools will go looking in all the directories and jars you have declared in your openejb.conf with the <Deployment> element. For every jar file it finds, it will look inside for an openejb-jar.xml. If it finds one, it will attempt to load and deploy it into the container system.
+
+h1. Do I even need the deploy tool then?
+
+Nope. Typically you would only use the deploy tool to create your openejb-jar.xml, then just keep your openejb-jar.xml in your CVS (or other repository). If you learn how to maintain this openejb-jar.xml file, you'll never need the deploy tool again! You can do all your builds and deploys automatically.
+
+h1. Where do I put the openejb-jar.xml in my jar?
+
+The openejb-jar.xml file just goes in the META-INF directory of your jar next to the ejb-jar.xml file.
+
+h1. Is the file format easy?
+
+If you can understand the ejb-jar.xml, the openejb-jar.xml should be a breeze.
+
+This is the openejb-jar.xml that is created by the Deploy tool in the Hello World example. As you can see, the file format is extremely simple.
+
+{code:xml|title=openejb-jar.xml}
+<?xml version="1.0"?>
+<openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
+    <ejb-deployment  ejb-name="Hello" 
+                     deployment-id="Hello" 
+                     container-id="Default Stateless Container"/>
+</openejb-jar>
+{code}
+
+
+The *ejb-name* attribute is the name you gave the bean in your ejb-jar.xml. The *deployment-id* is the name you want to use to lookup the bean in your client's JNDI namespace. The *container-id* is the name of the container in your openejb.conf file that you would like the bean to run in. There MUST be one *ejb-deployment* element for each EJB in your jar.
+
+h1. What if my bean uses a JDBC datasource?
+
+Then you simply add a <resource-link> element to your <ejb-deployment> element like this
+
+{code:xml|title=openejb-jar.xml}
+<?xml version="1.0"?>
+<openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
+    
+    <ejb-deployment  ejb-name="Hello" 
+                     deployment-id="Hello" 
+                     container-id="Default Stateless Container" >
+         
+        <resource-link res-ref-name="jdbc/basic/entityDatabase" 
+                     res-id="Default JDBC Database"/>
+    
+    </ejb-deployment>
+
+</openejb-jar>
+{code}
+
+
+The *res-ref-name* attribute refers to the <res-ref-name> element of the bean's <resource-ref> declaration in the ejb-jar.xml. The *res-id* attribute refers to the id of the <Connector> declared in your openejb.conf that will handle the connections and provide access to the desired resource.
+
+h1. How many resource-link elements will I need?
+
+You will need one <resource-link> element for every <resource-ref> element in your ejb-jar.xml. So if you had an ejb-jar.xml like the following
+
+{code:xml|title=ejb-jar.xml}
+<?xml version="1.0"?>
+<ejb-jar>
+    <enterprise-beans>
+        <session>
+            <ejb-name>MyExampleBean</ejb-name>
+            <home>com.widget.ExampleHome</home>
+            <remote>com.widget.ExampleObject</remote>
+            <ejb-class>com.widget.ExampleBean</ejb-class>
+            <session-type>Stateless</session-type>
+            <transaction-type>Container</transaction-type>
+    
+            <resource-ref>
+                <description>
+                This is a reference to a JDBC database.
+                </description>
+                <res-ref-name>jdbc/myFirstDatabase</res-ref-name>
+                <res-type>javax.sql.DataSource</res-type>
+                <res-auth>Container</res-auth>
+            </resource-ref>
+        
+            <resource-ref>
+                <description>
+                This is another reference to a JDBC database.
+                </description>
+                <res-ref-name>jdbc/anotherDatabase</res-ref-name>
+                <res-type>javax.sql.DataSource</res-type>
+                <res-auth>Container</res-auth>
+            </resource-ref>
+        
+        </session>
+    </enterprise-beans>
+</ejb-jar>
+{code}
+
+
+Then you would need two <resource-link> elements for that bean in your openejb-jar.xml file as such.
+
+{code:xml|title=openejb-jar.xml}
+<?xml version="1.0"?>
+<openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
+    
+    <ejb-deployment  ejb-name="MyExampleBean" 
+                     deployment-id="MyExampleBean" 
+                     container-id="Default Stateless Container" >
+         
+        <resource-link res-ref-name="jdbc/myFirstDatabase" 
+                     res-id="My Oracle JDBC Database"/>
+
+        <resource-link res-ref-name="jdbc/anotherDatabase" 
+                     res-id="My PostgreSQL JDBC Database"/>
+    
+    </ejb-deployment>
+
+</openejb-jar>
+{code}
+
+
+This would require two <Connector> declarations in your openejb.conf, one with the *id* attribute set to _"My Oracle JDBC Database"_ , and another with it's *id* attribute set to _"My PostgreSQL JDBC Database"_ 

Added: websites/staging/openejb/trunk/content/details-on-openejb-jar.html
==============================================================================
--- websites/staging/openejb/trunk/content/details-on-openejb-jar.html (added)
+++ websites/staging/openejb/trunk/content/details-on-openejb-jar.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,250 @@
+<!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>Details on openejb-jar</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="Detailsonopenejb-jar-Whatisanopenejb-jar.xml?"></a></p>
+
+<h1>What is an openejb-jar.xml?</h1>
+
+<p>This is the file created by the Deploy Tool that maps your bean's
+deployment descriptor (ejb-jar.xml) to actual containers and resources
+declared in your OpenEJB configuration (openejb.conf). In fact, the Deploy
+tool really does nothing more than create this file and put it in your jar,
+that's it.</p>
+
+<p><a name="Detailsonopenejb-jar-Whenistheopenejb-jar.xmlused?"></a></p>
+
+<h1>When is the openejb-jar.xml used?</h1>
+
+<p>At startup, any jar containing a openejb-jar.xml is loaded by the container
+system. The configuration tools will go looking in all the directories and
+jars you have declared in your openejb.conf with the <Deployment> element.
+For every jar file it finds, it will look inside for an openejb-jar.xml. If
+it finds one, it will attempt to load and deploy it into the container
+system.</p>
+
+<p><a name="Detailsonopenejb-jar-DoIevenneedthedeploytoolthen?"></a></p>
+
+<h1>Do I even need the deploy tool then?</h1>
+
+<p>Nope. Typically you would only use the deploy tool to create your
+openejb-jar.xml, then just keep your openejb-jar.xml in your CVS (or other
+repository). If you learn how to maintain this openejb-jar.xml file, you'll
+never need the deploy tool again! You can do all your builds and deploys
+automatically.</p>
+
+<p><a name="Detailsonopenejb-jar-WheredoIputtheopenejb-jar.xmlinmyjar?"></a></p>
+
+<h1>Where do I put the openejb-jar.xml in my jar?</h1>
+
+<p>The openejb-jar.xml file just goes in the META-INF directory of your jar
+next to the ejb-jar.xml file.</p>
+
+<p><a name="Detailsonopenejb-jar-Isthefileformateasy?"></a></p>
+
+<h1>Is the file format easy?</h1>
+
+<p>If you can understand the ejb-jar.xml, the openejb-jar.xml should be a
+breeze.</p>
+
+<p>This is the openejb-jar.xml that is created by the Deploy tool in the Hello
+World example. As you can see, the file format is extremely simple.</p>
+
+<p>{code:xml|title=openejb-jar.xml}
+<?xml version="1.0"?>
+<openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
+    <ejb-deployment  ejb-name="Hello" 
+             deployment-id="Hello" 
+             container-id="Default Stateless Container"/>
+</openejb-jar></p>
+
+<pre><code>The *ejb-name* attribute is the name you gave the bean in your ejb-jar.xml.
+</code></pre>
+
+<p>The <em>deployment-id</em> is the name you want to use to lookup the bean in your
+client's JNDI namespace. The <em>container-id</em> is the name of the container in
+your openejb.conf file that you would like the bean to run in. There MUST
+be one <em>ejb-deployment</em> element for each EJB in your jar.</p>
+
+<pre><code>h1. What if my bean uses a JDBC datasource?
+
+Then you simply add a &lt;resource-link&gt; element to your &lt;ejb-deployment&gt;
+</code></pre>
+
+<p>element like this</p>
+
+<pre><code>{code:xml|title=openejb-jar.xml}
+&lt;?xml version="1.0"?&gt;
+&lt;openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1"&gt;
+
+    &lt;ejb-deployment  ejb-name="Hello" 
+             deployment-id="Hello" 
+             container-id="Default Stateless Container" &gt;
+
+    &lt;resource-link res-ref-name="jdbc/basic/entityDatabase" 
+             res-id="Default JDBC Database"/&gt;
+
+    &lt;/ejb-deployment&gt;
+
+&lt;/openejb-jar&gt;
+</code></pre>
+
+<p>The <em>res-ref-name</em> attribute refers to the <res-ref-name> element of the
+bean's <resource-ref> declaration in the ejb-jar.xml. The <em>res-id</em>
+attribute refers to the id of the <Connector> declared in your openejb.conf
+that will handle the connections and provide access to the desired
+resource.</p>
+
+<p><a name="Detailsonopenejb-jar-Howmanyresource-linkelementswillIneed?"></a></p>
+
+<h1>How many resource-link elements will I need?</h1>
+
+<p>You will need one <resource-link> element for every <resource-ref> element
+in your ejb-jar.xml. So if you had an ejb-jar.xml like the following</p>
+
+<p>{code:xml|title=ejb-jar.xml}
+<?xml version="1.0"?>
+<ejb-jar>
+    <enterprise-beans>
+    <session>
+        <ejb-name>MyExampleBean</ejb-name>
+        <home>com.widget.ExampleHome</home>
+        <remote>com.widget.ExampleObject</remote>
+        <ejb-class>com.widget.ExampleBean</ejb-class>
+        <session-type>Stateless</session-type>
+        <transaction-type>Container</transaction-type></p>
+
+<pre><code>    &lt;resource-ref&gt;
+    &lt;description&gt;
+    This is a reference to a JDBC database.
+    &lt;/description&gt;
+    &lt;res-ref-name&gt;jdbc/myFirstDatabase&lt;/res-ref-name&gt;
+    &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;
+    &lt;res-auth&gt;Container&lt;/res-auth&gt;
+    &lt;/resource-ref&gt;
+
+    &lt;resource-ref&gt;
+    &lt;description&gt;
+    This is another reference to a JDBC database.
+    &lt;/description&gt;
+    &lt;res-ref-name&gt;jdbc/anotherDatabase&lt;/res-ref-name&gt;
+    &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;
+    &lt;res-auth&gt;Container&lt;/res-auth&gt;
+    &lt;/resource-ref&gt;
+
+&lt;/session&gt;
+&lt;/enterprise-beans&gt;
+</code></pre>
+
+<p></ejb-jar></p>
+
+<pre><code>Then you would need two &lt;resource-link&gt; elements for that bean in your
+</code></pre>
+
+<p>openejb-jar.xml file as such.</p>
+
+<pre><code>{code:xml|title=openejb-jar.xml}
+&lt;?xml version="1.0"?&gt;
+&lt;openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1"&gt;
+
+    &lt;ejb-deployment  ejb-name="MyExampleBean" 
+             deployment-id="MyExampleBean" 
+             container-id="Default Stateless Container" &gt;
+
+    &lt;resource-link res-ref-name="jdbc/myFirstDatabase" 
+             res-id="My Oracle JDBC Database"/&gt;
+
+    &lt;resource-link res-ref-name="jdbc/anotherDatabase" 
+             res-id="My PostgreSQL JDBC Database"/&gt;
+
+    &lt;/ejb-deployment&gt;
+
+&lt;/openejb-jar&gt;
+</code></pre>
+
+<p>This would require two <Connector> declarations in your openejb.conf, one
+with the <em>id</em> attribute set to <em>"My Oracle JDBC Database"</em> , and another
+with it's <em>id</em> attribute set to <em>"My PostgreSQL JDBC Database"</em> </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/developers-(ide).cwiki
==============================================================================
    (empty)

Added: websites/staging/openejb/trunk/content/developing-ejbs-with-openejb-and-netbeans-ide.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/developing-ejbs-with-openejb-and-netbeans-ide.cwiki (added)
+++ websites/staging/openejb/trunk/content/developing-ejbs-with-openejb-and-netbeans-ide.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1 @@
+Feel free to contribute your ideas if they're about the OpenEJB and NetBeans IDE mixture. Don't worry about the style and such - it gets fixed over time.
\ No newline at end of file

Added: websites/staging/openejb/trunk/content/developing-ejbs-with-openejb-and-netbeans-ide.html
==============================================================================
--- websites/staging/openejb/trunk/content/developing-ejbs-with-openejb-and-netbeans-ide.html (added)
+++ websites/staging/openejb/trunk/content/developing-ejbs-with-openejb-and-netbeans-ide.html Sun Jul 10 04:34:53 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>Developing EJBs with OpenEJB and NetBeans IDE</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>Feel free to contribute your ideas if they're about the OpenEJB and
+NetBeans IDE mixture. Don't worry about the style and such - it gets fixed
+over time.</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/download.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/download.cwiki (added)
+++ websites/staging/openejb/trunk/content/download.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,4 @@
+h1. Apache OpenEJB 3.1.4
+
+{include:Apache OpenEJB 3.1.4}
+ 
\ No newline at end of file

Added: websites/staging/openejb/trunk/content/download.html
==============================================================================
--- websites/staging/openejb/trunk/content/download.html (added)
+++ websites/staging/openejb/trunk/content/download.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,92 @@
+<!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>Download</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="Download-ApacheOpenEJB3.1.4"></a></p>
+
+<h1>Apache OpenEJB 3.1.4</h1>
+
+<p>{include:Apache OpenEJB 3.1.4}</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/downloads.cwiki
==============================================================================
    (empty)

Added: websites/staging/openejb/trunk/content/downloads.html
==============================================================================
--- websites/staging/openejb/trunk/content/downloads.html (added)
+++ websites/staging/openejb/trunk/content/downloads.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title>Downloads</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/eclipse-(d).cwiki
==============================================================================
    (empty)

Added: websites/staging/openejb/trunk/content/eclipse-plugin.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/eclipse-plugin.cwiki (added)
+++ websites/staging/openejb/trunk/content/eclipse-plugin.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,22 @@
+h1.  What is it?
+
+The *OpenEJB Eclipse Plugin* will be a suite of tools made available via Eclipse to make EJB development with OpenEJB easier.  The initial offering will probably provide basic functionality by taking advantage of [WebTools|http://www.eclipse.org/webtools] to allow for OpenEJB to be an available container/runtime within Eclipse.  This means full debugging and Eclipse project integration.  From there, the sky is the limit so feel free to suggest features on the [OpenEJB Dev list|Mailing Lists#MailingLists-DeveloperMailingList].
+
+h1.  How to get involved?
+
+Just the same as getting involved with any part of OpenEJB -- send a mail to the [OpenEJB Dev list|Mailing Lists#MailingLists-DeveloperMailingList] and say "Hi!"  We're a very relaxed group so no need to be perfect or overly prepared.  Just dive right in, we're always happy to have more.
+
+h1.  Where do I get it?
+
+The initiative is just launching, but you can grab what we have right here and start hacking.
+
+  http://svn.apache.org/repos/asf/incubator/openejb/trunk/openejb-eclipse
+
+h1.  What do I need to help?
+
+  [Eclipse|http://www.eclipse.org]
+  [Eclipse Web Tools|http://www.eclipse.org/webtools]
+
+h1.  Resources
+
+  [EclipseCon Presentation for Extending WTP|http://eclipsezilla.eclipsecon.org/show_bug.cgi?id=3581]

Added: websites/staging/openejb/trunk/content/eclipse-plugin.html
==============================================================================
--- websites/staging/openejb/trunk/content/eclipse-plugin.html (added)
+++ websites/staging/openejb/trunk/content/eclipse-plugin.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,129 @@
+<!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>Eclipse Plugin</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="EclipsePlugin-Whatisit?"></a></p>
+
+<h1>What is it?</h1>
+
+<p>The <em>OpenEJB Eclipse Plugin</em> will be a suite of tools made available via
+Eclipse to make EJB development with OpenEJB easier.  The initial offering
+will probably provide basic functionality by taking advantage of <a href="http://www.eclipse.org/webtools">WebTools</a>
+ to allow for OpenEJB to be an available container/runtime within Eclipse. 
+This means full debugging and Eclipse project integration.  From there, the
+sky is the limit so feel free to suggest features on the [OpenEJB Dev list|Mailing Lists#MailingLists-DeveloperMailingList]
+.</p>
+
+<p><a name="EclipsePlugin-Howtogetinvolved?"></a></p>
+
+<h1>How to get involved?</h1>
+
+<p>Just the same as getting involved with any part of OpenEJB -- send a mail
+to the <a href="mailing-lists#mailinglists-developermailinglist.html">OpenEJB Dev list</a>
+ and say "Hi!"  We're a very relaxed group so no need to be perfect or
+overly prepared.  Just dive right in, we're always happy to have more.</p>
+
+<p><a name="EclipsePlugin-WheredoIgetit?"></a></p>
+
+<h1>Where do I get it?</h1>
+
+<p>The initiative is just launching, but you can grab what we have right here
+and start hacking.</p>
+
+<p>http://svn.apache.org/repos/asf/incubator/openejb/trunk/openejb-eclipse</p>
+
+<p><a name="EclipsePlugin-WhatdoIneedtohelp?"></a></p>
+
+<h1>What do I need to help?</h1>
+
+<p><a href="http://www.eclipse.org">Eclipse</a>
+ <a href="http://www.eclipse.org/webtools">Eclipse Web Tools</a></p>
+
+<p><a name="EclipsePlugin-Resources"></a></p>
+
+<h1>Resources</h1>
+
+<p><a href="http://eclipsezilla.eclipsecon.org/show_bug.cgi?id=3581">EclipseCon Presentation for Extending WTP</a></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/eclipse.cwiki
==============================================================================
    (empty)

Added: websites/staging/openejb/trunk/content/eclipse.html
==============================================================================
--- websites/staging/openejb/trunk/content/eclipse.html (added)
+++ websites/staging/openejb/trunk/content/eclipse.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title>Eclipse</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/ejb-3-roadmap.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/ejb-3-roadmap.cwiki (added)
+++ websites/staging/openejb/trunk/content/ejb-3-roadmap.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,66 @@
+{swizzlejira}
+#set( $jira = $rss.fetch("http://issues.apache.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?&pid=12310530&component=12311366") )
+#set( $axis = $rss.fetch("http://issues.apache.org/jira/si/jira.issueviews:issue-xml/OPENEJB-114/OPENEJB-114.xml") )
+#set( $corba = $rss.fetch("http://issues.apache.org/jira/si/jira.issueviews:issue-xml/OPENEJB-113/OPENEJB-113.xml") )
+#set( $geronimo = $rss.fetch("http://issues.apache.org/jira/si/jira.issueviews:issue-xml/OPENEJB-524/OPENEJB-524.xml") )
+#set( $issues = $jira.fillSubTasks() )
+
+h1. EJB 3.0 Road Map
+
+h2.  Simplified Lifecycle
+#set( $lifecycle = $jira.getIssue("OPENEJB-76").subTasks)
+#set( $lifecycle = $lifecycle.union($jira.getIssue("OPENEJB-77").subTasks) )
+{swizzlejiraissues:issues=$as.param($lifecycle)|columns=summary;assignee;priority;status|style=progress}
+
+h2.  Dependency Injection
+#set( $dependencyInjection = $jira.getIssue("OPENEJB-98").subTasks) 
+{swizzlejiraissues:issues=$as.param($dependencyInjection)|columns=summary;assignee;priority;status|style=progress}
+
+h2.  Business Interfaces
+#set( $businessInterfaces = $jira.getIssue("OPENEJB-90").subTasks) 
+#set( $businessInterfaces = $businessInterfaces.union($jira.getIssue("OPENEJB-406")) )
+{swizzlejiraissues:issues=$as.param($businessInterfaces)|columns=summary;assignee;priority;status|style=progress}
+
+h2.  EJB 3.0 <-> EJB 2.1 Compatability
+#set( $ejb2compat = $jira.getIssue("OPENEJB-89").subTasks) 
+{swizzlejiraissues:issues=$as.param($ejb2compat)|columns=summary;assignee;priority;status|style=progress}
+
+h2.  Annotations
+#set( $annotations = $jira.getIssue("OPENEJB-216").subTasks)
+{swizzlejiraissues:issues=$as.param($annotations)|columns=summary;assignee;priority;status|style=progress}
+
+h2.  JNDI ENC
+#set( $jndi = $jira.getIssue("OPENEJB-370").subTasks)
+{swizzlejiraissues:issues=$as.param($jndi)|columns=summary;assignee;priority;status|style=progress}
+
+h2.  Interceptors
+#set( $interceptors = $jira.getIssue("OPENEJB-79").subTasks)
+#set( $interceptors = $interceptors.union($jira.getIssue("OPENEJB-78")) )
+#set( $interceptors = $interceptors.union($jira.getIssue("OPENEJB-80")) )
+{swizzlejiraissues:issues=$as.param($interceptors)|columns=summary;assignee;priority;status|style=progress}
+
+h2.  Integration
+#set( $integration = $axis.issues )
+#set( $integration = $integration.union($corba.issues) )
+#set( $integration = $integration.union($geronimo.issues) )
+{swizzlejiraissues:issues=$as.param($integration)|columns=summary;assignee;priority;status|style=progress}
+
+h2. CMP 2.x via JPA
+#set( $cmp = $rss.fetch("http://issues.apache.org/jira/si/jira.issueviews:issue-xml/OPENEJB-123/OPENEJB-123.xml") )
+#set( $void = $cmp.fillSubTasks() )
+#set( $cmp = $cmp.getIssue("OPENEJB-123") )
+{swizzlejiraissues:issues=$as.param($cmp.subTasks)|columns=summary;assignee;priority;status|style=progress}
+
+h2.  Validation
+#set( $validation = $jira.getIssue("OPENEJB-453").subTasks)
+{swizzlejiraissues:issues=$as.param($validation)|columns=summary;assignee;priority;status|style=progress}
+
+h2.  Compliance Tests
+#set( $itests = $jira.getIssue("OPENEJB-142").subTasks)
+{swizzlejiraissues:issues=$as.param($itests)|columns=summary;assignee;priority;status|style=progress}
+
+h2.  Examples
+#set( $examples = $jira.getIssue("OPENEJB-342").subTasks)
+{swizzlejiraissues:issues=$as.param($examples)|columns=summary;assignee;priority;status|style=progress}
+
+{swizzlejira}

Added: websites/staging/openejb/trunk/content/ejb-3-roadmap.html
==============================================================================
--- websites/staging/openejb/trunk/content/ejb-3-roadmap.html (added)
+++ websites/staging/openejb/trunk/content/ejb-3-roadmap.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,227 @@
+<!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>EJB 3 RoadMap</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>{swizzlejira}
+1. set( $jira =
+$rss.fetch("http://issues.apache.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?&amp;pid=12310530&amp;component=12311366")
+)
+1. set( $axis =
+$rss.fetch("http://issues.apache.org/jira/si/jira.issueviews:issue-xml/OPENEJB-114/OPENEJB-114.xml")
+)
+1. set( $corba =
+$rss.fetch("http://issues.apache.org/jira/si/jira.issueviews:issue-xml/OPENEJB-113/OPENEJB-113.xml")
+)
+1. set( $geronimo =
+$rss.fetch("http://issues.apache.org/jira/si/jira.issueviews:issue-xml/OPENEJB-524/OPENEJB-524.xml")
+)
+1. set( $issues = $jira.fillSubTasks() )</p>
+
+<p><a name="EJB3RoadMap-EJB3.0RoadMap"></a></p>
+
+<h1>EJB 3.0 Road Map</h1>
+
+<p><a name="EJB3RoadMap-SimplifiedLifecycle"></a></p>
+
+<h2>Simplified Lifecycle</h2>
+
+<ol>
+<li>set( $lifecycle = $jira.getIssue("OPENEJB-76").subTasks)</li>
+<li>set( $lifecycle = $lifecycle.union($jira.getIssue("OPENEJB-77").subTasks)
+)
+{swizzlejiraissues:issues=$as.param($lifecycle)|columns=summary;assignee;priority;status|style=progress}</li>
+</ol>
+
+<p><a name="EJB3RoadMap-DependencyInjection"></a></p>
+
+<h2>Dependency Injection</h2>
+
+<ol>
+<li>set( $dependencyInjection = $jira.getIssue("OPENEJB-98").subTasks) 
+{swizzlejiraissues:issues=$as.param($dependencyInjection)|columns=summary;assignee;priority;status|style=progress}</li>
+</ol>
+
+<p><a name="EJB3RoadMap-BusinessInterfaces"></a></p>
+
+<h2>Business Interfaces</h2>
+
+<ol>
+<li>set( $businessInterfaces = $jira.getIssue("OPENEJB-90").subTasks) </li>
+<li>set( $businessInterfaces =
+$businessInterfaces.union($jira.getIssue("OPENEJB-406")) )
+{swizzlejiraissues:issues=$as.param($businessInterfaces)|columns=summary;assignee;priority;status|style=progress}</li>
+</ol>
+
+<p><a name="EJB3RoadMap-EJB3.0&lt;->EJB2.1Compatability"></a></p>
+
+<h2>EJB 3.0 &lt;-> EJB 2.1 Compatability</h2>
+
+<ol>
+<li>set( $ejb2compat = $jira.getIssue("OPENEJB-89").subTasks) 
+{swizzlejiraissues:issues=$as.param($ejb2compat)|columns=summary;assignee;priority;status|style=progress}</li>
+</ol>
+
+<p><a name="EJB3RoadMap-Annotations"></a></p>
+
+<h2>Annotations</h2>
+
+<ol>
+<li>set( $annotations = $jira.getIssue("OPENEJB-216").subTasks)
+{swizzlejiraissues:issues=$as.param($annotations)|columns=summary;assignee;priority;status|style=progress}</li>
+</ol>
+
+<p><a name="EJB3RoadMap-JNDIENC"></a></p>
+
+<h2>JNDI ENC</h2>
+
+<ol>
+<li>set( $jndi = $jira.getIssue("OPENEJB-370").subTasks)
+{swizzlejiraissues:issues=$as.param($jndi)|columns=summary;assignee;priority;status|style=progress}</li>
+</ol>
+
+<p><a name="EJB3RoadMap-Interceptors"></a></p>
+
+<h2>Interceptors</h2>
+
+<ol>
+<li>set( $interceptors = $jira.getIssue("OPENEJB-79").subTasks)</li>
+<li>set( $interceptors = $interceptors.union($jira.getIssue("OPENEJB-78")) )</li>
+<li>set( $interceptors = $interceptors.union($jira.getIssue("OPENEJB-80")) )
+{swizzlejiraissues:issues=$as.param($interceptors)|columns=summary;assignee;priority;status|style=progress}</li>
+</ol>
+
+<p><a name="EJB3RoadMap-Integration"></a></p>
+
+<h2>Integration</h2>
+
+<ol>
+<li>set( $integration = $axis.issues )</li>
+<li>set( $integration = $integration.union($corba.issues) )</li>
+<li>set( $integration = $integration.union($geronimo.issues) )
+{swizzlejiraissues:issues=$as.param($integration)|columns=summary;assignee;priority;status|style=progress}</li>
+</ol>
+
+<p><a name="EJB3RoadMap-CMP2.xviaJPA"></a></p>
+
+<h2>CMP 2.x via JPA</h2>
+
+<ol>
+<li>set( $cmp =
+$rss.fetch("http://issues.apache.org/jira/si/jira.issueviews:issue-xml/OPENEJB-123/OPENEJB-123.xml")
+)</li>
+<li>set( $void = $cmp.fillSubTasks() )</li>
+<li>set( $cmp = $cmp.getIssue("OPENEJB-123") )
+{swizzlejiraissues:issues=$as.param($cmp.subTasks)|columns=summary;assignee;priority;status|style=progress}</li>
+</ol>
+
+<p><a name="EJB3RoadMap-Validation"></a></p>
+
+<h2>Validation</h2>
+
+<ol>
+<li>set( $validation = $jira.getIssue("OPENEJB-453").subTasks)
+{swizzlejiraissues:issues=$as.param($validation)|columns=summary;assignee;priority;status|style=progress}</li>
+</ol>
+
+<p><a name="EJB3RoadMap-ComplianceTests"></a></p>
+
+<h2>Compliance Tests</h2>
+
+<ol>
+<li>set( $itests = $jira.getIssue("OPENEJB-142").subTasks)
+{swizzlejiraissues:issues=$as.param($itests)|columns=summary;assignee;priority;status|style=progress}</li>
+</ol>
+
+<p><a name="EJB3RoadMap-Examples"></a></p>
+
+<h2>Examples</h2>
+
+<ol>
+<li>set( $examples = $jira.getIssue("OPENEJB-342").subTasks)
+{swizzlejiraissues:issues=$as.param($examples)|columns=summary;assignee;priority;status|style=progress}</li>
+</ol>
+
+<p>{swizzlejira}</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/ejb-3.1-roadmap.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/ejb-3.1-roadmap.cwiki (added)
+++ websites/staging/openejb/trunk/content/ejb-3.1-roadmap.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,16 @@
+{swizzlejira}
+#set( $jira = $rss.fetch("https://issues.apache.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?&pid=12310530&component=12313252") )
+#set( $issues = $jira.fillSubTasks() )
+#set( $parents = [ "1133", "1134", "1135", "1136", "1137", "1138", "1139", "1140", "1141", "1142", "1143", "1197"] )
+
+h1. EJB 3.1 Road Map
+
+#foreach( $parent in $parents )
+#set( $issue = $jira.getIssue("OPENEJB-$parent") )
+h2.  $issue.summary
+
+#set( $tasks = $issue.subTasks)
+{swizzlejiraissues:issues=$as.param($tasks)|columns=summary;assignee;priority;status|style=progress}
+#end
+
+{swizzlejira}

Added: websites/staging/openejb/trunk/content/ejb-3.1-roadmap.html
==============================================================================
--- websites/staging/openejb/trunk/content/ejb-3.1-roadmap.html (added)
+++ websites/staging/openejb/trunk/content/ejb-3.1-roadmap.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,111 @@
+<!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>EJB 3.1 RoadMap</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>{swizzlejira}
+1. set( $jira =
+$rss.fetch("https://issues.apache.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?&amp;pid=12310530&amp;component=12313252")
+)
+1. set( $issues = $jira.fillSubTasks() )
+1. set( $parents = <a href="-"1133",-"1134",-"1135",-"1136",-"1137",-"1138",-"1139",-"1140",-"1141",-"1142",-"1143",-"1197".html"> "1133", "1134", "1135", "1136", "1137", "1138", "1139", "1140", "1141", "1142", "1143", "1197"</a>
+ )</p>
+
+<p><a name="EJB3.1RoadMap-EJB3.1RoadMap"></a></p>
+
+<h1>EJB 3.1 Road Map</h1>
+
+<ol>
+<li>foreach( $parent in $parents )</li>
+<li><p>set( $issue = $jira.getIssue("OPENEJB-$parent") )
+<a name="EJB3.1RoadMap-$issue.summary"></a></p>
+
+<h2>$issue.summary</h2></li>
+<li><p>set( $tasks = $issue.subTasks)
+{swizzlejiraissues:issues=$as.param($tasks)|columns=summary;assignee;priority;status|style=progress}</p></li>
+<li>end</li>
+</ol>
+
+<p>{swizzlejira}</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>