1 package org.infoglue.cmsinstaller; 2 3 import java.io.BufferedOutputStream ; 4 import java.io.File ; 5 import java.io.FileInputStream ; 6 import java.io.FileOutputStream ; 7 8 public class TomcatInstallationCommander extends InstallationCommander 9 { 10 public TomcatInstallationCommander(String appServer, String targetFolder, String appNameSuffix, String tomcatFolder, String createCMS, String createDeliverWorking, String createDeliverPreview, String createDeliverLive, String tomcatContextFolder) 11 { 12 super(appServer, targetFolder, appNameSuffix, tomcatFolder, createCMS, createDeliverWorking, createDeliverPreview, createDeliverLive, tomcatContextFolder); 13 } 14 15 public void installFiles(String databaseTypeName) throws Exception 16 { 17 if(this.createCMS.equalsIgnoreCase("yes")) 18 { 19 File cmsTargetFolderFile = new File (cmsTargetFolder); 20 if(cmsTargetFolderFile.exists()) 21 deleteRecursive(cmsTargetFolderFile); 22 cmsTargetFolderFile.mkdir(); 23 } 24 25 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 26 { 27 File deliverWorkingTargetFolderFile = new File (deliverWorkingTargetFolder); 28 if(deliverWorkingTargetFolderFile.exists()) 29 deleteRecursive(deliverWorkingTargetFolderFile); 30 deliverWorkingTargetFolderFile.mkdir(); 31 } 32 33 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 34 { 35 File deliverPreviewTargetFolderFile = new File (deliverPreviewTargetFolder); 36 if(deliverPreviewTargetFolderFile.exists()) 37 deleteRecursive(deliverPreviewTargetFolderFile); 38 deliverPreviewTargetFolderFile.mkdir(); 39 } 40 41 if(this.createDeliverLive.equalsIgnoreCase("yes")) 42 { 43 File deliverLiveTargetFolderFile = new File (deliverLiveTargetFolder); 44 if(deliverLiveTargetFolderFile.exists()) 45 deleteRecursive(deliverLiveTargetFolderFile); 46 deliverLiveTargetFolderFile.mkdir(); 47 } 48 49 if(this.createCMS.equalsIgnoreCase("yes")) 50 { 51 Logger.logInfo("About to install cms package to " + this.cmsTargetFolder); 52 unzipCMSWarFile(this.cmsTargetFolder); 53 } 54 55 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 56 { 57 Logger.logInfo("About to install deliver package to " + this.deliverWorkingTargetFolder); 58 unzipDeliverWarFile(this.deliverWorkingTargetFolder); 59 } 60 61 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 62 { 63 Logger.logInfo("About to install deliver package to " + this.deliverPreviewTargetFolder); 64 unzipDeliverWarFile(this.deliverPreviewTargetFolder); 65 } 66 67 if(this.createDeliverLive.equalsIgnoreCase("yes")) 68 { 69 Logger.logInfo("About to install deliver package to " + this.deliverLiveTargetFolder); 70 unzipDeliverWarFile(this.deliverLiveTargetFolder); 71 } 72 73 moveLocalConfigurationFiles(databaseTypeName); 74 75 87 } 88 89 protected void moveLocalConfigurationFiles(String databaseTypeName) throws Exception 90 { 91 System.err.println("Modifying OSCache-settings in all apps..."); 92 modifyAllOSCachePropertyFiles(); 93 94 if(this.createCMS.equalsIgnoreCase("yes")) 95 { 96 System.err.println("Copying file: " + "localConfigs/cms-web.xml"); 97 copyInputStream(new FileInputStream ("localConfigs/cms-web.xml"), new BufferedOutputStream (new FileOutputStream (this.cmsTargetFolder + File.separator + "WEB-INF/web.xml"))); 98 99 System.err.println("Copying file: " + "localConfigs/cms.properties"); 100 copyInputStream(new FileInputStream ("localConfigs/cms.properties"), new BufferedOutputStream (new FileOutputStream (this.cmsTargetFolder + File.separator + "WEB-INF/classes/cms.properties"))); 101 System.err.println("Copying file: " + "localConfigs/database.xml"); 102 copyInputStream(new FileInputStream ("localConfigs/database.xml"), new BufferedOutputStream (new FileOutputStream (this.cmsTargetFolder + File.separator + "WEB-INF/classes/database.xml"))); 103 104 System.err.println("Copying file: " + "localConfigs/hibernate.cfg.xml"); 105 copyInputStream(new FileInputStream ("localConfigs/hibernate.cfg.xml"), new BufferedOutputStream (new FileOutputStream (this.cmsTargetFolder + File.separator + "WEB-INF/classes/hibernate.cfg.xml"))); 106 System.err.println("Copying file: " + "localConfigs/propertyset.xml"); 109 copyInputStream(new FileInputStream ("localConfigs/propertyset.xml"), new BufferedOutputStream (new FileOutputStream (this.cmsTargetFolder + File.separator + "WEB-INF/classes/propertyset.xml"))); 110 } 111 112 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 113 { 114 System.err.println("Copying file: " + "localConfigs/deliverWorking.properties"); 115 copyInputStream(new FileInputStream ("localConfigs/deliverWorking.properties"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTargetFolder + File.separator + "WEB-INF/classes/deliver.properties"))); 116 System.err.println("Copying file: " + "localConfigs/database.xml"); 117 copyInputStream(new FileInputStream ("localConfigs/database.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTargetFolder + File.separator + "WEB-INF/classes/database.xml"))); 118 119 System.err.println("Copying file: " + "localConfigs/deliver-web.xml"); 120 copyInputStream(new FileInputStream ("localConfigs/deliver-web.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTargetFolder + File.separator + "WEB-INF/web.xml"))); 121 122 System.err.println("Copying file: " + "localConfigs/hibernate.cfg.xml"); 123 copyInputStream(new FileInputStream ("localConfigs/hibernate.cfg.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTargetFolder + File.separator + "WEB-INF/classes/hibernate.cfg.xml"))); 124 System.err.println("Copying file: " + "localConfigs/propertyset.xml"); 127 copyInputStream(new FileInputStream ("localConfigs/propertyset.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTargetFolder + File.separator + "WEB-INF/classes/propertyset.xml"))); 128 } 129 130 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 131 { 132 System.err.println("Copying file: " + "localConfigs/deliver-web.xml"); 133 copyInputStream(new FileInputStream ("localConfigs/deliver-web.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTargetFolder + File.separator + "WEB-INF/web.xml"))); 134 135 System.err.println("Copying file: " + "localConfigs/deliverPreview.properties"); 136 copyInputStream(new FileInputStream ("localConfigs/deliverPreview.properties"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTargetFolder + File.separator + "WEB-INF/classes/deliver.properties"))); 137 System.err.println("Copying file: " + "localConfigs/database.xml"); 138 copyInputStream(new FileInputStream ("localConfigs/database.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTargetFolder + File.separator + "WEB-INF/classes/database.xml"))); 139 140 System.err.println("Copying file: " + "localConfigs/hibernate.cfg.xml"); 141 copyInputStream(new FileInputStream ("localConfigs/hibernate.cfg.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTargetFolder + File.separator + "WEB-INF/classes/hibernate.cfg.xml"))); 142 System.err.println("Copying file: " + "localConfigs/propertyset.xml"); 145 copyInputStream(new FileInputStream ("localConfigs/propertyset.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTargetFolder + File.separator + "WEB-INF/classes/propertyset.xml"))); 146 } 147 148 if(this.createDeliverLive.equalsIgnoreCase("yes")) 149 { 150 System.err.println("Copying file: " + "localConfigs/deliver-web.xml"); 151 copyInputStream(new FileInputStream ("localConfigs/deliver-web.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTargetFolder + File.separator + "WEB-INF/web.xml"))); 152 153 System.err.println("Copying file: " + "localConfigs/deliverLive.properties"); 154 copyInputStream(new FileInputStream ("localConfigs/deliverLive.properties"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTargetFolder + File.separator + "WEB-INF/classes/deliver.properties"))); 155 System.err.println("Copying file: " + "localConfigs/database.xml"); 156 copyInputStream(new FileInputStream ("localConfigs/database.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTargetFolder + File.separator + "WEB-INF/classes/database.xml"))); 157 158 System.err.println("Copying file: " + "localConfigs/hibernate.cfg.xml"); 159 copyInputStream(new FileInputStream ("localConfigs/hibernate.cfg.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTargetFolder + File.separator + "WEB-INF/classes/hibernate.cfg.xml"))); 160 System.err.println("Copying file: " + "localConfigs/propertyset.xml"); 163 copyInputStream(new FileInputStream ("localConfigs/propertyset.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTargetFolder + File.separator + "WEB-INF/classes/propertyset.xml"))); 164 } 165 166 if(this.createCMS.equalsIgnoreCase("yes")) 167 { 168 System.err.println("Moving cms context file: " + this.applicationServerHomePath + File.separator + this.tomcatContextFolder + File.separator + "infoglueCMS" + appNameSuffix + ".xml"); 169 copyInputStream(new FileInputStream ("localConfigs/infoglueCMS.xml"), new BufferedOutputStream (new FileOutputStream (this.applicationServerHomePath + File.separator + this.tomcatContextFolder + File.separator + "infoglueCMS" + appNameSuffix + ".xml"))); 170 } 171 172 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 173 { 174 System.err.println("Moving deliver working context file: " + this.applicationServerHomePath + File.separator + this.tomcatContextFolder + File.separator + "infoglueDeliverWorking" + appNameSuffix + ".xml"); 175 copyInputStream(new FileInputStream ("localConfigs/infoglueDeliverWorking" + appNameSuffix + ".xml"), new BufferedOutputStream (new FileOutputStream (this.applicationServerHomePath + File.separator + this.tomcatContextFolder + File.separator + "infoglueDeliverWorking" + appNameSuffix + ".xml"))); 176 } 177 178 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 179 { 180 System.err.println("Moving deliver preview context file: " + this.applicationServerHomePath + File.separator + this.tomcatContextFolder + File.separator + "infoglueDeliverPreview" + appNameSuffix + ".xml"); 181 copyInputStream(new FileInputStream ("localConfigs/infoglueDeliverPreview" + appNameSuffix + ".xml"), new BufferedOutputStream (new FileOutputStream (this.applicationServerHomePath + File.separator + this.tomcatContextFolder + File.separator + "infoglueDeliverPreview" + appNameSuffix + ".xml"))); 182 } 183 184 if(this.createDeliverLive.equalsIgnoreCase("yes")) 185 { 186 System.err.println("Moving deliver live context file: " + this.applicationServerHomePath + File.separator + this.tomcatContextFolder + File.separator + "infoglueDeliverLive" + appNameSuffix + ".xml"); 187 copyInputStream(new FileInputStream ("localConfigs/infoglueDeliverLive" + appNameSuffix + ".xml"), new BufferedOutputStream (new FileOutputStream (this.applicationServerHomePath + File.separator + this.tomcatContextFolder + File.separator + "infoglueDeliverLive" + appNameSuffix + ".xml"))); 188 } 189 190 System.err.println("Moving pluto files: " + this.applicationServerHomePath + File.separator + "shared" + File.separator + "lib" + File.separator); 191 192 File oldPlutoRC2File = new File (this.applicationServerHomePath + File.separator + "shared" + File.separator + "lib" + File.separator + "pluto-1.0.1-rc2.jar"); 193 if(oldPlutoRC2File.exists()) 194 oldPlutoRC2File.delete(); 195 File oldPlutoRC4File = new File (this.applicationServerHomePath + File.separator + "shared" + File.separator + "lib" + File.separator + "pluto-1.0.1-rc4.jar"); 196 if(oldPlutoRC4File.exists()) 197 oldPlutoRC4File.delete(); 198 199 copyInputStream(new FileInputStream ("lib/pluto-1.0.1.jar"), new BufferedOutputStream (new FileOutputStream (this.applicationServerHomePath + File.separator + "shared" + File.separator + "lib" + File.separator + "pluto-1.0.1.jar"))); 200 copyInputStream(new FileInputStream ("lib/portlet-api-1.0.jar"), new BufferedOutputStream (new FileOutputStream (this.applicationServerHomePath + File.separator + "shared" + File.separator + "lib" + File.separator + "portlet-api-1.0.jar"))); 201 202 203 Logger.logInfo("databaseTypeName:" + databaseTypeName); 204 if(databaseTypeName.equalsIgnoreCase("MySQL")) 205 { 206 } 208 else if(databaseTypeName.equalsIgnoreCase("SQL Server")) 209 { 210 212 217 } 218 else if(databaseTypeName.equalsIgnoreCase("Oracle")) 219 { 220 222 225 228 231 } 234 else if(databaseTypeName.equalsIgnoreCase("DB2")) 235 { 236 238 241 244 247 } 250 251 if(checkIfXMLLibsIsNeeded()) 252 { 253 if(this.createCMS.equalsIgnoreCase("yes")) 254 { 255 copyInputStream(new FileInputStream ("lib/xercesImpl.jar"), new BufferedOutputStream (new FileOutputStream (this.cmsTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "xercesImpl.jar"))); 256 copyInputStream(new FileInputStream ("lib/xml-apis.jar"), new BufferedOutputStream (new FileOutputStream (this.cmsTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "xml-apis.jar"))); 257 } 258 259 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 260 { 261 copyInputStream(new FileInputStream ("lib/xercesImpl.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "xercesImpl.jar"))); 262 copyInputStream(new FileInputStream ("lib/xml-apis.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "xml-apis.jar"))); 263 } 264 265 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 266 { 267 copyInputStream(new FileInputStream ("lib/xercesImpl.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "xercesImpl.jar"))); 268 copyInputStream(new FileInputStream ("lib/xml-apis.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "xml-apis.jar"))); 269 } 270 271 if(this.createDeliverLive.equalsIgnoreCase("yes")) 272 { 273 copyInputStream(new FileInputStream ("lib/xercesImpl.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "xercesImpl.jar"))); 274 copyInputStream(new FileInputStream ("lib/xml-apis.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "xml-apis.jar"))); 275 } 276 } 277 278 if(appServer.startsWith("Tomcat 4")) 280 { 281 if(this.createCMS.equalsIgnoreCase("yes")) 282 { 283 File existingStandardJar = new File (this.cmsTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "standard.jar"); 284 if(existingStandardJar.exists()) 285 existingStandardJar.delete(); 286 File existingJSTLJar = new File (this.cmsTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "jstl.jar"); 287 if(existingJSTLJar.exists()) 288 existingJSTLJar.delete(); 289 290 copyInputStream(new FileInputStream ("lib/standard-1.0.4.jar"), new BufferedOutputStream (new FileOutputStream (this.cmsTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "standard-1.0.4.jar"))); 291 copyInputStream(new FileInputStream ("lib/jstl-1.0.2.jar"), new BufferedOutputStream (new FileOutputStream (this.cmsTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "jstl-1.0.2.jar"))); 292 } 293 294 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 295 { 296 File existingStandardJar = new File (this.deliverWorkingTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "standard.jar"); 297 if(existingStandardJar.exists()) 298 existingStandardJar.delete(); 299 File existingJSTLJar = new File (this.deliverWorkingTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "jstl.jar"); 300 if(existingJSTLJar.exists()) 301 existingJSTLJar.delete(); 302 303 copyInputStream(new FileInputStream ("lib/standard-1.0.4.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "standard-1.0.4.jar"))); 304 copyInputStream(new FileInputStream ("lib/jstl-1.0.2.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "jstl-1.0.2.jar"))); 305 } 306 307 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 308 { 309 File existingStandardJar = new File (this.deliverPreviewTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "standard.jar"); 310 if(existingStandardJar.exists()) 311 existingStandardJar.delete(); 312 File existingJSTLJar = new File (this.deliverPreviewTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "jstl.jar"); 313 if(existingJSTLJar.exists()) 314 existingJSTLJar.delete(); 315 316 copyInputStream(new FileInputStream ("lib/standard-1.0.4.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "standard-1.0.4.jar"))); 317 copyInputStream(new FileInputStream ("lib/jstl-1.0.2.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "jstl-1.0.2.jar"))); 318 } 319 320 if(this.createDeliverLive.equalsIgnoreCase("yes")) 321 { 322 File existingStandardJar = new File (this.deliverLiveTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "standard.jar"); 323 if(existingStandardJar.exists()) 324 existingStandardJar.delete(); 325 File existingJSTLJar = new File (this.deliverLiveTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "jstl.jar"); 326 if(existingJSTLJar.exists()) 327 existingJSTLJar.delete(); 328 329 copyInputStream(new FileInputStream ("lib/standard-1.0.4.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "standard-1.0.4.jar"))); 330 copyInputStream(new FileInputStream ("lib/jstl-1.0.2.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTargetFolder + File.separator + "WEB-INF/lib" + File.separator + "jstl-1.0.2.jar"))); 331 } 332 } 333 334 } 335 336 public void modifyAllOSCachePropertyFiles() throws Exception 337 { 338 if(this.createCMS.equalsIgnoreCase("yes")) 339 modifyOSCachePropertyFile(this.cmsTargetFolder); 340 341 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 342 modifyOSCachePropertyFile(this.deliverWorkingTargetFolder); 343 344 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 345 modifyOSCachePropertyFile(this.deliverPreviewTargetFolder); 346 347 if(this.createDeliverLive.equalsIgnoreCase("yes")) 348 modifyOSCachePropertyFile(this.deliverLiveTargetFolder); 349 } 350 351 public String getPortletBase() 352 { 353 return this.applicationServerHomePath + File.separator + "webapps"; 354 } 355 356 } 357 | Popular Tags |