Upgrade your application to JBoss EJB 3.0 Proposed Final Draft (PFD)

Since July 2005, JBoss has release several release candidates (RCs) for EJB 3.0. They have became hugely popular and many JBoss users have even used EJB 3.0 in production systems (that includes JBoss's own JBoss Network and JBoss Labs production sites!). However, as any beta/preview technology, EJB 3.0 is still pretty much a work-in-progress with API changes between RC releases to reflect the latest specification updates. Fortunately, those API changes are typically minor and cosmitic (i.e., does not alter the underlying POJO application model). It is relatively easy to keep up with those changes.

We highly recommend you to keep your EJB 3.0 applications updated and run them under the latest EJB 3.0 framework release -- It not only helps to prepare your application ready for the final JBoss EJB 3.0 v1.0 release, but also enables you to take advantage of many performance enhancements and bug fixes. All our EJB 3.0 documentation and demos will be kept in sync with the latest framework release.

In this document, we will cover how to upgrade your existing EJB 3.0 applications to conform with the EJB 3.0 Final Proposed Draft specification. We do not want to overwhelm you with minor changes that may or may not affect your application. Instead, we will primarily cover the relatively significant changes that affects most applications, and then point you to relevant parts of the documentation and the specification itself for finer details.

A little background

In this document, we will cover EJB 3.0 specifications and their JBoss implementation modules released after 2005. They are:


A very good resource to find out detailed API changes is the EJB 3.0 specification itself. At the end of the specification, there are a few pages of changelog that records the changes between specification releases.

If you use EJB 3.0 session beans and message driven beans

If you are migrating from the Public Review specification (JBoss EJB 3.0 RC3):


If you are migrating from the EDR2 specification (JBoss EJB 3.0 Beta1/RC1/RC2):


If you use EJB 3.0 entity beans