- OSGi-Tooling
-
Main article: OSGi
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.
IDEs and build tools
Ant
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
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
Maven is a build tool for Java with a flexible plugin model. OSGi support is provided as plugins:
IntelliJ
IntelliJ IDEA is an IDE for Java developers. It supports the following plugin:
Netbeans
Netbeans provides extensive OSGi support via Maven and Ant.
OPS4J Pax
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:
- Pax Runner for running different framework implementations with a fixed (implementation independent) configuration set. Supports: Apache Felix, Equinox, Knopflerfish, Concierge and Papoose.
- Pax Exam builds on top of Pax Runner and allows running Unit Tests inside a new or already running OSGi Test Container. Pax Exam also directly supports OSGi Launch API R4.2 frameworks.
- Pax Construct a shell powered OSGi development environment letting you create, manage and run OSGi projects using Maven Archetypes.
- Pax URL OSGi aware URL handlers that support resolving Maven Artifacts, On-the-fly bundling, WebApp (WAR) wrapping as bundles etc.
Service implementations available under the Pax theme:
- Pax Web A Http Service implementation using Jetty by default.
- Pax Logging A Log Service implementation providing API adapters for Apache Commons Logging, SLF4J, Java Logging API and others.
SBT
SBT (Simple Build Tool) is the de-facto standard for building Scala software. There is a plugin offering bnd integration:
Plugins
bnd
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
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
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.
EBA Maven Plugin
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.
Maven Bundle Plugin
The Maven Bundle Plugin is based on bnd and therefore provides the same features. It simplifies generating bundles from Maven.
Osmorc
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.
Pax Eclipse
The Ops4J family of projects has built a plugin to enable PDE based projects to run on OSGi containers other than Equinox.
ProSyst OSGi SDK
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.
Rational Development Tools for OSGi Applications
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
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
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
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.
Virgo Eclipse Tooling
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.
Virgo Admin Console
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.
See also
References
Categories:- Standards organizations
Wikimedia Foundation. 2010.