OSGI in Kettle

Introduction

Pentaho's first investigations into OSGI began within PDI. The goal was to be able to supply PDI plugin types by way of OSGI bundle. Kettle already had the capability to provide such plugins by XML as well as via annotated classes. These two providers are hard-coded within PDI. Bringing OSGI as a 3rd way of supplying plugins was accomplished by making the Plugin Registry of PDI itself plugable. The PluginRegistryExtension plugin type allows any system to contribute plugin types. The PluginRegistry Extension enabling OSGI is housed within the PDI-OSGI-Bridge (https://github.com/pentaho/pdi-osgi-bridge).

PDI-OSGI-Bridge

As the name implies, the "bridge" acts as a go-between for PDI's PluginRegistry and OSGI. The bridge is able to locate any PDI plugin class published by OSGI bundles to the Service Registry. Since OSGI is a dynamic system where bundles can be installed and uninstalled at any point during the life of a program's execution, a new feature was added to the PluginRegistry to listen for these plugin events. The Spoon UI for instance updates the step palate whenever a step is added or removed.

Plugin developers wishing to leverage the OSGI technology do not need to be aware of the internal details of the Bridge, only how to develop OSGI bundles and how to deploy them within the PDI environment.

The following pages detail how to develop and deploy OSGI bundles providing PDI plugins:
Writing PDI Plugin OSGI Bundles
Deploying PDI OSGI Bundles