Server-Side Equinox

Eclipse is in use on the desktop in tools and RCP applications. The eRCP and other projects are pushing it into mobile phones and handheld devices. Now there is significant interest in Equinox on the server. This project is targetted at eliminating barriers to using and integrating OSGi (and Equinox more specifically) on the server.

The work detailed here evolved out of the server-side work in the Equinox Incubator. See the incubator proposal for some historical perspective. From time to time there will continue to be some additional work that is incubated before being moved to one of the main Equinox components. Note also that this work makes heavy use of third-party libraries such as Jetty and Jasper as well as various API packages. These bundles are all maintained as part of the Orbit project.

Working with server-side Equinox

Quick Start - See the quick start guide for getting up and running with Equinox on the server.

Embedding Equinox in a Servlet Container - Using the servletbridge to allow us to run OSGi based web applications in a servlet container.

Embedding an HTTP server in Equinox - Looking at what options there are for embedding an HttpService implementation in Equinox.

Server-side Bundles

The Server-side work component consists of several bundles maintained in Eclipse CVS repository projects. See the resources page for information on repository location and access. Note that some of the bundles listed here are actually part of other projects (e.g., Orbit). In general the name of the project matches the symbolic name of the resultant bundle.

HTTP service (org.eclipse.equinox.http) status:green
An implementation of the OSGi R4 HTTP service.
HTTP registry (org.eclipse.equinox.http.registry) status:green
Support for registering servlets, resources and JSPs via the Eclipse extension registry rather than using the code based OSGi registration mechanisms.
Servlet Bridge (org.eclipse.equinox.servletbridge) status:green
Low level hook servlet installed in an existing traditional application server. This servlet launches an embedded Equinox and enables it to handle incoming HTTP requests originally sent to the underlying server.
HTTP Servlet (org.eclipse.equinox.http.servlet) status:green
Generic support for exposing another servlet facility (e.g., an underlying application server) as an OSGi HTTP service.
HTTP ServletBridge (org.eclipse.equinox.http.servletbridge) status:green
A thin layer that exposes an underlying application server (e.g., Tomcat or Jetty) as an OSGi HTTP service. The underlying server must have the servlet bridge installed.
Servlet API (javax.servlet) status:green
A bundled version of the standard Servlet API. Multiple versions of this API are maintained. This bundle is maintained in Orbit.
Servlet JSP API (javax.servlet.jsp) status:green
A bundled version of the standard Servlet JSP API. Multiple versions of this API are maintained. This bundle is maintained in Orbit.
Jetty (org.mortbay.jetty) status:green
A bundled version of the embedded Jetty application server. This bundle is maintained in Orbit.
HTTP Jetty (org.eclipse.equinox.http.jetty) status:green
A thin layer that exposes an embedded Jetty server as a compliant OSGi HTTP service.

Status key
green - bundle is production ready.
red - bundle development is in progress.

The team typically develops using Eclipse itself so getting and managing the projects is quite straightforward. Simply start Eclipse, and use Import > CVS > Projects from CVS. Enter the repo access information and choose the projects you want to load into the workspace.

If you are working without Eclipse (gads! :-) then use your favorite CVS client and check out the relevant projects.

Incubator - Current Activity

From time to time new server side work will be incubated in the general Equinox incubator.

Buy The Book

Equinox News feed
EclipseRT