Example usage for org.springframework.beans.factory.config ConfigurableBeanFactory getRegisteredScopeNames

List of usage examples for org.springframework.beans.factory.config ConfigurableBeanFactory getRegisteredScopeNames

Introduction

In this page you can find the example usage for org.springframework.beans.factory.config ConfigurableBeanFactory getRegisteredScopeNames.

Prototype

String[] getRegisteredScopeNames();

Source Link

Document

Return the names of all currently registered scopes.

Usage

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();
    }
}