Version 3

    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:

    • TCK 100%


    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.


    General Rules


    Time boxing

    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.



    1. Always refer to an EJBTHREE issue in a commit message.

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