Example usage for org.springframework.beans.factory.support DefaultListableBeanFactory setBeanClassLoader

List of usage examples for org.springframework.beans.factory.support DefaultListableBeanFactory setBeanClassLoader

Introduction

In this page you can find the example usage for org.springframework.beans.factory.support DefaultListableBeanFactory setBeanClassLoader.

Prototype

@Override
    public void setBeanClassLoader(@Nullable ClassLoader beanClassLoader) 

Source Link

Usage

From source file:org.codehaus.griffon.runtime.spring.GriffonRuntimeConfigurator.java

private void doPostResourceConfiguration(GriffonApplication application,
        RuntimeSpringConfiguration springConfig) {
    ClassLoader classLoader = ApplicationClassLoader.get();
    String resourceName = SPRING_RESOURCES_XML;
    try {/*  w  w w  .  j a  v  a 2s  . co  m*/
        Resource springResources = new ClassPathResource(resourceName);

        if (springResources != null && springResources.exists()) {
            if (LOG.isDebugEnabled())
                LOG.debug(
                        "[RuntimeConfiguration] Configuring additional beans from " + springResources.getURL());
            DefaultListableBeanFactory xmlBf = new DefaultListableBeanFactory();
            new XmlBeanDefinitionReader(xmlBf).loadBeanDefinitions(springResources);
            xmlBf.setBeanClassLoader(classLoader);
            String[] beanNames = xmlBf.getBeanDefinitionNames();
            if (LOG.isDebugEnabled())
                LOG.debug("[RuntimeConfiguration] Found [" + beanNames.length + "] beans to configure");
            for (String beanName : beanNames) {
                BeanDefinition bd = xmlBf.getBeanDefinition(beanName);
                final String beanClassName = bd.getBeanClassName();
                Class<?> beanClass = beanClassName == null ? null
                        : ClassUtils.forName(beanClassName, classLoader);

                springConfig.addBeanDefinition(beanName, bd);
                String[] aliases = xmlBf.getAliases(beanName);
                for (String alias : aliases) {
                    springConfig.addAlias(alias, beanName);
                }
                if (beanClass != null) {
                    if (BeanFactoryPostProcessor.class.isAssignableFrom(beanClass)) {
                        ((ConfigurableApplicationContext) springConfig.getUnrefreshedApplicationContext())
                                .addBeanFactoryPostProcessor(
                                        (BeanFactoryPostProcessor) xmlBf.getBean(beanName));
                    }
                }
            }
        } else if (LOG.isDebugEnabled()) {
            LOG.debug("[RuntimeConfiguration] " + resourceName + " not found. Skipping configuration.");
        }
    } catch (Exception ex) {
        LOG.error("[RuntimeConfiguration] Unable to perform post initialization config: " + resourceName,
                sanitize(ex));
    }

    loadSpringGroovyResources(springConfig, application);
}

From source file:org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.java

private void doPostResourceConfiguration(GrailsApplication app, RuntimeSpringConfiguration springConfig) {
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    String resourceName = null;//from   w  w  w. j a  v  a 2s . c o m
    try {
        Resource springResources;
        if (app.isWarDeployed()) {
            resourceName = GrailsRuntimeConfigurator.SPRING_RESOURCES_XML;
            springResources = parent.getResource(resourceName);
        } else {
            resourceName = DEVELOPMENT_SPRING_RESOURCES_XML;
            ResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver();
            springResources = patternResolver.getResource(resourceName);
        }

        if (springResources != null && springResources.exists()) {
            if (LOG.isDebugEnabled())
                LOG.debug(
                        "[RuntimeConfiguration] Configuring additional beans from " + springResources.getURL());
            DefaultListableBeanFactory xmlBf = new DefaultListableBeanFactory();
            new XmlBeanDefinitionReader(xmlBf).loadBeanDefinitions(springResources);
            xmlBf.setBeanClassLoader(classLoader);
            String[] beanNames = xmlBf.getBeanDefinitionNames();
            if (LOG.isDebugEnabled())
                LOG.debug("[RuntimeConfiguration] Found [" + beanNames.length + "] beans to configure");
            for (String beanName : beanNames) {
                BeanDefinition bd = xmlBf.getBeanDefinition(beanName);
                final String beanClassName = bd.getBeanClassName();
                Class<?> beanClass = beanClassName == null ? null
                        : ClassUtils.forName(beanClassName, classLoader);

                springConfig.addBeanDefinition(beanName, bd);
                String[] aliases = xmlBf.getAliases(beanName);
                for (String alias : aliases) {
                    springConfig.addAlias(alias, beanName);
                }
                if (beanClass != null) {
                    if (BeanFactoryPostProcessor.class.isAssignableFrom(beanClass)) {
                        ((ConfigurableApplicationContext) springConfig.getUnrefreshedApplicationContext())
                                .addBeanFactoryPostProcessor(
                                        (BeanFactoryPostProcessor) xmlBf.getBean(beanName));
                    }
                }
            }
        } else if (LOG.isDebugEnabled()) {
            LOG.debug("[RuntimeConfiguration] " + resourceName + " not found. Skipping configuration.");
        }
    } catch (Exception ex) {
        LOG.error("[RuntimeConfiguration] Unable to perform post initialization config: " + resourceName, ex);
    }

    GrailsRuntimeConfigurator.loadSpringGroovyResources(springConfig, app);
}

From source file:org.eclipse.gemini.blueprint.compendium.internal.cm.ManagedServiceFactoryFactoryBean.java

private void createEmbeddedBeanFactory() {
    synchronized (monitor) {
        DefaultListableBeanFactory bf = new DefaultListableBeanFactory(owningBeanFactory);
        if (owningBeanFactory instanceof ConfigurableBeanFactory) {
            bf.copyConfigurationFrom((ConfigurableBeanFactory) owningBeanFactory);
        }/*from  ww w  .  ja  v a 2 s.c o  m*/
        // just to be on the safe side
        bf.setBeanClassLoader(classLoader);
        // add autowiring processor
        bf.addBeanPostProcessor(new InitialInjectionProcessor());

        beanFactory = bf;
    }
}

From source file:org.grails.web.servlet.context.support.GrailsRuntimeConfigurator.java

protected void doPostResourceConfiguration(GrailsApplication app, RuntimeSpringConfiguration springConfig) {
    ClassLoader classLoader = app.getClassLoader();
    String resourceName = null;//w  w  w  .  j a v  a 2s . c om
    try {
        Resource springResources;
        if (app.isWarDeployed()) {
            resourceName = GrailsRuntimeConfigurator.SPRING_RESOURCES_XML;
            springResources = parent.getResource(resourceName);
        } else {
            resourceName = DEVELOPMENT_SPRING_RESOURCES_XML;
            ResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver();
            springResources = patternResolver.getResource(resourceName);
        }

        if (springResources != null && springResources.exists()) {
            if (LOG.isDebugEnabled())
                LOG.debug(
                        "[RuntimeConfiguration] Configuring additional beans from " + springResources.getURL());
            DefaultListableBeanFactory xmlBf = new OptimizedAutowireCapableBeanFactory();
            new XmlBeanDefinitionReader(xmlBf).loadBeanDefinitions(springResources);
            xmlBf.setBeanClassLoader(classLoader);
            String[] beanNames = xmlBf.getBeanDefinitionNames();
            if (LOG.isDebugEnabled())
                LOG.debug("[RuntimeConfiguration] Found [" + beanNames.length + "] beans to configure");
            for (String beanName : beanNames) {
                BeanDefinition bd = xmlBf.getBeanDefinition(beanName);
                final String beanClassName = bd.getBeanClassName();
                Class<?> beanClass = beanClassName == null ? null
                        : ClassUtils.forName(beanClassName, classLoader);

                springConfig.addBeanDefinition(beanName, bd);
                String[] aliases = xmlBf.getAliases(beanName);
                for (String alias : aliases) {
                    springConfig.addAlias(alias, beanName);
                }
                if (beanClass != null) {
                    if (BeanFactoryPostProcessor.class.isAssignableFrom(beanClass)) {
                        ((ConfigurableApplicationContext) springConfig.getUnrefreshedApplicationContext())
                                .addBeanFactoryPostProcessor(
                                        (BeanFactoryPostProcessor) xmlBf.getBean(beanName));
                    }
                }
            }
        } else if (LOG.isDebugEnabled()) {
            LOG.debug("[RuntimeConfiguration] " + resourceName + " not found. Skipping configuration.");
        }
    } catch (Exception ex) {
        LOG.error("[RuntimeConfiguration] Unable to perform post initialization config: " + resourceName, ex);
    }

    GrailsRuntimeConfigurator.loadSpringGroovyResources(springConfig, app);
}

From source file:org.impalaframework.web.spring.module.BaseWebModuleLoader.java

public final GenericWebApplicationContext newApplicationContext(Application application,
        ApplicationContext parent, ModuleDefinition moduleDefinition, ClassLoader classLoader) {

    ServletContext wrappedServletContext = servletContext;

    if (servletContextWrapper != null) {
        wrappedServletContext = servletContextWrapper.wrapServletContext(servletContext, application.getId(),
                moduleDefinition, classLoader);

        final String wrappedContextAttributeName = getWrappedServletContextAttributeName(application,
                moduleDefinition);/* w  w w . j av a 2  s  .c om*/
        servletContext.setAttribute(wrappedContextAttributeName, wrappedServletContext);
    }

    final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
    beanFactory.setBeanClassLoader(classLoader);

    final GenericWebApplicationContext context = newApplicationContext(moduleDefinition, parent, classLoader,
            wrappedServletContext, beanFactory);

    configureBeanFactoryAndApplicationContext(moduleDefinition, beanFactory, context);
    return context;
}

From source file:org.springframework.jdbc.support.SQLErrorCodesFactory.java

/**
 * Create a new instance of the {@link SQLErrorCodesFactory} class.
 * <p>Not public to enforce Singleton design pattern. Would be private
 * except to allow testing via overriding the
 * {@link #loadResource(String)} method.
 * <p><b>Do not subclass in application code.</b>
 * @see #loadResource(String)//from   www .  j av  a  2  s.c o m
 */
protected SQLErrorCodesFactory() {
    Map<String, SQLErrorCodes> errorCodes;

    try {
        DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
        lbf.setBeanClassLoader(getClass().getClassLoader());
        XmlBeanDefinitionReader bdr = new XmlBeanDefinitionReader(lbf);

        // Load default SQL error codes.
        Resource resource = loadResource(SQL_ERROR_CODE_DEFAULT_PATH);
        if (resource != null && resource.exists()) {
            bdr.loadBeanDefinitions(resource);
        } else {
            logger.warn("Default sql-error-codes.xml not found (should be included in spring.jar)");
        }

        // Load custom SQL error codes, overriding defaults.
        resource = loadResource(SQL_ERROR_CODE_OVERRIDE_PATH);
        if (resource != null && resource.exists()) {
            bdr.loadBeanDefinitions(resource);
            logger.info("Found custom sql-error-codes.xml file at the root of the classpath");
        }

        // Check all beans of type SQLErrorCodes.
        errorCodes = lbf.getBeansOfType(SQLErrorCodes.class, true, false);
        if (logger.isInfoEnabled()) {
            logger.info("SQLErrorCodes loaded: " + errorCodes.keySet());
        }
    } catch (BeansException ex) {
        logger.warn("Error loading SQL error codes from config file", ex);
        errorCodes = Collections.emptyMap();
    }

    this.errorCodesMap = errorCodes;
}