package org.infosec.ismp.syslogd.agent.config; import org.infosec.ismp.syslogd.SyslogdParserMgr; /** * @author guoxianwei * @date 2010-9-21 上午09:12:13 * */ public class DBSyslogParserMgr implements SyslogdParserMgr { // private static Map<String, SyslogParser> m_parsers = Collections // .synchronizedMap(new TreeMap<String, SyslogParser>()); // // private SyslogDao syslogDao; // // public DBSyslogParserMgr(){ // } // public void init(){ // createSyslogParsers(); // // } // @Override // public SyslogParser getSyslogParser(String syslogParserType) { // // return m_parsers.get(syslogParserType); // } // // private synchronized void createSyslogParsers() { // ThreadCategory log = ThreadCategory.getInstance(getClass()); // // // Load up an instance of each monitor from the config // // so that the event processor will have them for // // new incomming events to create pollable service objects. // // // log.debug("start: Loading monitors"); // // Collection<SyslogParserLocator> locators = getSyslogParserLocators(); // // for (SyslogParserLocator locator : locators) { // try { // m_parsers.put(locator.getParserType(), locator // .getSyslogParser()); // } catch (Throwable t) { // if (log.isEnabledFor(ThreadCategory.Level.WARN)) { // log.warn("start: Failed to create monitor " // + locator.getParserLocatorKey() + " for service " // + locator.getParserType(), t); // } // } // } // // } // // public synchronized Collection<SyslogParserLocator> getSyslogParserLocators() { // List<SyslogParserLocator> locators = new ArrayList<SyslogParserLocator>(); // for (SyslogParserType syslogParserType : parserTypes()) { // try { // Class<? extends SyslogParser> mc = findSyslogParserClass(syslogParserType); // // if (isDistributableToContext(mc, context)) { // SyslogParserLocator locator = new DefaultSyslogParserLocator( // syslogParserType.getType(), mc); // locators.add(locator); // // } // } catch (ClassNotFoundException e) { // log().warn( // "Unable to location Parser for Syslog: " // + syslogParserType.getType() + " class-name: " // + syslogParserType.getClassName(), e); // } catch (ObjectRetrievalFailureException e) { // log().warn(e.getMessage(), e.getRootCause()); // } // // } // // return locators; // // } // private Class<? extends SyslogParser> findSyslogParserClass( // SyslogParserType syslogParserType) throws ClassNotFoundException { // Class<? extends SyslogParser> mc = Class.forName( // syslogParserType.getClassName()).asSubclass(SyslogParser.class); // if (!SyslogParser.class.isAssignableFrom(mc)) { // throw new CastorDataAccessFailureException( // "The Parser for Syslog: " + syslogParserType.getType() // + " class-name: " + syslogParserType.getClassName() // + " must implement SyslogParser"); // } // return mc; // } // protected List<SyslogParserType> parserTypes(){ // // return syslogDao.loadAllParserTypes(); // } // // public SyslogDao getSyslogDao() { // return syslogDao; // } // @Autowired(required=true) // public void setSyslogDao(SyslogDao syslogDao) { // this.syslogDao = syslogDao; // } // private ThreadCategory log() { // return ThreadCategory.getInstance(this.getClass()); // } }