EJB 3 Q1 2009
This document outlines the strategy and direction of EJB 3 for 2009 quarter 1 (and beyond).
All of the previously outlined strategy still aplies (EJB3Q42007), so I won't repeat those parts here.
Before stepping into here keep in mind: think big, take small steps. It's better to have a small well tested component, than something large unwieldy.
Which immediately makes ejb3-core spring to mind. It's large, mostly untested (via unit tests) and has wicked dependencies. The breakout of ejb3-core out of AS is a success. By being in control of our own code and tests we managed to bring JBoss EJB3 to a state were it is releasable. The next step is to further clean up ejb3-core so it becomes a proper component.
Cache / Pool
Part of that cleanup is the usage of ejb3-cache (/ clustered-cache) and ejb3-pool. While not a true must have, we should at least move towards a position were proper integration can take place.
For example configuration of the cache and pool objects have been left out of scope until so far. This time round we can build deployers which will create the appropriate cache/pool object from meta data and attach it into a certain scope. The container can then pick it up with a @Search or @Inject annotation.
It would be nice if the injection component could be integrated with core. Also it would be better if it used the MC injection facilities. Both of these are nice to haves and one must dream.
Other steps that need to be taking is adding functionality.
Instead of weaving functionality into an existing component, layer functionality on top of existing components. This allows existing components to not only remain backwards compatible, but effectively stay in their tested state.
In some cases this might not be possible without changing the existing component. There we should create extension points which are backwards compatible or even create new tree of components.
For JBoss Enterprise Application Platform 5 every component we have must reach GA level. In short that means it must behave predictably and be maintainable.
With the passing of all testsuites the predictability has been proven, but at the cost of maintainability. The component layout is becoming more complex and the release tools/procedures are not accommodating us.
We need an alpha implementation of EJB 3.1. For this reason we'll create a new component: profile3_1. The goal of this component is to provide an EJB 3.1 profile configuration for use in JBoss Reloaded. Since Profile Service isn't ready yet, we'll use JBoss Bootstrap and 1 hard-coded bootstrap for starters.
Rules are meant to be broken, but the reason better be real good.