クラス org.objectweb.cjdbc.common.util.ControllerTask

すべてのメンバ一覧

説明

Ant task for starting and stopping the controller, as well as HSQL servers. TODO: Path is relative to base ant directory. Should be able to retrieve the class path from the build file.

作者:
Nicolas Modrzyk

ControllerTask.java45 行で定義されています。

Public メソッド

void execute () throws BuildException
void setConfiguration (String config) throws BuildException
void setAction (String action)
void setControllerfile (String file)
void setManageHsqldb (boolean manage)

Private メソッド

void startAction () throws BuildException
void stopAction () throws BuildException
void cleanFiles ()
void startController () throws BuildException
void stopController () throws BuildException
void startHsqldb (String port) throws BuildException
void startHsqldb (String port, String db) throws BuildException
void stopHsqldb (String port)
void startDirect ()
void stopDirect ()
void startSingleDB ()
void stopSingleDB ()
void startRaidb0 ()
void stopRaidb0 ()
void startRaidb1 ()
void stopRaidb1 ()
void startRaidb2 ()
void stopRaidb2 ()

Private 変数

String configuration
String action
String controllerFile
boolean manageHsqldb = true
boolean verbose = false

Static Private 変数

final String SINGLE_DB = "SingleDB"
final String RAIDB0 = "Raidb0"
final String RAIDB1 = "Raidb1"
final String RAIDB2 = "Raidb2"
final String DIRECT = "Direct"
final String HSQLDB_PORT_STANDALONE = "9000"
final String HSQLDB_PORT_DUAL_1 = "9001"
final String HSQLDB_PORT_DUAL_2 = "9002"
final String[] FILES_TO_CLEAN
final String[] CONFIGS


メソッド

void org.objectweb.cjdbc.common.util.ControllerTask.cleanFiles  )  [private]
 

ControllerTask.java128 行で定義されています。

参照先 org.objectweb.cjdbc.common.util.ControllerTask.FILES_TO_CLEAN.

参照元 org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

00129 { 00130 File f = new File("."); 00131 String[] list = f.list(new FilenameFilter() 00132 { 00133 public boolean accept(File dir, String name) 00134 { 00135 for (int i = 0; i < FILES_TO_CLEAN.length; i++) 00136 { 00137 if (name.equals(FILES_TO_CLEAN[i])) 00138 return true; 00139 } 00140 return false; 00141 } 00142 }); 00143 for (int i = 0; i < list.length; i++) 00144 { 00145 if (verbose) 00146 System.out.println("Cleaning:" + list[i]); 00147 new File(list[i]).delete(); 00148 } 00149 }

void org.objectweb.cjdbc.common.util.ControllerTask.execute  )  throws BuildException
 

Execute the cjdbc task. Start or stop the controller

参照:
ControllerTask.setAction

org.apache.tools.ant.Task#execute()

例外:
BuildException if this ant task fails.
ControllerTask.java75 行で定義されています。

参照先 org.objectweb.cjdbc.common.util.ControllerTask.action, org.objectweb.cjdbc.common.util.ControllerTask.manageHsqldb, org.objectweb.cjdbc.common.util.ControllerTask.startAction(), と org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

00076 { 00077 System.out.println("Manage hsql is set to " + manageHsqldb); 00078 if (action.equalsIgnoreCase("start")) 00079 startAction(); 00080 else 00081 stopAction(); 00082 }

void org.objectweb.cjdbc.common.util.ControllerTask.setAction String  action  ) 
 

one of the action to execute by the task

引数:
action,see execute for more information
ControllerTask.java304 行で定義されています。
00305 { 00306 this.action = action; 00307 }

void org.objectweb.cjdbc.common.util.ControllerTask.setConfiguration String  config  )  throws BuildException
 

See CONFIGS for more information. Basically, one of RAIDB1, RAIDB2 ...

引数:
config style to load
例外:
BuildException if the configuration is not supported. (Note cannot start/stop the controller if so)
ControllerTask.java290 行で定義されています。
00291 { 00292 ArrayList possible = new ArrayList(Arrays.asList(CONFIGS)); 00293 if (possible.contains(config) == false) 00294 throw new BuildException("Configuration " + config + " not supported"); 00295 else 00296 this.configuration = config; 00297 }

void org.objectweb.cjdbc.common.util.ControllerTask.setControllerfile String  file  ) 
 

Set the controller file to use

引数:
file path to use to set up the controller
ControllerTask.java314 行で定義されています。
00315 { 00316 this.controllerFile = file; 00317 }

void org.objectweb.cjdbc.common.util.ControllerTask.setManageHsqldb boolean  manage  ) 
 

Should we get busy with starting or stopping hsqldb

引数:
manage true or false
ControllerTask.java324 行で定義されています。
00325 { 00326 this.manageHsqldb = manage; 00327 }

void org.objectweb.cjdbc.common.util.ControllerTask.startAction  )  throws BuildException [private]
 

ControllerTask.java84 行で定義されています。

参照先 org.objectweb.cjdbc.common.util.ControllerTask.configuration, org.objectweb.cjdbc.common.util.ControllerTask.DIRECT, org.objectweb.cjdbc.common.util.ControllerTask.RAIDB0, org.objectweb.cjdbc.common.util.ControllerTask.RAIDB1, org.objectweb.cjdbc.common.util.ControllerTask.RAIDB2, org.objectweb.cjdbc.common.util.ControllerTask.SINGLE_DB, org.objectweb.cjdbc.common.util.ControllerTask.startDirect(), org.objectweb.cjdbc.common.util.ControllerTask.startRaidb0(), org.objectweb.cjdbc.common.util.ControllerTask.startRaidb1(), org.objectweb.cjdbc.common.util.ControllerTask.startRaidb2(), と org.objectweb.cjdbc.common.util.ControllerTask.startSingleDB().

参照元 org.objectweb.cjdbc.common.util.ControllerTask.execute().

00085 { 00086 System.out.println("Starting CJDBC Controller in mode:" + configuration); 00087 if (configuration == null) 00088 throw new BuildException( 00089 "Need a configuration file to start the controller"); 00090 if (configuration.equals(DIRECT)) 00091 startDirect(); 00092 else if (configuration.equals(SINGLE_DB)) 00093 startSingleDB(); 00094 else if (configuration.equals(RAIDB0)) 00095 startRaidb0(); 00096 else if (configuration.equals(RAIDB1)) 00097 startRaidb1(); 00098 else if (configuration.equals(RAIDB2)) 00099 startRaidb2(); 00100 else 00101 throw new BuildException("Doing nothing ..."); 00102 }

void org.objectweb.cjdbc.common.util.ControllerTask.startController  )  throws BuildException [private]
 

ControllerTask.java151 行で定義されています。

00152 { 00153 System.out.println("Starting cjdbc with file:" + controllerFile); 00154 try 00155 { 00156 Runtime run = Runtime.getRuntime(); 00157 String path = "loadtest/configfiles:3rdparty/hsqldb/lib/hsqldb.jar:lib/jakarta-regexp-1.3.jar:lib/xercesImpl.jar:lib/xmlutil.jar:lib/Octopus-2.2.jar:lib/OctopusGenerator.jar:lib/csvjdbc.jar:lib/c-jdbc-controller.jar:drivers/c-jdbc-driver.jar:3rdparty/hsqldb/lib/hsqldb.jar:drivers:xml:lib/crimson.jar:lib/jgroups-core.jar:lib/log4j.jar:lib/commons-cli.jar:lib/jmx/mx4j-tools.jar:lib/jmx/xsl:lib/jmx/xml-apis.jar:lib/jmx/mx4j-jmx.jar:lib/jmx/xalan.jar"; 00158 run 00159 .exec("java -classpath build/classes:" 00160 + path 00161 + " -Dorg.xml.sax.driver=org.apache.crimson.parser.XMLReaderImpl org.objectweb.cjdbc.controller.core.Controller -f " 00162 + controllerFile); 00163 } 00164 catch (Exception e) 00165 { 00166 throw new BuildException(e.getMessage()); 00167 } 00168 }

void org.objectweb.cjdbc.common.util.ControllerTask.startDirect  )  [private]
 

ControllerTask.java218 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.startAction().

00219 { 00220 startHsqldb(HSQLDB_PORT_STANDALONE, "test1"); 00221 }

void org.objectweb.cjdbc.common.util.ControllerTask.startHsqldb String  port,
String  db
throws BuildException [private]
 

ControllerTask.java180 行で定義されています。

00181 { 00182 System.out.println("Starting hsqldb on port:" + port); 00183 try 00184 { 00185 Runtime run = Runtime.getRuntime(); 00186 run 00187 .exec("java -classpath 3rdparty/hsqldb/lib/hsqldb.jar org.hsqldb.Server -port " 00188 + port + " -database " + db); 00189 synchronized (this) 00190 { 00191 wait(3000); 00192 } 00193 } 00194 catch (Exception e) 00195 { 00196 throw new BuildException(e.getMessage()); 00197 } 00198 }

void org.objectweb.cjdbc.common.util.ControllerTask.startHsqldb String  port  )  throws BuildException [private]
 

ControllerTask.java175 行で定義されています。

00176 { 00177 startHsqldb(port, "test"); 00178 }

void org.objectweb.cjdbc.common.util.ControllerTask.startRaidb0  )  [private]
 

ControllerTask.java238 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.startAction().

00239 { 00240 startHsqldb(HSQLDB_PORT_DUAL_1); 00241 startHsqldb(HSQLDB_PORT_DUAL_2); 00242 }

void org.objectweb.cjdbc.common.util.ControllerTask.startRaidb1  )  [private]
 

ControllerTask.java250 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.startAction().

00251 { 00252 if (manageHsqldb) 00253 { 00254 startHsqldb(HSQLDB_PORT_DUAL_1, "test1"); 00255 startHsqldb(HSQLDB_PORT_DUAL_2, "test2"); 00256 } 00257 startController(); 00258 }

void org.objectweb.cjdbc.common.util.ControllerTask.startRaidb2  )  [private]
 

ControllerTask.java270 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.startAction().

00271 { 00272 startHsqldb(HSQLDB_PORT_DUAL_1); 00273 startHsqldb(HSQLDB_PORT_DUAL_2); 00274 }

void org.objectweb.cjdbc.common.util.ControllerTask.startSingleDB  )  [private]
 

ControllerTask.java228 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.startAction().

00229 { 00230 startHsqldb(HSQLDB_PORT_STANDALONE); 00231 }

void org.objectweb.cjdbc.common.util.ControllerTask.stopAction  )  throws BuildException [private]
 

ControllerTask.java104 行で定義されています。

参照先 org.objectweb.cjdbc.common.util.ControllerTask.cleanFiles(), org.objectweb.cjdbc.common.util.ControllerTask.configuration, org.objectweb.cjdbc.common.util.ControllerTask.DIRECT, org.objectweb.cjdbc.common.util.ControllerTask.manageHsqldb, org.objectweb.cjdbc.common.util.ControllerTask.RAIDB0, org.objectweb.cjdbc.common.util.ControllerTask.RAIDB1, org.objectweb.cjdbc.common.util.ControllerTask.RAIDB2, org.objectweb.cjdbc.common.util.ControllerTask.SINGLE_DB, org.objectweb.cjdbc.common.util.ControllerTask.stopDirect(), org.objectweb.cjdbc.common.util.ControllerTask.stopRaidb0(), org.objectweb.cjdbc.common.util.ControllerTask.stopRaidb1(), org.objectweb.cjdbc.common.util.ControllerTask.stopRaidb2(), と org.objectweb.cjdbc.common.util.ControllerTask.stopSingleDB().

参照元 org.objectweb.cjdbc.common.util.ControllerTask.execute().

00105 { 00106 System.out.println("Stopping CJDBC Controller from mode:" + configuration); 00107 if (configuration.equals(DIRECT)) 00108 stopDirect(); 00109 else if (configuration.equals(SINGLE_DB)) 00110 stopSingleDB(); 00111 else if (configuration.equals(RAIDB0)) 00112 stopRaidb0(); 00113 else if (configuration.equals(RAIDB1)) 00114 stopRaidb1(); 00115 else if (configuration.equals(RAIDB2)) 00116 stopRaidb2(); 00117 else 00118 { 00119 throw new BuildException("Doing nothing ..."); 00120 } 00121 00122 if (manageHsqldb) 00123 { 00124 cleanFiles(); 00125 } 00126 }

void org.objectweb.cjdbc.common.util.ControllerTask.stopController  )  throws BuildException [private]
 

ControllerTask.java170 行で定義されています。

00171 { 00172 //ControllerShutdownClient.main(new String[]{"localhost", "25322", "3"}); 00173 }

void org.objectweb.cjdbc.common.util.ControllerTask.stopDirect  )  [private]
 

ControllerTask.java223 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

00224 { 00225 stopHsqldb(HSQLDB_PORT_STANDALONE); 00226 }

void org.objectweb.cjdbc.common.util.ControllerTask.stopHsqldb String  port  )  [private]
 

ControllerTask.java200 行で定義されています。

参照先 java.sql.Statement.execute().

00201 { 00202 System.out.println("Stopping hsqldb on port:" + port); 00203 try 00204 { 00205 Class.forName("org.hsqldb.jdbcDriver"); 00206 Connection c = DriverManager.getConnection( 00207 "jdbc:hsqldb:hsql://localhost:" + port, "TEST", ""); 00208 Statement s = c.createStatement(); 00209 s.execute("SHUTDOWN IMMEDIATELY;"); 00210 } 00211 catch (Exception e) 00212 { 00213 // ignore throw new BuildException(e.getMessage()); 00214 System.out.println(e.getMessage()); 00215 } 00216 }

void org.objectweb.cjdbc.common.util.ControllerTask.stopRaidb0  )  [private]
 

ControllerTask.java244 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

00245 { 00246 stopHsqldb(HSQLDB_PORT_DUAL_1); 00247 stopHsqldb(HSQLDB_PORT_DUAL_2); 00248 }

void org.objectweb.cjdbc.common.util.ControllerTask.stopRaidb1  )  [private]
 

ControllerTask.java260 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

00261 { 00262 stopController(); 00263 if (manageHsqldb) 00264 { 00265 stopHsqldb(HSQLDB_PORT_DUAL_1); 00266 stopHsqldb(HSQLDB_PORT_DUAL_2); 00267 } 00268 }

void org.objectweb.cjdbc.common.util.ControllerTask.stopRaidb2  )  [private]
 

ControllerTask.java276 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

00277 { 00278 stopHsqldb(HSQLDB_PORT_DUAL_1); 00279 stopHsqldb(HSQLDB_PORT_DUAL_2); 00280 }

void org.objectweb.cjdbc.common.util.ControllerTask.stopSingleDB  )  [private]
 

ControllerTask.java233 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

00234 { 00235 stopHsqldb(HSQLDB_PORT_STANDALONE); 00236 }


変数

String org.objectweb.cjdbc.common.util.ControllerTask.action [private]
 

ControllerTask.java48 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.execute().

final String [] org.objectweb.cjdbc.common.util.ControllerTask.CONFIGS [static, private]
 

初期値:

new String[]{ SINGLE_DB, RAIDB0, RAIDB1, RAIDB2, DIRECT }
ControllerTask.java65 行で定義されています。

String org.objectweb.cjdbc.common.util.ControllerTask.configuration [private]
 

ControllerTask.java47 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.startAction(), と org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

String org.objectweb.cjdbc.common.util.ControllerTask.controllerFile [private]
 

ControllerTask.java49 行で定義されています。

final String org.objectweb.cjdbc.common.util.ControllerTask.DIRECT = "Direct" [static, private]
 

ControllerTask.java56 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.startAction(), と org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

final String [] org.objectweb.cjdbc.common.util.ControllerTask.FILES_TO_CLEAN [static, private]
 

初期値:

new String[]{ "cjdbc.log", "cjdbc.report", "request.log", "test1.script", "test1.data", "test2.script", "test2.data", "test1.properties", "test2.properties"}
ControllerTask.java62 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.cleanFiles().

final String org.objectweb.cjdbc.common.util.ControllerTask.HSQLDB_PORT_DUAL_1 = "9001" [static, private]
 

ControllerTask.java59 行で定義されています。

final String org.objectweb.cjdbc.common.util.ControllerTask.HSQLDB_PORT_DUAL_2 = "9002" [static, private]
 

ControllerTask.java60 行で定義されています。

final String org.objectweb.cjdbc.common.util.ControllerTask.HSQLDB_PORT_STANDALONE = "9000" [static, private]
 

ControllerTask.java58 行で定義されています。

boolean org.objectweb.cjdbc.common.util.ControllerTask.manageHsqldb = true [private]
 

ControllerTask.java50 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.execute(), と org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

final String org.objectweb.cjdbc.common.util.ControllerTask.RAIDB0 = "Raidb0" [static, private]
 

ControllerTask.java53 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.startAction(), と org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

final String org.objectweb.cjdbc.common.util.ControllerTask.RAIDB1 = "Raidb1" [static, private]
 

ControllerTask.java54 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.startAction(), と org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

final String org.objectweb.cjdbc.common.util.ControllerTask.RAIDB2 = "Raidb2" [static, private]
 

ControllerTask.java55 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.startAction(), と org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

final String org.objectweb.cjdbc.common.util.ControllerTask.SINGLE_DB = "SingleDB" [static, private]
 

ControllerTask.java52 行で定義されています。

参照元 org.objectweb.cjdbc.common.util.ControllerTask.startAction(), と org.objectweb.cjdbc.common.util.ControllerTask.stopAction().

boolean org.objectweb.cjdbc.common.util.ControllerTask.verbose = false [private]
 

ControllerTask.java51 行で定義されています。


このクラスの説明は次のファイルから生成されました:
CJDBCversion1.0.4に対してTue Oct 12 15:16:19 2004に生成されました。 doxygen 1.3.8