Jump to: navigation, search

Jetty/Starting/Porting to Jetty 7


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, but without the need to update Java 1.6 or to wait for the final specification.

Jetty 7 is not a drop-in replacement for Jetty 6. While Jetty 7 has very much the same architecture as Jetty 6, there are packaging changes and other minor tweaks between the versions. Also, the Jetty 7 milestones are not as full featured as Jetty 6 in terms of third party integrations being available by default with the distribution bundle.

If your application adheres to standards, porting to Jetty 7 should simply be a matter of updating your configuration files. However, if your application uses non-standard or Jetty-specific APIs, then additional porting work will be required. This page gives a brief overview of the changes needed to port to Jetty 7.

Jetty 7 Source Locations

The core Jetty 7 modules have all moved to Eclipse, but some Jetty integrations (e.g., jetty-maven-plugin, terracotta, wadi) and distributions (e.g., deb, rpm, hightide) still remain at codehaus. If you are looking for these, see codehaus trunk.

Meanwhile, Jetty's implementation of a Cometd server is no longer bundled with the core modules, but is available at cometd.org.

Renaming of Classes and Packages

The Jetty 7 codebase was moved to the org.eclipse.jetty.* package space and remodularized so that dependencies for client, server and servlet container are more separable. We have written a converter tool to ease the conversion of your application source and configuration files to use the new package space: Upgrade from Jetty 6 to Jetty 7.

Quick guide to renamed packages and classes. (Covers most, but not all, cases)
Jetty 6 Matching in Jetty 7 Similar in Jetty 7
org.mortbay.(jetty).* org.eclipse.jetty.*
packages under modules/util - org.mortbay.util.*, org.mortbay.log, org.mortbay.component, org.mortbay.thread, org.mortbay.resource org.eclipse.jetty.util.*, org.eclipse.jetty.util.log, org.eclipse.jetty.util.component, etc




org.mortbay.jetty.servlet.Context org.eclipse.jetty.servlet.ServletContextHandler




Other refactoring changes to watch out for when moving to Jetty 7
Type of change Jetty 6 Jetty 7
Maven plugin artifact id maven-jetty-plugin jetty-maven-plugin
Split up server JAR jetty.jar jetty-server.jar, jetty-deploy.jar, jetty-io.jar, jetty-security.jar, jetty-servlet.jar, jetty-servlets.jar, jetty-webapp.jar, jetty-xml.jar
Removed unused module jetty-html.jar ~
Renamed JAR jetty-rewrite-handler.jar jetty-rewrite.jar
Renamed JAR jetty-management.jar jetty-jmx.jar
New Continuation JAR from jetty-util.jar jetty-continuation.jar
Removed class org.mortbay.jetty.plus.jaas.callback.DefaultCallbackHandler Inner class in JAASLoginService

For a complete list of changes, see Porting to Jetty 7/Refactoring

Architectural Changes



Startup Options


Jetty 7 introduces portable continuations, which allow...


Jetty 6 is licensed under the Apache 2.0 License; Jetty 7 is dual licensed under the Apache License 2.0 and Eclipse Public License 1.0 and can be distributed under the terms of either license.

Jetty Version Comparison Table

Note: cometd server is not shipped within the Jetty distribution, it can be obtained from the cometd.org website.

Additional Resources