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

Added: websites/staging/openejb/trunk/content/telnet-console.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/telnet-console.cwiki (added)
+++ websites/staging/openejb/trunk/content/telnet-console.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,148 @@
+{note} Availability: Since OpenEJB 0.9{note}
+
+h1. Basic Usage
+
+To use OpenEJB's Telnet Console, simply boot your server normally.
+
+{quote}
+$ ./bin/openejb start
+{quote}
+
+{noformat}
+OPENEJB_HOME=/Users/dblevins/Desktop/openejb-1.0
+OpenEJB 1.0    build: 20060226-1701
+http://www.openejb.org
+resources 1
+OpenEJB ready.
+[init] OpenEJB Remote Server
+  ** Starting Services **
+  NAME                 IP              PORT  
+  webadmin             0.0.0.0         4203  
+  httpejbd             0.0.0.0         4204  
+  telnet               0.0.0.0         4202  
+  ejbd                 0.0.0.0         4201  
+  admin                0.0.0.0         4200  
+-------
+Ready!
+{noformat}
+
+
+Then in another shell telnet in 
+
+{quote}
+$ telnet localhost 4202
+{quote}
+{noformat}
+Trying ::1...
+Connected to localhost.
+Escape character is '^]'.
+OpenEJB Remote Server Console
+type 'help' for a list of commands
+[openejb]$ help 
+ stop
+ exit
+ system
+ version
+ lookup
+ help
+[openejb]$ system
+Containers:
+ Default BMP Container
+ Default CMP Container
+ Default Stateful Container
+ Default Stateless Container
+
+Deployments:
+ client/tests/stateful/EncBean
+ client/tests/entity/cmp/RMI-over-IIOP/EJBHome
+ client/tests/stateful/BasicStatefulHome
+ ClientTools/ViewClass
+ Webadmin/Configuration
+ EJBGenerator/CreateEJB
+ ClientTools/InvokeObject
+ Webadmin/Properties
+ client/tests/stateful/RMI-over-IIOP/EJBHome
+ Webadmin/Home
+ client/tests/entity/bmp/allowed_operations/EntityHome
+ client/tests/entity/cmp/EncBean
+ httpd/DefaultBean
+ client/tests/stateful/BeanManagedBasicStatefulHome
+ client/tools/DatabaseHome
+ client/tests/entity/bmp/EncBean
+ config/webadmin/ConfigurationData
+ deploy/webadmin/Deployer
+ ClientTools/ViewJndi
+ Webadmin/DeploymentList
+ client/tests/stateless/BeanManagedBasicStatelessHome
+ Webadmin/CMPMapping
+ client/tests/stateless/EncBean
+ client/tests/stateful/BeanManagedTransactionTests/EJBHome
+ client/tests/entity/bmp/RMI-over-IIOP/EJBHome
+ Webadmin/ListLogs
+ client/tests/stateless/BeanManagedTransactionTests/EJBHome
+ ClientTools/ViewEjb
+ client/tests/entity/bmp/BasicBmpHome
+ mapping/webadmin/CMPMappingData
+ client/tests/stateless/BasicStatelessHome
+ client/tests/entity/cmp/BasicCmpHome
+ Webadmin/Deployment
+ httpd/session
+ client/tests/entity/cmp/allowed_operations/EntityHome
+ client/tests/stateless/RMI-over-IIOP/EJBHome
+[openejb]$ exit
+Connection closed by foreign host.
+{noformat}
+
+h1.  Configuring the Telnet Service
+
+The configuration of all server services (network facing services) is done in xinet.d style config files.  The telnet shell is controlled via the $OPENEJB_HOME/conf/telnet.properties file.  This file is created for you automatically after the first time OpenEJB boots.
+
+{quote}
+$ cat conf/telnet.properties 
+{quote}
+{noformat}
+    server      = org.openejb.server.telnet.TelnetServer
+    bind        = 127.0.0.1
+    port        = 4202
+    disabled    = false
+    threads     = 5
+#   only_from   = 192.168.1.123
+{noformat}
+
+You can change the IP, port, and even the number of threads allowed to concurrently access the Telnet service via this file.
+
+h1.  Disabling the Telnet Service
+
+Simply edit the config file and set 'disabled' to true
+
+{noformat}
+    disabled    = true
+{noformat}
+
+Then restart OpenEJB.
+
+h1.  Restricting Access
+
+It is unlikely you want just anyone to be able to login and execute commands.  While you can't restrict access on a user basis, yet, you can restrict access to specific hosts.  Host based access control (HBA) is a built-in part of any Server Service in OpenEJB and the Telnet Service is no different.   This is done with the 'only_from' property, which like the rest of the file is a direct copy of the xinet.d syntax for HBA.  
+
+For an example to restrict access to the localhost, you could configure the Telnet Service like this:
+
+{noformat}
+    server      = org.openejb.server.telnet.TelnetServer
+    bind        = 127.0.0.1
+    port        = 4202
+    disabled    = false
+    threads     = 5
+    only_from   = localhost
+{noformat}
+
+If you wanted to restrict access to localhost *and* say the hosts 192.168.1.207 and 192.168.1.16, you can simply add them to the list.
+
+{noformat}
+    server      = org.openejb.server.telnet.TelnetServer
+    bind        = 127.0.0.1
+    port        = 4202
+    disabled    = false
+    threads     = 5
+    only_from   = localhost, 192.168.1.207, 192.168.1.16
+{noformat}

Added: websites/staging/openejb/trunk/content/telnet-console.html
==============================================================================
--- websites/staging/openejb/trunk/content/telnet-console.html (added)
+++ websites/staging/openejb/trunk/content/telnet-console.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,258 @@
+<!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>Telnet Console</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} Availability: Since OpenEJB 0.9{note}</p>
+
+<p><a name="TelnetConsole-BasicUsage"></a></p>
+
+<h1>Basic Usage</h1>
+
+<p>To use OpenEJB's Telnet Console, simply boot your server normally.</p>
+
+<p>{quote}
+$ ./bin/openejb start
+{quote}</p>
+
+<pre><code>OPENEJB_HOME=/Users/dblevins/Desktop/openejb-1.0
+OpenEJB 1.0    build: 20060226-1701
+http://www.openejb.org
+resources 1
+OpenEJB ready.
+[init]
+</code></pre>
+
+<p>OpenEJB Remote Server
+      <em>* Starting Services *</em>
+      NAME             IP          PORT <br />
+      webadmin         0.0.0.0         4203 <br />
+      httpejbd         0.0.0.0         4204 <br />
+      telnet           0.0.0.0         4202 <br />
+      ejbd             0.0.0.0         4201 <br />
+      admin            0.0.0.0         4200 <br />
+    -------
+    Ready!</p>
+
+<p>Then in another shell telnet in </p>
+
+<p>{quote}
+$ telnet localhost 4202
+{quote}</p>
+
+<pre><code>Trying ::1...
+Connected to localhost.
+Escape character is '^]
+</code></pre>
+
+<p>'.
+    OpenEJB Remote Server Console
+    type 'help' for a list of commands
+    [openejb]
+$ help 
+     stop
+     exit
+     system
+     version
+     lookup
+     help
+    [openejb]
+$ system
+    Containers:
+     Default BMP Container
+     Default CMP Container
+     Default Stateful Container
+     Default Stateless Container</p>
+
+<pre><code>Deployments:
+ client/tests/stateful/EncBean
+ client/tests/entity/cmp/RMI-over-IIOP/EJBHome
+ client/tests/stateful/BasicStatefulHome
+ ClientTools/ViewClass
+ Webadmin/Configuration
+ EJBGenerator/CreateEJB
+ ClientTools/InvokeObject
+ Webadmin/Properties
+ client/tests/stateful/RMI-over-IIOP/EJBHome
+ Webadmin/Home
+ client/tests/entity/bmp/allowed_operations/EntityHome
+ client/tests/entity/cmp/EncBean
+ httpd/DefaultBean
+ client/tests/stateful/BeanManagedBasicStatefulHome
+ client/tools/DatabaseHome
+ client/tests/entity/bmp/EncBean
+ config/webadmin/ConfigurationData
+ deploy/webadmin/Deployer
+ ClientTools/ViewJndi
+ Webadmin/DeploymentList
+ client/tests/stateless/BeanManagedBasicStatelessHome
+ Webadmin/CMPMapping
+ client/tests/stateless/EncBean
+ client/tests/stateful/BeanManagedTransactionTests/EJBHome
+ client/tests/entity/bmp/RMI-over-IIOP/EJBHome
+ Webadmin/ListLogs
+ client/tests/stateless/BeanManagedTransactionTests/EJBHome
+ ClientTools/ViewEjb
+ client/tests/entity/bmp/BasicBmpHome
+ mapping/webadmin/CMPMappingData
+ client/tests/stateless/BasicStatelessHome
+ client/tests/entity/cmp/BasicCmpHome
+ Webadmin/Deployment
+ httpd/session
+ client/tests/entity/cmp/allowed_operations/EntityHome
+ client/tests/stateless/RMI-over-IIOP/EJBHome
+[openejb]
+</code></pre>
+
+<p>$ exit
+    Connection closed by foreign host.</p>
+
+<p><a name="TelnetConsole-ConfiguringtheTelnetService"></a></p>
+
+<h1>Configuring the Telnet Service</h1>
+
+<p>The configuration of all server services (network facing services) is done
+in xinet.d style config files.  The telnet shell is controlled via the
+$OPENEJB_HOME/conf/telnet.properties file.  This file is created for you
+automatically after the first time OpenEJB boots.</p>
+
+<p>{quote}
+$ cat conf/telnet.properties 
+{quote}</p>
+
+<pre><code>    server  = org.openejb.server.telnet.TelnetServer
+    bind    = 127.0.0.1
+    port    = 4202
+    disabled    = false
+    threads = 5
+#   only_from   = 192.168.1.123
+</code></pre>
+
+<p>You can change the IP, port, and even the number of threads allowed to
+concurrently access the Telnet service via this file.</p>
+
+<p><a name="TelnetConsole-DisablingtheTelnetService"></a></p>
+
+<h1>Disabling the Telnet Service</h1>
+
+<p>Simply edit the config file and set 'disabled' to true</p>
+
+<pre><code>    disabled    = true
+</code></pre>
+
+<p>Then restart OpenEJB.</p>
+
+<p><a name="TelnetConsole-RestrictingAccess"></a></p>
+
+<h1>Restricting Access</h1>
+
+<p>It is unlikely you want just anyone to be able to login and execute
+commands.  While you can't restrict access on a user basis, yet, you can
+restrict access to specific hosts.  Host based access control (HBA) is a
+built-in part of any Server Service in OpenEJB and the Telnet Service is no
+different.   This is done with the 'only_from' property, which like the
+rest of the file is a direct copy of the xinet.d syntax for HBA.  </p>
+
+<p>For an example to restrict access to the localhost, you could configure the
+Telnet Service like this:</p>
+
+<pre><code>    server  = org.openejb.server.telnet.TelnetServer
+    bind    = 127.0.0.1
+    port    = 4202
+    disabled    = false
+    threads = 5
+    only_from   = localhost
+</code></pre>
+
+<p>If you wanted to restrict access to localhost <em>and</em> say the hosts
+192.168.1.207 and 192.168.1.16, you can simply add them to the list.</p>
+
+<pre><code>    server  = org.openejb.server.telnet.TelnetServer
+    bind    = 127.0.0.1
+    port    = 4202
+    disabled    = false
+    threads = 5
+    only_from   = localhost, 192.168.1.207, 192.168.1.16
+</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/the-team.cwiki
==============================================================================
    (empty)

Added: websites/staging/openejb/trunk/content/the-team.html
==============================================================================
--- websites/staging/openejb/trunk/content/the-team.html (added)
+++ websites/staging/openejb/trunk/content/the-team.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>The Team</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/thread-dumps.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/thread-dumps.cwiki (added)
+++ websites/staging/openejb/trunk/content/thread-dumps.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,30 @@
+h1. Java 5 tools
+
+This should work on any Java 5 or newer platform.
+
+{noformat}
+$ jps
+3392 Jps
+3387 JConsole
+{noformat}
+
+{noformat}
+$ jstack 3387
+Attaching to process ID 3387, please wait...
+Debugger attached successfully.
+Client compiler detected.
+JVM version is 1.5.0_16-133
+Thread t@59139: (state = BLOCKED)
+- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
+- javax.swing.TimerQueue.run() @bci=14, line=236 (Interpreted frame)
+- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
+{noformat}
+
+
+h1. OS signals
+
+In the case of an OS signal the thread dump is printed to the console window that started the java process.  If you use javaw to start the process, the dump is lost.
+
+On Windows, typing *ctrl-break* in the console window that started the Java process.
+On Unix, the command *kill \-QUIT <pid>* or typing *ctrl-&#92;* in the console window that started the Java process.
+

Added: websites/staging/openejb/trunk/content/thread-dumps.html
==============================================================================
--- websites/staging/openejb/trunk/content/thread-dumps.html (added)
+++ websites/staging/openejb/trunk/content/thread-dumps.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,122 @@
+<!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>Thread Dumps</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="ThreadDumps-Java5tools"></a></p>
+
+<h1>Java 5 tools</h1>
+
+<p>This should work on any Java 5 or newer platform.</p>
+
+<pre><code>$ jps
+3392 Jps
+3387 JConsole
+
+
+
+$ jstack 3387
+Attaching to process ID 3387, please wait...
+Debugger attached successfully.
+Client compiler detected.
+JVM version is 1.5.0_16-133
+Thread t@59139: (state = BLOCKED)
+- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
+- javax.swing.TimerQueue.run() @bci=14, line=236 (Interpreted frame)
+- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
+</code></pre>
+
+<p><a name="ThreadDumps-OSsignals"></a></p>
+
+<h1>OS signals</h1>
+
+<p>In the case of an OS signal the thread dump is printed to the console
+window that started the java process.  If you use javaw to start the
+process, the dump is lost.</p>
+
+<p>On Windows, typing <em>ctrl-break</em> in the console window that started the Java
+process.
+On Unix, the command <em>kill -QUIT <pid></em> or typing <em>ctrl-&#92;</em> in the
+console window that started the Java process.</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/time-saved.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/time-saved.cwiki (added)
+++ websites/staging/openejb/trunk/content/time-saved.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,241 @@
+Ever wonder exactly how much time you might be saving being able to quickly compile and test code with OpenEJB?  Well, find out!
+
+Deploy times in Java EE in general are partially based on the platform and partially on the size of the application itself.  With that in mind, we've put together this little calculator so you can see what OpenEJB is doing for you!
+
+h1. Calculator
+{html}
+<script type="text/javascript" src="http://prototypejs.org/assets/2010/4/1/prototype.js"></script>
+<script>
+  
+  function calculate() {
+    var developers = $("devs").getValue();
+    var cycles = $("cycles").getValue();
+    var weeks = $("weeks").getValue();
+
+    var individual_deployTime_openejb = $("time_openejb").getValue();
+    var individual_deployTime_vendor = $("time_vendor").getValue();
+    var individual_deployTime_savings = individual_deployTime_vendor - individual_deployTime_openejb;
+
+    var individual_deployTimePerHour_openejb = cycles * individual_deployTime_openejb / 8;
+    var individual_deployTimePerHour_vendor =  cycles * individual_deployTime_vendor / 8;
+    var individual_deployTimePerHour_savings = individual_deployTimePerHour_vendor - individual_deployTimePerHour_openejb;
+
+    var individual_deployTimePerWeek_openejb = individual_deployTimePerHour_openejb * 40;
+    var individual_deployTimePerWeek_vendor = individual_deployTimePerHour_vendor * 40;
+    var individual_deployTimePerWeek_savings = individual_deployTimePerWeek_vendor - individual_deployTimePerWeek_openejb;
+
+    var individual_deployTimePerMonth_openejb = individual_deployTimePerWeek_openejb * 4.33;
+    var individual_deployTimePerMonth_vendor = individual_deployTimePerWeek_vendor * 4.33;
+    var individual_deployTimePerMonth_savings = individual_deployTimePerMonth_vendor - individual_deployTimePerMonth_openejb;
+
+    var team_deployTime_openejb = developers * individual_deployTime_openejb;
+    var team_deployTime_vendor = developers * individual_deployTime_vendor;
+    var team_deployTime_savings = developers * individual_deployTime_savings;
+
+    var team_deployTimePerHour_openejb = developers * individual_deployTimePerHour_openejb;
+    var team_deployTimePerHour_vendor = developers * individual_deployTimePerHour_vendor;
+    var team_deployTimePerHour_savings = developers * individual_deployTimePerHour_savings;
+
+    var team_deployTimePerWeek_openejb = developers * individual_deployTimePerWeek_openejb;
+    var team_deployTimePerWeek_vendor = developers * individual_deployTimePerWeek_vendor;
+    var team_deployTimePerWeek_savings = developers * individual_deployTimePerWeek_savings;
+
+    var team_deployTimePerMonth_openejb = developers * individual_deployTimePerMonth_openejb;
+    var team_deployTimePerMonth_vendor = developers * individual_deployTimePerMonth_vendor;
+    var team_deployTimePerMonth_savings = developers * individual_deployTimePerMonth_savings;
+
+    var total_savings = team_deployTimePerWeek_savings * weeks;
+    
+    $("individual.deployTime.openejb").innerHTML = format(individual_deployTime_openejb);
+    $("individual.deployTime.vendor").innerHTML = format(individual_deployTime_vendor);
+    $("individual.deployTime.savings").innerHTML = format(individual_deployTime_savings);
+
+    $("individual.deployTimePerHour.openejb").innerHTML = format(individual_deployTimePerHour_openejb);
+    $("individual.deployTimePerHour.vendor").innerHTML = format(individual_deployTimePerHour_vendor);
+    $("individual.deployTimePerHour.savings").innerHTML = format(individual_deployTimePerHour_savings);
+
+    $("individual.deployTimePerWeek.openejb").innerHTML = format(individual_deployTimePerWeek_openejb);
+    $("individual.deployTimePerWeek.vendor").innerHTML = format(individual_deployTimePerWeek_vendor);
+    $("individual.deployTimePerWeek.savings").innerHTML = format(individual_deployTimePerWeek_savings);
+
+    $("individual.deployTimePerMonth.openejb").innerHTML = format(individual_deployTimePerMonth_openejb);
+    $("individual.deployTimePerMonth.vendor").innerHTML = format(individual_deployTimePerMonth_vendor);
+    $("individual.deployTimePerMonth.savings").innerHTML = format(individual_deployTimePerMonth_savings);
+
+    $("team.deployTime.openejb").innerHTML = format(team_deployTime_openejb);
+    $("team.deployTime.vendor").innerHTML = format(team_deployTime_vendor);
+    $("team.deployTime.savings").innerHTML = format(team_deployTime_savings);
+    $("team.deployTimePerHour.openejb").innerHTML = format(team_deployTimePerHour_openejb);
+    $("team.deployTimePerHour.vendor").innerHTML = format(team_deployTimePerHour_vendor);
+    $("team.deployTimePerHour.savings").innerHTML = format(team_deployTimePerHour_savings);
+    $("team.deployTimePerWeek.openejb").innerHTML = format(team_deployTimePerWeek_openejb);
+    $("team.deployTimePerWeek.vendor").innerHTML = format(team_deployTimePerWeek_vendor);
+    $("team.deployTimePerWeek.savings").innerHTML = format(team_deployTimePerWeek_savings);
+    $("team.deployTimePerMonth.openejb").innerHTML = format(team_deployTimePerMonth_openejb);
+    $("team.deployTimePerMonth.vendor").innerHTML = format(team_deployTimePerMonth_vendor);
+    $("team.deployTimePerMonth.savings").innerHTML = format(team_deployTimePerMonth_savings);
+
+    $("totalSavings").innerHTML = longFormat(total_savings);
+
+  }
+  
+  function format(secs) {
+    var mins = Math.floor(secs / 60)
+    secs = secs % 60;
+    secs -= secs % 1;
+
+    var hrs = Math.floor(mins / 60)
+    mins = mins % 60
+
+    if (secs < 10) secs = "0" + secs;
+    if (mins < 10) mins = "0" + mins;
+    if (hrs < 10) hrs = "0" + hrs;
+
+    return hrs + ":" + mins + ":" + secs + "";
+  }
+
+  function longFormat(secs) {
+    var mins = Math.floor(secs / 60)
+    secs = secs % 60;
+    secs -= secs % 1;
+
+    var hrs = Math.floor(mins / 60)
+    mins = mins % 60
+
+    // eight hours per work day
+    var days = Math.floor(hrs / 8)
+    hrs = hrs % 8
+
+    // five days per work week
+    var weeks = Math.floor(days / 5)
+    days = days % 5
+
+    var str = "";
+    if (weeks > 0) str = weeks + " weeks, "
+    if (str.length > 0 || days > 0) str += days + " days, "
+    if (str.length > 0 || hrs > 0) str += hrs + " hours, "
+    if (str.length > 0 || mins > 0) str += mins + " minutes, "
+    if (secs > 0) str += secs + " seconds"
+
+    str = str.replace(/, $/, "");
+    str = str.replace(/^ */, "");
+
+    return str;
+  }
+</script>
+
+<table>
+  <col width=370>
+    <!--<col width=200>-->
+  <tr>
+    <td><strong>How many developers?</strong></td>
+    <td><input id="devs" type="text" value="0" size="5"/></td>
+  </tr>
+  <tr>
+    <td><strong>How many weeks?</strong>
+    </td>
+    <td><input id="weeks" type="text" value="0" size="5"/></td>
+  </tr>
+  <tr>
+    <td><strong>How many times do you compile/run per day?</strong></td>
+    <td><input id="cycles" type="text" value="0" size="5"/></td>
+  </tr>
+  <tr>
+    <td><strong>Time to start/deploy your app in OpenEJB?</strong></td>
+    <td><input id="time_openejb" value="0" type="text" size="5"/> <i>seconds</i></td>
+  </tr>
+  <tr>
+    <td><strong>Time to start/deploy your app in your other platform?</strong></td>
+    <td><input id="time_vendor" value="0" type="text" size="5"/> <i>seconds</i></td>
+  </tr>
+  <tr>
+    <td colspan="2" align="center">&nbsp;</td>
+  </tr>
+  <tr>
+    <td colspan="2" align="center"><input type="button" id="calculate" value="Calculate" onclick="calculate();"/></td>
+  </tr>
+</table>
+
+
+<h3>Individual Stats</h3>
+<table cellpadding="1" border="1" style='border-collapse:collapse'>
+  <col width=198>
+  <col width=90>
+  <col width=90>
+  <col width=90>
+  <tr>
+    <td></td>
+    <td align="center">OpenEJB</td>
+    <td align="center">Vendor</td>
+    <td align="center"><b>Savings</b></td>
+  </tr>
+  <tr>
+    <td>deployTime</td>
+    <td align="center" id="individual.deployTime.openejb"></td>
+    <td align="center" id="individual.deployTime.vendor"></td>
+    <td align="center" id="individual.deployTime.savings"></td>
+  </tr>
+  <tr>
+    <td>deployTimePerHour</td>
+    <td align="center" id="individual.deployTimePerHour.openejb"></td>
+    <td align="center" id="individual.deployTimePerHour.vendor"></td>
+    <td align="center" id="individual.deployTimePerHour.savings"></td>
+  </tr>
+  <tr>
+    <td>deployTimePerWeek</td>
+    <td align="center" id="individual.deployTimePerWeek.openejb"></td>
+    <td align="center" id="individual.deployTimePerWeek.vendor"></td>
+    <td align="center" id="individual.deployTimePerWeek.savings"></td>
+  </tr>
+  <tr>
+    <td>deployTimePerMonth</td>
+    <td align="center" id="individual.deployTimePerMonth.openejb"></td>
+    <td align="center" id="individual.deployTimePerMonth.vendor"></td>
+    <td align="center" id="individual.deployTimePerMonth.savings"></td>
+  </tr>
+</table>
+<p><i>Time in HH:MM:SS format</i></p>
+<h3>Team Stats</h3>
+<table border=1 cellpadding=2 cellspacing=2 style='border-collapse:
+ collapse;table-layout:fixed'>
+  <col width=198>
+  <col width=90>
+  <col width=90>
+  <col width=90>
+  <tr>
+    <td></td>
+    <td align="center">OpenEJB</td>
+    <td align="center">Vendor</td>
+    <td align="center"><b>Savings</b></td>
+  </tr>
+
+  <tr>
+    <td>deployTime</td>
+    <td align="center" id="team.deployTime.openejb"></td>
+    <td align="center" id="team.deployTime.vendor"></td>
+    <td align="center" id="team.deployTime.savings"></td>
+  </tr>
+  <tr>
+    <td>deployTimePerHour</td>
+    <td align="center" id="team.deployTimePerHour.openejb"></td>
+    <td align="center" id="team.deployTimePerHour.vendor"></td>
+    <td align="center" id="team.deployTimePerHour.savings"></td>
+  </tr>
+  <tr>
+    <td>deployTimePerWeek</td>
+    <td align="center" id="team.deployTimePerWeek.openejb"></td>
+    <td align="center" id="team.deployTimePerWeek.vendor"></td>
+    <td align="center" id="team.deployTimePerWeek.savings"></td>
+  </tr>
+  <tr>
+    <td>deployTimePerMonth</td>
+    <td align="center" id="team.deployTimePerMonth.openejb"></td>
+    <td align="center" id="team.deployTimePerMonth.vendor"></td>
+    <td align="center" id="team.deployTimePerMonth.savings"></td>
+  </tr>
+</table>
+
+<h3>Total Savings</h3>
+
+<p><span  id="totalSavings"></span></p>
+{html}
\ No newline at end of file

Added: websites/staging/openejb/trunk/content/time-saved.html
==============================================================================
--- websites/staging/openejb/trunk/content/time-saved.html (added)
+++ websites/staging/openejb/trunk/content/time-saved.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,391 @@
+<!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>Time Saved</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>Ever wonder exactly how much time you might be saving being able to quickly
+compile and test code with OpenEJB?  Well, find out!</p>
+
+<p>Deploy times in Java EE in general are partially based on the platform and
+partially on the size of the application itself.  With that in mind, we've
+put together this little calculator so you can see what OpenEJB is doing
+for you!</p>
+
+<p><a name="TimeSaved-Calculator"></a></p>
+
+<h1>Calculator</h1>
+
+<p>{html}</p>
+
+<script type="text/javascript"
+src="http://prototypejs.org/assets/2010/4/1/prototype.js"></script>
+
+<script>
+
+  function calculate() {
+    var developers = $("devs").getValue();
+    var cycles = $("cycles").getValue();
+    var weeks = $("weeks").getValue();
+
+    var individual_deployTime_openejb = $("time_openejb").getValue();
+    var individual_deployTime_vendor = $("time_vendor").getValue();
+    var individual_deployTime_savings = individual_deployTime_vendor -
+individual_deployTime_openejb;
+
+    var individual_deployTimePerHour_openejb = cycles *
+individual_deployTime_openejb / 8;
+    var individual_deployTimePerHour_vendor =  cycles *
+individual_deployTime_vendor / 8;
+    var individual_deployTimePerHour_savings =
+individual_deployTimePerHour_vendor - individual_deployTimePerHour_openejb;
+
+    var individual_deployTimePerWeek_openejb =
+individual_deployTimePerHour_openejb * 40;
+    var individual_deployTimePerWeek_vendor =
+individual_deployTimePerHour_vendor * 40;
+    var individual_deployTimePerWeek_savings =
+individual_deployTimePerWeek_vendor - individual_deployTimePerWeek_openejb;
+
+    var individual_deployTimePerMonth_openejb =
+individual_deployTimePerWeek_openejb * 4.33;
+    var individual_deployTimePerMonth_vendor =
+individual_deployTimePerWeek_vendor * 4.33;
+    var individual_deployTimePerMonth_savings =
+individual_deployTimePerMonth_vendor -
+individual_deployTimePerMonth_openejb;
+
+    var team_deployTime_openejb = developers *
+individual_deployTime_openejb;
+    var team_deployTime_vendor = developers * individual_deployTime_vendor;
+    var team_deployTime_savings = developers *
+individual_deployTime_savings;
+
+    var team_deployTimePerHour_openejb = developers *
+individual_deployTimePerHour_openejb;
+    var team_deployTimePerHour_vendor = developers *
+individual_deployTimePerHour_vendor;
+    var team_deployTimePerHour_savings = developers *
+individual_deployTimePerHour_savings;
+
+    var team_deployTimePerWeek_openejb = developers *
+individual_deployTimePerWeek_openejb;
+    var team_deployTimePerWeek_vendor = developers *
+individual_deployTimePerWeek_vendor;
+    var team_deployTimePerWeek_savings = developers *
+individual_deployTimePerWeek_savings;
+
+    var team_deployTimePerMonth_openejb = developers *
+individual_deployTimePerMonth_openejb;
+    var team_deployTimePerMonth_vendor = developers *
+individual_deployTimePerMonth_vendor;
+    var team_deployTimePerMonth_savings = developers *
+individual_deployTimePerMonth_savings;
+
+    var total_savings = team_deployTimePerWeek_savings * weeks;
+
+    $("individual.deployTime.openejb").innerHTML =
+format(individual_deployTime_openejb);
+    $("individual.deployTime.vendor").innerHTML =
+format(individual_deployTime_vendor);
+    $("individual.deployTime.savings").innerHTML =
+format(individual_deployTime_savings);
+
+    $("individual.deployTimePerHour.openejb").innerHTML =
+format(individual_deployTimePerHour_openejb);
+    $("individual.deployTimePerHour.vendor").innerHTML =
+format(individual_deployTimePerHour_vendor);
+    $("individual.deployTimePerHour.savings").innerHTML =
+format(individual_deployTimePerHour_savings);
+
+    $("individual.deployTimePerWeek.openejb").innerHTML =
+format(individual_deployTimePerWeek_openejb);
+    $("individual.deployTimePerWeek.vendor").innerHTML =
+format(individual_deployTimePerWeek_vendor);
+    $("individual.deployTimePerWeek.savings").innerHTML =
+format(individual_deployTimePerWeek_savings);
+
+    $("individual.deployTimePerMonth.openejb").innerHTML =
+format(individual_deployTimePerMonth_openejb);
+    $("individual.deployTimePerMonth.vendor").innerHTML =
+format(individual_deployTimePerMonth_vendor);
+    $("individual.deployTimePerMonth.savings").innerHTML =
+format(individual_deployTimePerMonth_savings);
+
+    $("team.deployTime.openejb").innerHTML =
+format(team_deployTime_openejb);
+    $("team.deployTime.vendor").innerHTML = format(team_deployTime_vendor);
+    $("team.deployTime.savings").innerHTML =
+format(team_deployTime_savings);
+    $("team.deployTimePerHour.openejb").innerHTML =
+format(team_deployTimePerHour_openejb);
+    $("team.deployTimePerHour.vendor").innerHTML =
+format(team_deployTimePerHour_vendor);
+    $("team.deployTimePerHour.savings").innerHTML =
+format(team_deployTimePerHour_savings);
+    $("team.deployTimePerWeek.openejb").innerHTML =
+format(team_deployTimePerWeek_openejb);
+    $("team.deployTimePerWeek.vendor").innerHTML =
+format(team_deployTimePerWeek_vendor);
+    $("team.deployTimePerWeek.savings").innerHTML =
+format(team_deployTimePerWeek_savings);
+    $("team.deployTimePerMonth.openejb").innerHTML =
+format(team_deployTimePerMonth_openejb);
+    $("team.deployTimePerMonth.vendor").innerHTML =
+format(team_deployTimePerMonth_vendor);
+    $("team.deployTimePerMonth.savings").innerHTML =
+format(team_deployTimePerMonth_savings);
+
+    $("totalSavings").innerHTML = longFormat(total_savings);
+
+  }
+
+  function format(secs) {
+    var mins = Math.floor(secs / 60)
+    secs = secs % 60;
+    secs -= secs % 1;
+
+    var hrs = Math.floor(mins / 60)
+    mins = mins % 60
+
+    if (secs < 10) secs = "0" + secs;
+    if (mins < 10) mins = "0" + mins;
+    if (hrs < 10) hrs = "0" + hrs;
+
+    return hrs + ":" + mins + ":" + secs + "";
+  }
+
+  function longFormat(secs) {
+    var mins = Math.floor(secs / 60)
+    secs = secs % 60;
+    secs -= secs % 1;
+
+    var hrs = Math.floor(mins / 60)
+    mins = mins % 60
+
+    // eight hours per work day
+    var days = Math.floor(hrs / 8)
+    hrs = hrs % 8
+
+    // five days per work week
+    var weeks = Math.floor(days / 5)
+    days = days % 5
+
+    var str = "";
+    if (weeks > 0) str = weeks + " weeks, "
+    if (str.length > 0 || days > 0) str += days + " days, "
+    if (str.length > 0 || hrs > 0) str += hrs + " hours, "
+    if (str.length > 0 || mins > 0) str += mins + " minutes, "
+    if (secs > 0) str += secs + " seconds"
+
+    str = str.replace(/, $/, "");
+    str = str.replace(/^ */, "");
+
+    return str;
+  }
+</script>
+
+<table>
+  <col width=370>
+    <!--<col width=200>-->
+  <tr>
+    <td><strong>How many developers?</strong></td>
+    <td><input id="devs" type="text" value="0" size="5"/></td>
+  </tr>
+  <tr>
+    <td><strong>How many weeks?</strong>
+    </td>
+    <td><input id="weeks" type="text" value="0" size="5"/></td>
+  </tr>
+  <tr>
+    <td><strong>How many times do you compile/run per day?</strong></td>
+    <td><input id="cycles" type="text" value="0" size="5"/></td>
+  </tr>
+  <tr>
+    <td><strong>Time to start/deploy your app in OpenEJB?</strong></td>
+    <td><input id="time_openejb" value="0" type="text" size="5"/>
+<i>seconds</i></td>
+  </tr>
+  <tr>
+    <td><strong>Time to start/deploy your app in your other
+platform?</strong></td>
+    <td><input id="time_vendor" value="0" type="text" size="5"/>
+<i>seconds</i></td>
+  </tr>
+  <tr>
+    <td colspan="2" align="center">&nbsp;</td>
+  </tr>
+  <tr>
+    <td colspan="2" align="center"><input type="button" id="calculate"
+value="Calculate" onclick="calculate();"/></td>
+  </tr>
+</table>
+
+<h3>Individual Stats</h3>
+
+<table cellpadding="1" border="1" style='border-collapse:collapse'>
+  <col width=198>
+  <col width=90>
+  <col width=90>
+  <col width=90>
+  <tr>
+    <td></td>
+    <td align="center">OpenEJB</td>
+    <td align="center">Vendor</td>
+    <td align="center"><b>Savings</b></td>
+  </tr>
+  <tr>
+    <td>deployTime</td>
+    <td align="center" id="individual.deployTime.openejb"></td>
+    <td align="center" id="individual.deployTime.vendor"></td>
+    <td align="center" id="individual.deployTime.savings"></td>
+  </tr>
+  <tr>
+    <td>deployTimePerHour</td>
+    <td align="center" id="individual.deployTimePerHour.openejb"></td>
+    <td align="center" id="individual.deployTimePerHour.vendor"></td>
+    <td align="center" id="individual.deployTimePerHour.savings"></td>
+  </tr>
+  <tr>
+    <td>deployTimePerWeek</td>
+    <td align="center" id="individual.deployTimePerWeek.openejb"></td>
+    <td align="center" id="individual.deployTimePerWeek.vendor"></td>
+    <td align="center" id="individual.deployTimePerWeek.savings"></td>
+  </tr>
+  <tr>
+    <td>deployTimePerMonth</td>
+    <td align="center" id="individual.deployTimePerMonth.openejb"></td>
+    <td align="center" id="individual.deployTimePerMonth.vendor"></td>
+    <td align="center" id="individual.deployTimePerMonth.savings"></td>
+  </tr>
+</table>
+
+<p><i>Time in HH:MM:SS format</i></p>
+
+<h3>Team Stats</h3>
+
+<p><table border=1 cellpadding=2 cellspacing=2 style='border-collapse:
+ collapse;table-layout:fixed'>
+  <col width=198>
+  <col width=90>
+  <col width=90>
+  <col width=90>
+  <tr>
+    <td></td>
+    <td align="center">OpenEJB</td>
+    <td align="center">Vendor</td>
+    <td align="center"><b>Savings</b></td>
+  </tr></p>
+
+<p><tr>
+    <td>deployTime</td>
+    <td align="center" id="team.deployTime.openejb"></td>
+    <td align="center" id="team.deployTime.vendor"></td>
+    <td align="center" id="team.deployTime.savings"></td>
+  </tr>
+  <tr>
+    <td>deployTimePerHour</td>
+    <td align="center" id="team.deployTimePerHour.openejb"></td>
+    <td align="center" id="team.deployTimePerHour.vendor"></td>
+    <td align="center" id="team.deployTimePerHour.savings"></td>
+  </tr>
+  <tr>
+    <td>deployTimePerWeek</td>
+    <td align="center" id="team.deployTimePerWeek.openejb"></td>
+    <td align="center" id="team.deployTimePerWeek.vendor"></td>
+    <td align="center" id="team.deployTimePerWeek.savings"></td>
+  </tr>
+  <tr>
+    <td>deployTimePerMonth</td>
+    <td align="center" id="team.deployTimePerMonth.openejb"></td>
+    <td align="center" id="team.deployTimePerMonth.vendor"></td>
+    <td align="center" id="team.deployTimePerMonth.savings"></td>
+  </tr>
+</table></p>
+
+<h3>Total Savings</h3>
+
+<p><span  id="totalSavings"></span></p>
+
+<p>{html}</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/tips-and-suggestions.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/tips-and-suggestions.cwiki (added)
+++ websites/staging/openejb/trunk/content/tips-and-suggestions.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,290 @@
+{quote}
+
+{quote}
+
+h2. Useful information for contributors
+
+h3. JIRA usage
+It's good to leverage JIRA, but everything that happens there should be considered invisible for the most part and only reviewed on a random and infrequent basis.
+
+
+A good way to bring jira "discussion" back to the list is to follow up on the list rather than posting more jira comments.  Maybe by having the first followup comment be a link to Nabble's "forum" view of the list.  Optionally, you can Cc jira@apache.org and include "[jira] OPENEJB-XXX" anywhere in your subject line and your email will get added as a jira comment.
+
+
+For those looking to contribute, there are some good habits to put into use.  We use a permission scheme called "Interactive Permissions."  It's description has some good information:
+
+ Interactive Permissions
+
+ This permissions model differs from the Standard Permissions
+ model in that people in the Contributor role must interact with
+ the dev list to get to get issues assigned to them and issues
+ closed. This isn't a trust issue, more that there are a few
+ benefits.
+
+ 1.  Active contributors hitting the list to begin and end work
+     shows other people not yet active how to get involved.
+
+ 2.  Adds more "touch points" between Contributors and
+     Committers. It should be possible to "see" the active
+     contributors even if you are not watching the JIRA or SVN
+     notifications. It's also hoped that the practice of
+     announcing your intentions on the dev list will persist
+     even when the Contributor becomes a Committer.
+
+ 3.  Gives Committers the opportunity to help, mentor or
+     otherwise get the Contributor going in the right direction
+     before a task is started; potentially resulting in fewer
+     rejected patches, less waisted Contributor time, and more
+     collaborative development.
+
+ 4.  Overall brings more communication to the dev list before
+     all work is done and all decisions made giving more
+     potential to collaboration.
+
+
+{+}If you'd like to get added to the openejb-contributors JIRA group, just ping the list with your JIRA id and someone will add you.{+}
+
+h3. Commits
+
+*Contributed by*: David Blevins
++Here is an email from David Blevins explaining the things he keeps in mind during commits.+ *{+}Definitely worth a read{+}{*}+:+
+
+I generally *try never to reformat a file and make changes at the same time* as it makes it impossible for anyone to see what I've changed. Needle in a haystack.  I *try to get the reformatting as its own commit* before or after I change a file.
+
+A lot of times I end up tweaking a bunch of little unrelated things while working on a bigger change. *I tend to like to "clear them out" in separate commits as to isolate the big change in one commit*. Sometimes I'm not so good at that and other times I'm really meticulous about it.
+
+*Include the JIRA number and title (if there is a jira)*.  I try never to say "Fixed FOO-2543" all by itself.  Reviewing the last 10 changes on a file is a super big PITA when all you see is numbers to other systems. *I shoot for more or less "Fixed <issue-number> <issue-title> <how-did-i-fix-it>"* Sometimes the "how did i fix it" part is obvious by the title, other times not.  Sometimes I'm too tired and the wife is impatiently waiting for me to leave the computer :-)
+As far as jiras go, there doesn't have to be a jira for absolutely every commit -- what's the point of that.  I *try to make sure there's a jira for anything we'd definitely want to see in the release notes*.  Sometimes I don't get the jira created till long after the change, towards release time when creating the release notes :-) It's pretty easy to forget stuff that way though :-)
+
+As far as jira titles, I always *try and make them short and succinct* for the future release notes.
+
+h3. SVN + JIRA
+
+
+h4. *Contributed by*: Vamsi
+
+I had trouble figuring out if a revision is related to a JIRA and what all revisions corresponded to a particular JIRA.  So, I always include the JIRA number (if there is an associated JIRA) in the svn comment and once committed, I add the revision number to the JIRA comment.  It may be a minute or two more to do this.  But, it saves a lot of time if you ever have to investigate a regression or if there are multiple revisions for a JIRA you know where to find the revision numbers instead of having to mine the svn logs.
+
+Some files may be missing $Rev$ and $Date$ in the header.  Whenever I modify an existing file, I always check if I have to add these missing $Rev$ $Date$ and add those so that the file will have them from my next commit onwards.
+
+h4. *Contributed by*: David Blevins
+
+{quote}
+If you put "\[jira\] OPENEJB-XXX" anywhere in your subject line and cc jira@apache.org our email gets added as a comment with all '> quoted' text stripped out.
+{quote}
+PS: XXX is the JIRA issue number
+
+h4. Details
+
+The following subject lines did work:
+- Subject: \[jira\] OPENEJB-670
+- Subject: Some other subject prefix (\[jira\] OPENEJB-670)
+- Subject: Re: Some other subject prefix (\[jira\] OPENEJB-670)
+
+The following subject lines did *not* work:
+- Subject: OPENEJB-670
+- Subject: Some other subject prefix (jira: OPENEJB-670)
+- Subject: Some other subject prefix (jira OPENEJB-670)
+- Subject: Some other subject prefix (OPENEJB-670)
+
+It appears that as long as the subject contains "\[jira\] FOO-XXX" the email contents will be added as comments.
+
+It also appears that all quoted text regardless of place in the email is stripped out and the remaining text is added as the comment.
+
+The exact email bodies, white space and all, for the "reply text" comments above are:
+
+<one>
+Reply text at the top.
+
+-- David
+
+On Aug 23, 2007, at 1:02 PM, David Blevins wrote:
+
+Testing adding comments via email with this subject line "Some other subject prefix (\[jira\] OPENEJB-670)"
+
+</one>
+
+<two>
+
+On Aug 23, 2007, at 1:02 PM, David Blevins wrote:
+
+Testing adding comments via email with this subject line "Some other subject prefix (\[jira\] OPENEJB-670)"
+
+Reply text at the bottom.
+
+--
+David
+
+</two>
+
+<three>
+On Aug 23, 2007, at 1:02 PM, David Blevins wrote:
+
+Testing adding comments via email
+
+Some reply text
+
+with this subject line "Some other subject prefix (\[jira\] OPENEJB-670)"
+
+Some more reply text
+
+--
+David
+
+</three>
+
+h3. scp, ssh, and rsync examples for working with files and directories on people.apache.org
+
+*Contributed by*: David Blevins
+
+*copying a file to apache from locahost*
+scp topsecret.tar.gz kmalhi@people.apache.org:
+scp index.html kmalhi@people.apache.org:public_html/
+
+*copying a file from apache to localhost -- reverse of the above*
+scp kmalhi@people.apache.org:topsecret.tar.gz ./
+scp kmalhi@people.apache.org:public_html/index.html ./
+
+*copying directories*
+scp \-r kmalhi@people.apache.org:public_html ./
+scp \-r public_html kmalhi@people.apache.org:
+
+*When the directory exists, better to rsync*
+
+*pull a dir from apache*
+rsync \-v \-e ssh \-lzrptog kmalhi@people.apache.org:public_html ./
+rsync \-v \-e ssh \-lzrptog kmalhi@people.apache.org:/home/kmalhi/public_html ./
+
+*the two above commands do the exact same thing*
+
+*push the same dir to apache*
+rsync \-v \-e ssh \-lzrptog ./public_html kmalhi@people.apache.org:
+rsync \-v \-e ssh \-lzrptog ./public_html kmalhi@people.apache.org:/home/kmalhi/
+
+*the two above commands do the exact same thing*
+
+*sometimes useful to execute commands over ssh (piping works too)*
+ssh people.apache.org ls /home \| tee home-dirs-on-apache.txt
+echo \-e 'Hello, me\n\nHow am I doing today?' \| ssh
+kmalhi@people.apache.org mail \-s 'Greetings' kmalhi@apache.org
+
+*For Putty users*
+*Contributed by:* Mohammad
+I have Putty on my linux machine and it is easier to use, Putty has a Windows version too, I issue this command to upload a file to my home dir on people.apache.org
+{code}
+pscp [[file-name] | [dir]] mnour@people.apache.org:~/
+{code}
+and if you want to access your home page, you should create a dir with the name public_html, and then upload files to it.
+
+h3. A cool subversion tip
+
+*Contributed by*: Jacek Laskowski.
+
+*It'll let you forget about some svn administrative commands you'd otherwise have to type in on the command line.*
+Edit/Add the following configurations to \~/.subversion/config:
+{code}
+[miscellany]
+global-ignores = *.log *.save *.o *.lo *.la #*# .*~ *~ .#* .DS_Store
+build dist target *.ipr *.iml *.iws .project .classpath .settings
+enable-auto-props = yes
+
+[auto-props]
+*.c = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL
+*.cpp = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL
+*.h = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL
+*.dsp = svn:eol-style=CRLF
+*.dsw = svn:eol-style=CRLF
+*.sh = svn:executable;svn:eol-style=native;svn:keywords=Date Revision
+*.cmd = svn:mime-type=text/plain;svn:eol-style=CRLF
+*.bat = svn:mime-type=text/plain;svn:eol-style=CRLF
+Makefile = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL
+*.obj = svn:mime-type=application/octet-stream
+*.bin = svn:mime-type=application/octet-stream
+*.bmp = svn:mime-type=image/bmp
+*.class = svn:mime-type=application/java
+*.doc = svn:mime-type=application/msword
+*.exe = svn:mime-type=application/octet-stream
+*.gif = svn:mime-type=image/gif
+*.gz = svn:mime-type=application/x-gzip
+*.jar = svn:mime-type=application/java-archive
+*.jelly = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+*.jpg = svn:mime-type=image/jpeg
+*.jpeg = svn:mime-type=image/jpeg
+*.pdf = svn:mime-type=application/pdf
+*.png = svn:mime-type=image/png
+*.tgz = svn:mime-type=application/octet-stream
+*.tif = svn:mime-type=image/tiff
+*.tiff = svn:mime-type=image/tiff
+*.zip = svn:mime-type=application/zip
+*.txt = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision
+*.xml = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date Revision
+*.ent = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision
+*.dtd = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision
+*.vsl = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision
+*.xsd = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date Revision
+*.xsl = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date Revision
+*.wsdl = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date Revision
+*.htm = svn:mime-type=text/html;svn:eol-style=native;svn:keywords=Date Revision
+*.html = svn:mime-type=text/html;svn:eol-style=native;svn:keywords=Date Revision
+*.css = svn:mime-type=text/css;svn:eol-style=native;svn:keywords=Date Revision
+*.js = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision
+*.jsp = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision
+*.txt = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision
+*.java = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+*.properties = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+*.sql = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision
+{code}
+
+h3. Maven tips
+
+*Contributed by:* Jacek and David
+*I want to make a small change in a module , for example openejb-core and then want to build a snapshot of openejb-standalone, start the server and test my change. What is the easiest and fastest way of doing it?*
+Run the following from within openejb-core
+{code}
+mvn -Dtest=none install
+{code}
+Now run the following from within openejb-standalone
+{code}
+mvn -Dtest=none clean package
+{code}
+*So what if I wanted to do the above in a single command?*
+It's possible with $\{module\} and $\{assemble\} properties and *create a profile or a plugin*
+
+Another option is and *if you're in bash*, here's what could be done
+{code}
+# camping out in assembly/openejb-standalone/
+$ (cd ../../container/openejb-core && mvn clean install -Dtest=skip) && mvn clean install && ./try.sh
+{code}
+That's one command, parens and all. The first "$" is the prompt,don't type that.  Then just edit ./try.sh to do what you're looking for on the standalone zip.
+
+The parens in bash are great as nothing done in there lasts -- at least no changes to the environment.  So you can 'cd' around all you want and not have to 'cd' back when done.
+
+For example
+{code}
+$ export FOO=hello && (export FOO=byebye) && echo $FOO
+hello
+
+$ cd ~ && echo $PWD && (cd /tmp && echo $PWD) && echo $PWD
+/Users/dblevins
+/tmp
+/Users/dblevins
+{code}
+As well, several commands can be combined with '&&'.  Far better than just separating commands with ';' as if one of the commands fail, the remaining commands will not be executed.
+
+*Suggestion from Dain*
+{quote}
+&nbsp;I suggest that you always do a full build (with tests) before committing.  I do this even if the change is small because I have been burned too many times by trivial changes. At the very least I suggest you run
+{code}
+mvn -Dtest=none clean install
+{code}
+Using \-Dtest=none instead of \-Dmaven.test.skip=true causes maven to compile the test classes so you know that your change doesn't have compile errors.
+If you want to be thorough, run with \-Dassemble.
+{quote}
+
+h3. JAXB Usage
+{note:title=TODO}
+Create a write up from here http://www.nabble.com/jaxb-question-td18023648.html
+{note}
\ No newline at end of file

Added: websites/staging/openejb/trunk/content/tips-and-suggestions.html
==============================================================================
--- websites/staging/openejb/trunk/content/tips-and-suggestions.html (added)
+++ websites/staging/openejb/trunk/content/tips-and-suggestions.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,492 @@
+<!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>Tips and Suggestions</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>{quote}</p>
+
+<p>{quote}</p>
+
+<p><a name="TipsandSuggestions-Usefulinformationforcontributors"></a></p>
+
+<h2>Useful information for contributors</h2>
+
+<p><a name="TipsandSuggestions-JIRAusage"></a></p>
+
+<h3>JIRA usage</h3>
+
+<p>It's good to leverage JIRA, but everything that happens there should be
+considered invisible for the most part and only reviewed on a random and
+infrequent basis.</p>
+
+<p>A good way to bring jira "discussion" back to the list is to follow up on the list rather than posting more jira comments.  Maybe by having the first followup comment be a link to Nabble's "forum" view of the list.  Optionally, you can Cc jira@apache.org and include "<a href="jira.html">jira</a>
+ OPENEJB-XXX" anywhere in your subject line and your email will get added
+as a jira comment.</p>
+
+<p>For those looking to contribute, there are some good habits to put into
+use.  We use a permission scheme called "Interactive Permissions."  It's
+description has some good information:</p>
+
+<p>Interactive Permissions</p>
+
+<p>This permissions model differs from the Standard Permissions
+ model in that people in the Contributor role must interact with
+ the dev list to get to get issues assigned to them and issues
+ closed. This isn't a trust issue, more that there are a few
+ benefits.</p>
+
+<ol>
+<li><p>Active contributors hitting the list to begin and end work
+ shows other people not yet active how to get involved.</p></li>
+<li><p>Adds more "touch points" between Contributors and
+ Committers. It should be possible to "see" the active
+ contributors even if you are not watching the JIRA or SVN
+ notifications. It's also hoped that the practice of
+ announcing your intentions on the dev list will persist
+ even when the Contributor becomes a Committer.</p></li>
+<li><p>Gives Committers the opportunity to help, mentor or
+ otherwise get the Contributor going in the right direction
+ before a task is started; potentially resulting in fewer
+ rejected patches, less waisted Contributor time, and more
+ collaborative development.</p></li>
+<li><p>Overall brings more communication to the dev list before
+ all work is done and all decisions made giving more
+ potential to collaboration.</p></li>
+</ol>
+
+<p>{+}If you'd like to get added to the openejb-contributors JIRA group, just
+ping the list with your JIRA id and someone will add you.{+}</p>
+
+<p><a name="TipsandSuggestions-Commits"></a></p>
+
+<h3>Commits</h3>
+
+<p><em>Contributed by</em>: David Blevins
++Here is an email from David Blevins explaining the things he keeps in mind
+during commits.+ <em>{+}Definitely worth a read{+}{</em>}+:+</p>
+
+<p>I generally <em>try never to reformat a file and make changes at the same
+time</em> as it makes it impossible for anyone to see what I've changed. Needle
+in a haystack.  I <em>try to get the reformatting as its own commit</em> before or
+after I change a file.</p>
+
+<p>A lot of times I end up tweaking a bunch of little unrelated things while
+working on a bigger change. <em>I tend to like to "clear them out" in separate
+commits as to isolate the big change in one commit</em>. Sometimes I'm not so
+good at that and other times I'm really meticulous about it.</p>
+
+<p><em>Include the JIRA number and title (if there is a jira)</em>.  I try never to
+say "Fixed FOO-2543" all by itself.  Reviewing the last 10 changes on a
+file is a super big PITA when all you see is numbers to other systems. <em>I
+shoot for more or less "Fixed <issue-number> <issue-title>
+<how-did-i-fix-it>"</em> Sometimes the "how did i fix it" part is obvious by
+the title, other times not.  Sometimes I'm too tired and the wife is
+impatiently waiting for me to leave the computer :-)
+As far as jiras go, there doesn't have to be a jira for absolutely every
+commit -- what's the point of that.  I <em>try to make sure there's a jira for
+anything we'd definitely want to see in the release notes</em>.  Sometimes I
+don't get the jira created till long after the change, towards release time
+when creating the release notes :-) It's pretty easy to forget stuff that
+way though :-)</p>
+
+<p>As far as jira titles, I always <em>try and make them short and succinct</em> for
+the future release notes.</p>
+
+<p><a name="TipsandSuggestions-SVN+JIRA"></a></p>
+
+<h3>SVN + JIRA</h3>
+
+<p><a name="TipsandSuggestions-*Contributedby*:Vamsi"></a></p>
+
+<h4><em>Contributed by</em>: Vamsi</h4>
+
+<p>I had trouble figuring out if a revision is related to a JIRA and what all
+revisions corresponded to a particular JIRA.  So, I always include the JIRA
+number (if there is an associated JIRA) in the svn comment and once
+committed, I add the revision number to the JIRA comment.  It may be a
+minute or two more to do this.  But, it saves a lot of time if you ever
+have to investigate a regression or if there are multiple revisions for a
+JIRA you know where to find the revision numbers instead of having to mine
+the svn logs.</p>
+
+<p>Some files may be missing $Rev$ and $Date$ in the header.  Whenever I
+modify an existing file, I always check if I have to add these missing
+$Rev$ $Date$ and add those so that the file will have them from my next
+commit onwards.</p>
+
+<p><a name="TipsandSuggestions-*Contributedby*:DavidBlevins"></a></p>
+
+<h4><em>Contributed by</em>: David Blevins</h4>
+
+<p>{quote}
+If you put "[jira](jira.html)
+ OPENEJB-XXX" anywhere in your subject line and cc jira@apache.org our
+email gets added as a comment with all '> quoted' text stripped out.
+{quote}
+PS: XXX is the JIRA issue number</p>
+
+<p><a name="TipsandSuggestions-Details"></a></p>
+
+<h4>Details</h4>
+
+<p>The following subject lines did work:
+- Subject: [jira](jira.html)
+ OPENEJB-670
+- Subject: Some other subject prefix ([jira](jira.html)
+ OPENEJB-670)
+- Subject: Re: Some other subject prefix ([jira](jira.html)
+ OPENEJB-670)</p>
+
+<p>The following subject lines did <em>not</em> work:
+- Subject: OPENEJB-670
+- Subject: Some other subject prefix (jira: OPENEJB-670)
+- Subject: Some other subject prefix (jira OPENEJB-670)
+- Subject: Some other subject prefix (OPENEJB-670)</p>
+
+<p>It appears that as long as the subject contains "[jira](jira.html)
+ FOO-XXX" the email contents will be added as comments.</p>
+
+<p>It also appears that all quoted text regardless of place in the email is
+stripped out and the remaining text is added as the comment.</p>
+
+<p>The exact email bodies, white space and all, for the "reply text" comments
+above are:</p>
+
+<p><one>
+Reply text at the top.</p>
+
+<p>-- David</p>
+
+<p>On Aug 23, 2007, at 1:02 PM, David Blevins wrote:</p>
+
+<p>Testing adding comments via email with this subject line "Some other subject prefix ([jira](jira.html)
+ OPENEJB-670)"</p>
+
+<p></one></p>
+
+<p><two></p>
+
+<p>On Aug 23, 2007, at 1:02 PM, David Blevins wrote:</p>
+
+<p>Testing adding comments via email with this subject line "Some other subject prefix ([jira](jira.html)
+ OPENEJB-670)"</p>
+
+<p>Reply text at the bottom.</p>
+
+<p>--
+David</p>
+
+<p></two></p>
+
+<p><three>
+On Aug 23, 2007, at 1:02 PM, David Blevins wrote:</p>
+
+<p>Testing adding comments via email</p>
+
+<p>Some reply text</p>
+
+<p>with this subject line "Some other subject prefix ([jira](jira.html)
+ OPENEJB-670)"</p>
+
+<p>Some more reply text</p>
+
+<p>--
+David</p>
+
+<p></three></p>
+
+<p>h3. scp, ssh, and rsync examples for working with files and directories on
+people.apache.org</p>
+
+<p><em>Contributed by</em>: David Blevins</p>
+
+<p><em>copying a file to apache from locahost</em>
+scp topsecret.tar.gz kmalhi@people.apache.org:
+scp index.html kmalhi@people.apache.org:public_html/</p>
+
+<p><em>copying a file from apache to localhost -- reverse of the above</em>
+scp kmalhi@people.apache.org:topsecret.tar.gz ./
+scp kmalhi@people.apache.org:public_html/index.html ./</p>
+
+<p><em>copying directories</em>
+scp -r kmalhi@people.apache.org:public_html ./
+scp -r public_html kmalhi@people.apache.org:</p>
+
+<p><em>When the directory exists, better to rsync</em></p>
+
+<p><em>pull a dir from apache</em>
+rsync -v -e ssh -lzrptog kmalhi@people.apache.org:public_html ./
+rsync -v -e ssh -lzrptog
+kmalhi@people.apache.org:/home/kmalhi/public_html ./</p>
+
+<p><em>the two above commands do the exact same thing</em></p>
+
+<p><em>push the same dir to apache</em>
+rsync -v -e ssh -lzrptog ./public_html kmalhi@people.apache.org:
+rsync -v -e ssh -lzrptog ./public_html
+kmalhi@people.apache.org:/home/kmalhi/</p>
+
+<p><em>the two above commands do the exact same thing</em></p>
+
+<p><em>sometimes useful to execute commands over ssh (piping works too)</em>
+ssh people.apache.org ls /home \| tee home-dirs-on-apache.txt
+echo -e 'Hello, me\n\nHow am I doing today?' \| ssh
+kmalhi@people.apache.org mail -s 'Greetings' kmalhi@apache.org</p>
+
+<p><em>For Putty users</em>
+<em>Contributed by:</em> Mohammad
+I have Putty on my linux machine and it is easier to use, Putty has a
+Windows version too, I issue this command to upload a file to my home dir
+on people.apache.org</p>
+
+<pre><code>pscp [[file-name]
+</code></pre>
+
+<p>| [dir]
+] mnour@people.apache.org:~/</p>
+
+<p>and if you want to access your home page, you should create a dir with the
+name public_html, and then upload files to it.</p>
+
+<p><a name="TipsandSuggestions-Acoolsubversiontip"></a></p>
+
+<h3>A cool subversion tip</h3>
+
+<p><em>Contributed by</em>: Jacek Laskowski.</p>
+
+<p><em>It'll let you forget about some svn administrative commands you'd
+otherwise have to type in on the command line.</em>
+Edit/Add the following configurations to \~/.subversion/config:</p>
+
+<pre><code>[miscellany]
+global-ignores = *.log *.save *.o *.lo *.la #*# .*~ *~ .#* .DS_Store
+build dist target *.ipr *.iml *.iws .project .classpath .settings
+enable-auto-props = yes
+
+[auto-props]
+*.c = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL
+*.cpp = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL
+*.h = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL
+*.dsp = svn:eol-style=CRLF
+*.dsw = svn:eol-style=CRLF
+*.sh = svn:executable;svn:eol-style=native;svn:keywords=Date Revision
+*.cmd = svn:mime-type=text/plain;svn:eol-style=CRLF
+*.bat = svn:mime-type=text/plain;svn:eol-style=CRLF
+Makefile = svn:eol-style=native;svn:keywords=Date Author Id Revision
+</code></pre>
+
+<p>HeadURL
+    *.obj = svn:mime-type=application/octet-stream
+    *.bin = svn:mime-type=application/octet-stream
+    *.bmp = svn:mime-type=image/bmp
+    *.class = svn:mime-type=application/java
+    *.doc = svn:mime-type=application/msword
+    *.exe = svn:mime-type=application/octet-stream
+    *.gif = svn:mime-type=image/gif
+    *.gz = svn:mime-type=application/x-gzip
+    *.jar = svn:mime-type=application/java-archive
+    *.jelly = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+    Revision
+    *.jpg = svn:mime-type=image/jpeg
+    *.jpeg = svn:mime-type=image/jpeg
+    *.pdf = svn:mime-type=application/pdf
+    *.png = svn:mime-type=image/png
+    *.tgz = svn:mime-type=application/octet-stream
+    *.tif = svn:mime-type=image/tiff
+    *.tiff = svn:mime-type=image/tiff
+    *.zip = svn:mime-type=application/zip
+    *.txt = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.xml = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.ent = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.dtd = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.vsl = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.xsd = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.xsl = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.wsdl = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.htm = svn:mime-type=text/html;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.html = svn:mime-type=text/html;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.css = svn:mime-type=text/css;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.js = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.jsp = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.txt = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.java = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+    Revision
+    *.properties =
+svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+    Revision
+    *.sql = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision</p>
+
+<p><a name="TipsandSuggestions-Maventips"></a></p>
+
+<h3>Maven tips</h3>
+
+<p><em>Contributed by:</em> Jacek and David
+<em>I want to make a small change in a module , for example openejb-core and
+then want to build a snapshot of openejb-standalone, start the server and
+test my change. What is the easiest and fastest way of doing it?</em>
+Run the following from within openejb-core</p>
+
+<pre><code>mvn -Dtest=none install
+</code></pre>
+
+<p>Now run the following from within openejb-standalone</p>
+
+<pre><code>mvn -Dtest=none clean package
+</code></pre>
+
+<p><em>So what if I wanted to do the above in a single command?</em>
+It's possible with ${module} and ${assemble} properties and <em>create a
+profile or a plugin</em></p>
+
+<p>Another option is and <em>if you're in bash</em>, here's what could be done</p>
+
+<pre><code># camping out in assembly/openejb-standalone/
+$ (cd ../../container/openejb-core &amp;&amp; mvn clean install -Dtest=skip) &amp;&amp; mvn
+</code></pre>
+
+<p>clean install &amp;&amp; ./try.sh</p>
+
+<p>That's one command, parens and all. The first "$" is the prompt,don't type
+that.  Then just edit ./try.sh to do what you're looking for on the
+standalone zip.</p>
+
+<p>The parens in bash are great as nothing done in there lasts -- at least no
+changes to the environment.  So you can 'cd' around all you want and not
+have to 'cd' back when done.</p>
+
+<p>For example</p>
+
+<pre><code>$ export FOO=hello &amp;&amp; (export FOO=byebye) &amp;&amp; echo $FOO
+hello
+
+$ cd ~ &amp;&amp; echo $PWD &amp;&amp; (cd /tmp &amp;&amp; echo $PWD) &amp;&amp; echo $PWD
+/Users/dblevins
+/tmp
+/Users/dblevins
+</code></pre>
+
+<p>As well, several commands can be combined with '&amp;&amp;'.  Far better than just
+separating commands with ';' as if one of the commands fail, the remaining
+commands will not be executed.</p>
+
+<p><em>Suggestion from Dain</em>
+{quote}
+&nbsp;I suggest that you always do a full build (with tests) before
+committing.  I do this even if the change is small because I have been
+burned too many times by trivial changes. At the very least I suggest you
+run</p>
+
+<pre><code>mvn -Dtest=none clean install
+</code></pre>
+
+<p>Using -Dtest=none instead of -Dmaven.test.skip=true causes maven to
+compile the test classes so you know that your change doesn't have compile
+errors.
+If you want to be thorough, run with -Dassemble.
+{quote}</p>
+
+<p><a name="TipsandSuggestions-JAXBUsage"></a></p>
+
+<h3>JAXB Usage</h3>
+
+<p>{note:title=TODO}
+Create a write up from here
+http://www.nabble.com/jaxb-question-td18023648.html
+{note}</p>
+
+        </div> <!-- lucy-main_content_box --> 
+        <div class="clear"></div>
+
+      </div> <!-- lucy-main_content -->
+
+      <div id="lucy-copyright" class="container_16">
+        <p>Copyright &#169; 2010-2011 The Apache Software Foundation, Licensed under the 
+           <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+           <br/>
+          
+        </p>
+      </div> <!-- lucy-copyright -->
+
+    </div> <!-- lucy-rigid_wrapper -->
+
+  </body>
+</html>

Added: websites/staging/openejb/trunk/content/tomcat-object-factory.cwiki
==============================================================================
--- websites/staging/openejb/trunk/content/tomcat-object-factory.cwiki (added)
+++ websites/staging/openejb/trunk/content/tomcat-object-factory.cwiki Sun Jul 10 04:34:53 2011
@@ -0,0 +1,6 @@
+*The TomcatEjbFactory as discussed in the [OnJava article "OpenEJB: EJB for Tomcat"|http://www.onjava.com/pub/a/onjava/2003/02/12/ejb_tomcat.html] is no longer required.*
+
+As of OpenEJB 3.0 references from Servlets to EJBs happen automatically with usage of the [@EJB annotation|OPENEJBx30:Injection of other EJBs Example] in the Servlet, Filter or Listener or with the <ejb-ref> or <ejb-local-ref> declared in the web.xml.
+
+See the [Tomcat Integration|OPENEJBx30:Tomcat] page for the most up-to-date details on using OpenEJB inside Tomcat.
+

Added: websites/staging/openejb/trunk/content/tomcat-object-factory.html
==============================================================================
--- websites/staging/openejb/trunk/content/tomcat-object-factory.html (added)
+++ websites/staging/openejb/trunk/content/tomcat-object-factory.html Sun Jul 10 04:34:53 2011
@@ -0,0 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title>Tomcat Object Factory</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><em>The TomcatEjbFactory as discussed in the <a href="http://www.onjava.com/pub/a/onjava/2003/02/12/ejb_tomcat.html">OnJava article "OpenEJB: EJB for Tomcat"</a>
+ is no longer required.</em></p>
+
+<p>As of OpenEJB 3.0 references from Servlets to EJBs happen automatically
+with usage of the <a href="openejbx30:injection-of-other-ejbs-example.html">@EJB annotation</a>
+ in the Servlet, Filter or Listener or with the <ejb-ref> or
+<ejb-local-ref> declared in the web.xml.</p>
+
+<p>See the <a href="openejbx30:tomcat.html">Tomcat Integration</a>
+ page for the most up-to-date details on using OpenEJB inside Tomcat.</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>