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 | } |