package com.revolsys.spring.resource;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.AnnotationConfigUtils;
import org.springframework.context.support.GenericApplicationContext;
import com.revolsys.spring.config.AttributesBeanConfigurer;
public class SpringUtil {
public static void close(final ConfigurableApplicationContext applicationContext) {
if (applicationContext != null) {
if (applicationContext.isActive()) {
applicationContext.close();
}
}
}
public static GenericApplicationContext getApplicationContext(final ClassLoader classLoader,
final Resource... resources) {
final GenericApplicationContext applicationContext = new GenericApplicationContext();
applicationContext.setClassLoader(classLoader);
AnnotationConfigUtils.registerAnnotationConfigProcessors(applicationContext, null);
final AttributesBeanConfigurer attributesConfig = new AttributesBeanConfigurer(
applicationContext);
applicationContext.addBeanFactoryPostProcessor(attributesConfig);
final XmlBeanDefinitionReader beanReader = new XmlBeanDefinitionReader(applicationContext);
beanReader.setBeanClassLoader(classLoader);
beanReader.loadBeanDefinitions(resources);
applicationContext.refresh();
return applicationContext;
}
}