Index: spring-deployment/src/main/java/org/apache/james/container/spring/Main.java =================================================================== --- spring-deployment/src/main/java/org/apache/james/container/spring/Main.java (revision 674320) +++ spring-deployment/src/main/java/org/apache/james/container/spring/Main.java (working copy) @@ -26,7 +26,7 @@ public class Main { public static void main(String[] args) { - new AvalonApplicationContext(); + AvalonApplicationContext.newAvalonApplicationContext(); } } Index: spring-deployment/src/main/java/org/apache/james/container/spring/adaptor/AvalonConfigurationFileProvider.java =================================================================== --- spring-deployment/src/main/java/org/apache/james/container/spring/adaptor/AvalonConfigurationFileProvider.java (revision 674320) +++ spring-deployment/src/main/java/org/apache/james/container/spring/adaptor/AvalonConfigurationFileProvider.java (working copy) @@ -36,7 +36,7 @@ * * TODO make this thing be based on Resource class and inject resource.getInputStream() into InputSource */ -public class AvalonConfigurationFileProvider implements ConfigurationProvider, ResourceLoaderAware { +public class AvalonConfigurationFileProvider implements ConfigurationProvider { private List configurationInterceptors; private String configuration; Index: spring-deployment/src/main/java/org/apache/james/container/spring/beanfactory/AvalonApplicationContext.java =================================================================== --- spring-deployment/src/main/java/org/apache/james/container/spring/beanfactory/AvalonApplicationContext.java (revision 674320) +++ spring-deployment/src/main/java/org/apache/james/container/spring/beanfactory/AvalonApplicationContext.java (working copy) @@ -45,23 +45,30 @@ /** * configuration-by-convention constructor, tries to find default config files on classpath */ - public AvalonApplicationContext() { - this(RESOURCE_SPRING_BEANS, RESOURCE_JAMES_ASSEMBLY); + public static AvalonApplicationContext newAvalonApplicationContext() { + return newAvalonApplicationContext(RESOURCE_SPRING_BEANS, RESOURCE_JAMES_ASSEMBLY); } - public AvalonApplicationContext(Resource containerConfigurationResource, + public static AvalonApplicationContext newAvalonApplicationContext(Resource containerConfigurationResource, Resource applicationConfigurationResource) { - this(null, containerConfigurationResource, applicationConfigurationResource); + return newAvalonApplicationContext(null, containerConfigurationResource, applicationConfigurationResource); } + public static AvalonApplicationContext newAvalonApplicationContext(ApplicationContext parent, + Resource containerConfigurationResource, + Resource applicationConfigurationResource) { + AvalonApplicationContext result = new AvalonApplicationContext(parent, containerConfigurationResource, applicationConfigurationResource); + result.refresh(); + return result; + } + public AvalonApplicationContext(ApplicationContext parent, Resource containerConfigurationResource, Resource applicationConfigurationResource) { super(parent); this.containerConfigurationResource = containerConfigurationResource; this.applicationConfigurationResource = applicationConfigurationResource; - refresh(); } protected void loadBeanDefinitions(DefaultListableBeanFactory defaultListableBeanFactory) throws IOException, BeansException {