Jetty @ EclipseRT
The jetty @ eclipse project is now in incubation at the Eclipse foundation as part of the EclipseRT runtime project. On Tuesday 24th March, the Jetty-7 code base was converted to org.eclipse.jetty package space and checked into the Eclipse jetty svn repository!!!
What is changing?
It is only the core components of Jetty that are moving to Eclipse. The project will also remain at codehaus and it will be at codehaus the the jetty@eclipse components are packaged into distributions of an application server, potentionally mixing in other OS projects (eg. cometd.org, Atomikos JTA and activeMQ JMS). Thus Jetty will be able to be consumed as components from either maven or eclipse repositories, or as a complete product from codehaus downloads.
Some components previously built and released with Jetty are being spun out to their own projects or at least modules with their own release cycles. The cometd implementation has already moved from the contrib repository to the cometd.org project of the Dojo Foundation.
Jetty will remain apache 2.0 licensed, but the ECL will be added as a dual license so that Jetty may be used and distributed under the terms of either.
Why the change?
The move to Eclipse was motivated for a variety of reasons that affect all parties concerned:
Good for Jetty:
New Ideas and Requirements
Change is good! It prevents a project from becoming static and complacent. Exposing jetty to new communities, new requirements and new environments will give us an opportunity to continue to improve jetty or validate that it is still relevant and well targeted.
The eclipse foundation offers jetty improved processes for building and distributing components. The improvements are both legal and technical. Legally, The IP status of Jetty will be greatly improved by the rigour of the eclipse contribution processes. Technically, the eclipse packaging processes have highlighted a number of issues:
- Too much software was included in each jetty release. Every release was releasing everything from utility libraries and protocol engines, through the servlet container and to specific servlets frameworks like cometd. Many of these components need their own release lifecycles.
- The module inter dependencies had some issues like the jetty HTTP client depended on the Jetty HTTP server.
- Some java package where split over multiple jars, preventing reasonable OSGi usage.
The move to eclipse will grow the jetty community. The OSGi and eclipse runtime community, already significant jetty users, will be brought into the process of developing and enhancing Jetty. Hopefully new contributions, contributors an corporate sponsorship will result.
The move generates publicity for the project, which is good in attracting attention to the latest features and developments. Publicity also helps the commercial interests that sponsor the development of Jetty and of those who use Jetty. We would like to use this publicity to increase awareness of the asynchronous HTTP client components with in jetty, so that the jetty project is seen as the source of a HTTP server, HTTP client and Servlet container.
Good for Eclipse:
New Ideas and Requirements
The Jetty project and community will bring new ideas and requirements to the eclipse runtime community and through it to the OSGi community. For example, the OSGi HTTP Service has been stuck at servlet 2.2 level for a number of years and the Jetty project is keen to see how we can help move equinox and/or the standard onto a more recent HTTP feature set.
The extensive processes of eclipse are tested by the contribution of a large project like Jetty. The issues already found and fixed in Jetty validate these processes, while the pain points of the process (ipzilla) reveal where they may need to be improved.
Jetty will bring hundreds of thousand of new users to the eclipse community, many of whom would have been unaware that eclipse is more than just an IDE and that there is a foundation behind it and that the foundation has an already significant runtime project.
Eclipse is much more than the eclipse IDE. The eclipse foundation is an open source community focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. By joining the eclipse runtime project, Jetty will help improve awareness of the eclipse offerings above and beyond the IDE.
The Jetty 6.x version of Jetty will remain at codehausand will continueu to be maintained and supported for some time. The Jetty 7 code base has now been moved to eclipse and will initially be focused on providing repackage version of the capabilities of Jetty 6.x. Due to the delays in the release of a stable 3.0 servlet API, Jetty 7 will now implement the 2.5 servlet specification and is targetting a Q2 2009 stable release. In parallel, a Jetty 8.x development branch will be created that will allow continued development of the servlet 3.0 api version, which will now target Q1 2010 stable release.
In parallel with the jetty development efforts, the Jetty project team intends to engage the OSGi and eclipse equinox community to work to improve, modernize and standardize the OSGi HTTP service for deploying OSGi bundles as web applications that can access the full features of Jetty without the need to assemble a java EE war file.
Thanks to all contributors and users of Jetty who continue to make this an evolving and dynamic project.