1 5 package com.tc.test.server.appserver; 6 7 import org.apache.commons.io.FileUtils; 8 9 import com.tc.util.Assert; 10 11 import java.io.File ; 12 import java.net.URL ; 13 14 18 public abstract class AbstractAppServerInstallation implements AppServerStartupEnvironment { 19 20 private final String majorVersion; 21 private final String minorVersion; 22 private final File workingDirectory; 23 private final File serverInstall; 24 private final File dataDirectory; 25 private final File sandboxDirectory; 26 private final boolean isRepoInstall; 27 private final File serverBaseDir; 28 29 32 public AbstractAppServerInstallation(File home, File workingDir, String majorVersion, String minorVersion) 33 throws Exception { 34 Assert.assertTrue(home.isDirectory()); 35 Assert.assertTrue(workingDir.isDirectory()); 36 if (workingDir.list().length > 0) { throw new Exception ("Installation directory: " + workingDir.getAbsolutePath() 37 + " contains legacy files. It must be empty to install."); } 38 this.majorVersion = majorVersion; 39 this.minorVersion = minorVersion; 40 this.serverInstall = home; 41 this.serverBaseDir = null; 42 this.isRepoInstall = false; 43 this.workingDirectory = workingDir; 44 (this.dataDirectory = new File (workingDirectory + File.separator + AppServerConstants.DATA_DIR)).mkdir(); 45 this.sandboxDirectory = workingDirectory; 46 new File (workingDir + File.separator + serverType() + "-" + majorVersion + "." + minorVersion).createNewFile(); 49 50 } 51 52 55 public AbstractAppServerInstallation(URL host, File serverDir, File workingDir, String majorVersion, 56 String minorVersion) throws Exception { 57 Assert.assertTrue(serverDir.isDirectory()); 58 Assert.assertTrue(workingDir.isDirectory()); 59 if (workingDir.list().length > 0) { throw new Exception ("Installation directory: " + workingDir.getAbsolutePath() 60 + " contains legacy files. It must be empty to install."); } 61 this.majorVersion = majorVersion; 62 this.minorVersion = minorVersion; 63 this.isRepoInstall = true; 64 this.serverInstall = ConcreteReadOnlyAppServerInstallation.create(host, serverDir, serverType(), majorVersion, 65 minorVersion); 66 67 this.serverBaseDir = new File (serverInstall, serverType() + "-" + majorVersion + "." + minorVersion); 68 69 this.workingDirectory = workingDir; 70 (this.dataDirectory = new File (workingDirectory + File.separator + AppServerConstants.DATA_DIR)).mkdir(); 71 this.sandboxDirectory = workingDirectory; 72 new File (workingDir + File.separator + serverType() + "-" + majorVersion + "." + minorVersion).createNewFile(); 75 } 76 77 public final File dataDirectory() { 78 return dataDirectory; 79 } 80 81 public abstract String serverType(); 82 83 public final String majorVersion() { 84 return majorVersion; 85 } 86 87 public final String minorVersion() { 88 return minorVersion; 89 } 90 91 public final void uninstall() throws Exception { 92 FileUtils.deleteDirectory(workingDirectory.getParentFile()); 93 } 94 95 public final File workingDirectory() { 96 return workingDirectory; 97 } 98 99 public final File serverInstallDirectory() { 100 return serverInstall; 101 } 102 103 public File sandboxDirectory() { 104 return sandboxDirectory; 105 } 106 107 public boolean isRepoInstall() { 108 return isRepoInstall; 109 } 110 111 public File serverBaseDir() { 112 return serverBaseDir; 113 } 114 115 } 116 | Popular Tags |