If you need to deploy a WAR file in an OSGi container, you can automatically add
the requisite manifest headers to the WAR file by prefixing the WAR URL with
war:
, as described here.
A War URL is specified using either of the following syntaxes:
war:warURL
warref:instructionsURL
The first syntax, using the war
scheme, specifies a WAR file that is
converted into a bundle using the default instructions. The
warURL
can be any URL that locates a WAR file.
The second syntax, using the warref
scheme, specifies a Bnd
properties file, instructionsURL
, that contains the
conversion instructions (including some instructions that are specific to this
handler). In this syntax, the location of the referenced WAR file does
not appear explicitly in the URL. The WAR file is specified
instead by the (mandatory) WAR-URL
property in the properties
file.
Some of the properties in the .bnd
instructions file are specific to
the War URL handler, as follows:
WAR-URL
(Mandatory) Specifies the location of the War file that is to be converted into a bundle.
Web-ContextPath
Specifies the piece of the URL path that is used to access this Web application, after it has been deployed inside the Web container.
Note Earlier versions of PAX Web used the property,
Webapp-Context
, which is now deprecated.
By default, the War URL handler adds manifest headers to the WAR's
META-INF/Manifest.mf
file as shown in Table A.2.
Table A.2. Default Instructions for Wrapping a WAR File
Manifest Header | Default Value |
---|---|
Import-Package | javax.*,org.xml.*,org.w3c.* |
Export-Package | No packages are exported. |
Bundle-SymbolicName | The name of the WAR file, where any characters not in the set
[a-zA-Z0-9_-\.] are replaced by period,
. . |
Web-ContextPath | No default value. But the WAR extender
will use the value of Bundle-SymbolicName by
default. |
Bundle-ClassPath |
In addition to any class path entries specified explicitly, the following entries are added automatically:
|
The following War URL locates version 1.4.7 of the wicket-examples
WAR in a Maven repository and converts it to an OSGi bundle using the default
instructions:
war:mvn:org.apache.wicket/wicket-examples/1.4.7/war
The following Wrap URL specifies the Web-ContextPath
explicitly:
war:mvn:org.apache.wicket/wicket-examples/1.4.7/war?Web-ContextPath=wicket
The following War URL converts the WAR file referenced by the WAR-URL
property in the wicket-examples-1.4.7.bnd
file and then converts the
WAR into an OSGi bundle using the other instructions in the .bnd
file:
warref:file:E:/Data/Examples/wicket-examples-1.4.7.bnd
For more details about the war
URL syntax, see the original Pax URL
War
Protocol documentation.