Jetty Jumps on the Helios Release Train
This year, the Jetty servlet server has participated in the Eclipse Simultanous Release for the first time. In this interview, JAXenter speaks to Hugues Malphettes and lead Jetty developer Greg Wilkins, on what Jetty has gained from joining Helios, and what's next for project Jetty....
JAXenter: Can you describe the Jetty project in a few words?
Greg Wilkins: The Jetty project evolved out of a simple HTTP server module in 1995 for Java 0.9. Since that time it has significantly matured and developed with many features: a compliant servlet container, a HTTP client, asynchronous handling of requests, comet support and now most recently websocket support.
JAXenter: This is the first time that Jetty has participated in the annual Eclipse Release Train. How has participation impacted on the Jetty project?
Greg Wilkins: It has been a bit of extra effort and a bit of extra bureaucracy, but most importantly some significant extra capabilities to use Jetty as an OSGi service implementing the HttpService interface, RFC66 webapps, legacy webapps or Jetty specific web contexts. This will make Jetty a core Eclipse module easily available to all RT and OSGi users.
We moved the project to the Eclipse foundation with the intention of becoming more integrated with the Eclipse projects and communities. Participation in the annual release is an important step towards those goals.
JAXenter: Can you describe the features of the Jetty-based, EclipseRT Web SDK?
Hugues Malphettes: EclipseRT Web Starter Kit is the combination of 3 software components:
- Equinox provides the OSGi runtime.
- p2 provides the ability to manage software components, install new ones, upgrade and maintain existing ones.
Jetty provides the support for everything HTTP related.
In the EclipseRT Web Starter Kit, Jetty strives to offer a very smmoth transition from J2EE to OSGi:
- The server is configured with the same familiar jetty.xml configuration files.
- The traditional J2EE web-applications are also supported with the webapps folder, the shared libraries, the contexts folder.
- On the OSGi side support for: HttpService, web-bundles where web-applications are embedded in OSGi bundles.
For development, Eclipse PDE's users can develop web-bundles just like any other OSGi bundle. Developing HTTP modules in OSGi is very beneficial for complex applications where many web-applications are deployed on the same web-server and are tightly integrated. Thanks to OSGi, the web-applications can share their libraries, they can expose to each other services without having to send messages over the wire to communicate.
We developed this distribution in collaboration with other projects at EclipseRT and the guidance of EclipseRT lead, Jeff McAffer. OSGi with Equinox and p2 are a fantastic combination to support the concept of software components.
Jetty - the HTTP component - fits perfectly in this idyllic picture. Putting together Jetty, a pure "server-side" project with the IDE culture of Eclipse has been very interesting. Now that we are part of the EclipseRT team we are looking forward to spending less time on the build, the IP process and to focus on what the community wants.
JAXenter: In your experience, what are the benefits of participation in Helios, and what are the negative points?
We've mentioned the extra process and bureaucracy, but I'm not sure if I will describe those as negatives. They are there for non technical licensing and IP reasons which have revealed a few niggles in Jetty (and more in a few dependent projects.)
The key benefit of participation is obviously better Jetty integration, but another important benefit is that it has given us an opportunity to interact with other projects, to improve our build processes and to help other Eclipse projects to do the same.
JAXenter: What are the next steps for Jetty?
Greg Wilkins: The next big thing on the Jetty horizon is the Jetty-8 release which supports the servlet 3.0 API. However there is not yet much demand for the 3.0 API and most of the new features are already supported in jetty-7. So, we are not going to rush to jetty-8, but will instead focus on improving jetty-7's integration with other projects and upgrading most users from older releases to 7. Jetty-8 is very similar to 7, so the migration to that release will be mostly trivial.
JAXenter: If you had to pick which football team most closely resembles Jetty, which football team would it be?
Greg Wilkins: Like Manchester United, we have supporters all around the world. But then like Arsenal, we play the beautiful game without always coming top of market share (but always high up on the table).