Difference between revisions of "Jetty/Starting/Porting to Jetty 7"
|Line 8:||Line 8:|
| body =
| body =
== Renaming of Classes and Packages ==
== 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: [[Jetty/
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: [[Jetty//Upgrade from Jetty 6 to Jetty 7|Upgrade from Jetty 6 to Jetty 7]].
Revision as of 01:37, 31 July 2009
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.
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: How to Upgrade from Jetty 6 to Jetty 7.
|Jetty 6||Matching in Jetty 7||Similar in Jetty 7|
|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|
|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||~|
|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
The Jetty startup options have been streamlined, and differ in some respects from their re
The more commonly used system properties, such as jetty.port and jetty.home still work as before:
java -Djetty.port=8081 -jar start.jar etc/jetty.xml
The OPTIONS switch, which lets you choose specific modes for running Jetty has been subtly changed and is no longer a system property. Instead of java -DOPTIONS=default,jsp,... -jar start.jar, now do:
java -jar start.jar OPTIONS=default,jsp... etc/jetty.xml
To turn on debugging on the fly, use this command:
java -jar start.jar DEBUG=true etc/jetty.xml
See How to Run Jetty for all the startup options that are available for Jetty 7.
Jetty 7 introduces portable continuations, extending the Continuations API from Jetty 6 to become a general-purpose API that will work asynchronously on any servlet-3.0 container (such as Jetty 7, or 8). With the aid of the ContinuationFilter, servlet 2.5 containers such as Jetty 6 can also use the jetty-7-style portable continuations. Continuations should be considered an application abstraction and portability layer on top of the implementation detail of asynchronous servlets.
For a comprehensive look of continuations, see the Continuations Feature Guide.
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.
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
|Jetty 9||Servlet 3.0+||Java 1.7||org.eclipse.jetty.*||EPLv1 / ASLv2||Eclipse.org||Alpha Milestones|
|Jetty 8||Servlet 3.0||Java 1.6||org.eclipse.jetty.*||EPLv1 / ASLv2||Eclipse.org||Stable|
|Jetty 7||Servlet 2.5||Java 1.5||org.eclipse.jetty.*||EPLv1 / ASLv2||Eclipse.org||Stable|
|Jetty 6||Servlet 2.5||Java 1.4||org.mortbay.*||ASLv2||Codehaus.org||End of Life / Nov 2010|
Note: cometd server is not shipped within the Jetty distribution, it can be obtained from the cometd.org website.
- Upgrade from Jetty 6 to Jetty 7 (conversion tool)