1   package com.atlassian.spring.container;
2   
3   import org.springframework.beans.BeansException;
4   import org.springframework.context.ApplicationContext;
5   import org.springframework.context.support.FileSystemXmlApplicationContext;
6   
7   import java.io.IOException;
8   
9   public class SpringTestContainerContext extends SpringContainerContext
10  {
11      public static final String[] DEFAULT_CONFIG_FILES = {};
12  
13      public String[] userConfigFiles;
14  
15      public SpringTestContainerContext() throws BeansException, IOException
16      {
17          configure(getDefaultConfigFiles());
18      }
19  
20      /**
21       * Override this method to use different files.
22       */
23      protected String[] getDefaultConfigFiles()
24      {
25          return DEFAULT_CONFIG_FILES;
26      }
27  
28      public SpringTestContainerContext(ApplicationContext context)
29      {
30          setApplicationContext(context);
31      }
32  
33      public ApplicationContext getApplicationContext()
34      {
35          return super.getApplicationContext();
36      }
37  
38      public void refresh()
39      {
40          try
41          {
42              if(userConfigFiles!= null) {
43                  configure(userConfigFiles);
44              } else {
45                  configure(getDefaultConfigFiles());
46              }
47              contextReloaded();
48          }
49          catch (IOException e)
50          {
51              e.printStackTrace();
52          }
53      }
54  
55      public void configure(String[] files) throws BeansException, IOException
56      {
57          userConfigFiles = files;
58          setApplicationContext(new FileSystemXmlApplicationContext(files));
59      }
60  
61  }