The OSGi framework is a standardized module system and service platform for the Java programming language. Though standard Java tools can be used to develop OSGi bundles, this development is improved with dedicated tooling. This page collects the different tools that are available in closed or open source projects.
Ant is a popular Java build tool. Plugins for Ant can often be used by other Java build tools, see how to call tasks outside Ant. The following modules provide Ant task support:
Eclipse is an IDE that is based on OSGi. The PDE subsystem in Eclipse provides extensive support for creating bundles. Other tools have been integrated in Eclipse as optional plugins/bundles:
Maven is a build tool for Java with a flexible plugin model. OSGi support is provided as plugins:
IntelliJ IDEA is an IDE for Java developers. It supports the following plugin:
Netbeans provides extensive OSGi support via Maven and Ant.
OPS4J provides a set of cross platform OSGi tooling under the "Pax" umbrella. All projects under this umbrella are licensed under the Apache Software License 2.0.
The tooling projects are:
Service implementations available under the Pax theme:
SBT (Simple Build Tool) is the de-facto standard for building Scala software. There is a plugin offering bnd integration:
bnd consists of a library and a command line tool. The library provides functionality to automatically generate the required metadata for OSGi bundles based on the Java class files. bnd needs to be used in conjunction with other tools but it is capable of being a central part in a build setup. bnd is a command line tool, an eclipse plugin, and an ant plugin. License is ASL2.
Bndtools is an Eclipse plug-in—based on bnd -- that focuses on ease of use, rapid development and producing accurate bundle metadata. License is EPL.
Bundlor is an Apache licensed tool, similar to bnd, for generating OSGi manifests driven by a template by analyzing the byte code of a JAR or Eclipse project.
The Apache Aries|eba-maven-plugin provided by enables the creation of application archive files (.eba) of OSGi bundles for deployment to Apache Aries, Apache Geronimo and WebSphere Application Server v7 OSGi Applications and JPA 2.0 Feature Pack.
The Maven Bundle Plugin is based on bnd and therefore provides the same features. It simplifies generating bundles from Maven.
Osmorc is a plugin for IntelliJ IDEA for OSGi development support. This plugin uses bnd and Bundlor under the covers for generating Manifest metadata. Bundles can be run in any of the major OSGi containers, Osmorc uses Pax Runner for this. Non-OSGi dependencies are detected and enriched with OSGi metadata using bnd on the fly. Osmorc also features an integration with the Maven Bundle Plugin for importing projects allowing them to run inside the IDE without invoking Maven. The integration also allows for checking whether Maven dependencies are OSGi compliant, offering to replace them with OSGi compliant versions from SpringSource's Open Bundle Repository.
The Ops4J family of projects has built a plugin to enable PDE based projects to run on OSGi containers other than Equinox.
OSGi SDK provides OSGi Tools running on Eclipse for application development on embedded device. Designed for device developers and generic OSGi content creators ProSyst OSGi SDK consists of 3 parts: Eclipse Plugins, OSGi Runtime, and OSGi Validator. There are versions of the SDK tailored for different vertical markets such as mBS Smart Home SDK, mBS Telematics SDK, and mBS Mobile SDK.
The IBM Rational Development Tools for OSGi Applications is a set of free tools to help you build OSGi applications and convert existing Java EE or simple Java projects into OSGi bundles. It supports the OSGi Enterprise standards.
Rational Application Developer for WebSphere Software (RAD) adds to the capabilities of the IBM Rational Development Tools for OSGi Applications with enhanced support for many of the OSGi Enterprise specifications like Blueprint, JPA, SCA, REST, Atompub, JMS, etc.
Sigil provides OSGi centric development tooling, where the OSGi runtime model is extended to provide build time dependencies. Sigil is an Apache project that resolves build dependencies based upon OSGi meta-data working from pluggable repositories, including OBR. It can build and test projects using Eclipse and/or command-line based on a simple properties-based project file.
Tycho is a set of Maven plugins and extensions for building Eclipse plugins and OSGi bundles with Maven. It supports generation of the Maven pom.xml file for bundles that are created in the Eclipse Plugin Development Environment.
Eclipse tooling for SpringSource dm Server and Eclipse Virgo is freely available either as part of the SpringSource Tool Suite or via an update site (see the Tooling chapter of the Virgo Programmer Guide) for addition to Eclipse. This tooling allows dm Server or Virgo server instances to be defined and managed under Eclipse. Bundles and multi-bundle applications in the form of platform archives (PARs) or plan files can then be developed and deployed to the running server using drag and drop. The tooling also shows the bundles installed in the server and has a graphical display for analyzing both package and service wiring between bundles.
The dm Server and Virgo admin consoles provide tooling for offline analysis of resolution failures which are dumped to disk when an application is deployed and fails to resolve.