package org.infosec.ismp.agent; import org.infosec.ismp.eventd.Eventd; import org.infosec.ismp.eventd.adaptors.EventIpcManagerEventHandlerProxy; import org.infosec.ismp.eventd.adaptors.udp.UdpEventReceiver; import org.infosec.ismp.syslogd.Syslogd; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.util.Log4jConfigurer; /** * 该类启动Agent,该Agent没有持久化数据,只是操纵内存数据,为了测试流程是否正确。 * * @author lianglin * */ public class MemoryAgentMain { /** * @param args */ public static void main(String[] args) throws Exception { // 加载log4j配置文件 Log4jConfigurer.initLogging("classpath:log4j.properties"); ApplicationContext ctx = new ClassPathXmlApplicationContext( new String[] { "classpath:applicationContext-agent.xml" }); Eventd eventd = (Eventd)ctx.getBean("eventd"); eventd.start(); Syslogd syslogd = (Syslogd)ctx.getBean("syslogd"); syslogd.start(); // EventIpcManagerProxy eventipcProxy = new EventIpcManagerProxy(); // EventIpcManagerDefaultImpl impl = new EventIpcManagerDefaultImpl(); // EventIpcManagerFactory.setIpcManager(impl); // // impl.setHandlerPoolSize(3); // impl.setEventIpcManagerProxy(eventipcProxy); // // // 创建事件扩充处理器 // AgentEventExpander eventExpander = new AgentEventExpander(); // eventExpander.afterPropertiesSet(); // // // 创建事件广播处理器 // EventIpcBroadcastProcessor broadcastProcessor = new // EventIpcBroadcastProcessor(); // broadcastProcessor.setEventIpcBroadcaster(eventipcProxy); // broadcastProcessor.afterPropertiesSet(); // // // 创建事件处理handler // DefaultEventHandlerImpl handlerImpl = new DefaultEventHandlerImpl(); // List<EventProcessor> processors = new ArrayList<EventProcessor>(); // processors.add(eventExpander); // processors.add(broadcastProcessor); // handlerImpl.setEventProcessors(processors); // handlerImpl.afterPropertiesSet(); // // // impl.setEventHandler(handlerImpl); // // impl.afterPropertiesSet(); // // // 创建事件接受模块 // Eventd eventd = createEventd(); // eventd.start(); // // createUdpUploader(); // // SpServicePoller poller = new SpServicePoller(); // MemorySpServicePollerConfig pollerConfig = new // MemorySpServicePollerConfig(); // // DefaultPollContext context = new DefaultPollContext(); // context.setDataManager(pollerConfig); // context.setEventManager(impl); // // PollableNetwork network = new PollableNetwork(context); // // poller.setDataManager(pollerConfig); // poller.setNetwork(network); // poller.setPollerConfig(pollerConfig); // // poller.init(); // poller.start(); // // Syslogd syslogd = new Syslogd(); // syslogd.setSyslogdConfig(new MemorySyslogdConfig()); // syslogd.afterPropertiesSet(); // syslogd.start(); } private static Eventd createEventd() throws Exception { Eventd eventd = new Eventd(); EventIpcManagerEventHandlerProxy proxy = new EventIpcManagerEventHandlerProxy(); UdpEventReceiver receiver = new UdpEventReceiver(); receiver.addEventHandler(proxy); eventd.addEventReceiver(receiver); eventd.afterPropertiesSet(); return eventd; } // // private static void createUdpUploader()throws Exception{ // InetAddress addr = InetAddress.getLocalHost(); // DatagramSocket socket = new DatagramSocket(); // UpdEventUploadProcessor processor = new // UpdEventUploadProcessor(socket,addr,5816); // } }