Stack Version Comparison
There currently are several versions of the LDS Java Stack available for use. This document will give you information about each version and help you decide which version you should use.
The Stack 2.1.x line has been used in production for several years now and is quite stable. Stack 2.1.x will continue to be supported indefinitely, but teams starting new projects should look at Stack 2.2 or 3.0 unless they must deploy to WebSphere 6.1, in which case, Stack 2.1 is the only option.
Stack 2.2 is currently under development and is being used by several projects. It allows projects to choose between Spring MVC and JSF for the view technology. Stack 2.2 supports WebSphere 7. Stack 2.2 was created to upgrade several significant libraries in a backwards compatible way.
Stack 3 has many of the same features as Stack 2.2, but has a more modular architecture. Stack 3 added GWT support and dropped support for JSF. It runs on both Tomcat and WebSphere, however, it requires you to develop on the same platform you are deploying on (see Tomcat and WebSphere comparison). Stack 3 is far simpler to use, configure, customize, and debug than Stack 2.x applications.
S = Supported
X = Not Supported
|Feature||Stack 2.1.x||Stack 2.2||Stack 2.3||Stack 3.0, Tomcat||Stack 3.0, WAS||Stack 3.1 Tomcat & WAS||Stack 3.2|
|Deployment - WebSphere 6.1||S||X||X||X||X||X||X|
|Deployment - WebSphere 7||S||S||S||X||S||S||X|
|Deployment - Tomcat 6||X||X||X||S||X||S||X|
|Deployment - Tomcat 7||X||X||X||X||X||X||S|
|Development - WebSphere 7||X||X||X||X||S||S||X|
|Development - Tomcat 5.5||S||X||X||X||X||X||X|
|Development - Tomcat 6||X||S||S||S||X||S||X|
|Development - Tomcat 7||X||X||X||X||X||X||S|
|Full Stack Team Support||S||S||S||S||S||S||S|
|Spring Security Version||Acegi 1.0.7||Acegi 1.0.7||Acegi 1.0.7||3.0.x||3.0.x||3.0.x||3.1.x|
|JDK Version||Java 5||Java 6||Java 6||Java 6||Java 6||Java 6||Java 7|
|Documentation/Download||Stack 2.1||Stack 2.2||Stack 2.3||Stack 3.0||Stack 3.0||Stack 3.1||Stack 3.2|
Which version should I choose?
If you are starting a new project, there are a few issues to consider when deciding which version of the stack to use:
1) What is my deployment environment?
The only case where you would want to use Stack 2.1, for a new project, would be if you only had WebSphere 6.1 as an option for deployment. If your target is WebSphere 7, then Stack 3 and Stack 2.2 are possibilities. If your project wants to use Tomcat (note: Tomcat isn't approved for production use at this time), then Stack 3 is the only option.
If you are unsure as to which deployment environment you should use, our Tomcat and WebSphere comparison page has some helpful information.
2) What technologies do I want to use?
Spring MVC and GWT can be used with Stack 3 or Stack 2.2. JSF, on the other hand, requires the use of Stack 2.2.
3) Future considerations
Stack 2.1 will mostly receive bug fixes and minor library upgrades - significant new features may not be back-ported to 2.1.
Stack 2.2 will get some new features back-ported to it from Stack 3, in addition to bug fixes and library upgrades. Stack 2.2 will eventually be deprecated for new projects in favor of Stack 3. This will most likely happen once Tomcat becomes more mature as an enterprise deployment solution since the only reason to use Stack 2.2 over Stack 3 for new projects is the requirement to develop in WebSphere if you're deploying to WebSphere.
Stack 3 will be the most future-proof version of the stack and will receive new features, library upgrades, and bug fixes.
It is sometimes beneficial to upgrade a project at some point to allow it to take advantage of features available only in newer versions of the Stack. Contact a member of the Java Stack team to discuss upgrading. The following are the possible upgrade paths:
1) Stack 2.1.x to Stack 2.2
This is possible and relatively easy. An upgrade guide is available. Upgrading will probably take about 1 day and will require a full retest of your application. It is recommended for Stack 2.1 applications in active development to schedule an upgrade to Stack 2.2. This will help enable the Stack team to more easily continue supporting the application.
2) Stack 2.1.x to Stack 3
This is generally not possible due to the drastic difference in view technologies (Stack 2.1.x uses JSF, which is not available in Stack 3). Such an upgrade would require a rewrite of the view layer.
3) Stack 2.2 to Stack 3
This is possible, if the Stack 2.2 project is not using JSF. A Stack 2.2 project using JSF would require a rewrite of the view layer to work with Stack 3. If JSF is not being used then you can expect an upgrade to take several days and require a complete retest of your application. No upgrade guide is available to move from Stack 2.x to Stack 3.x. Consult a member of the Stack team if you have additional questions about this upgrade path.