// A few things that need to get set up before regular init(). @Override protected void internalInit() { log.debug("Starting CWM Application Internal Init"); log.debug("Application Class is " + getClass().getName()); loadAppProperties(); // If using Logback as the logger, and we have a logConfig property, // then read that configuration. File logConfig = configuration.getOptionalFile("cwm.logConfig"); if (logConfig != null && LoggerFactory.getILoggerFactory() instanceof LoggerContext) { log.info("Log Configuration: {}", logConfig); LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); try { JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(lc); // the context was probably already configured by default configuration rules lc.reset(); configurator.doConfigure(logConfig); } catch (JoranException je) { je.printStackTrace(); } StatusPrinter.printInCaseOfErrorsOrWarnings(lc); } loadServices(); getComponentInstantiationListeners() .add(new GuiceComponentInjector(this, getInjectionModuleArray())); super.internalInit(); }