Tuesday, May 4, 2010
Java EE 5 or 6 - which to choose today
I was asked this frequently since the new specification came out. And I always find it difficult to answer. Today I will try to summarize my thoughts on this and post a decision helper for you to find your own answers.
Java EE 6 is out since December 2009. Up to now the GlassFish Server Open Source Edition 3 is available as the reference implementation. The Oracle GlassFish Server 3 offers a supported distribution. The Other vendors are missing support for Java EE 6. You may rest assured that first vendors come out with complying versions earliest in Q4/10. Some milestone builds for first servers are already out there (e.g. JBoss). You also can find implementations of separate specifications (JSF 2.0, JPA 2.0) but most of them miss commercial vendors support in current Java EE 5 servers up to now.
The basic decision
The basic decision you have to make ist, whether you are going to give the current GlassFish v3 a timely try or not. This seems easy at first. But if you try to make this decision from an enterprise point of view you have to keep some things in mind. This is what the following flowchart is trying to demonstrate. You basically have three options:
- Stick to Java EE 5 on whatever platform or server you are using
- Use Java EE 6 with one of the GlassFish 3 distributions
- Develop for Java EE 6 with GlassFish 3 and switch to your vendors distribution later
Things misfiting the chart
Of course, this is a simple black and white approach. As usual there are some greys in it, too. If you already are a "GlassFish company" this is much simpler, as the chart indicates. You probably even would stick to the version 3 if you need (some kind of) clustering or failover.
- and if you are running JBoss you could think about using the latest milestone builds.
- and you can also give the recently released WebLogic Server 10.3.3.0 a try if you are only interested in JSF 2.0.
- and you can try to use EclipseLink 2.0 or Hibernate 3.5 for JPA 2.0 support
- and you could decide that it's worth doing some educational projects to skill up your developers
- and ... and ... and
Your development project and the future
Nothing prevents you from thinking about the future of your development project. But you should keep in mind, that it is always some kind of risk, if you mix development and productive platforms. If you are striving for a GlassFish 3 development environment and planning to run on any other vendor's server, you should respect this in your plans. The most safe way here could come true for the interaction between GlassFish and Oracle WebLogic. Not knowing in detail what the future holds for both but I am still expecting some kind of utilities that support transition from one to the other.
Links and readings
JBoss AS 6.0.0.M3