Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-dev] Project proposal: jetty-on-OSGi - support for RFC-66

Sounds great and happy to help for the Equinox bits and pieces.

Inactive hide details for Hugues Malphettes ---10/20/2009 10:01:43 PM---Hi everyone, The jetty team - Jan, Greg and Jesse - havHugues Malphettes ---10/20/2009 10:01:43 PM---Hi everyone, The jetty team - Jan, Greg and Jesse - have kindly reviewed a possible


From:

Hugues Malphettes <hmalphettes@xxxxxxxxxxx>

To:

jetty-dev@xxxxxxxxxxx

Date:

10/20/2009 10:01 PM

Subject:

[jetty-dev] Project proposal: jetty-on-OSGi - support for RFC-66

Sent by:

jetty-dev-bounces@xxxxxxxxxxx




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:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=292837

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

What do you think?
Cheers,

Hugues

==Abstract
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.


==Introduction
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
environment.
- 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
jetty-on-osgi.
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
glassfish-jasper-jsp.
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
jetty-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jetty-dev


GIF image

GIF image


Back to the top