The first decision to be made is your organization's attitude towards specification and language versions. Is it important to use the latest J2EE and J2SE features? This is a tradeoff between enhanced feature sets and proven functionality. Decisive factors will include:
The nature of the app
A minority of apps may benefit so much from the latest J2SE and J2EE features that there is little alternative to using them.
Version choice will both influence and be influenced by the choice of app server. New server and specification releases are likely during the lifecycle of large projects. It's also important to decide whether to upgrade when this happens. If the new release is a bug fix or point release, it may be a worthwhile and inexpensive undertaking. If it's a major upgrade, think carefully before committing, as there may be many implications, such as different tool requirements, new server bugs, and different support requirements. It's difficult to keep up with a moving target, and J2EE is still moving rapidly.
Important |
To minimize risk, steer clear of new, unproven technologies, even if they seem attractive. One safe policy is to target the versions of the J2SE and J2EE specifications that are supported by the mainstream app server vendors at project inception, although some projects may need to take future server release schedules into account. |