package org.infosec.ismp.trapd; import java.lang.reflect.UndeclaredThrowableException; import org.infosec.ismp.daemon.AbstractServiceDaemon; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.Assert; /** * snmp trap的主程序 * @author lianglin * */ @Component public class Trapd extends AbstractServiceDaemon{ /** * The name of the logging category for Syslogd. */ static final String LOG4J_CATEGORY = "ISMP.Trapd"; private TrapNodeManager m_trapNodeManager; private SnmpTrapHandler m_handler; public Trapd() { super(LOG4J_CATEGORY); } @Override protected void onInit() { Assert.notNull(m_trapNodeManager, "m_trapNodeManager is null,please check"); } @Override protected void onStart() { m_handler.setTrapNodeManager(m_trapNodeManager); m_handler.run(); try { BroadcastEventProcessor m_eventReader = new BroadcastEventProcessor(m_trapNodeManager); } catch (Exception ex) { log().error("Failed to setup event reader", ex); throw new UndeclaredThrowableException(ex); } } @Autowired(required=true) public void setTrapNodeManager(TrapNodeManager trapNodeManager) { m_trapNodeManager = trapNodeManager; } @Autowired(required=true) public void setHandler(SnmpTrapHandler handler) { m_handler = handler; } }