Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-dev] Planning for Jetty-9


With the release of Jetty-7.6 and Jetty-8.1, I think it is now time to start the discussion about what should go into jetty-9.   While there will be further releases of 7 and 8, I think there are a number of features that would benefit from a major version increment.

Below is an initial list of possible inclusions/exclusions in Jetty-9, with he final determination to be made after community discussion.


SPDY Connector
The SPDY protocol from google is already deployed in Chrome and available on google servers.  It is intended as a highly efficient carrier of HTTP semantics and provides 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 Puggins
Currently Jetty is distributed as core jetty and jetty-hightide with some additional modules.   This release duality has proved confusing and represents a limitation to the inclusion of new features to the jetty server.   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 could use this mechanism so that we only have a single jetty distro, but with extensions modules coming from eclipse, codehaus and thirdparties.  It would even be possible and simple to package your application and configuration as a module, which could then be installed on top of new jetty releases - from your own maven repository.

Java 7 Only
Java6 will reach EOL in July 2012, which is a reasonable time to aim of Jetty-9 milestones.  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
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
Jetty currently supports a full set of blocking and non-blocking connectors.  This results in either duplicated code or code that has to be more complex/generic then it would if only a single mode was supported.   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
The mod_proxy_http module has long been our preferred connection type from apache, offering greater speed and reliability than AJP.  There is no reason to keep the AJP connector.

Drop JBoss support
Currently we still only support JBoss 4, we see little demand/reason to continue support  for such an old release, nor any need to invest in supporting a newer jboss release.

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.




Back to the top