EJB 3 Q3 2007
This document outlines the strategy and direction of EJB 3 for 2007 quarter 3 (and beyond).
Short Sighted Approach
We can take a very short term approach and just state the following goal:
But what are going the get then? An implementation which is certified, but not usable in the field.
Long Sighted Approach
Currently there is one major gripe: the code sucks.
What we need is an implementation which is easily maintainable, robust and fast.
Better Object Oriented Programming
More precondition checks, either with assertion or IllegalArgumentException
More checks on invariants (keep an eye on the state), so we know what is available when in classes.
Separation of Concern / Better OO Design
How do we use our meta-model? For example ResourceHandler uses both XML and annotations. We should structure a flow of data where one dataset leads to one other dataset and not use a mix and match. See also InterceptorFactory (EJBTHREE-896).
Better match up between the code and the specifications. For example an InjectionContainer shouldn't resolve references, this is a function of a JavaEE module.
Component Based Development
We need to stop building stuff for the monolithic JBoss Application Server and start making components which are reusable (at least in AS 4.2, 5.0 and Embedded). The components must also be ready to be brewed into goji berry juice, so everything must be build with Maven2.
I can put here a nice picture, but this is still a gray area.
As a development process we'll start to use time boxing.
Dynamic System Development Method (Registration required) has a good read. It outlines a very usable process of time boxing.
What it doesn't cover is the time-cost-scope triangle. For that one I love to recommend our competitor's Microsoft Solution Framework Process Model.
For this to work every issue in JIRA has to be estimated. Just make a rough guess and calculate some slack within that guess.
As of yet we haven't got an official schedule.
Always refer to an EJBTHREE issue in a commit message.
Branch_4_2 is frozen. It must remain backwards compatible, so do not change any unit tests, only add new ones. How we will do another EJB 3 release for AS 4.2 is not yet known.
Rules are meant to be broken, but the reason better be real good.