<div class="content">

Apache Felix iPOJO Online Manipulator

iPOJO generally requires an additional packaging step to prepare the bundle to be managed by iPOJO. Despite this step doesn't change the class semantic, it can be a little annoying. The online manipulator avoids this offline step!

Features

iPOJO is based on a bytecode manipulation. This manipulate is safe and does not change the class semantics. Classes can still used after the manipulation without iPOJO. However this manipulation is required for iPOJO management. Generally, this manipulation occurs offline during the packaging time. The online manipulator allows to do this manipulation at install time.

The online manipulator:

Usage

The online-manipulator is in fact an URL Handler. So, it will process every bundle using a special URL prefix. To use it, just follows the below instructions:

Shell Command

OBR

start

http://repo1.maven.org/maven2/org/apache/felix/org.apache.felix.ipojo/1.6.0/org.apache.felix.ipojo-1.6.0.jar


start

http://repo1.maven.org/maven2/org/apache/felix/org.apache.felix.ipojo.online.manipulator/1.6.0/org.apache.felix.ipojo.online.manipulator-1.6.0.jar

obr start "Apache Felix iPOJO URL Handler"

The complete URL syntax is

install ipojo:bundle_url[!metadata_url]

When using the ipojo: prefix, the OSGi platform delegates the loading to the url handler manipulating the bundle before its installation. This manipulation is exactly the same as the offline manipulation.

Dealing with metadata

If the installed bundle contains a metadata.xml file either in its root or in the META-INF directory, the online manipulator will use it. However, you can also provide an external metadata.xml file by indicating the url of the file like in

install ipojo:bundle_url!metadata_url

If you provide such url, it will override the contained metadata.xml file.