Structure in place for Jetty 9

Jetty 9 is on the horizon

Chris Mayer

With Jetty 7.6 and 8.1 released, the focus turns to the next iteration of the open web source server.

The open source web server Jetty has established itself
as one of the best open source offerings for the enterprise over
the last few years, mainly for its flexibility and depth. The sheer
range of extensions and accessories on offer make Jetty a popular
choice for some. Yahoo’s Hadoop cluster, Eclipse’s IDE and Google’s
AppEngine all take pride of place on Jetty’s website for being
‘Jetty Powered’.

Just last week, we saw the latest versions shore up,
Jetty 7.6 and 8.1,
each bringing something new to the table for
the Eclipse-hosted server. But not one to rest upon their
laurels, the discussions have already begun over the plans for
Jetty 9. 

Developer Greg Wilkins initiated the proceedings in a developer
mailing list, bringing forth some of his ideas for Jetty 9,
including some new features whilst eliminating others. These

SPDY Connector
Google’s SPDY protocol is already deployed in Chrome and
available on google servers with the intention of being a much more
efficient carrier for HTTP server semantics. Wilkins argues that
the inclusion of the protocol would provide significantly better
scalability and latency for normal web traffic.  Jetty already
has a prototype SPDY connector which could become the primary
connector for Jetty-9.

Jetty Plugins
A shakeup is needed within Jetty.Currently it is
distributed as core jetty and jetty-hightide with some additional
modules but this duality has proved problematic as many are left
confused plus there’s limitations to the inclusion of new features
to the jetty server.  So Wilkins proposes the following:

We have developed a module plugin mechanism that allows jetty
features to be added with a command like “java -jar plugin.jar
install jetty-jta”, which will fetch the module from a maven
repository and install it in the current release. 

Jetty 9 would therefore be available under a single jetty distro
with module extensions coming from Eclipse, Codehaus and other
third parties.

Java 7 Only
With Java6 will reach the end of its life in July 2012,
Wilkins says it is a good time to start thinking about Jetty 9
milestones by that time, but also only support Java 7 in the

Supporting a single JVM environment will greatly simplify
development of the server.  New features like SPDY and Servlet
3.1 are likely to require java 7.

Servlet 3.1 unlikely to make Jetty 9

It is unlikely that servlet 3.1 will be available within a
time frame suitable for jetty-9.  However, just like most
servlet 3.0 features were tested within jetty-7 as extensions to
servlet 2.5, it should be possible to try out any compelling
servlet 3.1 features in jetty-9

Remove the Blocking Connectors

The removal of blocking connectors will get rid of the
issues surrounding duplicated code.

Much of the difficulty with the recent refactoring of the
IO layer was due to need to keep both blocking and nonblocking
connectors working.  While there are some traffic profiles
that are faster with the blocking connectors, this is only a
marginal improvement, which may well be recouped by the
simplification of an async only IO layer.  Features like
continuations and websockets currently only work with the
asynchronous connectors.

Remove the modjk/AJP connector
Apache’s mod_proxy_http module has long been our preferred
connection type due to its speed and reliability so AJP is on the
chopping block.

Goodbye JBoss support
As only the ancient JBoss 4 is supported in Jetty, Wilkins says it
isn’t worthwhile keeping it around.

Master Branch

I would expect that once we started on jetty-9, it would
become the git master, with jetty-7 and jetty-8 in their own
branches.  Servlet container changes would be merged back to 8
and suitable IO changes would be merged back to 7 and 8.

This is merely an opening gambit and further community
discussion would be needed before any decision was cemented. Either
way, it’s an exciting prospect that we should all keep an eye on
going into the next 12 months. In the meantime 

comments powered by Disqus