From OpenNMS
Contents |
Configurable Remoting
The remote poller currently requires being able to talk over the RMI port, which is difficult in restricted environments. We're already using Spring's remoting support, so it should be possible to configurably choose between RMI-based remoting, and HTTP-based remoting.
Strategy
Backend
Currently, remoting is configured in the applicationContext-exportedPollerBackEnd.xml file, in the opennms-services jar, which exports a "pollerBackEnd-rmi" bean (from the pollerBackEndContext in beanRefContext.xml).
There is no reason to remove it from the backend, we can just export both RMI and HTTP interfaces. We will be adding an HTTP exported poller backend through Jetty.
Frontend
The frontend is determined by a combination of hardcoded URLs (rmi://) and a reference to the applicationContext-remotePollerBackEnd.xml file in opennms-services.
This will be changed to have two remote poller backend xml files:
- applicationContext-remotePollerBackEnd-rmi.xml
- applicationContext-remotePollerBackEnd-http.xml
They will be mutually exclusive, it will be up to the remote-poller Main to choose which one to use based on the scheme in the URL provided by the user. ie: java -jar remote-poller.jar -g -l RDU -u http://opennms-server/
Acceptance Criteria
- the backend should accept remoting connections through both RMI, and HTTP (Jetty)
- the remote poller should be able to connect to either scheme, based on the URL passed to the poller
- the remote poller should connect through HTTP when started as a webstart application
- the remote poller should work properly through Apache and the AJP connector






