Subscribe to News

OSAmI Tools Survey

Author : Naci Dai

From TechnologicalWiki

Jump to: navigation, search

OSAmI Tools are a natural complement to other tools projects, and reuse, extend, and add to them as appropriate. The following OSAmI Tools Survey provides a non-exhaustive catalog of some of these tools categorized with respect to the taxonomy we present in OSAmI Tools categories.

[edit] Tools Survey

Tool Short Description Licence Category Provider Link
BND bnd is the swiss army knife of OSGi bundles. It is used in many different incarnations to reduce the effort to create bundles from projects or jars using a myriad of tools like ant, maven, bndtools, sigil, eclipse, etc.

Bnd consists of one jar file which can run standalone, via ant, maven or can be used as an eclipse plugin (no update site, just copy the jar). Bnd parses the java classes to understand the available and imported packages so it can create the equivalent OSGi entries. Bnd offers a series of directives and options which can customize the resulting artifact. Bnd is an easy way to migrate a plain jar to an osgi bundle. Bnd can create bar from jar files, bundles from bnd files. Also used under the hood by many other tools since it can create the manifest. There are adiitional tools that are based on BND such as:

  • Bndtools A plugin for Eclipse that is completely based on bnd. It is available in the Eclipse marketplace.
  • Apache Maven Bundle Plugin The plugin is based on bnd. You can find more information and tips at Maven.
  • Apache Felix Sigil Ant/Eclipse plugin for OSGi development.
  • Bnd4sbt A bundle tool for Scala applications.
  • Osmorc A plugin for IDEA's IntelliJ.
  • Build4OSGi A plugin for the JRuby based build tool buildr
  • Gradle OSGi Plugin A Gradle based OSGi plugin. Gradle is a Groovy based builder.
  • Ant bnd is already an ant task
Apache License Version 2.0 Development aQute (Peter Kriens) bnd web site
Bundler Bundle Generation is the process of generating bundles from OSGi-incompliant JAR archives. Bundler is an Automatic Bundle Generation utility that is capable of generating bundles at runtime and off-time, it provides an API and a primitive Command Line Interface plus features such as Caching to optimize the Bundle Generation process, and is runnable in OSGi and none-OSGi Environments. Apache License Version 2.0 Development DynamicJava.org Bundler web site
Bundlor Bundlor is a tool that automates the detection of dependencies and the creation of OSGi manifest directives for JARs after their creation. Bundlor takes as input a JAR and a template consisting of a superset of the standard OSGi manifest headers. Bundlor analyses the source code and support files contained in the JAR, applies the template to the results, and generates a manifest. Apache License Version 2.0 Development VMWare (Spring Source) Bundlor web site
Eclipse PDE Eclipse is the primary tool for OSGi developer. The Eclipse Plug-in Development Environment (PDE) provides tools to create, develop, test, debug, build and deploy Eclipse plug-ins, fragments, features, update sites and RCP products.

PDE also provides comprehensive OSGi tooling, which makes it an ideal environment for component programming, not just Eclipse plug-in development.

Eclipse Public License Version 1.0 Development Eclipse Foundation Eclipse PDE
Eclipse WTP The Eclipse Web Tools Platform (WTP) project extends the Eclipse platform with tools for developing Web and Java EE applications. It includes source and graphical editors for a variety of languages, wizards and built-in applications to simplify development, and tools and APIs to support deploying, running, and testing apps. Eclipse Public License Version 1.0 Development Eclipse Foundation Eclipse WTP
Eclipse PDE Incubator Dependency Visualization The dependency visualization aims to provide a set of views to assist with plug-in dependency analysis tasks. In particular, the views will provide cognitive support to people as they attempt to understand the dependencies between their plug-ins. Eclipse Public License Version 1.0 Development Eclipse Foundation Eclipse PDE Visualization
Apache Felix - SIGIL Sigil provides OSGi centric development tooling, where the OSGi runtime model is extended to provide build time dependencies. Apache License Version 2.0 Development Apache Foundation Apache Felix SIGIL
PAX Pax is the umbrella project for all OSGi bundles and tools.

OSGi is a runtime platform that allows for a much higher degree of dynamicity than any other container architecture and is well suited for both client and server applications. Eclipse is the most visible OSGi eco-system on the market, housing many UI driven OSGi projects including a runtime framework. Knopflerfish.org as well as Apache Felix are other runtime platforms, with their respective standard services.

PAX intend to be complimentary to all these efforts and main focus are on good practices and technology integration.

Projects

  • ConfMan — Configuration Admin Agent for OSGi.
  • Pax Construct — Build management system for OSGi development. Simplifies creation and import of bundles. Also does wrapping of jars into library bundles.
  • Pax Exam — Painless OSGi Integration Testing
  • Pax Runner — The easiest way to provision your bundles in all major open source frameworks (Felix, Equinox, Knopflerfish, Concierge).
  • Pax Shell — Universal shell for OSGi
  • Pax Swissbox — Utilities for OSGi world.
Apache License Version 2.0 Development, Management and Monitoring OPS4J PAX
Eclipse Equinox Equinox is an implementation of the OSGi R4 core framework specification, a set of bundles that implement various optional OSGi services and other infrastructure for running OSGi-based systems. Bundles are named as plugins. Eclipse offers built in easy osgi development on equinox. New project wizard can create a project from strach, from templates or from an existing jar file.

Equinox also hosts bundles for management and monitoring of OSGi frameworks:

Hosting many bundles such as Equinox Incubator - Resource Monitoring

Eclipse Public License Version 1.0 Runtime, Management and Monitoring Eclipse Foundation equinox
MOSGI MOSGi enables the remote management of OSGi-compatible service gateways, using JMX. The framework is a reference architecture for end-to-end gateway management. It provides the following features:
  • Relies on JMX management infrastructure (IP-based management),
  • Provides two JMX agents: the standard Java 1.5 agent and a specific Java 1.4 lightweight embedded agent (MX4J agent deviation),
  • Provides a way to deploy various probes on remote gateways,
  • Provides a management console,
  • The graphical part of a probe (management console part) can be dynamically plugged in the management console and is dynamically downloaded.
Apache License Version 2.0 Management Apache Foundation Apache Felix Mosgi
Apache Felix Apache Felix is a community effort to implement the OSGi R4 Service Platform and other interesting OSGi-related technologies under the Apache license. The OSGi specifications originally targeted embedded devices and home services gateways, but they are ideally suited for any project interested in the principles of modularity, component-orientation, and/or service-orientation. OSGi technology combines aspects of these aforementioned principles to define a dynamic service deployment framework that is amenable to remote management.

Apache Felix Project also hosts an array of sub projects that are also useful as OSGi tools:

  • Config Admin - An implementation of the OSGi Configuration Admin service specification for managing bundle configuration properties.
  • Dependency Manager - An API-based component model to simplify OSGi-based development.
  • File Install - A simple, directory-based management agent for managing bundle deployment.
  • Gogo - An advanced shell for interacting with OSGi frameworks.
  • Maven Bundle Plugin - A Maven plugin to simplify building bundles.
  • Maven SCR Plugin - A Maven plugin to simplify using Declarative Services.
  • Metatype - An implementation of the OSGi Metatype service to describe types needed by bundles.
  • OSGi Bundle Repository - A bundle repository service to simplify discovering and deploying bundles and their dependencies.
  • Remote Shell - A remote, text-based interface to the Apache Felix Shell.
  • Service Component Runtime - An implementation of the OSGi Declarative Services specification providing a service-oriented component model to simplify OSGi-based development.
  • Shell - A very simple shell service implemented as a bundle for interacting with an OSGi framework instance.
  • Shell TUI - A simple, text-based interface to the Apache Felix Shell.
  • Web Console - A simple tool to inspect and manage OSGi framework instances using your favorite Web Browser.
Apache License Version 2.0 Runtime, Management and Monitoring Apache Foundation Apache Felix
Knopflerfish Knopflerfish is open source OSGi Service Platform compliant with OSGi R4 v4.2.

Knoplerfish project also hosts an array of sub projects that are also useful as OSGi tools:

  • Knopflerfish Eclipse Plugin - A tool for launching and debugging the Knopflerfish OSGi distribution. The goal with the plug-in is to simply the use of Knopflerfish for developers using Eclipse as their IDE.
  • cm - Configuration management service
  • command - Command Service
  • Bundlerepository - OBR bundle repository using the KF console and desktop
  • Console Service system console
  • Console2Command-IMPL Wrapper for KF console commands to OSGi 4.2 commands
  • Desktop Swing framework desktop
  • Directory Deployer Monitors a set of file system directory for bundlesto deploy
  • TCP-Console TCP console
  • Telnet-Console Telnet console
  • TTY-Command- Command line system console
  • httpconsole Management Console
The BSD License Runtime, Management and Monitoring Makewave Knopflerfish
Concierge Concierge is an optimized OSGi R3 framework implementations with a file footprint of about 80 kBytes. This makes it ideal for mobile or embedded devices. Typically, these devices have VMs that are more focused on compactness and less optimized. For instance, purely interpreting VMs often kill the performance of existing OSGi framework implementations. The design of Concierge has been developed with respect to such platforms. Concierge uses resources in a very careful way and is able to provide significantly better performance in resource-constrained environments.

Concierge also provides an eclipse plugin:

  • Concierge Tools for Eclipse - Eclipse integration for Concierge. With the Concierge Tools for Eclipse (CTE), developers can write their (R3) bundles in Eclipse and run or debug them directly inside the IDE.
BSD License Runtime Institute for Pervasive Computing, ETH Zurich. Concierge
Main Collaborators