static void initializeLogging() throws SipXOpenfirePluginException { try { String javaClassPaths = System.getProperty("java.class.path"); String openfireHome = System.getProperty("openfire.home"); StringBuilder sb = new StringBuilder(javaClassPaths).append(":" + openfireHome + "/lib/sipxcommons.jar"); System.setProperty("java.class.path", sb.toString()); String log4jPropertiesFile = configurationPath + "/log4j.properties"; if (new File(log4jPropertiesFile).exists()) { /* * Override the file configuration setting. */ Properties props = new Properties(); props.load(new FileInputStream(log4jPropertiesFile)); String level = props.getProperty("log4j.category.org.sipfoundry.openfire"); if (level != null) { watcherConfig.setLogLevel(level); } } setLogAppender(new SipFoundryAppender(new SipFoundryLayout(), logFile)); // TODO -- this should be org.sipfoundry.openfire. Logger applicationLogger = Logger.getLogger("org.sipfoundry"); /* * Set the log level. */ if (watcherConfig.getLogLevel().equals("TRACE")) { applicationLogger.setLevel(org.apache.log4j.Level.DEBUG); } else { applicationLogger.setLevel(org.apache.log4j.Level.toLevel(watcherConfig.getLogLevel())); } applicationLogger.addAppender(getLogAppender()); if (System.getProperty("output.console") != null) { applicationLogger.addAppender(new ConsoleAppender(new PatternLayout())); } CallWatcher.setLogAppender(getLogAppender()); } catch (Exception ex) { throw new SipXOpenfirePluginException(ex); } }
public void initializePlugin(PluginManager manager, File pluginDirectory) { SipXOpenfirePlugin.instance = this; InputStream in = getClass().getResourceAsStream("/config.properties"); Properties properties = new Properties(); componentManager = ComponentManagerFactory.getComponentManager(); try { properties.load(in); } catch (IOException ex) { componentManager.getLog().error(ex); } try { if (new File("/tmp/sipx.properties").exists()) { System.getProperties().load(new FileInputStream(new File("/tmp/sipx.properties"))); } } catch (Exception ex) { componentManager.getLog().error(ex); throw new SipXOpenfirePluginException("Error reading config file ", ex); } pluginManager = manager; ClassLoader classLoader = pluginManager.getPluginClassloader(this); classLoader.setPackageAssertionStatus("org.sipfoundry", true); Thread.currentThread().setContextClassLoader(classLoader); configurationPath = System.getProperty("conf.dir", "/etc/sipxpbx"); parseConfigurationFile(); initializeLogging(); CallWatcher.setWatcherConfig(watcherConfig); /* * This initializes the SIP side of the show. */ try { CallWatcher.pluginInit(); log.info("completed init"); ResourceStateChangeListener resourceStateChangeListener = new ResourceStateChangeListenerImpl(this); CallWatcher.getSubscriber().setResourceStateChangeListener(resourceStateChangeListener); } catch (Exception e) { log.error("Error initializing CallWatcher"); throw new SipXOpenfirePluginException("Init error", e); } server = XMPPServer.getInstance(); userManager = server.getUserManager(); presenceManager = server.getPresenceManager(); hostname = server.getServerInfo().getXMPPDomain(); log.info("HostName = " + hostname); probedPresence = new ConcurrentHashMap<String, Presence>(); componentJID = new JID(subdomain + "." + hostname); groupManager = GroupManager.getInstance(); multiUserChatManager = server.getMultiUserChatManager(); /* * Load up the database. */ multiUserChatManager.start(); log.info("hostname " + hostname); try { componentManager.addComponent(subdomain, this); } catch (Exception e) { componentManager.getLog().error(e); log.error(e); throw new SipXOpenfirePluginException("Init error", e); } String accountConfigurationFile = configurationPath + "/xmpp-account-info.xml"; if (!new File(accountConfigurationFile).exists()) { System.err.println("User account file not found"); throw new SipXOpenfirePluginException("Cannot find user accounts file"); } else { this.accountsParser = new AccountsParser(accountConfigurationFile); this.accountsParser.startScanner(); } // config and instantiate and the presence unifier used to gather all presence info PresenceUnifier.setPlugin(this); PresenceUnifier.getInstance(); // add packet interceptor InterceptorManager.getInstance().addInterceptor(new MessagePacketInterceptor(this)); log.info("plugin initializaton completed"); log.info("DONE"); }