Developers guide

124
F.1.8. SnmpTrapDaemonImpl.java
/**
* $Id: SnmpTrapDaemonImpl.java,v 1.4 2002/10/22 08:23:11 oliverm Exp $
* Author: Oliver Mather
*
*/
package apt.masterswitch.snmp;
import org.opennms.protocols.snmp.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.net.InetAddress;
import java.net.SocketException;
/**
* Description:
*
* <p>
* This is an implementation of the SnmpTrapListener interface
* primarily based on the org.opennms.protocols.snmp.SnmpTrapHandler
* interface
* <p>
* Using the tools from org.opennms.protocols.snmp, a thead is bound to
* UDP port 162 to listen for snmp traps.
* <p>
* Root permissions are required for this TrapDaemon to start()
* <p>
* @see apt.masterswitch.snmp.SnmpTrapListener
* @author $Author: oliverm $ <a href="mailto:oliverm@student.unsw.edu.au">Oliver Mather</a>
* @version $Revision: 1.4 $
*
*/
public final class SnmpTrapDaemonImpl extends AbstractSnmpTrapDaemon implements SnmpTrapHandler{
private final Logger logger = Logger.getLogger( getClass().getName() );
private static final SnmpTrapDaemon singletonInstance = new SnmpTrapDaemonImpl();
private SnmpTrapSession trapSession;
private SnmpTrapDaemonImpl() {
}
public static SnmpTrapDaemon getInstance() { return singletonInstance; }
public static void main(String[] args) {
System.out.println("Starting SNMP Trap Daemon...");
SnmpTrapDaemon trapd = SnmpTrapDaemonImpl.getInstance();
trapd.start();
System.out.println("SNMP Trap Daemon Running...");
/*
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
trapd.stop();
*/
}
/**
* Start listening to SNMP Traps by
* creating a org.opennms.protocols.snmp.SnmpTrapSession
* <p>
*/
public void start(){
try {
trapSession = new SnmpTrapSession(this);