View Javadoc

1   package org.kuali.ole;
2   
3   import org.kuali.rice.core.api.config.ConfigurationException;
4   import org.kuali.rice.core.api.config.property.Config;
5   import org.kuali.rice.core.api.config.property.ConfigContext;
6   import org.kuali.rice.core.impl.config.property.JAXBConfigImpl;
7   import org.springframework.beans.factory.FactoryBean;
8   
9   import java.util.List;
10  
11  /**
12   * Created with IntelliJ IDEA.
13   * User: pvsubrah
14   * Date: 6/11/13
15   * Time: 11:37 AM
16   * To change this template use File | Settings | File Templates.
17   */
18  public class OleConfigFactoryBean implements FactoryBean<Config> {
19      private List<String> configLocations;
20      private boolean initialize = false;
21      private boolean systemPropertiesAlwaysWin = true;
22      public static String CONFIG_OVERRIDE_LOCATION;
23  
24  
25      @Override
26      public org.kuali.rice.core.api.config.property.Config getObject() throws Exception {
27  
28          org.kuali.rice.core.api.config.property.Config oldConfig = null;
29  
30          if (getConfigLocations() == null) {
31              throw new ConfigurationException("No config locations declared, at least one is required");
32          }
33  
34          if (ConfigContext.getCurrentContextConfig() != null) {
35              oldConfig = ConfigContext.getCurrentContextConfig();
36          }
37          //SimpleConfig config = null;
38          JAXBConfigImpl config = null;
39          if (CONFIG_OVERRIDE_LOCATION != null) {
40              config = new JAXBConfigImpl(CONFIG_OVERRIDE_LOCATION, oldConfig);
41          } else {
42              config = new JAXBConfigImpl(getConfigLocations(), oldConfig);
43          }
44  
45          config.setSystemOverride(systemPropertiesAlwaysWin);
46          config.parseConfig();
47  
48          if (initialize) {
49              ConfigContext.init(config);
50          }
51  
52          return config;
53      }
54  
55      @Override
56      public Class<Config> getObjectType() {
57          return org.kuali.rice.core.api.config.property.Config.class;
58      }
59  
60      @Override
61      public boolean isSingleton() {
62          return true;
63      }
64  
65      public List<String> getConfigLocations() {
66          return this.configLocations;
67      }
68  
69      public void setConfigLocations(List<String> configLocations) {
70          this.configLocations = configLocations;
71      }
72  
73      public void setInitialize(boolean initialize) {
74          this.initialize = initialize;
75      }
76  
77      public boolean isSystemPropertiesAlwaysWin() {
78          return systemPropertiesAlwaysWin;
79      }
80  
81      public void setSystemPropertiesAlwaysWin(boolean systemPropertiesAlwaysWin) {
82          this.systemPropertiesAlwaysWin = systemPropertiesAlwaysWin;
83      }
84  }