OSGi based JSP Support

JSPs are in wide-spread use and provide a relatively natural way of generating dynamic content directly in web page centric manner. For this reason and along with broad framework support JSP remains one of the most popular means of generating web application content with virtually all servlet containers providing support.

Providing support for JSP in OSGi environments is complicated to some degree by a different set of assumptions when compared with a servlet container. This portion of the incubator is investigating the use of the Jasper 2 JSP compiler to provide JSP support while retaining the modularity benefits of OSGi dependency and class loader resolution.

Note:
The current JSP support work in the incubator is in good shape, supported in bugzilla, and can be integrated against. With that said, it's quite likely the API will experience a few minor changes as it moves toward formal graduation. Differences will be tracked here.

For a look at the earlier work on JSP Support see bug 140430.

Bundles

  • org.eclipse.equinox.jsp.jasper (Bundle)
    Provides an OSGi friendly JSPServlet based on the use of the Jasper 2 compiler and runtime.
  • org.eclipse.equinox.jsp.jasper.registry (Bundle)
    Provides a JSPFactory that allows JSP usage with the org.eclipse.equinox.http.registry.servlets extension-point.

These projects can be downloaded from the equinox-incubator CVS depot.
(e.g. cvsroot/eclipse/equinox-incubator/org.eclipse.equinox.jsp.jasper)

In addition a number of third party bundles are required to provide JSP support. These are all available as bundle project for the Orbit CVS depot.

  • (/cvsroot/tools/org.eclipse.orbit/javax.servlet.jsp [branch v2_0])
  • (/cvsroot/tools/org.eclipse.orbit/org.apache.common.logging [v1_0_4])
  • (/cvsroot/tools/org.eclipse.orbit/org.apache.commons.el [branch v1_0])
  • (/cvsroot/tools/org.eclipse.orbit/org.apache.jasper [branch v5_5_17])

[Suggested] If you're using Eclipse it might be far simpler to "import" a team project set with everything needed. (regular) or (proxied)

Additional Notes:

Examples

Note: The examples require org.eclipse.equinox.http.helper from the equinox-incubator CVS depot

Buy The Book

Equinox News feed
EclipseRT