The convert-jar-to-bundle task is used to convert normal JARs into OSGi bundles. This is useful when OSGi-ifying third-party libraries.
Example 3.2. Example using convert-jar-to-bundle
<project name="thirdparty" default="all">
[..]
<load-bundle-descriptor descriptor="${basedir}/commons-id/bundle.xml"/>
<property name="commons-id-org-version" value="0.1-SNAPSHOT"/>
<property name="commons-id-version" value="0.1.0.SNAPSHOT"/>
<convert-jar-to-bundle
file="${basedir}/commons-id-${commons-id-org-version}.jar"
targetfile=
"${build.dir}/${osgi-bundle.symbolic-name}-${commons-id-version}.jar"
descriptor="${basedir}/bundle.xml">
<attribute name="Bundle-Version" value="${commons-id-version}"/>
</convert-jar-to-bundle>
[..]
</project>
In this example, Apache Commons Id is converted to an OSGi bundle.
You will note how its version number is being replaced by a valid OSGi version number. The load-bundle-descriptor task
is used to retrieve the symbolic name of the bundle from the bundle descriptor to use it as part of the target filename of the bundle
(${osgi-bundle.symbolic-name}).
The file and
descriptor attributes as well as the nested
attribute element are the same as
for the bundle-manifest task.
The targetfile attribute specifies the target filename
of the converted JAR. If it is omitted, the original JAR file will be replaced.