Looks like jetty is planning some built-in rfc-66 support.  IIUC from further discussion jsp support may be hosted at codehaus for a while.

david jencks

Begin forwarded message:

From: Hugues Malphettes <hmalphettes@intalio.com>
Date: October 20, 2009 7:01:13 PM PDT
To: jetty-dev@eclipse.org
Subject: [jetty-dev] Project proposal: jetty-on-OSGi - support for RFC-66
Reply-To: "Jetty @ Eclipse developer discussion list" <jetty-dev@eclipse.org>

Hi everyone,

The jetty team - Jan, Greg and Jesse - have kindly reviewed a possible
contribution to the jetty project.
Here is the bugzilla for this contribution:

Below is a complete presentation of the project and a pointer to the
suggested initial code.

What do you think?


The goal of this project is to support jetty running inside an OSGi framework.
The project will provide an SDK for eclipse-PDE and an equinox
distribution of jetty.
It will support web-applications contained inside OSGi bundles.
It will support developing and debugging OSGi-web-applications in PDE
just like any other OSGi bundles.

Jetty on OSGi is a proposed project under the jetty project. Under the
dual EPL and Apache Software License 2.0.

==Key objectives
- Bootstrap jetty7 inside OSGi.
- Support an implementation of the OSGi HttpService deployed on jetty7.
- Support OSGi RFC-66 webapps in bundles: package web-applications
inside OSGi bundles.
- Support OSGi RFC-66 deployment of legacy webapps: dynamically
transforms legacy webapps into OSGi-bundles (not jetty specific). A
jetty-deployer that is an alternative to the WebAppDeployer in this
- Provide a jetty-SDK for eclipse-PDE and support development of
web-applications with the OSGi toolkit of the PDE.
- Provide a runtime distribution based on equinox of jetty.
- Expose a sub-set of jetty's objects as OSGi services for
administration and deployments of components specific to jetty.
- Provide a migration for jetty-hightide to OSGi.
- Coordinate efforts with equinox bundles (jetty support, jsp support)
- Expose the setup and management of jetty-server instances in OSGi.

==Technical scope
Develop a set of OSGi bundles as required for the runtime. The base of
the bundles symbolic-name will be: org.eclipse.jetty.osgi
They will depend on the current jetty bundles, the required javax*
bundles and 3rd party reference implementations of required standards
(jsp-2.1 for example).
Develop a set of OSGi bundles that contributes jetty7 runtime
configurations. They will depend on the eclipse-platform and
eclipse-PDE bundles.

==Other eclipse projects: dependencies, overlaps and coordination:
Equinox currently maintains the packaging of jetty6 and jsp support.
It provides a bundle that bootstraps jetty6 inside equinox.
This bundle hosts the servlet that provide the OSGi HttpService and
also gets called by eclipse-RCP for the help pages.
We should coordinate our efforts with the equinox team in this area.

==Proposed Initial contribution
The initial code contribution is licensed under the EPL and is
currently hosted here: http://github.com/intalio/hightide-on-osgi
It was entirely developed by an eclipse-member organization, Intalio.
The project currently creates the SDK and runtime distribution for
It bootstraps jetty. The jetty server is currently a singleton.
Examples demonstrate the running of legacy webapps, webapps contained
in bundles, the HttpService, jsp with jstl.
Support for RFC-66 is currently limited to defining a webapp with the
header "Web-ContextPath".

Supporting other OSGi frameworks.
The package org.eclipse.jetty.osgi.boot.utils.internal contains some
java reflection code to support equinox and apache-felix.
Other OSGi frameworks can be supported by implementing the
corresponding java interfaces and setting them with a fragment hosted
by the org.eclipse.jetty.osgi.boot bundle.

Inserting additional dependendencies into org.eclipse.jetty.osgi.boot
It is possible to customize the set of libraries available to jetty's
servers via 2 mechanisms:
#1  create a fragment bundle hosted by org.eclipse.jetty.osgi.boot
that depends on those new bundles.
#2  via jettyhome: jetty servers are configured via the usual
jettyhome folder; jars placed inside ${jetty.home}/lib/ext are loaded
as part of the classloader that executes jetty.

==Pending CQs: support for jsp and other features:
jsp support is part of RFC-66. It is also supported by equinox.
Supporting jsp in this project depends on the pending CQ about
Some of the examples depend on other third party libraries: for
example the test-jndi webapp.
There is no direct links to those libraries in the code of the
examples so instructions could be provided for the user to download
those libraries.
All code related to jsp support is isolated in a single fragment
bundle. Installing this bundle enables JSP support.
The current prototype also supports an apache felix-based distribution.

The donated code depends purely on libraries distributed by eclipse;
as a consequence there is no jsp support in the contributed code and
no jndi example code.
jetty-dev mailing list