1 31 32 package org.opencms.setup.comptest; 33 34 import org.opencms.setup.CmsSetupBean; 35 import org.opencms.setup.CmsSetupDb; 36 37 import java.io.File ; 38 import java.io.FileWriter ; 39 import java.io.IOException ; 40 import java.io.PrintWriter ; 41 import java.text.DateFormat ; 42 import java.util.ArrayList ; 43 import java.util.Iterator ; 44 import java.util.List ; 45 46 56 public class CmsSetupTests { 57 58 private boolean m_green; 59 private boolean m_red; 60 private List m_testResults; 61 private boolean m_yellow; 62 63 66 public CmsSetupTests() { 67 68 super(); 69 } 70 71 76 public List getAllTests() { 77 78 List tests = new ArrayList (); 79 tests.add(new CmsSetupTestFolderPermissions()); 80 tests.add(new CmsSetupTestJdkVersion()); 81 tests.add(new CmsSetupTestOperatingSystem()); 82 tests.add(new CmsSetupTestServletEngine()); 83 tests.add(new CmsSetupTestSimapi()); 84 tests.add(new CmsSetupTestWarFileUnpacked()); 85 tests.add(new CmsSetupTestXercesVersion()); 86 return tests; 87 } 88 89 94 public List getTestResults() { 95 96 return m_testResults; 97 } 98 99 104 public boolean isGreen() { 105 106 return m_green; 107 } 108 109 115 public boolean isRed() { 116 117 return m_red; 118 } 119 120 126 public boolean isYellow() { 127 128 return m_yellow; 129 } 130 131 136 public void runTests(CmsSetupBean setupBean) { 137 138 boolean hasRed = false; 139 boolean hasYellow = false; 140 141 m_testResults = new ArrayList (); 143 setGreen(); 144 145 Iterator it = getAllTests().iterator(); 146 while (it.hasNext()) { 147 I_CmsSetupTest test = (I_CmsSetupTest)it.next(); 148 CmsSetupTestResult testResult = null; 149 try { 150 testResult = test.execute(setupBean); 151 m_testResults.add(testResult); 152 } catch (Throwable e) { 153 if (testResult != null) { 154 testResult.setRed(); 155 testResult.setResult(I_CmsSetupTest.RESULT_FAILED); 156 testResult.setHelp("Unable to test " + test.getName()); 157 testResult.setInfo(e.toString()); 158 } 159 } 160 } 161 162 for (int i = 0; i < m_testResults.size(); i++) { 164 CmsSetupTestResult testResult = (CmsSetupTestResult)m_testResults.get(i); 165 if (testResult.isRed()) { 166 hasRed = true; 167 } else if (testResult.isYellow()) { 168 hasYellow = true; 169 } 170 } 171 172 if (hasRed) { 174 setRed(); 175 } else if (!hasRed && hasYellow) { 176 setYellow(); 177 } else { 178 setGreen(); 179 } 180 181 writeVersionInfo( 183 setupBean.getServletConfig().getServletContext().getServerInfo(), 184 System.getProperty("java.version"), 185 setupBean.getWebAppRfsPath()); 186 } 187 188 191 protected void setGreen() { 192 193 m_green = true; 194 m_red = false; 195 m_yellow = false; 196 } 197 198 201 protected void setRed() { 202 203 m_green = false; 204 m_red = true; 205 m_yellow = false; 206 } 207 208 211 protected void setYellow() { 212 213 m_green = false; 214 m_red = false; 215 m_yellow = true; 216 } 217 218 226 protected void writeVersionInfo(String thisEngine, String usedJDK, String basePath) { 227 228 FileWriter fOut = null; 229 PrintWriter dOut = null; 230 String filename = basePath + CmsSetupDb.SETUP_FOLDER + "versions.txt"; 231 try { 232 File file = new File (filename); 233 if (file.exists()) { 234 fOut = new FileWriter (filename, true); 236 } else { 237 fOut = new FileWriter (file); 238 } 239 dOut = new PrintWriter (fOut); 241 dOut.println(); 242 dOut.println("############### currently used configuration ################"); 243 dOut.println("Date: " 244 + DateFormat.getDateTimeInstance().format(new java.util.Date (System.currentTimeMillis()))); 245 dOut.println("Used JDK: " + usedJDK); 246 dOut.println("Used Servlet Engine: " + thisEngine); 247 dOut.close(); 248 } catch (IOException e) { 249 } finally { 251 try { 252 if (fOut != null) { 253 fOut.close(); 254 } 255 } catch (IOException e) { 256 } 258 } 259 } 260 261 } 262 | Popular Tags |