| Title: OpenEJB 1.0 |
| * Release Date: February 26th, 2006 |
| * EJB 1.1 support |
| * EJB 2.0 Local Interface support |
| |
| <a name="OpenEJB1.0-Download"></a> |
| # Download |
| |
| * Binary: openejb-1.0 \{[zip](http://dist.codehaus.org/openejb/distributions/openejb-1.0.zip) |
| , [tar.gz|http://dist.codehaus.org/openejb/distributions/openejb-1.0.tar.gz] |
| \} |
| * Source: openejb-1.0-src \{[zip](http://dist.codehaus.org/openejb/distributions/openejb-1.0-src.zip) |
| , [tar.gz|http://dist.codehaus.org/openejb/distributions/openejb-1.0-src.tar.gz] |
| \} |
| |
| <a name="OpenEJB1.0-TestedOn"></a> |
| # Tested On |
| |
| <table> |
| <tr><th> </th><th> Windows XP (JDK 1.4) </th><th> Windows XP (JDK 1.5) </th><th> Linux (JDK 1.4) </th><th> |
| Linux (JDK 1.5) </th><th> Mac OSX (JDK 1.4) </th><th> Mac OSX (JDK 1.5) </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 4.1.x (Global Mode)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr> |
| <tr><td> Tomcat 4.1.x (Webapp Mode)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr> |
| <tr><td> Tomcat 5.0.x (Global Mode)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr> |
| <tr><td> Tomcat 5.0.x (Webapp Mode)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr> |
| <tr><td> Tomcat 5.5.x (Global Mode)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td><td>(/)</td></tr> |
| <tr><td> Tomcat 5.5.x (Webapp Mode)</td><td> </td><td>(/) </td><td> </td><td>(/)</td><td> </td><td>(/)</td></tr> |
| </table> |
| |
| <a name="OpenEJB1.0-NewFeatures"></a> |
| # New Features |
| |
| <a name="OpenEJB1.0-RemoteServersupportsEJBinvocationsoverHTTP"></a> |
| ## Remote Server supports EJB invocations over HTTP |
| |
| Having a hard time with those pesky firewalls? Our Remote Server now has |
| it's own HTTP front end which supports a stripped-down version of HTTP |
| specifically for supporting our EJB protocol. Remote invocations from EJB |
| Clients can now be layered over HTTP and serviced by our standalone EJB |
| Server. |
| |
| <a name="OpenEJB1.0-TomcatIntegrationsupportsRemoteEJBClients"></a> |
| ## Tomcat Integration supports Remote EJB Clients |
| |
| No extra ports necesarry. Simply point your EJB client to the URL of the |
| LoaderSerlvet and go! All HTTP requests to the LoaderServlet will be sent |
| into the embedded OpenEJB container. Combine this with the [Collapsed EAR](collapsed-ear.html) |
| approach to embedding OpenEJB and you get a single webapp containing it's |
| own private EJBs and OpenEJB container which can now support it's own |
| remote java clients as well as web browsers. Or combine this with |
| traditional style of embedding OpenEJB into the root of Tomcat at a global |
| level and turn your Tomcat server into a no holds-barred EJB server. If |
| you want no remoting at all, simply remove the LoaderServet's |
| serlvet-mapping and the door is closed. |
| |
| <a name="OpenEJB1.0-Bettercommandlinesupport"></a> |
| ## Better command line support |
| |
| OpenEJB and it's tools can now be executed via an executable jar. Simply |
| 'java -jar openejb-core-1.0.jar start' and the server will start. Or 'java |
| -jar openejb-core-1.0.jar deploy' to deploy an EJB application. This makes |
| it far easier to use OpenEJB in scripts and third party tools like IDEs. |
| You can even add your own custom commands to the command line via any class |
| with a static main method and a properties file in the classpath at |
| META-INF/org.openejb.cli/mycommand. |
| |
| <a name="OpenEJB1.0-Xinet.dstyleprotocolconfiguration"></a> |
| ## Xinet.d style protocol configuration |
| |
| Protocols in OpenEJB are a pluggable, snap-in, style concept. Anything |
| that consumes data on a socket is wrapped with a standard set of xinet.d |
| like services for ip and port management, connection pooling, host-based |
| authorization and more. Want to disable a protocol and prevent it from |
| starting? Want to change it's port? Want to limit the max number of |
| concurrent connections or restrict access to clients on specific IP |
| addresses? Just crack open that protocol's properties files and edit away. |
| |
| <a name="OpenEJB1.0-EJB2.0Localinterfacesupport"></a> |
| ## 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. |
| |
| <a name="OpenEJB1.0-CollapsedEARsupport"></a> |
| ## Collapsed EAR support |
| |
| [Collapsed EAR](collapsed-ear.html) |
| 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](http://demo1.openejb.org/moviefun) |
| |
| (visit [http://demo1.openejb.org/moviefun/setup.jsp](http://demo1.openejb.org/moviefun/setup.jsp) |
| to reset) |
| |
| <a name="OpenEJB1.0-UnpackedEJBJarsupport"></a> |
| ## 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: |
| |
| /home/jsmith/myejbapp/META-INF/ejb-jar.xml |
| |
| Simply add a Deployments declaration to the openejb.conf like the |
| following: |
| |
| <Deployment dir="/home/jsmith/myejbapp" /> |
| |
| <a name="OpenEJB1.0-AutoDeployforSimpleApps"></a> |
| ## 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. |
| |
| <a name="OpenEJB1.0-MacOSXUsers"></a> |
| ## 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. |
| |
| |
| <a name="OpenEJB1.0-UpgradeNotes"></a> |
| # Upgrade Notes |
| |
| <a name="OpenEJB1.0-CMPconfigchange"></a> |
| ## 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: |
| |
| <database name="Global_TX_Database" engine="instantdb"> |
| <jndi name="java:comp/env/jdbc/basic/entityDatabase" /> |
| <mapping href="conf/default.cmp_mapping.xml" /> |
| </database> |
| |
| |
| 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. |
| |
| <database name="Global_TX_Database" engine="instantdb"> |
| <jndi name="java:openejb/connector/Default JDBC Database" /> |
| <mapping href="conf/default.cmp_mapping.xml" /> |
| </database> |
| |
| |
| 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. |
| |
| <a name="OpenEJB1.0-Changelog"></a> |
| # Changelog |
| |
| <a name="OpenEJB1.0-1.0"></a> |
| ## 1.0 |
| |
| {jiraissues:url=http://jira.codehaus.org/secure/IssueNavigator.jspa?view=rss&pid=10401&fixfor=10421&sorter/field=issuekey&sorter/order=DESC&reset=true&decorator=none|columns=key,summary} |
| |
| <a name="OpenEJB1.0-1.0Beta1"></a> |
| ## 1.0 Beta 1 |
| |
| {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} |
| |