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

svn commit: r1144777 [11/16] - /openejb/site/trunk/content/

Added: openejb/site/trunk/content/openejb-3.1.2.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-3.1.2.cwiki?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-3.1.2.cwiki (added)
+++ openejb/site/trunk/content/openejb-3.1.2.cwiki Sun Jul 10 04:33:54 2011
@@ -0,0 +1,80 @@
+* Release Date: October 14th, 2009
+* Partial EJB 3.1 support
+* EJB 3.0 support
+* EJB 2.1 support
+* EJB 2.0 support
+* EJB 1.1 support
+
+h1. Download
+
+h4. OpenEJB Standalone Server 
+ * [openejb-3.1.2.zip|http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb-3.1.2.zip] ([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2.zip.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2.zip.md5]) 
+ * [openejb-3.1.2.tar.gz|http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb-3.1.2.tar.gz] ([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2.tar.gz.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2.tar.gz.md5]) 
+
+h4.  OpenEJB for Tomcat
+ * [openejb.war|http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb.war] ([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb.war.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb.war.md5]) 
+
+
+h4. EJB 3.1 and other examples (source included) 
+ * [openejb-examples-3.1.2.tar.gz|http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb-examples-3.1.2.tar.gz] ([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb-examples-3.1.2.tar.gz.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb-examples-3.1.2.tar.gz.md5]) 
+ * [openejb-examples-3.1.2.zip|http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb-examples-3.1.2.zip] ([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb-examples-3.1.2.zip.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb-examples-3.1.2.zip.md5]) 
+
+h4. Source Code 
+ * [openejb-3.1.2-src.zip|http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb-3.1.2-src.zip] ([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2-src.zip.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2-src.zip.md5]) 
+ * [openejb-3.1.2-src.tar.gz|http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb-3.1.2-src.tar.gz] ([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2-src.tar.gz.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2-src.tar.gz.md5]) 
+
+h4. Release Notes
+ * [RELEASE-NOTES.txt|http://www.apache.org/dist/openejb/3.1.2/RELEASE-NOTES.txt]
+
+h1.  Tested On
+
+|| || Windows XP (JDK 1.5) || Windows XP (JDK 1.6) || Linux (JDK 1.5) || Linux (JDK 1.6) || Mac OSX (JDK 1.5) || Mac OSX (JDK 1.6) ||
+| Embedded |(/)|(/)|(/)|(/)|(/)|(/)|
+| Standalone |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 6.0.14 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 6.0.13 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 6.0.10 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 6.0.9 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 5.5.26 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 5.5.25 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 5.5.23 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 5.5.20 |(/)|(/)|(/)|(/)|(/)|(/)|
+
+h1. Change Summary
+
+This release is largely focused on bug fixes and small improvements with a couple new features.  Scanning support for JSF 2.0 ManagedBeans allows for a nice OpenEJB/Tomcat/Mojarra stack.  [Database passwords|OPENEJBx30:DataSource Password Encryption] listed in the openejb.xml can now be encrypted using our new 'cipher' command line tool.  Focus areas of improvements/fixes include @LocalClient support, remote client disconnections and connection caching, AltDD support, Stateful bean caching, and additional JNDI name formatting options.
+
+h1. Changelog
+
+*New Features:*
+
+  * [OPENEJB-1076|https://issues.apache.org/jira/browse/OPENEJB-1076] Allow datasource passwords to be ciphered
+  * [OPENEJB-1045|https://issues.apache.org/jira/browse/OPENEJB-1045] Injection support for JSF 2.0 ManagedBeans
+
+*Improvements:*
+
+  * [OPENEJB-1084|https://issues.apache.org/jira/browse/OPENEJB-1084] Discovered @LocalClient classes logged on INFO
+  * [OPENEJB-1083|https://issues.apache.org/jira/browse/OPENEJB-1083] Scanning for ClientModules less aggressive for embedded mode
+  * [OPENEJB-1056|https://issues.apache.org/jira/browse/OPENEJB-1056] All JNDI Name Format variables support .lc, .uc, and .cc extensions to dictate case
+  * [OPENEJB-1080|https://issues.apache.org/jira/browse/OPENEJB-1080] javaee-api-libs.zip as alternative to javaee-api.jar
+
+*Bugs:*
+
+  * [OPENEJB-1062|https://issues.apache.org/jira/browse/OPENEJB-1062] StickyConnectionStrategy incorrectly caches connections
+  * [OPENEJB-1049|https://issues.apache.org/jira/browse/OPENEJB-1049] Stateful session cache management issue
+  * [OPENEJB-965|https://issues.apache.org/jira/browse/OPENEJB-965] http://www.nabble.com/exceptions-handling-with-Webservices-td19668275.html
+  * [OPENEJB-1077|https://issues.apache.org/jira/browse/OPENEJB-1077] LocalInitialContext.logout() should call SecurityService.logout()
+  * [OPENEJB-1066|https://issues.apache.org/jira/browse/OPENEJB-1066] EJB 2.0 deprecated message-selector tag not supported
+  * [OPENEJB-1065|https://issues.apache.org/jira/browse/OPENEJB-1065] EJB 2.0 deprecated acknowledge-mode tag not supported
+  * [OPENEJB-1044|https://issues.apache.org/jira/browse/OPENEJB-1044] Webapp @Resource UserTransaction injection results in NullPointerException
+  * [OPENEJB-1048|https://issues.apache.org/jira/browse/OPENEJB-1048] Missing MESSAGE enum in openejb.xsd
+  * [OPENEJB-1059|https://issues.apache.org/jira/browse/OPENEJB-1059] Altdd support broken for persistence.xml files with no ejb-jar.xml
+  * [OPENEJB-1047|https://issues.apache.org/jira/browse/OPENEJB-1047] Configuring the deployment-Id at server or application level does not work, instead a misleading result is produced 
+  * [OPENEJB-1082|https://issues.apache.org/jira/browse/OPENEJB-1082] @WebService and @WebServiceProvider classes not discovered unless annotated as EJBs
+  * [OPENEJB-1085|https://issues.apache.org/jira/browse/OPENEJB-1085] @LocalClient discovery improved -- openejb.tempclassloader.skip=annotations flag no longer needed
+  * [OPENEJB-1061|https://issues.apache.org/jira/browse/OPENEJB-1061] WS Security tests fail because of WSS4J trying to load default sun cacerts
+  * [OPENEJB-1063|https://issues.apache.org/jira/browse/OPENEJB-1063] Main-Class containing "/" instead of "." fails java.lang.NoClassDefFoundError: IllegalName: 
+  * [OPENEJB-1075|https://issues.apache.org/jira/browse/OPENEJB-1075] Workaround for Sun JDK RemoteException initCause bug
+  * [OPENEJB-1064|https://issues.apache.org/jira/browse/OPENEJB-1064] @LocalClient discovery via Include/Exclude settings
+  * [OPENEJB-1070|https://issues.apache.org/jira/browse/OPENEJB-1070] LocalInitialContextFactory can't be extended
+  * [OPENEJB-1069|https://issues.apache.org/jira/browse/OPENEJB-1069] Duplicate logging of "AltDD" processing

Propchange: openejb/site/trunk/content/openejb-3.1.2.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/openejb-3.1.2.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-3.1.2.mdtext?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-3.1.2.mdtext (added)
+++ openejb/site/trunk/content/openejb-3.1.2.mdtext Sun Jul 10 04:33:54 2011
@@ -0,0 +1,146 @@
+Title: OpenEJB 3.1.2
+* Release Date: October 14th, 2009
+* Partial EJB 3.1 support
+* EJB 3.0 support
+* EJB 2.1 support
+* EJB 2.0 support
+* EJB 1.1 support
+
+<a name="OpenEJB3.1.2-Download"></a>
+# Download
+
+<a name="OpenEJB3.1.2-OpenEJBStandaloneServer"></a>
+#### OpenEJB Standalone Server 
+ * [openejb-3.1.2.zip](http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb-3.1.2.zip)
+ ([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2.zip.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2.zip.md5]
+) 
+ * [openejb-3.1.2.tar.gz](http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb-3.1.2.tar.gz)
+ ([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2.tar.gz.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2.tar.gz.md5]
+) 
+
+<a name="OpenEJB3.1.2-OpenEJBforTomcat"></a>
+####  OpenEJB for Tomcat
+ * [openejb.war](http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb.war)
+ ([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb.war.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb.war.md5]
+) 
+
+
+<a name="OpenEJB3.1.2-EJB3.1andotherexamples(sourceincluded)"></a>
+#### EJB 3.1 and other examples (source included) 
+ * [openejb-examples-3.1.2.tar.gz](http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb-examples-3.1.2.tar.gz)
+
+([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb-examples-3.1.2.tar.gz.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb-examples-3.1.2.tar.gz.md5]
+) 
+ * [openejb-examples-3.1.2.zip](http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb-examples-3.1.2.zip)
+
+([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb-examples-3.1.2.zip.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb-examples-3.1.2.zip.md5]
+) 
+
+<a name="OpenEJB3.1.2-SourceCode"></a>
+#### Source Code 
+ * [openejb-3.1.2-src.zip](http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb-3.1.2-src.zip)
+ ([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2-src.zip.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2-src.zip.md5]
+) 
+ * [openejb-3.1.2-src.tar.gz](http://www.apache.org/dyn/closer.cgi/openejb/3.1.2/openejb-3.1.2-src.tar.gz)
+
+([pgp|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2-src.tar.gz.asc], [md5|http://www.apache.org/dist/openejb/3.1.2/openejb-3.1.2-src.tar.gz.md5]
+) 
+
+<a name="OpenEJB3.1.2-ReleaseNotes"></a>
+#### Release Notes
+ * [RELEASE-NOTES.txt](http://www.apache.org/dist/openejb/3.1.2/RELEASE-NOTES.txt)
+
+<a name="OpenEJB3.1.2-TestedOn"></a>
+#  Tested On
+
+<table>
+<tr><th> </th><th> Windows XP (JDK 1.5) </th><th> Windows XP (JDK 1.6) </th><th> Linux (JDK 1.5) </th><th>
+Linux (JDK 1.6) </th><th> Mac OSX (JDK 1.5) </th><th> Mac OSX (JDK 1.6) </th></tr>
+<tr><td> Embedded </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Standalone </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 6.0.14 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 6.0.13 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 6.0.10 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 6.0.9 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 5.5.26 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 5.5.25 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 5.5.23 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 5.5.20 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+</table>
+
+<a name="OpenEJB3.1.2-ChangeSummary"></a>
+# Change Summary
+
+This release is largely focused on bug fixes and small improvements with a
+couple new features.  Scanning support for JSF 2.0 ManagedBeans allows for
+a nice OpenEJB/Tomcat/Mojarra stack.  [Database passwords](openejbx30:datasource-password-encryption.html)
+ listed in the openejb.xml can now be encrypted using our new 'cipher'
+command line tool.  Focus areas of improvements/fixes include @LocalClient
+support, remote client disconnections and connection caching, AltDD
+support, Stateful bean caching, and additional JNDI name formatting
+options.
+
+<a name="OpenEJB3.1.2-Changelog"></a>
+# Changelog
+
+*New Features:*
+
+  * [OPENEJB-1076](https://issues.apache.org/jira/browse/OPENEJB-1076)
+ Allow datasource passwords to be ciphered
+  * [OPENEJB-1045](https://issues.apache.org/jira/browse/OPENEJB-1045)
+ Injection support for JSF 2.0 ManagedBeans
+
+*Improvements:*
+
+  * [OPENEJB-1084](https://issues.apache.org/jira/browse/OPENEJB-1084)
+ Discovered @LocalClient classes logged on INFO
+  * [OPENEJB-1083](https://issues.apache.org/jira/browse/OPENEJB-1083)
+ Scanning for ClientModules less aggressive for embedded mode
+  * [OPENEJB-1056](https://issues.apache.org/jira/browse/OPENEJB-1056)
+ All JNDI Name Format variables support .lc, .uc, and .cc extensions to
+dictate case
+  * [OPENEJB-1080](https://issues.apache.org/jira/browse/OPENEJB-1080)
+ javaee-api-libs.zip as alternative to javaee-api.jar
+
+*Bugs:*
+
+  * [OPENEJB-1062](https://issues.apache.org/jira/browse/OPENEJB-1062)
+ StickyConnectionStrategy incorrectly caches connections
+  * [OPENEJB-1049](https://issues.apache.org/jira/browse/OPENEJB-1049)
+ Stateful session cache management issue
+  * [OPENEJB-965](https://issues.apache.org/jira/browse/OPENEJB-965)
+ http://www.nabble.com/exceptions-handling-with-Webservices-td19668275.html
+  * [OPENEJB-1077](https://issues.apache.org/jira/browse/OPENEJB-1077)
+ LocalInitialContext.logout() should call SecurityService.logout()
+  * [OPENEJB-1066](https://issues.apache.org/jira/browse/OPENEJB-1066)
+ EJB 2.0 deprecated message-selector tag not supported
+  * [OPENEJB-1065](https://issues.apache.org/jira/browse/OPENEJB-1065)
+ EJB 2.0 deprecated acknowledge-mode tag not supported
+  * [OPENEJB-1044](https://issues.apache.org/jira/browse/OPENEJB-1044)
+ Webapp @Resource UserTransaction injection results in NullPointerException
+  * [OPENEJB-1048](https://issues.apache.org/jira/browse/OPENEJB-1048)
+ Missing MESSAGE enum in openejb.xsd
+  * [OPENEJB-1059](https://issues.apache.org/jira/browse/OPENEJB-1059)
+ Altdd support broken for persistence.xml files with no ejb-jar.xml
+  * [OPENEJB-1047](https://issues.apache.org/jira/browse/OPENEJB-1047)
+ Configuring the deployment-Id at server or application level does not
+work, instead a misleading result is produced 
+  * [OPENEJB-1082](https://issues.apache.org/jira/browse/OPENEJB-1082)
+ @WebService and @WebServiceProvider classes not discovered unless
+annotated as EJBs
+  * [OPENEJB-1085](https://issues.apache.org/jira/browse/OPENEJB-1085)
+ @LocalClient discovery improved --
+openejb.tempclassloader.skip=annotations flag no longer needed
+  * [OPENEJB-1061](https://issues.apache.org/jira/browse/OPENEJB-1061)
+ WS Security tests fail because of WSS4J trying to load default sun cacerts
+  * [OPENEJB-1063](https://issues.apache.org/jira/browse/OPENEJB-1063)
+ Main-Class containing "/" instead of "." fails
+java.lang.NoClassDefFoundError: IllegalName: 
+  * [OPENEJB-1075](https://issues.apache.org/jira/browse/OPENEJB-1075)
+ Workaround for Sun JDK RemoteException initCause bug
+  * [OPENEJB-1064](https://issues.apache.org/jira/browse/OPENEJB-1064)
+ @LocalClient discovery via Include/Exclude settings
+  * [OPENEJB-1070](https://issues.apache.org/jira/browse/OPENEJB-1070)
+ LocalInitialContextFactory can't be extended
+  * [OPENEJB-1069](https://issues.apache.org/jira/browse/OPENEJB-1069)
+ Duplicate logging of "AltDD" processing

Added: openejb/site/trunk/content/openejb-3.1.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-3.1.cwiki?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-3.1.cwiki (added)
+++ openejb/site/trunk/content/openejb-3.1.cwiki Sun Jul 10 04:33:54 2011
@@ -0,0 +1,312 @@
+* Release Date: October 22nd, 2008
+* Partial EJB 3.1 support
+* EJB 3.0 support
+* EJB 2.1 support
+* EJB 2.0 support
+* EJB 1.1 support
+
+h1. Download
+
+h4. OpenEJB Standlone Server 
+ * [openejb-3.1.zip|http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb-3.1.zip] ([pgp|http://www.apache.org/dist/openejb/3.1/openejb-3.1.zip.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb-3.1.zip.md5]) 
+ * [openejb-3.1.tar.gz|http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb-3.1.tar.gz] ([pgp|http://www.apache.org/dist/openejb/3.1/openejb-3.1.tar.gz.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb-3.1.tar.gz.md5]) 
+
+h4.  OpenEJB for Tomcat
+ * [openejb.war|http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb.war] ([pgp|http://www.apache.org/dist/openejb/3.1/openejb.war.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb.war.md5]) 
+
+
+h4. EJB 3.1 and other examples (source included) 
+ * [openejb-examples-3.1.tar.gz|http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb-examples-3.1.tar.gz] ([pgp|http://www.apache.org/dist/openejb/3.1/openejb-examples-3.1.tar.gz.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb-examples-3.1.tar.gz.md5]) 
+ * [openejb-examples-3.1.zip|http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb-examples-3.1.zip] ([pgp|http://www.apache.org/dist/openejb/3.1/openejb-examples-3.1.zip.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb-examples-3.1.zip.md5]) 
+
+h4. Source Code 
+ * [openejb-3.1-src.zip|http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb-3.1-src.zip] ([pgp|http://www.apache.org/dist/openejb/3.1/openejb-3.1-src.zip.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb-3.1-src.zip.md5]) 
+ * [openejb-3.1-src.tar.gz|http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb-3.1-src.tar.gz] ([pgp|http://www.apache.org/dist/openejb/3.1/openejb-3.1-src.tar.gz.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb-3.1-src.tar.gz.md5]) 
+
+h4. Release Notes
+ * [RELEASE-NOTES.txt|http://www.apache.org/dist/openejb/3.1/RELEASE-NOTES.txt]
+
+h1.  Tested On
+
+|| || Windows XP (JDK 1.5) || Windows XP (JDK 1.6) || Linux (JDK 1.5) || Linux (JDK 1.6) || Mac OSX (JDK 1.5) || Mac OSX (JDK 1.6) ||
+| Embedded |(/)|(/)|(/)|(/)|(/)|(/)|
+| Standalone |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 6.0.14 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 6.0.13 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 6.0.10 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 6.0.9 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 5.5.26 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 5.5.25 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 5.5.23 |(/)|(/)|(/)|(/)|(/)|(/)|
+| Tomcat 5.5.20 |(/)|(/)|(/)|(/)|(/)|(/)|
+
+h1. Change Summary
+
+Major new features:
+  - [EJB 3.1 Singleton Support|OpenEJB 3.1#EJB3.1Singletons]
+  - [EJB Constructor Injection|OpenEJB 3.1#ConstructorInjection%28proposedEJB3.1feature%29]
+  - [Spring Integration|OpenEJB 3.1#SpringIntegration]
+  - [Multicast Client-Server Discovery|OpenEJB 3.1#MulticastDiscovery]
+
+Significant Improvements:
+  - EAR-style classpath application discovery groups individual modules as an EAR allowing sharing of persistence units and improved connector and custom MDB deployment.
+  - Detection of EclipseLink, TopLink, and Hibernate as JPA providers to automatically adds the right persistence unit property to for wiring in the OpenEJB TransactionManager.
+  - System Property and InitialContext property overriding now applies to persistence-unit properties and logging levels.
+  - Login/logout now possible in an embedded scenario via InitialContext params and initialContext.close() respectively.
+  - Complete overhaul of all client/server connection management dramatically increases performance.
+  - Several new checks added to Application Validation ruleset, some reworked to give even more details.
+
+h1. EJB 3.1 Features
+
+h2. EJB 3.1 Singletons
+
+Singletons are a new type of Session bean being added to the EJB 3.1 specification.  As the name implies a javax.ejb.Singleton is a session bean with a guarantee that there is at most one instance in the application.
+
+Singletons gives you some important things that are missing in EJB 3.0 and prior versions, such as the ability to have an EJB that is notified when the application starts and notified when the application stops, allowing you to do all sorts of things that previously could only be done with a load-on-startup servlet.  Singletons also give provide a great place to hold data that pertains to the entire application and all users using it, without the need for a static.  Additionally, Singleton beans have multi-threaded capabilities allowing them to be invoked by several threads at one time similar to a Servlet.
+
+See the [Singleton API|OPENEJBx30:Singleton Beans] and [Singleton Example] pages.
+
+h2. Embeddable for Testing and Java SE usage (proposed EJB 3.1 feature)
+
+Over the years, OpenEJB has innovated the art of the embedded/Java SE EJB container usable as a plain library much the way an embedded databases work.  In a simple 1, 2, 3 step of 1) add OpenEJB to your classpath, 2) add a META-INF/ejb-jar.xml containing at minimum "<ejb-jar/>", then 3) use the org.apache.openejb.client.LocalInitialContextFactory when creating your client InitialContext, you've got a Java SE EJB container that can be used in unit tests, your IDE, or anywhere you'd like to drop in EJB functionality.  Configuration can be done through an openejb.xml file or can be encapsulated 100% in the test case through the parameters passed to the InitialContext.  For example, to create a JTA DataSource for JPA usage, you can simply:
+
+{code}
+Properties p = new Properties();
+p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
+p.put("movieDatabase", "new://Resource?type=DataSource");
+p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver");
+p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
+
+Context context = new InitialContext(p);
+{code}
+
+See the examples zip for a dozen embedded testing examples that range from simple @Stateless beans to advanced transaction and security testing.
+
+h2. Collapsed EAR (EJBs in .WARs) (proposed EJB 3.1 feature)
+
+Along the lines of the Tomcat integration where OpenEJB can be plugged into Tomcat, we've expanded the idea to also allow your EJBs to be plugged into your webapp.  We call this innovative feature [Collapsed EAR].  In this style 100% of your classes, including your EJBs, can be packed into your WEB-INF/classes and WEB-INF/lib directories.  The result is that your WAR file becomes a replacement for an EAR.  Unlike an EAR, all multi-packaging and multi-classloader requirements are stripped away and collapsed down to one archive and one classloader all your components, EJBs or otherwise, can share.
+
+h2. Constructor Injection (proposed EJB 3.1 feature)
+
+For those of you who would like to use final fields, wish to avoid numerous setters, or dislike private field injection and would like nothing more than to just use plan old java constructors, your wish has come true.  This is a feature we intended to add to OpenEJB 3.0 but didn't have time for.  We're happy to bring it to the OpenEJB 3.1 release and with a bit of luck and support from people like yourself, we'll see this as an EJB 3.1 feature as well.
+
+{code}
+@Stateless
+public class WidgetBean implements Widget {
+
+    @EJB(beanName = "FooBean")
+    private final Foo foo;
+
+    @Resource(name = "count")
+    private final int count;
+
+    @Resource
+    private final DataSource ds;
+
+    public WidgetBean(Integer count, Foo foo, DataSource ds) {
+        this.count = count;
+        this.foo = foo;
+        this.ds = ds;
+    }
+
+    public int getCount() {
+        return count;
+    }
+
+    public Foo getFoo() {
+        return foo;
+    }
+}
+{code}
+
+h1. General Features
+
+h2. EJB 3.0 Support
+
+OpenEJB 3.1 supports the EJB 3.0 specification as well as the prior EJB 2.1, EJB 2.0, and EJB 1.1.  New features in EJB 3.0 include:
+
+ - Annotations instead of xml
+ - No home interfaces
+ - Business Interfaces
+ - Dependency Injection
+ - Interceptors
+ - Java Persistence API
+ - Service Locator (ala SessionContext.lookup)
+ - POJO-style beans
+ - JAX-WS Web Services
+
+EJB 2.x features since OpenEJB 1.0 also include:
+ - MessageDriven Beans
+ - Container-Managed Persistence (CMP) 2.0
+ - Timers
+
+The two aspects of EJB that OpenEJB does not yet support are:
+  - JAX-RPC
+  - CORBA
+
+CORBA support will be added in future releases.  Support for the JAX-RPC API is not a planned feature.
+
+h2. EJB Plugin for Tomcat 6 and 5.5
+
+OpenEJB 3.1 can be [plugged into|OPENEJBx30:Tomcat] any Tomcat 6 or Tomcat 5.5 server, adding support for EJBs in Web Apps.  War files themselves can contain EJBs and the Servlets can use new JavaEE 5 annotations, XA transactions, JPA, and JMS.  Webapps can even support fat java clients connecting over HTTP.
+
+Don't use EJBs?  
+
+No matter, adding OpenEJB to Tomcat gives Servlets several new Java EE 5 capabilities such as JPA, JAX-WS, JMS, J2EE Connectors, transactions, and more as well as enhancing the injection features of Tomcat 6 to now support injection of JavaEE objects like Topics, Queues, EntityManagers, JMS ConnectionFactories, JavaMail Sessions, as well as simpler data types such as Dates, Classes, URI, URL, List, Map, Set, Properties, and more. In the case of Tomcat 5.5 which doesn't support dependency injection at all, even more is gained.
+
+h2. Spring Integration
+
+Add OpenEJB 3.1 to your Spring application to gain the ability for EJBs to be easily injected into Spring beans (and vice versa) and add Java EE 5 capabilities such as JPA, JAX-WS, JMS, J2EE Connectors, transactions, and security.
+
+See the [Spring|OPENEJBx30:Spring] page and [Spring Example|OPENEJBx30:Spring EJB and JPA] for an example.
+
+h2. Multicast Discovery
+
+Add the [openejb-multicast.jar|http://people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/openejb/openejb-multicast/3.1/openejb-multicast-3.1.jar] to your OpenEJB distributions lib/ directory and gain the ability to use multicast discovery between clients and serves as well as between servers allowing for request failover to other discovered servers.  Clients can discover and access servers with a new "multicast://239.255.3.2:6142" url as follows:
+
+{code}
+Properties p = new Properties();
+p.put("java.naming.factory.initial", "org.apache.openejb.client.RemoteInitialContextFactory");
+p.put("java.naming.provider.url", "multicast://239.255.3.2:6142");
+InitialContext ctx = new InitialContext(p);
+{code}
+
+h2. Runs on OSGi
+
+All OpenEJB 3.1 binaries come with complete OSGi metadata and are usable as a bundle in any OSGi platform.  Look for OpenEJB in the upcoming, OSGi-based ServiceMix 4 which is built on Apache Felix.
+
+h2. CMP via JPA
+
+Our CMP implementation is a thin layer over the new Java Persistence API (JPA).  This means when you deploy an old style CMP 1.1 or CMP 2.1 bean it is internally converted and ran as a JPA bean.  This makes it possible to use both CMP and JPA in the same application without any coherence issues that can come from using two competing persistence technologies against the same data.  Everything is ultimately JPA in the end.
+
+h2. Dependency Injection -- Enums, Classes, Dates, Files, oh my.
+
+Dependency Injection in EJB 3.0 via @Resource is largely limited to objects provided by the container, such as DataSources, JMS Topics and Queues.  It is possible for you to supply your own configuration information for injection, but standard rules allow for only data of type String, Character, Boolean, Integer, Short, Long, Double, Float and Byte.  If you needed a URL, for example, you'd have to have it injected as a String then convert it yourself to a URL.  This is just plain silly as the conversion of Strings to other basic data types has existed in JavaBeans long before Enterprise JavaBeans existed.
+
+OpenEJB 3.1 supports injection of any data type for which you can supply a JavaBeans PropertyEditor.  We include several built-in PropertyEditors already such as Date, InetAddress, Class, File, URL, URI, Map, List, any java.lang.Enum and more.
+
+{code:title=MyBean.java}
+import java.net.URI;
+import java.io.File;
+import java.util.Date;
+
+@Stateful 
+public class MyBean {
+    @Resource URI blog;
+    @Resource Date birthday;
+    @Resource File homeDirectory;
+}
+{code}
+
+h2. Dependency Injection -- Generic Collections and Maps
+
+Support for Java Generics makes the dependency injection that much more powerful.  Declare an injectable field that leverages Java Generics and we will use that information to boost your injection to the next level.  For example:
+
+{code:title=MyBean.java}
+import java.net.URI;
+import java.io.File;
+
+@Stateful 
+public class MyBean {
+    @Resource List<Class> factories;
+    @Resource Map<URI, File> locations;
+}
+{code}
+
+h2. Dependency Injection -- Custom Types
+
+You can easily add your own types or override the way built-in types are handled and claim dependency injection as your own making it a critical part of your architecture.  For example, let's register a custom editor for our Pickup enum.
+
+{code}
+import java.beans.PropertyEditorManager;
+
+public enum Pickup {
+
+    HUMBUCKER,
+    SINGLE_COIL;
+
+    // Here's the little magic where we register the PickupEditor
+    // which knows how to create this object from a string.
+    // You can add any of your own Property Editors in the same way.
+    static {
+        PropertyEditorManager.registerEditor(Pickup.class, PickupEditor.class);
+    }
+}
+{code}
+
+{code}
+@Stateful
+public class StratocasterImpl implements Stratocaster {
+
+    @Resource(name = "pickups")
+    private List<Pickup> pickups;
+}
+{code}
+
+h2. The META-INF/env-entries.properties
+
+Along the lines of injection, one of the last remaining things in EJB 3 that people need an ejb-jar.xml file for is to supply the value of env-entries.  Env Entries are the source of data for all user supplied data injected into your bean; the afore mentioned String, Boolean, Integer, etc.  This is a very big burden as each env-entry is going to cost you 5 lines of xml and the complication of having to figure out how to add you bean declaration in xml as an override of an existing bean and not accidentally as a new bean.  All this can be very painful when all you want is to supply the value of a few @Resource String fields in you bean class.  
+
+To fix this, OpenEJB supports the idea of a META-INF/env-entries.properties file where we will look for the value of things that need injection that are not container controlled resources (i.e. datasources and things of that nature).  You can configure you ejbs via a properties file and skip the need for an ejb-jar.xml and it's 5 lines per property madness.
+
+{code:title=META-INF/env-entries.properties}
+blog = http://acme.org/myblog
+birthday = 1954-03-01
+homeDirectory = /home/esmith/
+{code}
+
+h2. Support for GlassFish descriptors
+
+Unit testing EJBs with OpenEJB is a major feature and draw for people, even for people who may still use other app servers for final deployment such as Geronimo or GlassFish.  The descriptor format for Geronimo is natively understood by OpenEJB as OpenEJB is the EJB Container provider for Geronimo.  However, OpenEJB also supports the GlassFish descriptors so people using GlassFish as their final server can still use OpenEJB for testing EJBs via plain JUnit tests in their build and only have one set of vendor descriptors to maintain.
+
+h2. JavaEE 5 EAR and Application Client support
+
+JavaEE 5 EARs, RARs, and Application Clients can be deployed in addition to ejb jars.  EAR support is limited to ejbs, application clients, RARs, and libraries; WAR files will be ignored unless embedded in Tomcat.   Per the JavaEE 5 spec, the META-INF/application.xml and META-INF/application-client.xml files are optional.
+
+h2.  Application Validation for EJB 3.0
+
+Incorrect usage of various new aspects of EJB 3.0 are checked for and reported during the deployment process preventing strange errors and failures.
+
+As usual validation failures (non-compliant issues with your application) are printed out in complier-style "all-at-once" output allowing you to see and fix all your issues in one go.  For example, if you have 10 @PersistenceContext annotations that reference an invalid persistence unit, you get all 10 errors on the *first* deploy rather than one failure on the first deploy with 9 more failed deployments to go.
+
+Validation output comes in three levels.  The most verbose level will tell you in detail what you did wrong, what the options are, and what to do next... even including valid code and annotation usage tailored to your app that you can copy and paste into your application.  Very ideal for beginners and people using OpenEJB in a classroom setting.
+
+Some example output might look like the following.  Here we illegally add some annotations to the "Movies" bean's interface as well as use the wrong annotations for various types of injection:
+
+{code:none}
+FAIL ... Movies:  @Stateful cannot be applied to an interface: org.superbiz.injection.jpa.Movies
+FAIL ... Movies:  Missing required "type" attribute on class-level @Resource usage
+FAIL ... Movies:  Mistaken use of @Resource on an EntityManagerFactory reference.  
+                  Use @PersistenceUnit for ref "org.superbiz.injection.jpa.MoviesImpl/entityManagerFactory"
+FAIL ... Movies:  Mistaken use of @PersistenceUnit on an EntityManager reference.  
+                  Use @PersistenceContext for ref "org.superbiz.injection.jpa.MoviesImpl/entityManager"
+WARN ... Movies:  Inoring @RolesAllowed used on interface org.superbiz.injection.jpa.Movies method deleteMovie.
+                  Annotation only usable on the bean class.
+WARN ... Movies:  Ignoring @TransactionAttribute used on interface org.superbiz.injection.jpa.Movies method addMovie.
+                  Annotation only usable on the bean class.
+{code}
+
+h2. JNDI Name Formatting
+
+A complication when using EJB is that plain client applications are at the mercy of vendor's chosen methodology for how JNDI names should be constructed.  OpenEJB breaks the mold by allowing you to [specify the exact format|OPENEJBx30:JNDI Names] you'd like OpenEJB to use for your server or any individual application.  Supply us with a formatting string, such as "ejb/\{ejbName}/\{interfaceClass.simpleName}", to get a JNDI layout that best matches your needs.
+
+h1. Changelog
+{swizzlejira}
+#set ( $jira = $rss.fetch("http://issues.apache.org/jira/secure/IssueNavigator.jspa?view=rss&&pid=12310530&status=5&status=6&fixfor=12312761&tempMax=1000&reset=true&decorator=none") )
+#set( $issues = $jira.issues )
+
+h3. New Features:
+
+{swizzlejiraissues:issues=$as.param($issues.equals("type", "New Feature").descending("id"))|columns=key;summary}
+
+h3. Improvements:
+
+{swizzlejiraissues:issues=$as.param($issues.equals("type", "Improvement"))|columns=key;summary}
+
+h3. Tasks & Sub-Tasks:
+
+{swizzlejiraissues:issues=$as.param($issues.matches("type", "Task|Sub-task").sort("summary"))|columns=key;summary}
+
+
+{swizzlejira}
+

Propchange: openejb/site/trunk/content/openejb-3.1.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/openejb-3.1.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-3.1.mdtext?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-3.1.mdtext (added)
+++ openejb/site/trunk/content/openejb-3.1.mdtext Sun Jul 10 04:33:54 2011
@@ -0,0 +1,509 @@
+Title: OpenEJB 3.1
+* Release Date: October 22nd, 2008
+* Partial EJB 3.1 support
+* EJB 3.0 support
+* EJB 2.1 support
+* EJB 2.0 support
+* EJB 1.1 support
+
+<a name="OpenEJB3.1-Download"></a>
+# Download
+
+<a name="OpenEJB3.1-OpenEJBStandloneServer"></a>
+#### OpenEJB Standlone Server 
+ * [openejb-3.1.zip](http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb-3.1.zip)
+ ([pgp|http://www.apache.org/dist/openejb/3.1/openejb-3.1.zip.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb-3.1.zip.md5]
+) 
+ * [openejb-3.1.tar.gz](http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb-3.1.tar.gz)
+ ([pgp|http://www.apache.org/dist/openejb/3.1/openejb-3.1.tar.gz.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb-3.1.tar.gz.md5]
+) 
+
+<a name="OpenEJB3.1-OpenEJBforTomcat"></a>
+####  OpenEJB for Tomcat
+ * [openejb.war](http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb.war)
+ ([pgp|http://www.apache.org/dist/openejb/3.1/openejb.war.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb.war.md5]
+) 
+
+
+<a name="OpenEJB3.1-EJB3.1andotherexamples(sourceincluded)"></a>
+#### EJB 3.1 and other examples (source included) 
+ * [openejb-examples-3.1.tar.gz](http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb-examples-3.1.tar.gz)
+
+([pgp|http://www.apache.org/dist/openejb/3.1/openejb-examples-3.1.tar.gz.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb-examples-3.1.tar.gz.md5]
+) 
+ * [openejb-examples-3.1.zip](http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb-examples-3.1.zip)
+
+([pgp|http://www.apache.org/dist/openejb/3.1/openejb-examples-3.1.zip.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb-examples-3.1.zip.md5]
+) 
+
+<a name="OpenEJB3.1-SourceCode"></a>
+#### Source Code 
+ * [openejb-3.1-src.zip](http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb-3.1-src.zip)
+ ([pgp|http://www.apache.org/dist/openejb/3.1/openejb-3.1-src.zip.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb-3.1-src.zip.md5]
+) 
+ * [openejb-3.1-src.tar.gz](http://www.apache.org/dyn/closer.cgi/openejb/3.1/openejb-3.1-src.tar.gz)
+ ([pgp|http://www.apache.org/dist/openejb/3.1/openejb-3.1-src.tar.gz.asc], [md5|http://www.apache.org/dist/openejb/3.1/openejb-3.1-src.tar.gz.md5]
+) 
+
+<a name="OpenEJB3.1-ReleaseNotes"></a>
+#### Release Notes
+ * [RELEASE-NOTES.txt](http://www.apache.org/dist/openejb/3.1/RELEASE-NOTES.txt)
+
+<a name="OpenEJB3.1-TestedOn"></a>
+#  Tested On
+
+<table>
+<tr><th> </th><th> Windows XP (JDK 1.5) </th><th> Windows XP (JDK 1.6) </th><th> Linux (JDK 1.5) </th><th>
+Linux (JDK 1.6) </th><th> Mac OSX (JDK 1.5) </th><th> Mac OSX (JDK 1.6) </th></tr>
+<tr><td> Embedded </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Standalone </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 6.0.14 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 6.0.13 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 6.0.10 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 6.0.9 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 5.5.26 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 5.5.25 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 5.5.23 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+<tr><td> Tomcat 5.5.20 </td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr>
+</table>
+
+<a name="OpenEJB3.1-ChangeSummary"></a>
+# Change Summary
+
+Major new features:
+  - [EJB 3.1 Singleton Support](openejb-3.1#ejb3.1singletons.html)
+  - [EJB Constructor Injection](openejb-3.1#constructorinjection%28proposedejb3.1feature%29.html)
+  - [Spring Integration](openejb-3.1#springintegration.html)
+  - [Multicast Client-Server Discovery](openejb-3.1#multicastdiscovery.html)
+
+Significant Improvements:
+  - EAR-style classpath application discovery groups individual modules as
+an EAR allowing sharing of persistence units and improved connector and
+custom MDB deployment.
+  - Detection of EclipseLink, TopLink, and Hibernate as JPA providers to
+automatically adds the right persistence unit property to for wiring in the
+OpenEJB TransactionManager.
+  - System Property and InitialContext property overriding now applies to
+persistence-unit properties and logging levels.
+  - Login/logout now possible in an embedded scenario via InitialContext
+params and initialContext.close() respectively.
+  - Complete overhaul of all client/server connection management
+dramatically increases performance.
+  - Several new checks added to Application Validation ruleset, some
+reworked to give even more details.
+
+<a name="OpenEJB3.1-EJB3.1Features"></a>
+# EJB 3.1 Features
+
+<a name="OpenEJB3.1-EJB3.1Singletons"></a>
+## EJB 3.1 Singletons
+
+Singletons are a new type of Session bean being added to the EJB 3.1
+specification.	As the name implies a javax.ejb.Singleton is a session bean
+with a guarantee that there is at most one instance in the application.
+
+Singletons gives you some important things that are missing in EJB 3.0 and
+prior versions, such as the ability to have an EJB that is notified when
+the application starts and notified when the application stops, allowing
+you to do all sorts of things that previously could only be done with a
+load-on-startup servlet.  Singletons also give provide a great place to
+hold data that pertains to the entire application and all users using it,
+without the need for a static.	Additionally, Singleton beans have
+multi-threaded capabilities allowing them to be invoked by several threads
+at one time similar to a Servlet.
+
+See the [Singleton API](openejbx30:singleton-beans.html)
+ and [Singleton Example]
+ pages.
+
+<a name="OpenEJB3.1-EmbeddableforTestingandJavaSEusage(proposedEJB3.1feature)"></a>
+## Embeddable for Testing and Java SE usage (proposed EJB 3.1 feature)
+
+Over the years, OpenEJB has innovated the art of the embedded/Java SE EJB
+container usable as a plain library much the way an embedded databases
+work.  In a simple 1, 2, 3 step of 1) add OpenEJB to your classpath, 2) add
+a META-INF/ejb-jar.xml containing at minimum "<ejb-jar/>", then 3) use the
+org.apache.openejb.client.LocalInitialContextFactory when creating your
+client InitialContext, you've got a Java SE EJB container that can be used
+in unit tests, your IDE, or anywhere you'd like to drop in EJB
+functionality.	Configuration can be done through an openejb.xml file or
+can be encapsulated 100% in the test case through the parameters passed to
+the InitialContext.  For example, to create a JTA DataSource for JPA usage,
+you can simply:
+
+
+    Properties p = new Properties();
+    p.put(Context.INITIAL_CONTEXT_FACTORY,
+"org.apache.openejb.client.LocalInitialContextFactory");
+    p.put("movieDatabase", "new://Resource?type=DataSource");
+    p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver");
+    p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
+    
+    Context context = new InitialContext(p);
+
+
+See the examples zip for a dozen embedded testing examples that range from
+simple @Stateless beans to advanced transaction and security testing.
+
+<a name="OpenEJB3.1-CollapsedEAR(EJBsin.WARs)(proposedEJB3.1feature)"></a>
+## Collapsed EAR (EJBs in .WARs) (proposed EJB 3.1 feature)
+
+Along the lines of the Tomcat integration where OpenEJB can be plugged into
+Tomcat, we've expanded the idea to also allow your EJBs to be plugged into
+your webapp.  We call this innovative feature [Collapsed EAR](collapsed-ear.html)
+.  In this style 100% of your classes, including your EJBs, can be packed
+into your WEB-INF/classes and WEB-INF/lib directories.	The result is that
+your WAR file becomes a replacement for an EAR.  Unlike an EAR, all
+multi-packaging and multi-classloader requirements are stripped away and
+collapsed down to one archive and one classloader all your components, EJBs
+or otherwise, can share.
+
+<a name="OpenEJB3.1-ConstructorInjection(proposedEJB3.1feature)"></a>
+## Constructor Injection (proposed EJB 3.1 feature)
+
+For those of you who would like to use final fields, wish to avoid numerous
+setters, or dislike private field injection and would like nothing more
+than to just use plan old java constructors, your wish has come true.  This
+is a feature we intended to add to OpenEJB 3.0 but didn't have time for. 
+We're happy to bring it to the OpenEJB 3.1 release and with a bit of luck
+and support from people like yourself, we'll see this as an EJB 3.1 feature
+as well.
+
+
+    @Stateless
+    public class WidgetBean implements Widget {
+    
+        @EJB(beanName = "FooBean")
+        private final Foo foo;
+    
+        @Resource(name = "count")
+        private final int count;
+    
+        @Resource
+        private final DataSource ds;
+    
+        public WidgetBean(Integer count, Foo foo, DataSource ds) {
+    	this.count = count;
+    	this.foo = foo;
+    	this.ds = ds;
+        }
+    
+        public int getCount() {
+    	return count;
+        }
+    
+        public Foo getFoo() {
+    	return foo;
+        }
+    }
+
+
+<a name="OpenEJB3.1-GeneralFeatures"></a>
+# General Features
+
+<a name="OpenEJB3.1-EJB3.0Support"></a>
+## EJB 3.0 Support
+
+OpenEJB 3.1 supports the EJB 3.0 specification as well as the prior EJB
+2.1, EJB 2.0, and EJB 1.1.  New features in EJB 3.0 include:
+
+ - Annotations instead of xml
+ - No home interfaces
+ - Business Interfaces
+ - Dependency Injection
+ - Interceptors
+ - Java Persistence API
+ - Service Locator (ala SessionContext.lookup)
+ - POJO-style beans
+ - JAX-WS Web Services
+
+EJB 2.x features since OpenEJB 1.0 also include:
+ - MessageDriven Beans
+ - Container-Managed Persistence (CMP) 2.0
+ - Timers
+
+The two aspects of EJB that OpenEJB does not yet support are:
+  - JAX-RPC
+  - CORBA
+
+CORBA support will be added in future releases.  Support for the JAX-RPC
+API is not a planned feature.
+
+<a name="OpenEJB3.1-EJBPluginforTomcat6and5.5"></a>
+## EJB Plugin for Tomcat 6 and 5.5
+
+OpenEJB 3.1 can be [plugged into](openejbx30:tomcat.html)
+ any Tomcat 6 or Tomcat 5.5 server, adding support for EJBs in Web Apps. 
+War files themselves can contain EJBs and the Servlets can use new JavaEE 5
+annotations, XA transactions, JPA, and JMS.  Webapps can even support fat
+java clients connecting over HTTP.
+
+Don't use EJBs?  
+
+No matter, adding OpenEJB to Tomcat gives Servlets several new Java EE 5
+capabilities such as JPA, JAX-WS, JMS, J2EE Connectors, transactions, and
+more as well as enhancing the injection features of Tomcat 6 to now support
+injection of JavaEE objects like Topics, Queues, EntityManagers, JMS
+ConnectionFactories, JavaMail Sessions, as well as simpler data types such
+as Dates, Classes, URI, URL, List, Map, Set, Properties, and more. In the
+case of Tomcat 5.5 which doesn't support dependency injection at all, even
+more is gained.
+
+<a name="OpenEJB3.1-SpringIntegration"></a>
+## Spring Integration
+
+Add OpenEJB 3.1 to your Spring application to gain the ability for EJBs to
+be easily injected into Spring beans (and vice versa) and add Java EE 5
+capabilities such as JPA, JAX-WS, JMS, J2EE Connectors, transactions, and
+security.
+
+See the [Spring](openejbx30:spring.html)
+ page and [Spring Example|OPENEJBx30:Spring EJB and JPA]
+ for an example.
+
+<a name="OpenEJB3.1-MulticastDiscovery"></a>
+## Multicast Discovery
+
+Add the [openejb-multicast.jar](http://people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/openejb/openejb-multicast/3.1/openejb-multicast-3.1.jar)
+ to your OpenEJB distributions lib/ directory and gain the ability to use
+multicast discovery between clients and serves as well as between servers
+allowing for request failover to other discovered servers.  Clients can
+discover and access servers with a new "multicast://239.255.3.2:6142" url
+as follows:
+
+
+    Properties p = new Properties();
+    p.put("java.naming.factory.initial",
+"org.apache.openejb.client.RemoteInitialContextFactory");
+    p.put("java.naming.provider.url", "multicast://239.255.3.2:6142");
+    InitialContext ctx = new InitialContext(p);
+
+
+<a name="OpenEJB3.1-RunsonOSGi"></a>
+## Runs on OSGi
+
+All OpenEJB 3.1 binaries come with complete OSGi metadata and are usable as
+a bundle in any OSGi platform.	Look for OpenEJB in the upcoming,
+OSGi-based ServiceMix 4 which is built on Apache Felix.
+
+<a name="OpenEJB3.1-CMPviaJPA"></a>
+## CMP via JPA
+
+Our CMP implementation is a thin layer over the new Java Persistence API
+(JPA).	This means when you deploy an old style CMP 1.1 or CMP 2.1 bean it
+is internally converted and ran as a JPA bean.	This makes it possible to
+use both CMP and JPA in the same application without any coherence issues
+that can come from using two competing persistence technologies against the
+same data.  Everything is ultimately JPA in the end.
+
+<a name="OpenEJB3.1-DependencyInjection--Enums,Classes,Dates,Files,ohmy."></a>
+## Dependency Injection -- Enums, Classes, Dates, Files, oh my.
+
+Dependency Injection in EJB 3.0 via @Resource is largely limited to objects
+provided by the container, such as DataSources, JMS Topics and Queues.	It
+is possible for you to supply your own configuration information for
+injection, but standard rules allow for only data of type String,
+Character, Boolean, Integer, Short, Long, Double, Float and Byte.  If you
+needed a URL, for example, you'd have to have it injected as a String then
+convert it yourself to a URL.  This is just plain silly as the conversion
+of Strings to other basic data types has existed in JavaBeans long before
+Enterprise JavaBeans existed.
+
+OpenEJB 3.1 supports injection of any data type for which you can supply a
+JavaBeans PropertyEditor.  We include several built-in PropertyEditors
+already such as Date, InetAddress, Class, File, URL, URI, Map, List, any
+java.lang.Enum and more.
+
+<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>MyBean.java</B></DIV><DIV class="codeContent panelContent">
+    import java.net.URI;
+    import java.io.File;
+    import java.util.Date;
+    
+    @Stateful 
+    public class MyBean {
+        @Resource URI blog;
+        @Resource Date birthday;
+        @Resource File homeDirectory;
+    }
+
+
+<a name="OpenEJB3.1-DependencyInjection--GenericCollectionsandMaps"></a>
+## Dependency Injection -- Generic Collections and Maps
+
+Support for Java Generics makes the dependency injection that much more
+powerful.  Declare an injectable field that leverages Java Generics and we
+will use that information to boost your injection to the next level.  For
+example:
+
+<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>MyBean.java</B></DIV><DIV class="codeContent panelContent">
+    import java.net.URI;
+    import java.io.File;
+    
+    @Stateful 
+    public class MyBean {
+        @Resource List<Class> factories;
+        @Resource Map<URI, File> locations;
+    }
+
+
+<a name="OpenEJB3.1-DependencyInjection--CustomTypes"></a>
+## Dependency Injection -- Custom Types
+
+You can easily add your own types or override the way built-in types are
+handled and claim dependency injection as your own making it a critical
+part of your architecture.  For example, let's register a custom editor for
+our Pickup enum.
+
+
+    import java.beans.PropertyEditorManager;
+    
+    public enum Pickup {
+    
+        HUMBUCKER,
+        SINGLE_COIL;
+    
+        // Here's the little magic where we register the PickupEditor
+        // which knows how to create this object from a string.
+        // You can add any of your own Property Editors in the same way.
+        static {
+    	PropertyEditorManager.registerEditor(Pickup.class,
+PickupEditor.class);
+        }
+    }
+
+
+
+    @Stateful
+    public class StratocasterImpl implements Stratocaster {
+    
+        @Resource(name = "pickups")
+        private List<Pickup> pickups;
+    }
+
+
+<a name="OpenEJB3.1-TheMETA-INF/env-entries.properties"></a>
+## The META-INF/env-entries.properties
+
+Along the lines of injection, one of the last remaining things in EJB 3
+that people need an ejb-jar.xml file for is to supply the value of
+env-entries.  Env Entries are the source of data for all user supplied data
+injected into your bean; the afore mentioned String, Boolean, Integer, etc.
+ This is a very big burden as each env-entry is going to cost you 5 lines
+of xml and the complication of having to figure out how to add you bean
+declaration in xml as an override of an existing bean and not accidentally
+as a new bean.	All this can be very painful when all you want is to supply
+the value of a few @Resource String fields in you bean class.  
+
+To fix this, OpenEJB supports the idea of a META-INF/env-entries.properties
+file where we will look for the value of things that need injection that
+are not container controlled resources (i.e. datasources and things of that
+nature).  You can configure you ejbs via a properties file and skip the
+need for an ejb-jar.xml and it's 5 lines per property madness.
+
+<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>META-INF/env-entries.properties</B></DIV><DIV class="codeContent panelContent">
+    blog = http://acme.org/myblog
+    birthday = 1954-03-01
+    homeDirectory = /home/esmith/
+
+
+<a name="OpenEJB3.1-SupportforGlassFishdescriptors"></a>
+## Support for GlassFish descriptors
+
+Unit testing EJBs with OpenEJB is a major feature and draw for people, even
+for people who may still use other app servers for final deployment such as
+Geronimo or GlassFish.	The descriptor format for Geronimo is natively
+understood by OpenEJB as OpenEJB is the EJB Container provider for
+Geronimo.  However, OpenEJB also supports the GlassFish descriptors so
+people using GlassFish as their final server can still use OpenEJB for
+testing EJBs via plain JUnit tests in their build and only have one set of
+vendor descriptors to maintain.
+
+<a name="OpenEJB3.1-JavaEE5EARandApplicationClientsupport"></a>
+## JavaEE 5 EAR and Application Client support
+
+JavaEE 5 EARs, RARs, and Application Clients can be deployed in addition to
+ejb jars.  EAR support is limited to ejbs, application clients, RARs, and
+libraries; WAR files will be ignored unless embedded in Tomcat.   Per the
+JavaEE 5 spec, the META-INF/application.xml and
+META-INF/application-client.xml files are optional.
+
+<a name="OpenEJB3.1-ApplicationValidationforEJB3.0"></a>
+##  Application Validation for EJB 3.0
+
+Incorrect usage of various new aspects of EJB 3.0 are checked for and
+reported during the deployment process preventing strange errors and
+failures.
+
+As usual validation failures (non-compliant issues with your application)
+are printed out in complier-style "all-at-once" output allowing you to see
+and fix all your issues in one go.  For example, if you have 10
+@PersistenceContext annotations that reference an invalid persistence unit,
+you get all 10 errors on the *first* deploy rather than one failure on the
+first deploy with 9 more failed deployments to go.
+
+Validation output comes in three levels.  The most verbose level will tell
+you in detail what you did wrong, what the options are, and what to do
+next... even including valid code and annotation usage tailored to your app
+that you can copy and paste into your application.  Very ideal for
+beginners and people using OpenEJB in a classroom setting.
+
+Some example output might look like the following.  Here we illegally add
+some annotations to the "Movies" bean's interface as well as use the wrong
+annotations for various types of injection:
+
+{code:none}
+FAIL ... Movies:  @Stateful cannot be applied to an interface:
+org.superbiz.injection.jpa.Movies
+FAIL ... Movies:  Missing required "type" attribute on class-level
+@Resource usage
+FAIL ... Movies:  Mistaken use of @Resource on an EntityManagerFactory
+reference.  
+		  Use @PersistenceUnit for ref
+"org.superbiz.injection.jpa.MoviesImpl/entityManagerFactory"
+FAIL ... Movies:  Mistaken use of @PersistenceUnit on an EntityManager
+reference.  
+		  Use @PersistenceContext for ref
+"org.superbiz.injection.jpa.MoviesImpl/entityManager"
+WARN ... Movies:  Inoring @RolesAllowed used on interface
+org.superbiz.injection.jpa.Movies method deleteMovie.
+		  Annotation only usable on the bean class.
+WARN ... Movies:  Ignoring @TransactionAttribute used on interface
+org.superbiz.injection.jpa.Movies method addMovie.
+		  Annotation only usable on the bean class.
+
+    
+    h2. JNDI Name Formatting
+    
+    A complication when using EJB is that plain client applications are at the
+mercy of vendor's chosen methodology for how JNDI names should be
+constructed.  OpenEJB breaks the mold by allowing you to [specify the exact format|OPENEJBx30:JNDI Names]
+ you'd like OpenEJB to use for your server or any individual application. 
+Supply us with a formatting string, such as
+"ejb/\{ejbName}/\{interfaceClass.simpleName}", to get a JNDI layout that
+best matches your needs.
+    
+    h1. Changelog
+    {swizzlejira}
+    #set ( $jira =
+$rss.fetch("http://issues.apache.org/jira/secure/IssueNavigator.jspa?view=rss&&pid=12310530&status=5&status=6&fixfor=12312761&tempMax=1000&reset=true&decorator=none")
+)
+    #set( $issues = $jira.issues )
+    
+    h3. New Features:
+    
+    {swizzlejiraissues:issues=$as.param($issues.equals("type", "New
+Feature").descending("id"))|columns=key;summary}
+    
+    h3. Improvements:
+    
+    {swizzlejiraissues:issues=$as.param($issues.equals("type",
+"Improvement"))|columns=key;summary}
+    
+    h3. Tasks & Sub-Tasks:
+    
+    {swizzlejiraissues:issues=$as.param($issues.matches("type",
+"Task|Sub-task").sort("summary"))|columns=key;summary}
+    
+    
+    {swizzlejira}
+    

Added: openejb/site/trunk/content/openejb-3.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-3.cwiki?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-3.cwiki (added)
+++ openejb/site/trunk/content/openejb-3.cwiki Sun Jul 10 04:33:54 2011
@@ -0,0 +1,26 @@
+
+h1. Past, Present, and Future
+
+The goal of OpenEJB 3 is to merge our past, present, and future into one codebase.  OpenEJB 3 will take the excellent features in OpenEJB 1.0 (tomcat integration, testability, embeddibility, ease of use, etc), move towards an IoC architecture based on Gbean.org and Spring, bring in the OpenEJB 2 code, and implement the EJB 3.0 specification.
+
+h1. The Plan
+
+We will start on OpenEJB 3 by taking the 1.0 code (pretty much the same as 0.9.2), merging in the 2.0 code, and ensuring that the entire time the code we write is code you can use!  We will never drop a feature, even temporarily.  We will start from code that users are now using and always keep, maintain, and improve those features as we add new features.  Releasing early and often.
+
+h2. Past
+
+OpenEJB 1.0 (from 0.9.2 lineage) has some great features and many people that depend on them.  Tomcat integration, Collapsed EARs, Container Driven Testing, easy embedding, and other features make OpenEJB a unique EJB implementation.  We're going to take this code, kill all the static old-school techniques, modernize it with and IoC architecture based on the gbean.org kernel.  The gbean kernel is an IoC kernel compatible with both Spring and Geronimo.  
+
+h2. Present
+
+OpenEJB 2.0 is an awesome fast implementation of EJB 2.1 that runs in Apache Geronimo.  As the gbean.org kernel is both Spring and Geronimo compatible, it provides a great way for us to take the Geronimo-compatible EJB containers and deployers in OpenEJB 2 and start hammering them out and releasing them to long-time OpenEJB users.  It will also allow people using OpenEJB to start experimenting with Spring's sophisticated IoC features.
+
+h2. Future
+
+EJB 3.0 is a new direction for EJB and we're going to do it with style.  A focus on simplicity is where OpenEJB shines.  Combining the EJB 3.0 Simplified specification with our existing lightweight features, like Container Driven Testing, is just the beginning.  We plan to go way beyond the planned additions and into areas the J2EE spec groups won't go such as deployment descriptors with attributes, simpler packaging, more flexible classloader setup, more powerful IoC support, simpler web services support and more.
+
+h1. Release on Day One
+
+Keep it working, keep it progressing, keep releasing.  The 3.0 version number won't be the finishing line, but the starting line.  Our work will start out as 3.0 on day one and keep incrementing the version number as we get further along our feature list.  The EJB 3.0 spec is not completed and the OpenEJB 3.0 code line will be equally dynamic and best suited for adventurous developers who enjoy reading release notes and participating on user lists.  There will be an incredible focus on keeping things stable enough to use the entire time as we work towards feature completion.  
+
+The effect of all this is that you get a fixed-up, far more extensible, version of the code you are already using delivered to you right away.
\ No newline at end of file

Propchange: openejb/site/trunk/content/openejb-3.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/openejb-3.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-3.mdtext?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-3.mdtext (added)
+++ openejb/site/trunk/content/openejb-3.mdtext Sun Jul 10 04:33:54 2011
@@ -0,0 +1,68 @@
+Title: OpenEJB 3
+
+<a name="OpenEJB3-Past,Present,andFuture"></a>
+# Past, Present, and Future
+
+The goal of OpenEJB 3 is to merge our past, present, and future into one
+codebase.  OpenEJB 3 will take the excellent features in OpenEJB 1.0
+(tomcat integration, testability, embeddibility, ease of use, etc), move
+towards an IoC architecture based on Gbean.org and Spring, bring in the
+OpenEJB 2 code, and implement the EJB 3.0 specification.
+
+<a name="OpenEJB3-ThePlan"></a>
+# The Plan
+
+We will start on OpenEJB 3 by taking the 1.0 code (pretty much the same as
+0.9.2), merging in the 2.0 code, and ensuring that the entire time the code
+we write is code you can use!  We will never drop a feature, even
+temporarily.  We will start from code that users are now using and always
+keep, maintain, and improve those features as we add new features. 
+Releasing early and often.
+
+<a name="OpenEJB3-Past"></a>
+## Past
+
+OpenEJB 1.0 (from 0.9.2 lineage) has some great features and many people
+that depend on them.  Tomcat integration, Collapsed EARs, Container Driven
+Testing, easy embedding, and other features make OpenEJB a unique EJB
+implementation.  We're going to take this code, kill all the static
+old-school techniques, modernize it with and IoC architecture based on the
+gbean.org kernel.  The gbean kernel is an IoC kernel compatible with both
+Spring and Geronimo.  
+
+<a name="OpenEJB3-Present"></a>
+## Present
+
+OpenEJB 2.0 is an awesome fast implementation of EJB 2.1 that runs in
+Apache Geronimo.  As the gbean.org kernel is both Spring and Geronimo
+compatible, it provides a great way for us to take the Geronimo-compatible
+EJB containers and deployers in OpenEJB 2 and start hammering them out and
+releasing them to long-time OpenEJB users.  It will also allow people using
+OpenEJB to start experimenting with Spring's sophisticated IoC features.
+
+<a name="OpenEJB3-Future"></a>
+## Future
+
+EJB 3.0 is a new direction for EJB and we're going to do it with style.  A
+focus on simplicity is where OpenEJB shines.  Combining the EJB 3.0
+Simplified specification with our existing lightweight features, like
+Container Driven Testing, is just the beginning.  We plan to go way beyond
+the planned additions and into areas the J2EE spec groups won't go such as
+deployment descriptors with attributes, simpler packaging, more flexible
+classloader setup, more powerful IoC support, simpler web services support
+and more.
+
+<a name="OpenEJB3-ReleaseonDayOne"></a>
+# Release on Day One
+
+Keep it working, keep it progressing, keep releasing.  The 3.0 version
+number won't be the finishing line, but the starting line.  Our work will
+start out as 3.0 on day one and keep incrementing the version number as we
+get further along our feature list.  The EJB 3.0 spec is not completed and
+the OpenEJB 3.0 code line will be equally dynamic and best suited for
+adventurous developers who enjoy reading release notes and participating on
+user lists.  There will be an incredible focus on keeping things stable
+enough to use the entire time as we work towards feature completion.  
+
+The effect of all this is that you get a fixed-up, far more extensible,
+version of the code you are already using delivered to you right away.

Added: openejb/site/trunk/content/openejb-and-eclipse.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-and-eclipse.cwiki?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-and-eclipse.cwiki (added)
+++ openejb/site/trunk/content/openejb-and-eclipse.cwiki Sun Jul 10 04:33:54 2011
@@ -0,0 +1,2 @@
+If you aspire to be an OpenEJB developer and you use Eclipse as your IDE, this page is for you!
+

Propchange: openejb/site/trunk/content/openejb-and-eclipse.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/openejb-and-eclipse.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-and-eclipse.mdtext?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-and-eclipse.mdtext (added)
+++ openejb/site/trunk/content/openejb-and-eclipse.mdtext Sun Jul 10 04:33:54 2011
@@ -0,0 +1,4 @@
+Title: OpenEJB and Eclipse
+If you aspire to be an OpenEJB developer and you use Eclipse as your IDE,
+this page is for you!
+

Added: openejb/site/trunk/content/openejb-binaries.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-binaries.cwiki?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-binaries.cwiki (added)
+++ openejb/site/trunk/content/openejb-binaries.cwiki Sun Jul 10 04:33:54 2011
@@ -0,0 +1,24 @@
+Add this to your {{$HOME/.m2/settings.xml}} to enable publishing to the Apache Nexus repo.  This works for snapshots or staging final binaries.
+
+{code:xml|title=.m2/settings.xml}
+<settings>
+  <servers>
+    <server>
+      <id>apache.snapshots.https</id>
+      <username>yourapacheid</username>
+      <password>yourapachepass</password>
+    </server>
+    <server>
+      <id>apache.releases.https</id>
+      <username>yourapacheid</username>
+      <password>yourapachepass</password>
+    </server>
+  </servers>
+</settings>
+{code}
+
+Then publish via:
+
+{code}
+$ mvn clean deploy
+{code}

Propchange: openejb/site/trunk/content/openejb-binaries.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/openejb-binaries.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-binaries.mdtext?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-binaries.mdtext (added)
+++ openejb/site/trunk/content/openejb-binaries.mdtext Sun Jul 10 04:33:54 2011
@@ -0,0 +1,26 @@
+Title: OpenEJB Binaries
+Add this to your *$HOME/.m2/settings.xml* to enable publishing to the
+Apache Nexus repo.  This works for snapshots or staging final binaries.
+
+{code:xml|title=.m2/settings.xml}
+<settings>
+  <servers>
+    <server>
+      <id>apache.snapshots.https</id>
+      <username>yourapacheid</username>
+      <password>yourapachepass</password>
+    </server>
+    <server>
+      <id>apache.releases.https</id>
+      <username>yourapacheid</username>
+      <password>yourapachepass</password>
+    </server>
+  </servers>
+</settings>
+
+    
+    Then publish via:
+    
+
+$ mvn clean deploy
+

Added: openejb/site/trunk/content/openejb-eclipse-plugin.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-eclipse-plugin.cwiki?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-eclipse-plugin.cwiki (added)
+++ openejb/site/trunk/content/openejb-eclipse-plugin.cwiki Sun Jul 10 04:33:54 2011
@@ -0,0 +1,11 @@
+h1. OpenEJB Eclipse Plugin
+
+h3. Overview
+
+The OpenEJB plugin for Eclipse provides the ability to run an OpenEJB standalone server and deploy projects directly from within the IDE, using functionality provided by the Eclipse Web Tools Project (WTP). Additionally, the plugin also provides the capability to read a ejb-jar.xml (and optionally a openejb-jar.xml) file and automatically add the corresponding EJB 3 annotations to your code automatically.
+
+[Installation]
+[Building from source]
+[Generating EJB 3 annotations]
+[Running a standalone OpenEJB server]
+

Propchange: openejb/site/trunk/content/openejb-eclipse-plugin.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/openejb-eclipse-plugin.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-eclipse-plugin.mdtext?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-eclipse-plugin.mdtext (added)
+++ openejb/site/trunk/content/openejb-eclipse-plugin.mdtext Sun Jul 10 04:33:54 2011
@@ -0,0 +1,19 @@
+Title: OpenEJB Eclipse Plugin
+<a name="OpenEJBEclipsePlugin-OpenEJBEclipsePlugin"></a>
+# OpenEJB Eclipse Plugin
+
+<a name="OpenEJBEclipsePlugin-Overview"></a>
+### Overview
+
+The OpenEJB plugin for Eclipse provides the ability to run an OpenEJB
+standalone server and deploy projects directly from within the IDE, using
+functionality provided by the Eclipse Web Tools Project (WTP).
+Additionally, the plugin also provides the capability to read a ejb-jar.xml
+(and optionally a openejb-jar.xml) file and automatically add the
+corresponding EJB 3 annotations to your code automatically.
+
+[Installation](installation.html)
+[Building from source](building-from-source.html)
+[Generating EJB 3 annotations](generating-ejb-3-annotations.html)
+[Running a standalone OpenEJB server](running-a-standalone-openejb-server.html)
+

Added: openejb/site/trunk/content/openejb-jsr-107-integration.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-jsr-107-integration.cwiki?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-jsr-107-integration.cwiki (added)
+++ openejb/site/trunk/content/openejb-jsr-107-integration.cwiki Sun Jul 10 04:33:54 2011
@@ -0,0 +1,12 @@
+
+h1. OpenEJB JSR-107 (JCACHE) Integration
+
+This page is for the collaboration for those involved with the integration of JSR-107 into OpenEJB.
+
+h3. Overview
+
+The idea here is to add a caching layer to OpenEJB.  The overall objective is to improve performance in OpenEJB where applicable through caching EJBs.
+
+h3. Status
+
+Dain and myself (Jeremy) have deciphered the JSR-107 spec and how I am working on the first crude integration of JCACHE into OpenEJB.  Anyone interested in helping or providing any feedback/suggestions, please contact me via the developer mailing list.
\ No newline at end of file

Propchange: openejb/site/trunk/content/openejb-jsr-107-integration.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/openejb-jsr-107-integration.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-jsr-107-integration.mdtext?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-jsr-107-integration.mdtext (added)
+++ openejb/site/trunk/content/openejb-jsr-107-integration.mdtext Sun Jul 10 04:33:54 2011
@@ -0,0 +1,21 @@
+Title: OpenEJB JSR-107 Integration
+
+<a name="OpenEJBJSR-107Integration-OpenEJBJSR-107(JCACHE)Integration"></a>
+# OpenEJB JSR-107 (JCACHE) Integration
+
+This page is for the collaboration for those involved with the integration
+of JSR-107 into OpenEJB.
+
+<a name="OpenEJBJSR-107Integration-Overview"></a>
+### Overview
+
+The idea here is to add a caching layer to OpenEJB.  The overall objective
+is to improve performance in OpenEJB where applicable through caching EJBs.
+
+<a name="OpenEJBJSR-107Integration-Status"></a>
+### Status
+
+Dain and myself (Jeremy) have deciphered the JSR-107 spec and how I am
+working on the first crude integration of JCACHE into OpenEJB.	Anyone
+interested in helping or providing any feedback/suggestions, please contact
+me via the developer mailing list.

Added: openejb/site/trunk/content/openejb-release-process.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-release-process.cwiki?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-release-process.cwiki (added)
+++ openejb/site/trunk/content/openejb-release-process.cwiki Sun Jul 10 04:33:54 2011
@@ -0,0 +1,229 @@
+{code:none}
+mvn release:prepare -Dusername=dblevins -Dassemble
+{code}
+
+{code:none}
+mvn release:perform -Dassemble -Dusername=dblevins -DaltDeploymentRepository=dblevins::default::scp://people.apache.org/x1/home/dblevins/public_html/stage -Dgpg.passphrase=xxxxx
+{code}
+
+{code}
+mvn clean deploy -Prelease -Dassemble -Dusername=dblevins -DaltDeploymentRepository=dblevins::default::scp://people.apache.org/x1/home/dblevins/public_html/stage/repo -Dgpg.passphrase=xxxxx
+{code}
+
+1. Create a copy of the trunk the branch will be based on.
+
+{code:none}
+svn copy -m "OpenEJB 3.0-beta-1 branch" \
+  https://svn.apache.org/repos/asf/openejb/trunk/openejb3 \
+  https://svn.apache.org/repos/asf/openejb/branches/3.0-beta-1
+{code}
+
+h1.  Merging things from trunk to the branch
+
+While fixing issues in the branch and trunk in parallel it may happen that some changes in trunk have not been applied to the branch. Provided you're in the branch's directory the following command applies a change from the trunk  to the branch ({{{-c 575845}}} is the commit number with the fix and the url points to a repo the change is in).
+
+{code:none}
+svn merge -c 575845 https://svn.apache.org/repos/asf/openejb/trunk/openejb3
+{code}
+
+Here's a little script that can make merging easier
+
+{code}
+#!/bin/bash
+
+for n in $@; do
+  m=$(($n -1))
+  LOG=/tmp/svn-commit-r$n.log
+
+  cat /dev/null > $LOG
+
+  echo "Merging r$n - http://svn.apache.org/viewvc?rev=$n&view=rev" >> $LOG
+  echo "" >> $LOG
+  echo "svn merge -r $m:$n https://svn.apache.org/repos/asf/openejb/trunk/openejb3 ." >> $LOG
+  echo "" >> $LOG
+  svn log -r$n https://svn.apache.org/repos/asf/openejb/trunk/openejb3 >> $LOG
+
+  svn merge -r $m:$n https://svn.apache.org/repos/asf/openejb/trunk/openejb3 .  &&
+  svn ci -F $LOG
+  echo "$n merged"
+done
+{code}
+
+h1.  Aggregation into a stage/3.x directory
+
+{code}
+#!/bin/bash
+
+VER=3.0
+
+function package () {
+    SOURCE=$1; DEST=${2:-$SOURCE}
+    tar czf $DEST.tar.gz $SOURCE
+    zip -9rq $DEST.zip $SOURCE
+}
+function shash {
+    openssl $1 < $2 > $2.$1 ;
+}
+function sign {
+    archive=$1
+    gpg --armor --output $archive.asc --detach-sig $archive
+    gpg --verify $archive.asc $archive
+}
+
+function fail () { echo $1 >&2; exit 1;}
+
+
+mkdir $VER
+(cd $VER
+
+svn export http://svn.apache.org/repos/asf/openejb/tags/openejb-$VER/examples openejb-examples-$VER
+package openejb-examples-$VER && rm -r openejb-examples-$VER
+
+svn export http://svn.apache.org/repos/asf/openejb/tags/openejb-$VER openejb-$VER-src
+package openejb-$VER-src && rm -r openejb-$VER-src
+
+for archive in *.{zip,tar.gz}; do
+    echo $archive
+    shash md5 $archive
+    sign $archive
+done || fail "Unable to sign or hash release archives"
+)
+
+scp -r $VER  people.apache.org:public_html/stage/
+
+# Copy standalone assembly in
+
+ssh people.apache.org "cp ~/public_html/stage/repo/org/apache/openejb/openejb-standalone/$VER/openejb-standalone-$VER.{zip,tar.gz}{,.asc,.md5} ~/public_html/stage/$VER/"
+
+
+echo $VER | ssh people.apache.org 'read VER && for n in ~/public_html/stage/repo/org/apache/openejb/openejb-standalone/$VER/openejb-standalone-$VER.{zip,tar.gz}{,.asc,.md5}; do cp $n ~/public_html/stage/$VER/$(basename ${n/openejb-standalone-$VER/openejb-$VER}); done'
+
+# Copy tomcat webapp assembly in
+
+echo $VER | ssh people.apache.org 'read VER && for n in ~/public_html/stage/repo/org/apache/openejb/openejb-tomcat-webapp/$VER/openejb-tomcat-webapp-$VER.war{,.asc,.md5}; do cp $n ~/public_html/stage/$VER/$(basename ${n/-tomcat-webapp-$VER/}); done'
+{code}
+
+h1.  Release notes
+
+{code}
+#set( $rpc = $xmlrpc.connect("dblevins:xxxxx","http://issues.apache.org/jira/rpc/xmlrpc") )
+#set( $version = $rpc.getVersion("OPENEJB", "3.0") )
+#set ( $versionId = $version.id )
+#set ( $jira = $rss.fetch("http://issues.apache.org/jira/secure/IssueNavigator.jspa?view=rss&&pid=12310530&status=5&status=6&fixfor=${versionId}&tempMax=1000&reset=true&decorator=none") )
+#set( $issues = $jira.issues )
+
+Apache OpenEJB $version
+
+$date
+
+New Features:
+
+#foreach ( $issue in $issues.equals("type", "New Feature").descending("id") )
+  * [$issue.key] $issue.summary
+#end
+
+Improvements:
+
+#foreach ( $issue in $issues.equals("type", "Improvement") )
+  * [$issue.key] $issue.summary
+#end
+
+Bugs:
+
+#foreach ( $issue in $issues.equals("type", "Bug").sort("priority") )
+  * [$issue.key] $issue.summary
+#end
+
+Tasks & Sub-Tasks:
+
+#foreach ( $issue in $issues.equals("type", "Task").sort("summary") )
+  * [$issue.key] $issue.summary
+#end
+#foreach ( $issue in $issues.equals("type", "Sub-task").sort("summary") )
+  * [$issue.key] $issue.summary
+#end
+
+
+
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+Unimplemented Features, bugs, limitations
+
+#set ( $jira = $rss.fetch("http://issues.apache.org/jira/secure/IssueNavigator.jspa?view=rss&&pid=12310530&status=1&status=3&status=4&version=${versionId}&tempMax=1000&reset=true&decorator=none") )
+#set( $issues = $jira.issues )
+
+#foreach ( $issue in $issues.sort("priority") )
+  * [$issue.key] $issue.summary
+#end
+{code}
+
+
+h1.  README.html file
+
+some way to dynamically update this would be great.
+
+{code:html}
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML><HEAD><TITLE>Apache OpenEJB 3.0</TITLE>
+<META http-equiv=Content-Type content="text/html">
+</HEAD>
+<BODY>
+<P>
+<H3>Apache OpenEJB 3.0</H3>
+<P></P>
+
+<p>Packaging Details (or "What Should I Download?")
+  <ul>
+      <li>
+          OpenEJB Standlone Server:
+          <ul>
+              <li><a href="openejb-3.0.zip">openejb-3.0.zip</a></li>
+              <li><a href="openejb-3.0.tar.gz">openejb-3.0.tar.gz</a></li>
+          </ul>
+      </li>
+      <li>
+          OpenEJB for Tomcat 6 or Tomcat 5.5:
+          <ul>
+              <li><a href="openejb.war">openejb.war</a></li>
+          </ul>
+      </li>
+      <li>
+          EJB 3.0 and other examples:
+          <ul>
+              <li><a href="openejb-examples-3.0.zip">openejb-examples-3.0.zip</a></li>
+              <li><a href="openejb-examples-3.0.tar.gz">openejb-examples-3.0.tar.gz</a></li>
+          </ul>
+      </li>
+      <li>
+          Source:
+          <ul>
+              <li><a href="openejb-3.0-src.zip">openejb-3.0-src.zip</a></li>
+              <li><a href="openejb-3.0-src.tar.gz">openejb-3.0-src.tar.gz</a></li>
+          </ul>
+      </li>
+  </ul>
+</p>
+
+<P>Thank you for using <A href="http://openejb.apache.org/">OpenEJB</A>!.
+</P>
+<P><B>The Apache OpenEJB Project</B> <BR><A
+href="http://openejb.apache.org/">http://openejb.apache.org/</A> </P>
+<P>
+<P></P></BODY></HTML>
+{code}
+
+h1.  Publishing
+
+When all voting is done
+
+{code:none}
+mvn stage:copy -Dsource="http://people.apache.org/~dblevins/stage/repo/" \
+  -Dtarget="scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository" \
+  -DsourceRepositoryId=apache.staging \
+  -DtargetRepositoryId=apache.releases \
+  -Dversion=3.0
+{code}
+
+{code:none}
+[dblevins@minotaur ~/public_html/stage]$ mv 3.0 /www/www.apache.org/dist/openejb/
+{code}
\ No newline at end of file

Propchange: openejb/site/trunk/content/openejb-release-process.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/openejb-release-process.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/openejb-release-process.mdtext?rev=1144777&view=auto
==============================================================================
--- openejb/site/trunk/content/openejb-release-process.mdtext (added)
+++ openejb/site/trunk/content/openejb-release-process.mdtext Sun Jul 10 04:33:54 2011
@@ -0,0 +1,275 @@
+Title: OpenEJB Release Process
+{code:none}
+mvn release:prepare -Dusername=dblevins -Dassemble
+
+    
+    {code:none}
+    mvn release:perform -Dassemble -Dusername=dblevins
+-DaltDeploymentRepository=dblevins::default::scp://people.apache.org/x1/home/dblevins/public_html/stage
+-Dgpg.passphrase=xxxxx
+
+
+
+    mvn clean deploy -Prelease -Dassemble -Dusername=dblevins
+-DaltDeploymentRepository=dblevins::default::scp://people.apache.org/x1/home/dblevins/public_html/stage/repo
+-Dgpg.passphrase=xxxxx
+
+
+1. Create a copy of the trunk the branch will be based on.
+
+{code:none}
+svn copy -m "OpenEJB 3.0-beta-1 branch" \
+  https://svn.apache.org/repos/asf/openejb/trunk/openejb3 \
+  https://svn.apache.org/repos/asf/openejb/branches/3.0-beta-1
+
+    
+    h1.  Merging things from trunk to the branch
+    
+    While fixing issues in the branch and trunk in parallel it may happen that
+some changes in trunk have not been applied to the branch. Provided you're
+in the branch's directory the following command applies a change from the
+trunk  to the branch ({{{-c 575845}}} is the commit number with the fix and
+the url points to a repo the change is in).
+    
+    {code:none}
+    svn merge -c 575845 https://svn.apache.org/repos/asf/openejb/trunk/openejb3
+
+
+Here's a little script that can make merging easier
+
+
+    #!/bin/bash
+    
+    for n in $@; do
+      m=$(($n -1))
+      LOG=/tmp/svn-commit-r$n.log
+    
+      cat /dev/null > $LOG
+    
+      echo "Merging r$n - http://svn.apache.org/viewvc?rev=$n&view=rev" >> $LOG
+      echo "" >> $LOG
+      echo "svn merge -r $m:$n
+https://svn.apache.org/repos/asf/openejb/trunk/openejb3 ." >> $LOG
+      echo "" >> $LOG
+      svn log -r$n https://svn.apache.org/repos/asf/openejb/trunk/openejb3 >>
+$LOG
+    
+      svn merge -r $m:$n
+https://svn.apache.org/repos/asf/openejb/trunk/openejb3 .  &&
+      svn ci -F $LOG
+      echo "$n merged"
+    done
+
+
+<a name="OpenEJBReleaseProcess-Aggregationintoastage/3.xdirectory"></a>
+#  Aggregation into a stage/3.x directory
+
+
+    #!/bin/bash
+    
+    VER=3.0
+    
+    function package () {
+        SOURCE=$1; DEST=${2:-$SOURCE}
+        tar czf $DEST.tar.gz $SOURCE
+        zip -9rq $DEST.zip $SOURCE
+    }
+    function shash {
+        openssl $1 < $2 > $2.$1 ;
+    }
+    function sign {
+        archive=$1
+        gpg --armor --output $archive.asc --detach-sig $archive
+        gpg --verify $archive.asc $archive
+    }
+    
+    function fail () { echo $1 >&2; exit 1;}
+    
+    
+    mkdir $VER
+    (cd $VER
+    
+    svn export
+http://svn.apache.org/repos/asf/openejb/tags/openejb-$VER/examples
+openejb-examples-$VER
+    package openejb-examples-$VER && rm -r openejb-examples-$VER
+    
+    svn export http://svn.apache.org/repos/asf/openejb/tags/openejb-$VER
+openejb-$VER-src
+    package openejb-$VER-src && rm -r openejb-$VER-src
+    
+    for archive in *.{zip,tar.gz}; do
+        echo $archive
+        shash md5 $archive
+        sign $archive
+    done || fail "Unable to sign or hash release archives"
+    )
+    
+    scp -r $VER  people.apache.org:public_html/stage/
+    
+    # Copy standalone assembly in
+    
+    ssh people.apache.org "cp
+~/public_html/stage/repo/org/apache/openejb/openejb-standalone/$VER/openejb-standalone-$VER.{zip,tar.gz}{,.asc,.md5}
+~/public_html/stage/$VER/"
+    
+    
+    echo $VER | ssh people.apache.org 'read VER && for n in
+~/public_html/stage/repo/org/apache/openejb/openejb-standalone/$VER/openejb-standalone-$VER.{zip,tar.gz}{,.asc,.md5};
+do cp $n ~/public_html/stage/$VER/$(basename
+${n/openejb-standalone-$VER/openejb-$VER}); done'
+    
+    # Copy tomcat webapp assembly in
+    
+    echo $VER | ssh people.apache.org 'read VER && for n in
+~/public_html/stage/repo/org/apache/openejb/openejb-tomcat-webapp/$VER/openejb-tomcat-webapp-$VER.war{,.asc,.md5};
+do cp $n ~/public_html/stage/$VER/$(basename ${n/-tomcat-webapp-$VER/});
+done'
+
+
+<a name="OpenEJBReleaseProcess-Releasenotes"></a>
+#  Release notes
+
+
+    #set( $rpc =
+$xmlrpc.connect("dblevins:xxxxx","http://issues.apache.org/jira/rpc/xmlrpc")
+)
+    #set( $version = $rpc.getVersion("OPENEJB", "3.0") )
+    #set ( $versionId = $version.id )
+    #set ( $jira =
+$rss.fetch("http://issues.apache.org/jira/secure/IssueNavigator.jspa?view=rss&&pid=12310530&status=5&status=6&fixfor=${versionId}&tempMax=1000&reset=true&decorator=none")
+)
+    #set( $issues = $jira.issues )
+    
+    Apache OpenEJB $version
+    
+    $date
+    
+    New Features:
+    
+    #foreach ( $issue in $issues.equals("type", "New Feature").descending("id")
+)
+      * [$issue.key]
+ $issue.summary
+    #end
+    
+    Improvements:
+    
+    #foreach ( $issue in $issues.equals("type", "Improvement") )
+      * [$issue.key]
+ $issue.summary
+    #end
+    
+    Bugs:
+    
+    #foreach ( $issue in $issues.equals("type", "Bug").sort("priority") )
+      * [$issue.key]
+ $issue.summary
+    #end
+    
+    Tasks & Sub-Tasks:
+    
+    #foreach ( $issue in $issues.equals("type", "Task").sort("summary") )
+      * [$issue.key]
+ $issue.summary
+    #end
+    #foreach ( $issue in $issues.equals("type", "Sub-task").sort("summary") )
+      * [$issue.key]
+ $issue.summary
+    #end
+    
+    
+    
+     - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+    
+    Unimplemented Features, bugs, limitations
+    
+    #set ( $jira =
+$rss.fetch("http://issues.apache.org/jira/secure/IssueNavigator.jspa?view=rss&&pid=12310530&status=1&status=3&status=4&version=${versionId}&tempMax=1000&reset=true&decorator=none")
+)
+    #set( $issues = $jira.issues )
+    
+    #foreach ( $issue in $issues.sort("priority") )
+      * [$issue.key]
+ $issue.summary
+    #end
+
+
+
+<a name="OpenEJBReleaseProcess-README.htmlfile"></a>
+#  README.html file
+
+some way to dynamically update this would be great.
+
+{code:html}
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML><HEAD><TITLE>Apache OpenEJB 3.0</TITLE>
+<META http-equiv=Content-Type content="text/html">
+</HEAD>
+<BODY>
+<P>
+<H3>Apache OpenEJB 3.0</H3>
+<P></P>
+
+<p>Packaging Details (or "What Should I Download?")
+  <ul>
+      <li>
+	  OpenEJB Standlone Server:
+	  <ul>
+	      <li><a href="openejb-3.0.zip">openejb-3.0.zip</a></li>
+	      <li><a href="openejb-3.0.tar.gz">openejb-3.0.tar.gz</a></li>
+	  </ul>
+      </li>
+      <li>
+	  OpenEJB for Tomcat 6 or Tomcat 5.5:
+	  <ul>
+	      <li><a href="openejb.war">openejb.war</a></li>
+	  </ul>
+      </li>
+      <li>
+	  EJB 3.0 and other examples:
+	  <ul>
+	      <li><a
+href="openejb-examples-3.0.zip">openejb-examples-3.0.zip</a></li>
+	      <li><a
+href="openejb-examples-3.0.tar.gz">openejb-examples-3.0.tar.gz</a></li>
+	  </ul>
+      </li>
+      <li>
+	  Source:
+	  <ul>
+	      <li><a
+href="openejb-3.0-src.zip">openejb-3.0-src.zip</a></li>
+	      <li><a
+href="openejb-3.0-src.tar.gz">openejb-3.0-src.tar.gz</a></li>
+	  </ul>
+      </li>
+  </ul>
+</p>
+
+<P>Thank you for using <A href="http://openejb.apache.org/">OpenEJB</A>!.
+</P>
+<P><B>The Apache OpenEJB Project</B> <BR><A
+href="http://openejb.apache.org/">http://openejb.apache.org/</A> </P>
+<P>
+<P></P></BODY></HTML>
+
+    
+    h1.  Publishing
+    
+    When all voting is done
+    
+    {code:none}
+    mvn stage:copy -Dsource="http://people.apache.org/~dblevins/stage/repo/" \
+     
+-Dtarget="scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository"
+\
+      -DsourceRepositoryId=apache.staging \
+      -DtargetRepositoryId=apache.releases \
+      -Dversion=3.0
+
+
+{code:none}
+[dblevins@minotaur ~/public_html/stage](dblevins@minotaur-~/public_html/stage.html)
+$ mv 3.0 /www/www.apache.org/dist/openejb/
+