The following guides details different aspects of Pax Web internals and are aimed towards developers that wants to understand the inner workings of Pax Web and/or develop/maintain current code base of Pax Web and/or develop extensions in top of Pax Web. Details on Pax Web can be found at the overview.

Source

Checkout source code

You can checkout the source code of Pax Web by using the following command:

git clone git://github.com/ops4j/org.ops4j.pax.web.git

or you may use your IDE specific support for Git.

Browse source code

You can browse the source code by pointing your browse to http://github.com/ops4j/org.ops4j.pax.web.

Build

The following instructions are explaining how to build Pax Web by using Apache Maven. You may also use another means for building as for example your preferred IDE, since most IDE’s will support Maven.

To build Pax Web follow this steps:

  • Download and install Apache Maven

  • Download the latest source from OPS4J Pax Web GIT Repository

  • In a terminal window go the the root folder where you have downloaded the source and execute the following command:

    mvn install

Artifacts

pax-web-api

This artifact contains Pax Web API which are the classes that are added in extension to standard HTTP Service. This is the only artifact you should depend, at compile time, if you are in need of Pax Web extensions.

pax-web-spi

This artifact contains the interfaces that should be implemented by a service provider wishing to provide an alternative implementation that is not Jetty based. The Jetty artifact implements this SPI in order to be used by Pax Web Runtime.

pax-web-runtime

This artifact is the core of Pax Web (the engine if you like so). It implements the API and will make use of an SPI, such as Jetty in order to fulfill is job.

pax-web-jsp

This artifact contains Pax Web JSP support based on Jasper. It is an optional component that will be used by runtime if present. If you do not use JSPs in your project you can leave this artifact out of your deployment setup.

pax-web-jetty

This artifact is the Jetty based implementation of SPI. This artifact does not include Jetty, so you will have to deploy Jetty along by yourself. The reason behind not including Jetty is to allow you to make your choice about the version of Jetty to be used, as for example, in case that a new version of Jetty is available and you are in need to use it.

pax-web-jetty-bundle

This artifact is a convenience artifact that bundles together most of the artifacts above plus a version of jetty. This in order to make your deployment easier. It includes the following: pax-web-api, pax-web-spi, pax-web-runtime, pax-web-jetty and necessary jetty bundles. Basically, if you deploy this bundle you are good to go without any additional bundles (beside the jsp or extenders that you should deploy as you need).

pax-web-extender-war

This artifact is the implementation of Pax Web WAR Extender and should be included in case that you want to deploy WAR files into the OSGi framework.

pax-web-extender-whiteboard

This artifact is the implementation of Pax Web Whiteboard Extender and should be included if you wish to publish your web elements simply by registering them as a service.

pax-web-resources-api

Compile-only module for Servlet 3.0 resource-lookup.

pax-web-resources-extender

This artifact is the default implementation of Pax Web Resources API. It exports the api packages as well, so there is no need to deploy the api-bundle.

pax-web-resources-jsf

This artifact provides a JSF-ResourceHandler which will lookup resources in other bundles when they are not found within JSF-WAB.