A stable Java API for interfacing with and extending OpenNMS
This project aims to make it easier to write plugins and extensions to OpenNMS by introducing a stable interface against which these can be written.
Versions of OpenNMS and Meridian will then implement at least one major version of the API.
Users for the API can currently take advantage of the following features and interfaces.
See the interfaces defined in the api
module for a complete list.
We provide a Maven archetype to help bootstrap plugin creation.
To create a new plugin project use:
mvn archetype:generate -B -DarchetypeGroupId=org.opennms.integration.api -DarchetypeArtifactId=example-kar-plugin -DarchetypeVersion=2.0.0-SNAPSHOT -DgroupId=com.company -DartifactId=myplugin -Dversion=0.1.0-SNAPSHOT -Dpackage=com.company.myplugin -DpluginId=myplugin -DpluginName="My Plugin"
This will create a plugin called “My Plugin” with a version of 0.1.0-SNAPSHOT, using the 2.0.0-SNAPSHOT version of the OPA archetype.
Given that the API is fairly new, we expect that we will need to make changes and improvements over the next few releases of OpenNMS Horizon.
In order to make sure that your plugins or extensions do not break within minor and patch releases:
@Consumable
annotation as we reserve the right to add new method signatures to these.@Model
annotation as we reserve the right to add new method signatures to these.common
module instead.Once stabilized, we are aiming to follow Semantic Versioning.