adopting EE6 and CDI in a corporate enterprise
asookazian Dec 29, 2009 8:27 AMI have been elected to the architecture/standards committee here at Intuit. We are currently using a variety of EE5 app servers (e.g. Glassfish, JBoss, Websphere) and Spring 2.x and Seam 2.x in our development stack. There is supposedly a movement to standardize towards Spring 2.x or perhaps 3. Being a devoted follower of JBoss and Seam, I would like to see us standardize with CDI and the rest of the EE6 web profile rather than Spring 2.x or 3.
Is there a list of items that would be useful (technical or non-technical) in proving the merits of adopting EE6 over Spring?
It seems to me that Spring 3 has hand-picked the handful of EE6 JSRs that it finds useful in their application stack, namely Bean Validation, JPA 2.0 and JSF 2.0. There are a lot of similarities in the EE6 web profile and Spring.
One main advantage that Spring has is that it can run in J2EE 1.4 or JEE 5 servers (or even servlet containers like Tomcat). With EE6 platform, the enterprise must literally upgrade their EE5 servers, which is a hindrance to adoption (i.e. barrier to entry) IMO for various reasons.
Well, Spring is usually deployed as part of the application, e.g. in WEB-INF/lib. Updating Spring is just a matter of updating an isolated application's libraries, without affecting other applications running on the same server, and without affecting the server itself.
So for example, Spring 3.0 can be deployed on existing WebSphere 6.1/7.0 installations today. Upgrading the server would be a huge and costly affair there - and it's in control of the data center ops team, not in the application development team's hands - whereas upgrading the application's Spring version often doesn't even require a permission by the ops team to begin with (since it by definition only affects that very application anyway, hidden inside its deployment unit black box).
That aside, for WebSphere concretely, there is of course no Java EE 6 version available and won't be any time soon. I think it's fair to say that WebSphere-based data centers won't see Java EE 6 in production before 2012. But not to beat WebSphere here: JBoss 6.0 is at M1 only, and Java EE 6 in the WebLogic world isn't around the corner either. I think it's a pretty big deal that Spring 3.0 can bring such features to the enterprise world today, in production, on existing servers.
http://www.infoq.com/news/2009/12/spring30#view_51491
Also, if EE6 offered a 100% incremental hot deployment solution for any and all components (e.g., EJB 3.1 components as well), then EE6 would have an advantage in terms of dev/test productivity. I know, it's supposedly a JVM limitation but it would be very nice...