OpenNMS RI
?JOSIF Main Page | TIP Platform | Prototype CTK RI Project OpenNMS RI
Â
PLEASE NOTE this page concerns the on line RI used for the RAM Catalyst. For information on the released prototype OpenNMS plugin see OpenNMS RAM RI Plugin
Introduction
The OpenNMS RAM Reference Implementation use the libraries developed as part of the RI to integrate a RAM interfae into OpenNMS. Note - This code is experimental and not yet production quality however it is suitable for testing against the TIP interfae in the RAM Catalyst
Installation
connecting to the hosted interface. The OpenNMS system intended for testing is hosted at
- http://152.78.189.89:8086/opennms
- username ramdemo
- password ramdemo
to see the alarm list go to
- http://152.78.189.89:8086/opennms/alarm/list.htm
Unfortunately the alarm list is presently fairly static as I need to write a script to generate simulated alarms. (will be done next week).
The RAM services are visible at
The RAM resource alarm handling serviceinterface is hosted at
- http://152.78.189.89:8086/RI/services/ResourceAlarmHandlingService
(This is the same URL as the RI except that the port number is different)
The alarm iterator service is hosted at
Note that for testing an iterator request with iteratorID="0" will always return an empty iterator response
functionality
The interface supports the RAM simple alarm profile (getAllalarms)
The alarm list allows you to register for events and unregister for events
Heartbeat events and new alarm, alarm acknowledged and alarm cleared events are sent.
Installation of a local OpenNMS RAM interface
You can install and run up your own version of the OpenNMS RAM interface using the following steps;
NOTE THIS NEED UPDATED
1. Install the Stable: 1.8.15 (current release) version of OpenNMS on linux or windows following the instructions at
- http://www.opennms.org/documentation/installguide.html
This should be very straightforward and should be completed in about 30 minutes.
2. test that it works by running up the UI
3. stop opennms
4. download the OpenNMS RAM code 'OpenNMS_TIP_RAM_Plugin-1.0.1-SNAPSHOT.war' from
5. go to the opennms installation location and locate the libraries folder at OpenNMS/lib. Remove the following files
OSSbeans-qos-ejb-2.1.0.jar
OSSbeans-xml-2.1.0.jar
these contain ejb files associated with the OSS/J Qos interface and will interfere with the TIP interface
5. copy OpenNMS_TIP_RAM_Plugin-1.0.1-SNAPSHOT.war to OpenNMS/webapp
use an unzip archiver to unpack OpenNMS_TIP_RAM_Plugin-1.0.1-SNAPSHOT.war to OpenNMS_TIP_RAM_Plugin-1.0.1-SNAPSHOT
6. rename OpenNMS_TIP_RAM_Plugin-1.0.1-SNAPSHOT to RI
the opennms /webapp folder should now contain
opennms /webapp
opennms
opennms-remoting
RI
ROOT
7. open RI\WEB-INF\lib and MOVE the jar 'javaee-api-5.0-3.jar' to the OpenNMS lib directory; \OpenNMS\lib
8. open /OpenNMS/lib and remove activation-1.1.jar
the last steps 7 and 8 are needed because of a conflict between the version of javax.activation in activation-1.1.jar and that in javaee-api-5.0-3.jar. We need javaee-api-5.0-3.jar to be on the classpath for openejb
The error without this step is: java.lang.LinkageError: loader constraint violation: when resolving overridden method
"org.apache.cxf.jaxb.attachment.JAXBAttachmentUnmarshaller.getAttachmentAsDataHandler(Ljava/lang/String;)Ljavax/activation/DataHandler;" the class
loader (instance of org/mortbay/jetty/webapp/WebAppClassLoader) of the current class, org/apache/cxf/jaxb/attachment/JAXBAttachmentUnmarshaller, and
its superclass loader (instance of <bootloader>), have different Class objects for the type javax/activation/DataHandler used in the signature
at org.apache.cxf.jaxb.JAXBDataBase.getAttachmentUnmarshaller(JAXBDataBase.java:79)
9 start opennms and the RAM interface should be at http://localhost:8980/RI/services/ResourceAlarmHandlingService
If you use the CTK to poll the interface you will see the alarm list being sent.
source code
The code for the OpenNMS RAM interface is hosted at
To build it you should do a mvn clean install in the 'BaseProject'
Please note that this code relies on the RAM interface having already been built. Unfortunately the RAM source code is not open source and you need to be a TM Forum member to access it.