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/FileSystemBridge.java =================================================================== --- spring-deployment/src/main/java/org/apache/james/container/spring/adaptor/FileSystemBridge.java (revision 674320) +++ spring-deployment/src/main/java/org/apache/james/container/spring/adaptor/FileSystemBridge.java (working copy) @@ -20,13 +20,14 @@ import org.apache.james.services.FileSystem; import org.springframework.core.io.ResourceLoader; +import org.springframework.context.ResourceLoaderAware; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; -public class FileSystemBridge implements FileSystem { +public class FileSystemBridge implements FileSystem, ResourceLoaderAware { public File getBasedir() throws FileNotFoundException { return new File("."); 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 {