This blog updates the roadmap for jetty-6, jetty-7 and jetty-8 with the latest plans resulting from the move to the Eclipse Foundation and the delay in the servlet-3.0 specification. Previously it was intended that jetty-7 was going to be servlet-3.0, but with the move to eclipse and with the delay of JSR-315, it was decided to delay servlet 3.0 to Jetty-8 later in this year. Thus the current active branches of jetty are:
The current stable branch is jetty-6 for servlet-2.5 and java-1.4 (some modules are 1.5). It is in the org.mortbay.* package space and is licensed under the apache 2.0 license. However, it is now mostly in maintenance mode and new features will not be added to jetty-6 unless there is compelling reasons to do so. It includes support for both HTTP server and client and comes bundled with a cometd server.
Jetty-6 is the release for established, production-ready projects.
The current development branch is jetty-7 for servlet-2.5 and java-1.5. It is in the org.eclipse.jetty.* package space and is licensed under both the apache 2.0 and eclipse 1.0 licenses and may be distributed under the terms of either license. Jetty-7 represents a moderate refactor of the jetty code base:
- Moved to the org.eclipse.jetty packages
- Remodularized so that dependencies for client, server and servlet container are more separable
- Updated architecture to anticipate the needs of servlet-3.0
- Support for some servlet-3.0 features, including
- asynchronous servlets (updated continuations)
- META-INF/resource static content in jars
- Improved OSGi integration and availability of OSGi bundles as well as maven artefacts
The intent of jetty-7 is to allow users to transition to the updated architecture and to access some servlet-3.0 features, within a servlet 2.5 container and without the need to update java 1.6 or to wait for the final specification later this year. There are milestone builds of jetty-7 available already and we hope to have an official eclipse release in the next month or two.
The cometd client and server are now in the cometd.org project and are built against jetty-7. Some jetty integrations (eg jetty-maven-plugin, terracotta, wadi, etc) and distributions (eg. deb, rpm, hightide) will remain at codehaus and are now built from codehaus trunk.
Jetty-7 is the release for projects starting development now.
The current experimental branch is jetty-8 for servlet-3.0 and java-1.5. It is in the org.eclipse.jetty.* package space and is licensed under both the apache 2.0 and eclipse 1.0 licenses and may be distributed under the terms of either license. Jetty-8 is being kept in lock-step with jetty-7 as much as possible, so that it represents essentially the same server, but rebuilt with java-1.6 and using the standard servlet-3.0 to access the features already available in jetty-7.
Jetty-8 is the branch for people who wish to experiment with the emerging APIs now.
If you want more information about what exactly are these jetty and servlet-3.0 features, why not come to JavaOne 2009?! Webtide will be have a small booth in the expo (where you will mostly find me) and Sun have invited me to participate in their technical session on Servlet 3.0 at JavaOne, together with Rajiv Mordani and Jan Leuhe. I'll be presenting a section on the Asynchronous Servlets API and giving a demonstration that uses some ease-of-deployment features to deploy a webapp on glassfish using the Jetty asynchronous HTTP client in a 3.0 asynchronous servlet. The session is TS-3790 "Java™ Servlet 3.0: Empowering Your Web Applications With Async, Extensibility and More" and is scheduled for Tuesday June 02 12:10 PM - 1:10 PM in E134