List of usage examples for org.springframework.beans.factory.config ConfigurableBeanFactory getRegisteredScopeNames
String[] getRegisteredScopeNames();
From source file:org.red5.server.jboss.JbossLoader.java
/** * Shut server down//from ww w . j ava2 s . co m */ public void stop() { logger.info("Shutting down jboss context"); try { //prepare spring for shutdown Introspector.flushCaches(); //shutdown our jmx agent JMXAgent.shutdown(); //shutdown spring FileSystemXmlApplicationContext appContext = (FileSystemXmlApplicationContext) getApplicationContext(); ConfigurableBeanFactory factory = appContext.getBeanFactory(); if (factory.containsSingleton("default.context")) { for (String scope : factory.getRegisteredScopeNames()) { logger.debug("Registered scope: " + scope); } for (String singleton : factory.getSingletonNames()) { logger.debug("Registered singleton: " + singleton); //factory.destroyScopedBean(singleton); } factory.destroySingletons(); } appContext.close(); LogFactory.release(Thread.currentThread().getContextClassLoader()); } catch (Exception e) { logger.warn("Jboss could not be stopped", e); } }
From source file:org.red5.server.war.MainServlet.java
/** * Clearing the in-memory configuration parameters, we will receive * notification that the servlet context is about to be shut down */// w ww . ja v a 2 s . c o m public void contextDestroyed(ServletContextEvent sce) { logger.info("Webapp shutdown"); // XXX Paul: grabbed this from // http://opensource.atlassian.com/confluence/spring/display/DISC/Memory+leak+-+classloader+won%27t+let+go // in hopes that we can clear all the issues with J2EE containers during // shutdown try { // prepare spring for shutdown Introspector.flushCaches(); // dereg any drivers for (Enumeration e = DriverManager.getDrivers(); e.hasMoreElements();) { Driver driver = (Driver) e.nextElement(); if (driver.getClass().getClassLoader() == getClass().getClassLoader()) { DriverManager.deregisterDriver(driver); } } // shutdown jmx JMXAgent.shutdown(); // shutdown spring // get web application context from the servlet context ConfigurableWebApplicationContext applicationContext = (ConfigurableWebApplicationContext) servletContext .getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); ConfigurableBeanFactory factory = applicationContext.getBeanFactory(); if (factory.containsSingleton("default.context")) { for (String scope : factory.getRegisteredScopeNames()) { logger.debug("Registered scope: " + scope); } for (String singleton : factory.getSingletonNames()) { logger.debug("Registered singleton: " + singleton); // factory.destroyScopedBean(singleton); } factory.destroySingletons(); } servletContext.removeAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); applicationContext.close(); // http://jakarta.apache.org/commons/logging/guide.html#Classloader_and_Memory_Management // http://wiki.apache.org/jakarta-commons/Logging/UndeployMemoryLeak?action=print // LogFactory.release(Thread.currentThread().getContextClassLoader()); } catch (Throwable e) { // may get a java.lang.StackOverflowError when shutting appcontext // down in jboss e.printStackTrace(); } }