Example usage for org.springframework.beans.factory.xml XmlBeanFactory setBeanClassLoader

List of usage examples for org.springframework.beans.factory.xml XmlBeanFactory setBeanClassLoader

Introduction

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

Prototype

@Override
    public void setBeanClassLoader(@Nullable ClassLoader beanClassLoader) 

Source Link

Usage

From source file:org.iternine.jeppetto.testsupport.TestContext.java

public TestContext(String configurationFilename, String propertiesFilename,
        DatabaseProvider... databaseProviders) {
    XmlBeanFactory xmlBeanFactory = new XmlBeanFactory(new ClassPathResource(configurationFilename));
    xmlBeanFactory.setBeanClassLoader(this.getClass().getClassLoader());

    Properties properties = new Properties();

    try {//from   w  w  w. j a  v a 2  s.  c om
        properties.load(new ClassPathResource(propertiesFilename).getInputStream());
    } catch (IOException e) {
        throw new RuntimeException(e);
    }

    if (databaseProviders != null) {
        for (DatabaseProvider databaseProvider : databaseProviders) {
            properties = databaseProvider.modifyProperties(properties);
        }
    }

    PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
    configurer.setProperties(properties);
    configurer.postProcessBeanFactory(xmlBeanFactory);

    try {
        applicationContext = new GenericApplicationContext(xmlBeanFactory);
        applicationContext.refresh();

        if (databaseProviders != null) {
            for (DatabaseProvider databaseProvider : databaseProviders) {
                databases.add(databaseProvider.getDatabase(properties, applicationContext));
            }
        }
    } catch (RuntimeException e) {
        if (databaseProviders != null) {
            for (DatabaseProvider databaseProvider : databaseProviders) {
                if (databaseProvider instanceof Closeable) {
                    try {
                        ((Closeable) databaseProvider).close();
                    } catch (IOException e1) {
                        // ignore
                    }
                }
            }
        }

        throw e;
    }
}