You also have the option of converting a JAR into a bundle using the
wrap
scheme, which can be prefixed to any existing URL format. The
wrap
scheme is also based on the Bnd utility.
The wrap
scheme has the following basic syntax:
wrap:LocationURL
The wrap
scheme can prefix any URL that locates a JAR. The locating
part of the URL, LocationURL
, is used to obtain the
(non-bundlized) JAR and the URL handler for the wrap
scheme then
converts the JAR automatically into a bundle.
![]() | Note |
---|---|
The |
Because the wrap
scheme is based on the Bnd utility, it uses exactly
the same default properties to generate the bundle as Bnd does—see Default property file.
The following example shows how you can use a single console command to download
the plain commons-logging
JAR from a remote Maven repository, convert
it into an OSGi bundle on the fly, and then install it and start it in the OSGi
container:
karaf@root> osgi:install -s wrap:mvn:commons-logging/commons-logging/1.1.1
Example 5.1 shows how the example-jpa-osgi
feature combines the mvn
scheme and the wrap
scheme in
order to download the plain HyperSQL JAR file and convert it to an OSGi bundle on
the fly.
Example 5.1. The example-jpa-osgi Feature
<feature name="examples-jpa-osgi" version="4.4.1-fuse-00-08">
<feature version="4.4.1-fuse-00-08">jpa-hibernate</feature>
<bundle>wrap:mvn:hsqldb/hsqldb/1.8.0.7</bundle>
<bundle>mvn:org.apache.servicemix.examples.jpa-osgi/wsdl-first-cxfbc-bundle/4.4.1-fuse-00-08</bundle>
<bundle>mvn:org.apache.servicemix.examples.jpa-osgi/wsdl-first-cxfse-bundle/4.4.1-fuse-00-08</bundle>
</feature>
The wrap
scheme is provided by the Pax project, which is
the umbrella project for a variety of open source OSGi utilities. For full
documentation on the wrap
scheme, see the Wrap
Protocol reference page.