
* Release Date: August 28th, 2005

h1. Download

* Binary: openejb-1.0-beta1 \{[zip|http://openejb.codehaus.org/dist/openejb-1.0-beta1.zip] , [tar.gz|http://openejb.codehaus.org/dist/openejb-1.0-beta1.tar.gz]\}
* Source: openejb-1.0-beta1-src \{[zip|http://openejb.codehaus.org/dist/openejb-1.0-beta1-src.zip] , [tar.gz|http://openejb.codehaus.org/dist/openejb-1.0-beta1-src.tar.gz] , [browse|http://cvs.codehaus.org/viewrep/~tag=v1_0beta1/openejb/openejb1]\}
* Updated [ejb-testing-examples.zip|http://www.openejb.org/1.0-beta1/ejb-testing-examples.zip] for the [Container Driven Testing Series|http://www.theserverside.com/articles/article.tss?l=ContainerDrivenTestingSeries] on TheServerSide.com

{warning:title=Windows Users}
Use the Latest Unstable, this release will not work for windows users
{warning}

h1. New Features

h2. EJB 2.0 Local interface support

  OpenEJB now has support for EJB 2.0 Local Interfaces.  This is very nice for when OpenEJB is combined with Tomcat  or embedded in another application where Remote interfaces  are not always needed.  See the "Moviefun" example in the  source or binary distributions for how to use them.  Note that no other EJB 2.0 features (such as CMP 2 or MDBs)
  are supported in the OpenEJB 1.x codebase.

h2. Collapsed EAR support

  [Collapsed EAR]s are an OpenEJB invention allowing you to  combine your ejbs and servlets in the same archive and  classloader.  This is essentially a new way to embed OpenEJB  into Tomcat so that OpenEJB and your EJBs are loaded only  into your webapp.  Combine this with an embedded database  and you have a complete mini-J2EE environment that can be  hosted in your Tomcat webapp space.

  See the "Moviefun" example in the distribution which will  be online for a short while here:

  [http://demo1.openejb.org/moviefun]

  (visit [http://demo1.openejb.org/moviefun/setup.jsp] to reset)

h2. Unpacked EJB Jar support

  It is now possible to deploy and run EJB apps that are not  in a *.jar archive.  For example, for ejb app located at:

    bq. /home/jsmith/myejbapp/META-INF/ejb-jar.xml

  Simply add a Deployments declaration to the openejb.conf  like the following:

    bq. <Deployment dir="/home/jsmith/myejbapp" />

h2. Auto Deploy for Simple Apps

  In OpenEJB 1.0 beta1, the use of openejb-jar.xml is not  required for ejb-jar.xml files that do not contain CMP  EntityBeans or ejbs with multiple datasource references.

h2. Mac OSX Users

The speed of the Remote Server has been improved tremendously  to compensate for differing default parameters for TCP Socket  creation and closing in the Mac OSX Java VM.  This makes sequential  calls from a Remote Client to the Server several times faster.


h1. Upgrade Notes

h2. CMP config change

In 0.9.2 and before, the JDO database was using the private JNDI namespace of the very first CMP accessed to grab a datasource and hold onto it for use on all requests into the CMP container.  This was configured with something like this:

{code:xml|title=cmp.global_database.xml}
   <database name="Global_TX_Database" engine="instantdb">
       <jndi name="java:comp/env/jdbc/basic/entityDatabase" />
       <mapping href="conf/default.cmp_mapping.xml" />
   </database>
{code}

This was just wrong.  We've switched it so that the "jndi" tag of a Castor database.xml file can be set directly to the global JNDI name of a Connector element declared in an openejb.conf file.  

{code:xml|title=cmp.global_database.xml}
   <database name="Global_TX_Database" engine="instantdb">
       <jndi name="java:openejb/connector/Default JDBC Database" />
       <mapping href="conf/default.cmp_mapping.xml" />
   </database>
{code}

This is still not so optimal as we do not want to people using OpenEJB's internal jndi and encourage people to become dependent on it.  Newer releases of Castor allow for a completely programmatic way to configure a JDO database.  In future releases, these global and local database files will go away all together!  You will only need to specify your mapping.xml and will be able to pack it in your ejb jar.

h2.  ClassLoader change

In 0.9.2 all EJBs were added to the same classloader as the Containers, Server and all the other EJBs.  In 1.0 beta1, all the EJBs are still in the same classloader, but one that is a child of the  Container and Server.  The code to keep each EJB jar in it's own classloader does exist, but limitations in the way we configure the CMP container with Castor prevent us from using it.  When the CMP change made above is fixed, we will support separate classloaders for each EJB jar as an option.

h1. Changelog

{jiraissues:url=http://jira.codehaus.org/secure/IssueNavigator.jspa?view=rss&pid=10401&fixfor=11983&sorter/field=issuekey&sorter/order=DESC&reset=true&decorator=none|columns=key,summary}
