KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tc > test > server > appserver > AbstractAppServerInstallation


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright
3  * notice. All rights reserved.
4  */

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 JavaDoc;
12 import java.net.URL JavaDoc;
13
14 /**
15  * Manages the installed environment pertaining to an appserver. This class is supplied as a constructor argument to
16  * {@link AbstractAppServer}.
17  */

18 public abstract class AbstractAppServerInstallation implements AppServerStartupEnvironment {
19
20   private final String JavaDoc majorVersion;
21   private final String JavaDoc minorVersion;
22   private final File JavaDoc workingDirectory;
23   private final File JavaDoc serverInstall;
24   private final File JavaDoc dataDirectory;
25   private final File JavaDoc sandboxDirectory;
26   private final boolean isRepoInstall;
27   private final File JavaDoc serverBaseDir;
28
29   /**
30    * Use existing installation (example: CATALINA_HOME)
31    */

32   public AbstractAppServerInstallation(File JavaDoc home, File JavaDoc workingDir, String JavaDoc majorVersion, String JavaDoc minorVersion)
33       throws Exception JavaDoc {
34     Assert.assertTrue(home.isDirectory());
35     Assert.assertTrue(workingDir.isDirectory());
36     if (workingDir.list().length > 0) { throw new Exception JavaDoc("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 JavaDoc(workingDirectory + File.separator + AppServerConstants.DATA_DIR)).mkdir();
45     this.sandboxDirectory = workingDirectory;
46     // description file for the working directory with filename indicating the server type. Can add more desciptive
47
// information if needed.
48
new File JavaDoc(workingDir + File.separator + serverType() + "-" + majorVersion + "." + minorVersion).createNewFile();
49
50   }
51
52   /**
53    * Create installation from Terracotta internal container repository (not publicly available)
54    */

55   public AbstractAppServerInstallation(URL JavaDoc host, File JavaDoc serverDir, File JavaDoc workingDir, String JavaDoc majorVersion,
56                                        String JavaDoc minorVersion) throws Exception JavaDoc {
57     Assert.assertTrue(serverDir.isDirectory());
58     Assert.assertTrue(workingDir.isDirectory());
59     if (workingDir.list().length > 0) { throw new Exception JavaDoc("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 JavaDoc(serverInstall, serverType() + "-" + majorVersion + "." + minorVersion);
68
69     this.workingDirectory = workingDir;
70     (this.dataDirectory = new File JavaDoc(workingDirectory + File.separator + AppServerConstants.DATA_DIR)).mkdir();
71     this.sandboxDirectory = workingDirectory;
72     // description file for the working directory with filename indicating the server type. Can add more desciptive
73
// information if needed.
74
new File JavaDoc(workingDir + File.separator + serverType() + "-" + majorVersion + "." + minorVersion).createNewFile();
75   }
76
77   public final File JavaDoc dataDirectory() {
78     return dataDirectory;
79   }
80
81   public abstract String JavaDoc serverType();
82
83   public final String JavaDoc majorVersion() {
84     return majorVersion;
85   }
86
87   public final String JavaDoc minorVersion() {
88     return minorVersion;
89   }
90
91   public final void uninstall() throws Exception JavaDoc {
92     FileUtils.deleteDirectory(workingDirectory.getParentFile());
93   }
94
95   public final File JavaDoc workingDirectory() {
96     return workingDirectory;
97   }
98
99   public final File JavaDoc serverInstallDirectory() {
100     return serverInstall;
101   }
102
103   public File JavaDoc sandboxDirectory() {
104     return sandboxDirectory;
105   }
106
107   public boolean isRepoInstall() {
108     return isRepoInstall;
109   }
110
111   public File JavaDoc serverBaseDir() {
112     return serverBaseDir;
113   }
114
115 }
116
Popular Tags