You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Bundle Manifest Generator - mangen

Overview

The mangen tool was developed to assist with creation of OSGi bundle manifest headers, typically as part of a project's build process.

Creating and maintain OSGi bundle manifest is time consuming and error prone, and it's easy to miss or omit vital imports or exports. mangen can be used to simplify and speed up this process by scanning the classes within a project's JAR files and determining the set of possible exports for a JAR, and required imports. For anything other than very simple projects, this process cannot be completely automated and needs to be supplemented by a small number of fixed exports and imports which the developer is best placed to determine e.g. cases of reflection or dynamic class loading.

Additionally, mangen has the concept of a "resolve" rule which is able to take a complete set of project JARs and resolve down the minimum set of required imports and exports for each JAR, removing both possible exports and imports which are not actually required for each bundle.

Objectives

Automated bundle manifest creation for an OSGi project

The original objective defined for mangen was to operate as a standalone tool at the end of the project build phase, scanning the set of JAR files for the project and resolving the optimal set of imports and exports for each JAR.

This objective still stands, and remaims the primary objective of mangen which will be maintained alongside other possible objectives and usage.

Roadmap

  • Amend maven build to produce a standalone distribution dir and ZIP containing all components needed to run mangen in a standalone environment e.g ASM, BCEL, Felix and OSGi files, and .properties config files
  • Assess where, if at all, mangen can be used to assist the Felix build process and what additional objectives and enhancements are needed to achieve this.

Version History

1.0.1

mangen versions 1.0.1 is the first version migrated to the Apache Felix project, with a package name of org.apache.felix.tool.mangen and modified to compile against Felix package handling classes.

At this point, 1.0.1 is integrated with the Felix maven build and will succesfully build and compile. The resulting JAR file built can be used but needs to be manually installed with it's dependent JAR files and config properties

0.1.x

mangen versions 0.1.x were originally developed for use with Oscar. These versions and documentation are still available on the Oscar sourceforge site

  • No labels