View Javadoc

1   /***
2    * 
3    */
4   package atg.test.configuration;
5   
6   import java.io.File;
7   import java.io.IOException;
8   import java.util.HashMap;
9   import java.util.Map;
10  
11  import org.apache.log4j.Logger;
12  
13  import atg.nucleus.Nucleus;
14  import atg.nucleus.logging.PrintStreamLogger;
15  import atg.service.lockmanager.ClientLockManager;
16  import atg.test.util.FileUtil;
17  import atg.xml.tools.apache.ApacheXMLToolsFactory;
18  
19  /***
20   * <i>This class is a merger of atg.test.util.DBUtils and
21   * atg.adapter.gsa.GSATestUtils. The result will hopefully be a class that just
22   * has the bare minimums needed for testing against an existing and/or in-memory
23   * database.</i>
24   * <p>
25   * This class will created all properties files needed for non repository based
26   * tests.
27   * </p>
28   * 
29   * @author robert
30   * 
31   */
32  public final class BasicConfiguration {
33  
34    protected String isDebug = Boolean.FALSE.toString();
35  
36    protected final Map<String, String> settings = new HashMap<String, String>();
37  
38    private static Logger log = Logger.getLogger(BasicConfiguration.class);
39  
40    public void setDebug(final boolean isDebug) {
41      this.isDebug = Boolean.toString(isDebug);
42    }
43  
44    /***
45     * 
46     * @param isDebug
47     */
48    public BasicConfiguration() {
49      super();
50    }
51  
52    /***
53     * 
54     * @param root
55     * @throws IOException
56     */
57    public void createPropertiesByConfigurationLocation(final File root)
58        throws IOException {
59  
60      this.createClientLockManager(root);
61      this.createGlobal(root);
62      this.createInitialServices(root);
63      this.createScreenLog(root);
64      this.createXMLToolsFactory(root);
65  
66      log.info("Created basic configuration fileset");
67  
68    }
69  
70    /***
71     * 
72     * @param root
73     * @throws IOException
74     */
75    private void createClientLockManager(final File root) throws IOException {
76      this.settings.clear();
77      settings.put("lockServerAddress", "localhost");
78      settings.put("lockServerPort", "9010");
79      settings.put("useLockServer", "false");
80      FileUtil.createPropertyFile("ClientLockManager", new File(root
81          .getAbsolutePath()
82          + "/atg/dynamo/service"), ClientLockManager.class, settings);
83    }
84  
85    /***
86     * 
87     * @param root
88     * @throws IOException
89     */
90    private void createGlobal(final File root) throws IOException {
91      this.settings.clear();
92      settings.put("logListeners", "/atg/dynamo/service/logging/ScreenLog");
93      settings.put("loggingDebug", isDebug);
94      FileUtil.createPropertyFile("GLOBAL",
95          new File(root.getAbsolutePath() + "/"), null, settings);
96  
97    }
98  
99    /***
100    * 
101    * Creates initial services properties like Initial, AppServerConfig, Nucleus,
102    * etc, etc.
103    * 
104    * @param root
105    * @throws IOException
106    */
107   private void createInitialServices(final File root) throws IOException {
108     this.settings.clear();
109     settings.put("initialServiceName", "/Initial");
110     FileUtil.createPropertyFile("Nucleus", root, Nucleus.class, settings);
111   }
112 
113   /***
114    * 
115    * @param root
116    * @throws IOException
117    */
118   private void createScreenLog(final File root) throws IOException {
119 
120     this.settings.clear();
121     settings.put("cropStackTrace", "false");
122     settings.put("loggingEnabled", isDebug);
123     FileUtil.createPropertyFile("ScreenLog", new File(root.getAbsolutePath()
124         + "/atg/dynamo/service/logging"), PrintStreamLogger.class, settings);
125   }
126 
127   /***
128    * 
129    * @param root
130    * @throws IOException
131    */
132   private void createXMLToolsFactory(final File root) throws IOException {
133     FileUtil.createPropertyFile("XMLToolsFactory", new File(root
134         .getAbsolutePath()
135         + "/atg/dynamo/service/xml"), ApacheXMLToolsFactory.class,
136         new HashMap<String, String>());
137   }
138 
139 }