View Javadoc
1 /* 2 LoaderGenerator - tool for generated xml, sql and doml file needed for Octopus. 3 4 5 Copyright (C) 2003 Together 6 7 This library is free software; you can redistribute it and/or 8 modify it under the terms of the GNU Lesser General Public 9 License as published by the Free Software Foundation; either 10 version 2.1 of the License, or (at your option) any later version. 11 12 This library is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 Lesser General Public License for more details. 16 17 You should have received a copy of the GNU Lesser General Public 18 License along with this library; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 */ 21 22 package org.webdocwf.util.loader.wizard; 23 24 import javax.swing.JTextArea; 25 26 import org.webdocwf.util.loader.BufferOctopusClass; 27 import org.webdocwf.util.loader.LoaderException; 28 import org.webdocwf.util.loader.generator.LoaderGenerator; 29 30 /*** 31 * 32 * ExecThread class execute thread which control LoaderGenerator application 33 * @author Radoslav Dutina 34 * @version 1.0 35 */ 36 public class OctopusGeneratorThread extends Thread { 37 private OctopusGeneratorData initData; 38 // TraceDialog td = null; //trace dialog of this Thread 39 private JTextArea td; 40 private String errorMsg = null; 41 42 private OctopusGenerator generator; 43 44 /*** 45 * Construct object ExecThread with associated parameters. 46 * @param traceArea 47 * @param initData is object which contain input parameters of wizard application 48 * @param errorMsg is error message 49 */ 50 public OctopusGeneratorThread(OctopusGeneratorData initData, String errorMsg, JTextArea traceArea) { 51 this.initData = initData; 52 this.errorMsg = errorMsg; 53 td = traceArea; 54 // desktop.add(td); 55 } 56 57 /*** 58 * This method append line in to trace area 59 * @param s is value which to be set 60 */ 61 public void appendLine(String s) { 62 td.append(s); 63 td.getCaret().setDot(td.getText().length() - 1); 64 } 65 66 /*** 67 * Run the thread 68 */ 69 public void run() { 70 71 td.setVisible(true); 72 // td.setDefaultFocus(); 73 if (errorMsg != null) { 74 appendLine(errorMsg + "\n"); 75 // td.setButtonEnabled(); 76 // td.setButtonName("Open"); 77 78 } else { 79 try { 80 OctopusGenerator generator = new OctopusGenerator(initData); 81 String[] process = generator.generateAll(); 82 GeneratorThread generatorThread = null; 83 if (process.length != 0) { 84 BufferOctopusClass.getInstance(); 85 BufferOctopusClass.getInstance().setUsed(); 86 87 generatorThread = new GeneratorThread(process); 88 generatorThread.start(); 89 90 while (generatorThread.isAlive()) { 91 String value = BufferOctopusClass.getInstance().readFromBuffer(); 92 if (value.indexOf("***TogetherGroop***") == -1) 93 appendLine(value + "\n"); 94 else 95 break; 96 } 97 // td.setButtonEnabled(); 98 } else { 99 appendLine("Some error is occur!" + "\n"); 100 } 101 // td.setButtonName("Open"); 102 // setTitle("Building OctopusGenerator Application (Done)"); 103 generator = null; 104 105 } catch (Exception e) { 106 appendLine(e.getMessage()); 107 try { 108 Thread.sleep(100); 109 } catch (Exception ex) { 110 appendLine(ex.getMessage()); 111 } 112 // td.setButtonEnabled(); 113 // td.setTitle("Building OctopusGenerator Application (ERROR)"); 114 // td.setButtonName("Open"); 115 BufferOctopusClass.getInstance().writeToBuffer("***TogetherGroop***"); 116 BufferOctopusClass.getInstance().empty(); 117 System.out.println(e.getMessage()); 118 } 119 BufferOctopusClass.getInstance().empty(); 120 } 121 } 122 123 /*** 124 * This class creates new thread 125 */ 126 class GeneratorThread extends Thread { 127 private String[] args; 128 129 /*** 130 * Initialise the thread 131 * @param args represents the arguments 132 */ 133 public GeneratorThread(String[] args) { 134 this.args = args; 135 } 136 137 /*** 138 * Run the thread 139 */ 140 public void run() { 141 142 String generatorOutput = null; 143 String valueMode = null; 144 String domlUrl = null; 145 String packageName = null; 146 147 String sourceType = null; 148 String sourceDataBase = null; 149 String sourceDriverName = null; 150 String sourceUser = null; 151 String sourcePassword = null; 152 153 String targetType = null; 154 String targetDataBase = null; 155 String targetDriverName = null; 156 String targetUser = null; 157 String targetPassword = null; 158 //logging 159 String logDirName = null; 160 String logFileName = null; 161 String logMode = null; 162 //Output mode 163 //main 164 String generateXml = null; 165 String generateDoml = null; 166 //for generate sql 167 String generateDropTableStmt = null; 168 String generateDropIntegrityStmt = null; 169 String generateCreateTableStmt = null; 170 String generateCreatePKStmt = null; 171 String generateCreateFKStmt = null; 172 String generateCreateIndexStmt = null; 173 174 //for genrate sql for all vendors 175 String generateSqlForAllVendors = null; 176 //optimized modes 177 String fullMode = null; 178 179 String includeTableList = null; 180 String confJarStructure = null; 181 182 if (args.length > 8 && args.length < 53) { 183 for (int i = 0; i < args.length - 1; i = i + 1) { 184 if (args[i].equalsIgnoreCase("-st")) 185 sourceType = args[++i]; 186 else if (args[i].equalsIgnoreCase("-sdb")) 187 sourceDataBase = args[++i]; 188 else if (args[i].equalsIgnoreCase("-m")) 189 valueMode = args[++i]; 190 else if (args[i].equalsIgnoreCase("-o")) 191 generatorOutput = args[++i]; 192 else if (args[i].equalsIgnoreCase("-sdn")) 193 sourceDriverName = args[++i]; 194 else if (args[i].equalsIgnoreCase("-tdn")) 195 targetDriverName = args[++i]; 196 else if (args[i].equalsIgnoreCase("-tdb")) 197 targetDataBase = args[++i]; 198 if (args[i].equalsIgnoreCase("-tt")) 199 targetType = args[++i]; 200 if (args[i].equalsIgnoreCase("-su")) 201 sourceUser = args[++i]; 202 if (args[i].equalsIgnoreCase("-sp")) 203 sourcePassword = args[++i]; 204 if (args[i].equalsIgnoreCase("-tu")) 205 targetUser = args[++i]; 206 if (args[i].equalsIgnoreCase("-tp")) 207 targetPassword = args[++i]; 208 if (args[i].equalsIgnoreCase("-doml")) 209 domlUrl = args[++i]; 210 if (args[i].equalsIgnoreCase("-pack")) 211 packageName = args[++i]; 212 if (args[i].equalsIgnoreCase("-xml")) 213 generateXml = args[++i]; 214 if (args[i].equalsIgnoreCase("-gdoml")) 215 generateDoml = args[++i]; 216 if (args[i].equalsIgnoreCase("-sqlCT")) 217 generateCreateTableStmt = args[++i]; 218 if (args[i].equalsIgnoreCase("-sqlDT")) 219 generateDropTableStmt = args[++i]; 220 if (args[i].equalsIgnoreCase("-sqlDI")) 221 generateDropIntegrityStmt = args[++i]; 222 if (args[i].equalsIgnoreCase("-sqlCPK")) 223 generateCreatePKStmt = args[++i]; 224 if (args[i].equalsIgnoreCase("-sqlCFK")) 225 generateCreateFKStmt = args[++i]; 226 if (args[i].equalsIgnoreCase("-sqlCI")) 227 generateCreateIndexStmt = args[++i]; 228 if (args[i].equalsIgnoreCase("-sqlAll")) 229 generateSqlForAllVendors = args[++i]; 230 if (args[i].equalsIgnoreCase("-fm")) 231 fullMode = args[++i]; 232 if (args[i].equalsIgnoreCase("-it")) 233 includeTableList = args[++i]; 234 if (args[i].equalsIgnoreCase("-cjs")) 235 confJarStructure = args[++i]; 236 //logging 237 if (args[i].equalsIgnoreCase("-lm")) 238 logMode = args[++i]; 239 else if (args[i].equalsIgnoreCase("-l")) 240 logDirName = args[++i]; 241 else if (args[i].equalsIgnoreCase("-f")) 242 logFileName = args[++i]; 243 } 244 } else { 245 System.out.println("You didn't enter all required parameters, for running the application!"); 246 BufferOctopusClass.getInstance().writeToBuffer("You didn't enter all required parameters, for running the application!"); 247 printUsage(); 248 } 249 try { 250 251 LoaderGenerator generator = new LoaderGenerator(sourceType, 252 sourceDataBase, valueMode, generatorOutput, sourceDriverName, 253 targetDriverName, targetDataBase, targetType, sourceUser, 254 sourcePassword, targetUser, targetPassword, domlUrl, packageName, 255 generateDropTableStmt, generateDropIntegrityStmt, generateCreateTableStmt, 256 generateCreatePKStmt, generateCreateFKStmt, generateCreateIndexStmt, 257 generateSqlForAllVendors, generateXml, generateDoml, fullMode, "false", 258 includeTableList, confJarStructure, logMode, logDirName, logFileName); 259 260 generator.generate(); 261 262 } catch (LoaderException le) { 263 //TODO zk added for testing 264 le.printStackTrace(); 265 //END 266 System.out.println(le.getMessage()); 267 String message = le.getMessage(); 268 if (message == null || message.indexOf(-1) != -1 || message.indexOf(0) != -1) 269 message = "Application build fails!"; 270 BufferOctopusClass.getInstance().writeToBuffer(message + "\n"); 271 BufferOctopusClass.getInstance().writeToBuffer("Check input parameters!" + "\n"); 272 try { 273 Thread.sleep(100); 274 } catch (Exception ex) { 275 appendLine(ex.getMessage()); 276 } 277 // td.setTitle("Building OctopusGenerator Application (ERROR)"); 278 // td.setButtonEnabled(); 279 // td.setButtonName("Open"); 280 BufferOctopusClass.getInstance().writeToBuffer("***TogetherGroop***"); 281 return; 282 } catch (Throwable th) { 283 BufferOctopusClass.getInstance().writeToBuffer(th.getMessage()); 284 try { 285 Thread.sleep(100); 286 } catch (Exception ex) { 287 appendLine(ex.getMessage()); 288 } 289 // td.setTitle("Building OctopusGenerator Application (ERROR)"); 290 // td.setButtonEnabled(); 291 // td.setButtonName("Open"); 292 BufferOctopusClass.getInstance().writeToBuffer("***TogetherGroop***"); 293 th.printStackTrace(System.out); 294 return; 295 } 296 try { 297 Thread.sleep(1000); 298 } catch (Exception ex) { 299 appendLine(ex.getMessage()); 300 } 301 BufferOctopusClass.getInstance().writeToBuffer("***TogetherGroop***"); 302 } 303 304 /*** 305 * Help for Octopus Loader application 306 */ 307 public void printUsage() { 308 System.out.println("Usage: java org.webdocwf.util.loader.generator.Generator [options] "); 309 BufferOctopusClass.getInstance().writeToBuffer("Usage: java org.webdocwf.util.loader.generator.Generator [options] "); 310 System.out.println(" Options:"); 311 BufferOctopusClass.getInstance().writeToBuffer(" Options:"); 312 System.out.println(" -st sourceType, defines the type of the source database."); 313 BufferOctopusClass.getInstance().writeToBuffer(" -st sourceType, defines the type of the source database."); 314 System.out.println(" -tt targetType, defines the type of the target database."); 315 BufferOctopusClass.getInstance().writeToBuffer(" -tt targetType, defines the type of the target database."); 316 System.out.println(" -sdn sourceDriverName, represents driver of defined source database."); 317 BufferOctopusClass.getInstance().writeToBuffer(" -sdn sourceDriverName, represents driver of defined source database."); 318 System.out.println(" -tdn targetDriverName, represents driver of defined target database."); 319 BufferOctopusClass.getInstance().writeToBuffer(" -tdn targetDriverName, represents driver of defined target database."); 320 System.out.println(" -sdb sourceDatabase, defines the place where you're put the database tables"); 321 BufferOctopusClass.getInstance().writeToBuffer(" -sdb sourceDatabase, defines the place where you're put the database tables"); 322 System.out.println(" -tdb targetDataBase defines the place where the target database tables are."); 323 BufferOctopusClass.getInstance().writeToBuffer(" -tdb targetDataBase defines the place where the target database tables are."); 324 System.out.println(" -m valueMode, is the difference from overwrite and update attribute"); 325 BufferOctopusClass.getInstance().writeToBuffer(" -m valueMode, is the difference from overwrite and update attribute"); 326 System.out.println(" -su sourceUser, defines the user of the source database."); 327 BufferOctopusClass.getInstance().writeToBuffer(" -su sourceUser, defines the user of the source database."); 328 System.out.println(" -sp sourcePassword, defines user password for the source database."); 329 BufferOctopusClass.getInstance().writeToBuffer(" -sp sourcePassword, defines user password for the source database."); 330 System.out.println(" -tu targetUser, defines the user of the target database."); 331 BufferOctopusClass.getInstance().writeToBuffer(" -tu targetUser, defines the user of the target database."); 332 System.out.println(" -tp targetPassword, defines user password for the target database."); 333 BufferOctopusClass.getInstance().writeToBuffer(" -tp targetPassword, defines user password for the target database."); 334 System.out.println(" -doml domlUrl, defines the place where the doml file is placed."); 335 BufferOctopusClass.getInstance().writeToBuffer(" -doml domlUrl, defines the place where the doml file is placed."); 336 System.out.println(" -o generatorOutput, is optional. That represent the directory, where the TDT place" + " created files. If this argument dont exists, TDT place created files in to current direcory!"); 337 BufferOctopusClass.getInstance().writeToBuffer(" -o generatorOutput, is optional. That represent the directory, where the TDT place" + " created files. If this argument dont exists, TDT place created files in to current direcory!"); 338 System.out.println(" -pack packageName, defines the package name for the generated doml file."); 339 BufferOctopusClass.getInstance().writeToBuffer(" -pack packageName, defines the package name for the generated doml file."); 340 341 System.out.println(" -xml generateXml, defines if you want to generate xml files as output files. " + " Possible values are true and false."); 342 BufferOctopusClass.getInstance().writeToBuffer(" -xml generateXml, defines if you want to generate xml files as output files. " + " Possible values are true and false."); 343 System.out.println(" -gdoml generateDoml, defines if you want to generate doml file as output file. " + " Possible values are true and false."); 344 BufferOctopusClass.getInstance().writeToBuffer(" -gdoml generateDoml, defines if you want to generate doml file as output file. " + " Possible values are true and false."); 345 System.out.println(" -sqlCT generateCreateTables, defines if you want to generate only Sql statement for CREATE TABLE."); 346 BufferOctopusClass.getInstance().writeToBuffer(" -sqlCT generateCreateTables, defines if you want to generate only Sql statement for CREATE TABLE."); 347 348 System.out.println(" -sqlDT generateDropTableStmt, defines if you want to generate only Sql statement for DROP TABLE."); 349 BufferOctopusClass.getInstance().writeToBuffer(" -sqlDT generateDropTableStmt, defines if you want to generate only Sql statement for DROP TABLE."); 350 351 System.out.println(" -sqlCPK generateCreatePrimaryKeys, defines if you want to generate only Sql statement for ALTER TABLE ADD CONSTRAINT (PRIMARY KEY)."); 352 BufferOctopusClass.getInstance().writeToBuffer(" -sqlCPK generateCreatePrimaryKeys, defines if you want to generate only Sql statement for ALTER TABLE ADD CONSTRAINT (PRIMARY KEY)."); 353 354 System.out.println(" -sqlCFK generateCreateForeigKeys, defines if you want to generate only Sql statement for ALTER TABLE ADD CONSTRAINT (FOREIGN KEY)."); 355 BufferOctopusClass.getInstance().writeToBuffer(" -sqlCFK generateCreateForeigKeys, defines if you want to generate only Sql statement for ALTER TABLE ADD CONSTRAINT (FOREIGN KEY)."); 356 357 System.out.println(" -sqlCI generateCreateIndex, defines if you want to generate only Sql statement for CREATE INDEX."); 358 BufferOctopusClass.getInstance().writeToBuffer(" -sqlCI generateCreateIndex, defines if you want to generate only Sql statement for CREATE INDEX."); 359 360 System.out.println(" -fm fullMode, defines the mode of output xml files. Possible values are true and false."); 361 BufferOctopusClass.getInstance().writeToBuffer(" -fm fullMode, defines the mode of output xml files. Possible values are true and false."); 362 363 System.out.println(" -it includeTableList, defines tables which you want to incude into Generator process."); 364 BufferOctopusClass.getInstance().writeToBuffer(" -it includeTableList, defines tables which you want to incude into Generator process."); 365 366 System.out.println(" -lm defines the default logmode. Possible values are 'none', 'normal' (is the default) and 'full'."); 367 BufferOctopusClass.getInstance().writeToBuffer(" -m defines the default logmode. Possible values are 'none', 'normal' (is the default) and 'full'."); 368 369 System.out.println(" -l defines the logfile directory. The default is the current working directory. \n"); 370 BufferOctopusClass.getInstance().writeToBuffer(" -v defines variables used in variable columns. \n"); 371 372 System.out.println(" -f defines the logfile name. The default is 'GeneratorLog-YYYY-MM-DD-HH-mm-SS.txt'. \n"); 373 BufferOctopusClass.getInstance().writeToBuffer(" -f defines the logfile name. The default is 'GeneratorLog-YYYY-MM-DD-HH-mm-SS.txt'. \n"); 374 375 System.out.println("For more details, see documentation."); 376 BufferOctopusClass.getInstance().writeToBuffer("For more details, see documentation."); 377 } 378 } 379 }

This page was automatically generated by Maven