private WebAppContext buildWebAppContext(String[] args, Enviroment env) { AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext(); applicationContext.register(WebContext.class); WebAppContext handler = new WebAppContext(); handler.setContextPath(CONTEXT_NAME); handler.setDisplayName(DISPLAY_NAME); String[] resources = null; resources = new String[] {"./WebContent"}; handler.setWelcomeFiles(new String[] {"index.html"}); handler.setInitParameter("useFileMappedBuffer", "false"); handler.setBaseResource(new ResourceCollection(resources)); handler.setResourceAlias("/WEB-INF/classes/", "/classes/"); this.appendListeners(applicationContext, handler); this.appendSpringDispatcherServlet(applicationContext, handler); applicationContext.close(); return handler; }
public void initializePlugin(PluginManager manager, File pluginDirectory) { Log.info("[" + NAME + "] initialize " + NAME + " plugin resources"); try { openfire = new Openfire(); openfire.start(); JmxHelper.register(openfire, OBJECTNAME_OPENFIRE); Log.info("[" + NAME + "] .. started openfire server detector."); } catch (Exception e) { Log.debug("cannot start openfire server detector: " + e.getMessage(), e); } try { packetCounter = new PacketCounter(); packetCounter.start(); JmxHelper.register(packetCounter, OBJECTNAME_PACKET_COUNTER); Log.info("[" + NAME + "] .. started stanza counter."); } catch (Exception e) { Log.debug("cannot start stanza counter: " + e.getMessage(), e); } try { client = new CoreThreadPool( ((ConnectionManagerImpl) XMPPServer.getInstance().getConnectionManager()) .getSocketAcceptor()); client.start(); JmxHelper.register(client, OBJECTNAME_CORE_CLIENT_THREADPOOL); Log.info("[" + NAME + "] .. started client thread pool monitor."); } catch (Exception e) { Log.debug("cannot start client thread pool monitor: " + e.getMessage(), e); } try { database = new DatabasePool(); database.start(); JmxHelper.register(database, OBJECTNAME_DATABASEPOOL); Log.info("[" + NAME + "] .. started database pool monitor."); } catch (Exception e) { Log.debug("cannot start database pool monitor: " + e.getMessage(), e); } try { ContextHandlerCollection contexts = HttpBindManager.getInstance().getContexts(); try { Log.info("[" + NAME + "] starting jolokia"); WebAppContext context = new WebAppContext(contexts, pluginDirectory.getPath(), "/jolokia"); final List<ContainerInitializer> initializers = new ArrayList<>(); initializers.add(new ContainerInitializer(new JasperInitializer(), null)); context.setAttribute("org.eclipse.jetty.containerInitializers", initializers); context.setAttribute(InstanceManager.class.getName(), new SimpleInstanceManager()); context.setWelcomeFiles(new String[] {"index.html"}); Log.info("[" + NAME + "] starting hawtio"); WebAppContext context2 = new WebAppContext(contexts, pluginDirectory.getPath() + "/hawtio", "/hawtio"); final List<ContainerInitializer> initializers2 = new ArrayList<>(); initializers2.add(new ContainerInitializer(new JasperInitializer(), null)); context2.setAttribute("org.eclipse.jetty.containerInitializers", initializers2); context2.setAttribute(InstanceManager.class.getName(), new SimpleInstanceManager()); context2.setWelcomeFiles(new String[] {"index.html"}); if (JiveGlobals.getBooleanProperty("xmpp.jmx.secure", true)) { SecurityHandler securityHandler = basicAuth("jmxweb"); if (securityHandler != null) context.setSecurityHandler(securityHandler); SecurityHandler securityHandler2 = basicAuth("jmxweb"); if (securityHandler2 != null) context2.setSecurityHandler(securityHandler2); } } catch (Exception e) { Log.error("An error has occurred", e); } } catch (Exception e) { Log.error("Error initializing JmxWeb Plugin", e); } if (JiveGlobals.getBooleanProperty("jmxweb.email.monitoring", true)) { Log.info("[" + NAME + "] starting email monitoring"); emailScheduler = new EmailScheduler(); emailScheduler.startMonitoring(); Log.info("[" + NAME + "] started monitoring"); } }