Tomcat 7 Debuts for Java

The open source Apache Tomcat Java server is among the most popular ways of deploying Java applications, and significant updates have been few and far between. Now, however, four years after its last major release, the Apache Tomcat project this week introduced Apache Tomcat 7, ushering in a number of enhancements.

The open source Tomcat 7 Java app server leverages some of the new JavaEE 6 specifications formally ratified at the end of 2009. In addition, new performance and security features are also baked into Tomcat 7, and its developers say the server is intended to provide an easy migration path for Java applications that already run on Tomcat 5.5 and 6.x.

Still, Tomcat users might want to wait a bit before they choose to migrate.

"The release announced this week was Apache Tomcat 7.0.0 -- it was the first release of the Tomcat 7 branch," Mark Thomas, a member of Apache Tomcat's project management committee, told InternetNews.com. However, "the Tomcat developers voted to grade it 'beta.' ...While it passed all the compatibility tests and our own unit tests, we recognized that with the number of new features and the refactoring that had been performed, there was a reasonable chance that there would be some regressions that would make it unsuitable for production use in most cases at this stage."

Thomas also said that Tomcat 7.0 won't be considered "stable" until its developers get a handle on the volume and severity of bugs reported after this week's launch. He added that the Apache Tomcat project's formal definition of "stable" is that a release may only contain a small number of relatively minor bugs, and that Apache Tomcat stable releases are intended for production use, running for extended periods of time.

"It is always going to be a judgment call. Major Tomcat releases typically take 6 to 12 months to reach stability," Thomas said. "My intention as the current Tomcat 7 release manager is to produce Tomcat 7 releases more frequently with the effect -- hopefully -- of enabling Tomcat 7 to reach stability sooner."

Apache Tomcat 7 enhancements

In terms of new features supported in Tomcat 7, Thomas noted that Tomcat now implements Servlet 3.0, JavaServer Pages 2.2 and Expression Language 2.2 from the JavaEE 6 specifications. He added, however, that the specifications supported in Tomcat 7 represent only a subset of the full set of the JavaEE 6 specifications.

"Tomcat has always implemented this specific sub-set of the JavaEE specifications," Thomas said. "Another Apache project, Apache Geronimo, implements the full JavaEE specification and uses Tomcat as part of their solution."

The fact that Tomcat in the past has not implemented the full JavaEE specification has helped to give it the reputation for being a lightweight Java app server, a status that has won it some amount of commercial appeal: Vendors including SpringSource and MuleSoft provide commercial versions of Tomcat that compete against full-scale JavaEE app servers.

In addition to introducing some new JavaEE 6 specification support, Tomcat 7 takes aim at performance with a new feature to detect and prevent Web application memory leaks.

"The intention of the new functionality is to protect developers from unexpected side effects of using some standard Java APIs that will trigger Web application memory leaks, and to detect application coding errors that can cause memory leaks," Thomas said. "Detailed information on application errors are reported in the logs when an application is reloaded. Administrators may also query if any applications caused issues as a result of a reload via the manager application or via JMX (Java Management Extensions)."