With the introduction of Karaf as an OSGi application container, OpenNMS HORIZON now has the ability to install or upgrade features on top of a running instance of OpenNMS HORIZON. In addition, the new distributed OSGi architecture allows an OpenNMS HORIZON system to be deployed as multiple software modules each running in their own Karaf instance.
The OpenNMS HORIZON Plugin Manager_ provides a unified interface for managing the lifecycle of optional OSGi plugins installed in OpenNMS HORIZON or in any Karaf instances which it manages. This need not be limited to Karaf instances running OpenNMS HORIZON but can also be used to deploy modules to Karaf instances running user applications.
In addition to managing the installation of OSGi features, the Plugin Manager also allows the installation of licence keys which can be used to enable features for a particular instance of OpenNMS HORIZON. Although the OpenNMS HORIZON platform remains open source, this provides a mechanism for third parties developing features on top of the OpenNMS HORIZON platform to manage access to their software.
The Plugin Manager also provides a mechanism for a separate 'app-store' or Available Plugins Server to be used to deliver these new features and / or licences into a particular OpenNMS HORIZON instance. It is also possible to deliver software without access to the internet using the traditional Karaf Kar/RPM deployment model. (Kar files are a form of zip file containing bundles and features definitions which can be deployed in the Karaf /deploy directory). These can be placed in the /deploy directory directly or installed there using an RPM). In this case a number of features can be delivered together in a single software package but each only enabled at run time using the Plugin Manager.
OpenNMS HORIZON plugins are standard Karaf features with additional metadata which describes the feature and the licence (if any) required. A plugin requiring a licence will not start if a valid licence string is not also installed.
Note that Karaf's features mechanism has not been modified in any way. The Plugin Manager simply provides a user front end and additional metadata for features. Plugin features can be installed from the internal features repository, remote maven repositories or Kar files placed in the deploy directory depending on how the Karaf configuration is set up. The standard OpenNMS HORIZON configuration has no remote maven access enabled for Karaf and external features must be locally provisioned as a Kar or an RPM before being enabled with the Plugin Manager.
This guide describes how to deploy and manage plugins using the Plugin Manager. A separate plugin developer’s guide is provided for those wishing to write their own plugins.