Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin
  • Release Date: September 29th, 2007
  • EJB 3.0 support
  • EJB 2.1 support
  • EJB 2.0 support
  • EJB 1.1 support

Download

OpenEJB Standlone Server

OpenEJB for Tomcat

EJB 3.0 and other examples (source included)

Source Code

Tested On

 

Windows XP
(Sun JDK 1.5)

Windows XP
(Sun JDK 1.6)

Linux
(Sun JDK 1.5)

Mac OSX
(Apple JDK 1.5)

Mac OSX
(Apple JDK 1.6)

Embedded

(tick)(tick)(tick)(tick)(tick)

Standalone

(tick)(tick)(tick)(tick)(tick)

Tomcat 6.0.14

(tick)(tick)(tick)(tick)(tick)

Tomcat 6.x 0.13

(tick)(tick)(tick)(tick)(tick)

Tomcat 6.0.10

(tick)(tick)(tick)(tick)(tick)

Tomcat 6.0.9

(tick)(tick)(tick)(tick)(tick)

New Features

EJB 3.0

OpenEJB 3.0 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
  • Intercpetors
  • Java Persistence API
  • Service Locator (ala SessionContext.lookup)
  • POJO-style beans

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:

  • Web Services (JAX-WS, JAX-RPC)
  • CORBA

JAX-WS and CORBA support will be added in future releases. Support for the JAX-RPC API is not a planned feature.

EJB Plugin for Tomcat 6

OpenEJB 3.0 can be plugged into any Tomcat 6 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.

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.

...

OpenEJB 3.0 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 and more.

...

...

The META-INF/env-entries.properties

...

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.

...

...

Support for GlassFish descriptors

...

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.

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 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.

Changelog

...