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 import java.util.zip.ZipOutputStream ; 8 9 public class JBossInstallationCommander extends InstallationCommander 10 { 11 private File cmsTempFolderFile = null; 12 private File deliverWorkingTempFolderFile = null; 13 private File deliverPreviewTempFolderFile = null; 14 private File deliverLiveTempFolderFile = null; 15 16 public JBossInstallationCommander(String appServer, String targetFolder, String appNameSuffix, String applicationServerHomePath, String createCMS, String createDeliverWorking, String createDeliverPreview, String createDeliverLive, String tomcatContextFolder) 17 { 18 super(appServer, targetFolder, appNameSuffix, applicationServerHomePath, createCMS, createDeliverWorking, createDeliverPreview, createDeliverLive, tomcatContextFolder); 19 } 20 21 public void installFiles(String databaseTypeName) throws Exception 22 { 23 if(this.createCMS.equalsIgnoreCase("yes")) 24 { 25 this.cmsTempFolderFile = new File ("localConfigs/infoglueCMS" + appNameSuffix); 26 if(this.cmsTempFolderFile.exists()) 27 deleteRecursive(this.cmsTempFolderFile); 28 this.cmsTempFolderFile.mkdir(); 29 35 } 36 37 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 38 { 39 this.deliverWorkingTempFolderFile = new File ("localConfigs/infoglueDeliverWorking" + appNameSuffix); 40 if(this.deliverWorkingTempFolderFile.exists()) 41 deleteRecursive(this.deliverWorkingTempFolderFile); 42 this.deliverWorkingTempFolderFile.mkdir(); 43 49 } 50 51 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 52 { 53 this.deliverPreviewTempFolderFile = new File ("localConfigs/infoglueDeliverPreview" + appNameSuffix); 54 if(this.deliverPreviewTempFolderFile.exists()) 55 deleteRecursive(this.deliverPreviewTempFolderFile); 56 this.deliverPreviewTempFolderFile.mkdir(); 57 63 } 64 65 if(this.createDeliverLive.equalsIgnoreCase("yes")) 66 { 67 this.deliverLiveTempFolderFile = new File ("localConfigs/infoglueDeliverLive" + appNameSuffix); 68 if(this.deliverLiveTempFolderFile.exists()) 69 deleteRecursive(this.deliverLiveTempFolderFile); 70 this.deliverLiveTempFolderFile.mkdir(); 71 72 78 } 79 80 if(this.createCMS.equalsIgnoreCase("yes")) 81 { 82 Logger.logInfo("About to install cms package to " + this.cmsTempFolderFile); 83 unzipCMSWarFile(this.cmsTempFolderFile.getPath()); 84 } 85 86 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 87 { 88 Logger.logInfo("About to install deliver package to " + this.deliverWorkingTempFolderFile); 89 unzipDeliverWarFile(this.deliverWorkingTempFolderFile.getPath()); 90 } 91 92 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 93 { 94 Logger.logInfo("About to install deliver package to " + this.deliverPreviewTempFolderFile.getPath()); 95 unzipDeliverWarFile(this.deliverPreviewTempFolderFile.getPath()); 96 } 97 98 if(this.createDeliverLive.equalsIgnoreCase("yes")) 99 { 100 Logger.logInfo("About to install deliver package to " + this.deliverLiveTempFolderFile.getPath()); 101 unzipDeliverWarFile(this.deliverLiveTempFolderFile.getPath()); 102 } 103 104 moveLocalConfigurationFiles(databaseTypeName); 105 106 if(this.createCMS.equalsIgnoreCase("yes")) 107 { 108 System.out.println("Zipping " + cmsTempFolderFile.getPath()); 109 ZipOutputStream zos = new ZipOutputStream (new FileOutputStream ("localConfigs/infoglueCMS" + this.appNameSuffix + ".war")); 110 zipDir(cmsTempFolderFile.getPath(), ("localConfigs/infoglueCMS" + this.appNameSuffix + "/").length(), zos); 111 zos.close(); 112 } 113 114 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 115 { 116 ZipOutputStream zos2 = new ZipOutputStream (new FileOutputStream ("localConfigs/infoglueDeliverWorking" + this.appNameSuffix + ".war")); 117 zipDir(deliverWorkingTempFolderFile.getPath(), ("localConfigs/infoglueDeliverWorking" + this.appNameSuffix + "/").length(), zos2); 118 zos2.close(); 119 } 120 121 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 122 { 123 ZipOutputStream zos3 = new ZipOutputStream (new FileOutputStream ("localConfigs/infoglueDeliverPreview" + this.appNameSuffix + ".war")); 124 zipDir(deliverPreviewTempFolderFile.getPath(), ("localConfigs/infoglueDeliverPreview" + this.appNameSuffix + "/").length(), zos3); 125 zos3.close(); 126 } 127 128 if(this.createDeliverLive.equalsIgnoreCase("yes")) 129 { 130 ZipOutputStream zos4 = new ZipOutputStream (new FileOutputStream ("localConfigs/infoglueDeliverLive" + this.appNameSuffix + ".war")); 131 zipDir(deliverLiveTempFolderFile.getPath(), ("localConfigs/infoglueDeliverLive" + this.appNameSuffix + "/").length(), zos4); 132 zos4.close(); 133 } 134 135 String applicationServerDeploymentDirectory = this.applicationServerHomePath + File.separator + "server" + File.separator + "default" + File.separator + "deploy"; 136 if(this.createCMS.equalsIgnoreCase("yes")) 137 { 138 System.err.println("Deploying cms war file to JBoss at "); 139 copyInputStream(new FileInputStream ("localConfigs/infoglueCMS" + this.appNameSuffix + ".war"), new BufferedOutputStream (new FileOutputStream (applicationServerDeploymentDirectory + File.separator + "infoglueCMS" + this.appNameSuffix + ".war"))); 140 } 141 142 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 143 { 144 System.err.println("Deploying deliver working war file to JBoss at "); 145 copyInputStream(new FileInputStream ("localConfigs/infoglueDeliverWorking" + this.appNameSuffix + ".war"), new BufferedOutputStream (new FileOutputStream (applicationServerDeploymentDirectory + File.separator + "infoglueDeliverWorking" + this.appNameSuffix + ".war"))); 146 } 147 148 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 149 { 150 System.err.println("Deploying deliver preview war file to JBoss at "); 151 copyInputStream(new FileInputStream ("localConfigs/infoglueDeliverPreview" + this.appNameSuffix + ".war"), new BufferedOutputStream (new FileOutputStream (applicationServerDeploymentDirectory + File.separator + "infoglueDeliverPreview" + this.appNameSuffix + ".war"))); 152 } 153 154 if(this.createDeliverLive.equalsIgnoreCase("yes")) 155 { 156 System.err.println("Deploying deliver live war file to JBoss at "); 157 copyInputStream(new FileInputStream ("localConfigs/infoglueDeliverLive" + this.appNameSuffix + ".war"), new BufferedOutputStream (new FileOutputStream (applicationServerDeploymentDirectory + File.separator + "infoglueDeliverLive" + this.appNameSuffix + ".war"))); 158 } 159 } 160 161 protected void moveLocalConfigurationFiles(String databaseTypeName) throws Exception 162 { 163 System.err.println("Modifying OSCache-settings in all apps..."); 164 modifyAllOSCachePropertyFiles(); 165 166 if(this.createCMS.equalsIgnoreCase("yes")) 167 { 168 System.err.println("Copying file: " + "localConfigs/cms-web.xml"); 169 copyInputStream(new FileInputStream ("localConfigs/cms-web.xml"), new BufferedOutputStream (new FileOutputStream (this.cmsTempFolderFile.getPath() + File.separator + "WEB-INF/web.xml"))); 170 171 System.err.println("Copying file: " + "localConfigs/cms.properties"); 172 copyInputStream(new FileInputStream ("localConfigs/cms.properties"), new BufferedOutputStream (new FileOutputStream (this.cmsTempFolderFile.getPath() + File.separator + "WEB-INF/classes/cms.properties"))); 173 System.err.println("Copying file: " + "localConfigs/database.xml"); 174 copyInputStream(new FileInputStream ("localConfigs/database.xml"), new BufferedOutputStream (new FileOutputStream (this.cmsTempFolderFile.getPath() + File.separator + "WEB-INF/classes/database.xml"))); 175 176 System.err.println("Copying file: " + "localConfigs/hibernate.cfg.xml"); 177 copyInputStream(new FileInputStream ("localConfigs/hibernate.cfg.xml"), new BufferedOutputStream (new FileOutputStream (this.cmsTempFolderFile.getPath() + File.separator + "WEB-INF/classes/hibernate.cfg.xml"))); 178 System.err.println("Copying file: " + "localConfigs/propertyset.xml"); 181 copyInputStream(new FileInputStream ("localConfigs/propertyset.xml"), new BufferedOutputStream (new FileOutputStream (this.cmsTempFolderFile.getPath() + File.separator + "WEB-INF/classes/propertyset.xml"))); 182 } 183 184 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 185 { 186 System.err.println("Copying file: " + "localConfigs/deliverWorking.properties"); 187 copyInputStream(new FileInputStream ("localConfigs/deliverWorking.properties"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTempFolderFile.getPath() + File.separator + "WEB-INF/classes/deliver.properties"))); 188 System.err.println("Copying file: " + "localConfigs/database.xml"); 189 copyInputStream(new FileInputStream ("localConfigs/database.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTempFolderFile.getPath() + File.separator + "WEB-INF/classes/database.xml"))); 190 191 System.err.println("Copying file: " + "localConfigs/deliver-web.xml"); 192 copyInputStream(new FileInputStream ("localConfigs/deliver-web.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTempFolderFile.getPath() + File.separator + "WEB-INF/web.xml"))); 193 194 System.err.println("Copying file: " + "localConfigs/hibernate.cfg.xml"); 195 copyInputStream(new FileInputStream ("localConfigs/hibernate.cfg.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTempFolderFile.getPath() + File.separator + "WEB-INF/classes/hibernate.cfg.xml"))); 196 System.err.println("Copying file: " + "localConfigs/propertyset.xml"); 199 copyInputStream(new FileInputStream ("localConfigs/propertyset.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTempFolderFile.getPath() + File.separator + "WEB-INF/classes/propertyset.xml"))); 200 201 209 } 210 211 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 212 { 213 System.err.println("Copying file: " + "localConfigs/deliver-web.xml"); 214 copyInputStream(new FileInputStream ("localConfigs/deliver-web.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTempFolderFile.getPath() + File.separator + "WEB-INF/web.xml"))); 215 216 System.err.println("Copying file: " + "localConfigs/deliverPreview.properties"); 217 copyInputStream(new FileInputStream ("localConfigs/deliverPreview.properties"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTempFolderFile.getPath() + File.separator + "WEB-INF/classes/deliver.properties"))); 218 System.err.println("Copying file: " + "localConfigs/database.xml"); 219 copyInputStream(new FileInputStream ("localConfigs/database.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTempFolderFile.getPath() + File.separator + "WEB-INF/classes/database.xml"))); 220 221 System.err.println("Copying file: " + "localConfigs/hibernate.cfg.xml"); 222 copyInputStream(new FileInputStream ("localConfigs/hibernate.cfg.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTempFolderFile.getPath() + File.separator + "WEB-INF/classes/hibernate.cfg.xml"))); 223 System.err.println("Copying file: " + "localConfigs/propertyset.xml"); 226 copyInputStream(new FileInputStream ("localConfigs/propertyset.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTempFolderFile.getPath() + File.separator + "WEB-INF/classes/propertyset.xml"))); 227 235 } 236 237 if(this.createDeliverLive.equalsIgnoreCase("yes")) 238 { 239 System.err.println("Copying file: " + "localConfigs/deliver-web.xml"); 240 copyInputStream(new FileInputStream ("localConfigs/deliver-web.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTempFolderFile.getPath() + File.separator + "WEB-INF/web.xml"))); 241 242 System.err.println("Copying file: " + "localConfigs/deliverLive.properties"); 243 copyInputStream(new FileInputStream ("localConfigs/deliverLive.properties"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTempFolderFile.getPath() + File.separator + "WEB-INF/classes/deliver.properties"))); 244 System.err.println("Copying file: " + "localConfigs/database.xml"); 245 copyInputStream(new FileInputStream ("localConfigs/database.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTempFolderFile.getPath() + File.separator + "WEB-INF/classes/database.xml"))); 246 247 System.err.println("Copying file: " + "localConfigs/hibernate.cfg.xml"); 248 copyInputStream(new FileInputStream ("localConfigs/hibernate.cfg.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTempFolderFile.getPath() + File.separator + "WEB-INF/classes/hibernate.cfg.xml"))); 249 System.err.println("Copying file: " + "localConfigs/propertyset.xml"); 252 copyInputStream(new FileInputStream ("localConfigs/propertyset.xml"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTempFolderFile.getPath() + File.separator + "WEB-INF/classes/propertyset.xml"))); 253 261 } 262 263 288 289 System.err.println("Moving pluto files: " + this.applicationServerHomePath + File.separator + "server" + File.separator + "default" + File.separator + "lib" + File.separator); 290 291 File oldPlutoRC2File = new File (this.applicationServerHomePath + File.separator + "server" + File.separator + "default" + File.separator + "lib" + File.separator + "pluto-1.0.1-rc2.jar"); 292 if(oldPlutoRC2File.exists()) 293 oldPlutoRC2File.delete(); 294 File oldPlutoRC4File = new File (this.applicationServerHomePath + File.separator + "server" + File.separator + "default" + File.separator + "lib" + File.separator + "pluto-1.0.1-rc4.jar"); 295 if(oldPlutoRC4File.exists()) 296 oldPlutoRC4File.delete(); 297 298 copyInputStream(new FileInputStream ("lib/pluto-1.0.1.jar"), new BufferedOutputStream (new FileOutputStream (this.applicationServerHomePath + File.separator + "server" + File.separator + "default" + File.separator + "lib" + File.separator + "pluto-1.0.1.jar"))); 299 copyInputStream(new FileInputStream ("lib/portlet-api-1.0.jar"), new BufferedOutputStream (new FileOutputStream (this.applicationServerHomePath + File.separator + "server" + File.separator + "default" + File.separator + "lib" + File.separator + "portlet-api-1.0.jar"))); 300 301 Logger.logInfo("databaseTypeName:" + databaseTypeName); 302 if(databaseTypeName.equalsIgnoreCase("MySQL")) 303 { 304 } 306 else if(databaseTypeName.equalsIgnoreCase("SQL Server")) 307 { 308 310 315 } 316 else if(databaseTypeName.equalsIgnoreCase("Oracle")) 317 { 318 320 323 326 329 } 332 else if(databaseTypeName.equalsIgnoreCase("DB2")) 333 { 334 336 339 342 345 } 348 349 if(checkIfXMLLibsIsNeeded()) 350 { 351 if(this.createCMS.equalsIgnoreCase("yes")) 352 { 353 copyInputStream(new FileInputStream ("lib/xercesImpl.jar"), new BufferedOutputStream (new FileOutputStream (this.cmsTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "xercesImpl.jar"))); 354 copyInputStream(new FileInputStream ("lib/xml-apis.jar"), new BufferedOutputStream (new FileOutputStream (this.cmsTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "xml-apis.jar"))); 355 } 356 357 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 358 { 359 copyInputStream(new FileInputStream ("lib/xercesImpl.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "xercesImpl.jar"))); 360 copyInputStream(new FileInputStream ("lib/xml-apis.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "xml-apis.jar"))); 361 } 362 363 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 364 { 365 copyInputStream(new FileInputStream ("lib/xercesImpl.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "xercesImpl.jar"))); 366 copyInputStream(new FileInputStream ("lib/xml-apis.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "xml-apis.jar"))); 367 } 368 369 if(this.createDeliverLive.equalsIgnoreCase("yes")) 370 { 371 copyInputStream(new FileInputStream ("lib/xercesImpl.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "xercesImpl.jar"))); 372 copyInputStream(new FileInputStream ("lib/xml-apis.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "xml-apis.jar"))); 373 } 374 } 375 376 if(appServer.startsWith("Tomcat 4")) 378 { 379 if(this.createCMS.equalsIgnoreCase("yes")) 380 { 381 File existingStandardJar = new File (this.cmsTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "standard.jar"); 382 if(existingStandardJar.exists()) 383 existingStandardJar.delete(); 384 File existingJSTLJar = new File (this.cmsTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "jstl.jar"); 385 if(existingJSTLJar.exists()) 386 existingJSTLJar.delete(); 387 388 copyInputStream(new FileInputStream ("lib/standard-1.0.4.jar"), new BufferedOutputStream (new FileOutputStream (this.cmsTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "standard-1.0.4.jar"))); 389 copyInputStream(new FileInputStream ("lib/jstl-1.0.2.jar"), new BufferedOutputStream (new FileOutputStream (this.cmsTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "jstl-1.0.2.jar"))); 390 } 391 392 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 393 { 394 File existingStandardJar = new File (this.deliverWorkingTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "standard.jar"); 395 if(existingStandardJar.exists()) 396 existingStandardJar.delete(); 397 File existingJSTLJar = new File (this.deliverWorkingTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "jstl.jar"); 398 if(existingJSTLJar.exists()) 399 existingJSTLJar.delete(); 400 401 copyInputStream(new FileInputStream ("lib/standard-1.0.4.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "standard-1.0.4.jar"))); 402 copyInputStream(new FileInputStream ("lib/jstl-1.0.2.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverWorkingTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "jstl-1.0.2.jar"))); 403 } 404 405 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 406 { 407 File existingStandardJar = new File (this.deliverPreviewTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "standard.jar"); 408 if(existingStandardJar.exists()) 409 existingStandardJar.delete(); 410 File existingJSTLJar = new File (this.deliverPreviewTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "jstl.jar"); 411 if(existingJSTLJar.exists()) 412 existingJSTLJar.delete(); 413 414 copyInputStream(new FileInputStream ("lib/standard-1.0.4.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "standard-1.0.4.jar"))); 415 copyInputStream(new FileInputStream ("lib/jstl-1.0.2.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverPreviewTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "jstl-1.0.2.jar"))); 416 } 417 418 if(this.createDeliverLive.equalsIgnoreCase("yes")) 419 { 420 File existingStandardJar = new File (this.deliverLiveTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "standard.jar"); 421 if(existingStandardJar.exists()) 422 existingStandardJar.delete(); 423 File existingJSTLJar = new File (this.deliverLiveTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "jstl.jar"); 424 if(existingJSTLJar.exists()) 425 existingJSTLJar.delete(); 426 427 copyInputStream(new FileInputStream ("lib/standard-1.0.4.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "standard-1.0.4.jar"))); 428 copyInputStream(new FileInputStream ("lib/jstl-1.0.2.jar"), new BufferedOutputStream (new FileOutputStream (this.deliverLiveTempFolderFile.getPath() + File.separator + "WEB-INF/lib" + File.separator + "jstl-1.0.2.jar"))); 429 } 430 } 431 432 } 433 434 public void modifyAllOSCachePropertyFiles() throws Exception 435 { 436 if(this.createCMS.equalsIgnoreCase("yes")) 437 modifyOSCachePropertyFile(this.cmsTempFolderFile.getPath()); 438 439 if(this.createDeliverWorking.equalsIgnoreCase("yes")) 440 modifyOSCachePropertyFile(this.deliverWorkingTempFolderFile.getPath()); 441 442 if(this.createDeliverPreview.equalsIgnoreCase("yes")) 443 modifyOSCachePropertyFile(this.deliverPreviewTempFolderFile.getPath()); 444 445 if(this.createDeliverLive.equalsIgnoreCase("yes")) 446 modifyOSCachePropertyFile(this.deliverLiveTempFolderFile.getPath()); 447 } 448 449 public String getPortletBase() 450 { 451 return this.applicationServerHomePath + File.separator + "server" + File.separator + "default" + File.separator + "deploy"; 452 } 453 454 } 455 | Popular Tags |