With the upcoming version of the Java EE standard itself supporting modularity, one-size-fits-all application servers seem to be a thing of the past. Sun's GlassFish 3.0, for example, available in an early version, is built around a small micro-kernel, allowing easy deployment of just the features needed for an enterprise application, and SpringSource's recent Application Platform provides component-based deployment via OSGi.
IBM recently updated its WebSphere 2.1 Community Edition, a free version of the company Java EE 5 server built on open-source technologies, such as Apache Geronimo and Tomcat. The new version allows component-based deployment to be performed at runtime. This benefits environments where shutting down the server while deploying a new Java EE application is not a practical option. In a recent IBM developerWorks article, What’s new in WebSphere Application Server Community Edition V2.1, Ashish Jain describes this feature:
The default download of Community Edition is a fully compliant Java EE5-certified server assembly... [Community Edition] provides a plug-in architecture where servers are assembled completely out of the plug-ins... Every module in Community Edition is a plug-in, and each plug-in has associated dependencies...
Depending on your business requirements you may not need a complete server but just require a part of it. For example if your application comprises only the Web tier, you might only need Tomcat and exclude the other modules like OpenEJB, Active MQ etc. Previously extracting a custom server was a build-time operation, but with Community Edition V2.1 you can get a a customized snapshot of the existing server during runtime.
Jain explains that such custom assemblies can be built based on functional requirements, or the requirements of a specific application. Application dependencies can easily be determined via a Depency Viewer portlet that's part of the app server itself. The server also includes a new deployment planner wizard that examines an existing WAR file and suggests the most effective deployment plan based on the WAR's contents, assembling the required components for the application.
In addition to making it easy to create custom server assemblies, WebSphere 2.1 also comes with an improved version of the Geronimo GShell, a command line-based admin console, and a set of expert views into the server's performance.
Which of the latest-generation Java EE servers do you prefer?