Jetty Jumps on the Helios Release Train
JAXenter speaks to Jetty lead developer Greg Wilkins about Helios, Jetty and EclipseRT Web SDK.
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
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
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
- 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
JAXenter: In your experience, what are the
benefits of participation in Helios, and what are the negative
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
JAXenter: What are the next steps for
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
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).