View Javadoc
1 2 /* 3 LoaderGenerator - tool for generated xml, sql and doml file needed for Octopus. 4 5 6 Copyright (C) 2003 Together 7 8 This library is free software; you can redistribute it and/or 9 modify it under the terms of the GNU Lesser General Public 10 License as published by the Free Software Foundation; either 11 version 2.1 of the License, or (at your option) any later version. 12 13 This library is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 Lesser General Public License for more details. 17 18 You should have received a copy of the GNU Lesser General Public 19 License along with this library; if not, write to the Free Software 20 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 */ 22 23 package org.webdocwf.util.loader.generator; 24 25 import java.util.Vector; 26 27 import org.webdocwf.util.loader.BufferOctopusClass; 28 import org.webdocwf.util.loader.LoaderException; 29 import org.webdocwf.util.loader.TimeWatch; 30 import org.webdocwf.util.loader.logging.StandardLogger; 31 32 /*** 33 * LoaderGenerator class dinamicly generates the xml files (LoaderJob.xml and ImportDefinition.xml) 34 * from the input data and source database. 35 * Also LoaderGenerator creates SQL statements for building and loading an SQL target database. 36 * @author Radoslav Dutina 37 * @version 1.0 38 */ 39 public class LoaderGenerator { 40 41 private InputParameters generatorParameters; 42 private StandardLogger logger; 43 private String strLogDirName = ""; 44 private String strLogFileName = "defaultGenerator"; 45 private String logMode = "normal"; 46 private TimeWatch timeCounter; 47 private String strLoggerParam = ""; 48 private boolean standardLogger; 49 50 /*** 51 * This method set sourceDataBase 52 * @param sourceDataBase 53 * @throws LoaderException 54 */ 55 public void setSourceDataBase(String sourceDataBase) throws LoaderException { 56 this.generatorParameters.setSourceDataBase(sourceDataBase); 57 } 58 59 /*** 60 * This method return sourceDataBase 61 * @return sourceDataBase 62 * @throws LoaderException 63 */ 64 65 public String getSourceDataBase() throws LoaderException { 66 return this.generatorParameters.getSourceDataBase(); 67 } 68 /*** 69 * This method set targetDataBase 70 * @param targetDataBase 71 * @throws LoaderException 72 */ 73 74 public void setTargetDataBase(String targetDataBase) throws LoaderException { 75 this.generatorParameters.setTargetDataBase(targetDataBase); 76 } 77 78 /*** 79 * This method return targetDataBase 80 * @return targetDataBase 81 * @throws LoaderException 82 */ 83 public String getTargetDataBase() throws LoaderException { 84 return this.generatorParameters.getTargetDataBase(); 85 } 86 87 /*** 88 * This method set sourceType 89 * @param sourceType 90 * @throws LoaderException 91 */ 92 public void setSourceType(String sourceType) throws LoaderException { 93 this.generatorParameters.setSourceType(sourceType); 94 } 95 96 /*** 97 * This method return sourceType 98 * @return sourceType 99 * @throws LoaderException 100 */ 101 public String getSourceType() throws LoaderException { 102 return this.generatorParameters.getSourceType(); 103 } 104 105 /*** 106 * This method set targetType 107 * @param targetType 108 * @throws LoaderException 109 */ 110 public void setTargetType(String targetType) throws LoaderException { 111 this.generatorParameters.setTargetType(targetType); 112 } 113 114 /*** 115 * This method return targetType 116 * @return String which is target type 117 * @throws LoaderException 118 */ 119 public String getTargetType() throws LoaderException { 120 return this.generatorParameters.getTargetType(); 121 } 122 123 /*** 124 * This method set sourceDriverName 125 * @param sourceDriverName 126 * @throws LoaderException 127 */ 128 public void setSourceDriverName(String sourceDriverName) throws LoaderException { 129 this.generatorParameters.setSourceDriverName(sourceDriverName); 130 } 131 132 /*** 133 * This method return sourceDriverName 134 * @return sourceDriverName 135 * @throws LoaderException 136 */ 137 public String getSourceDriverName() throws LoaderException { 138 return this.generatorParameters.getSourceDriverName(); 139 } 140 141 /*** 142 * This method set targetDriverName 143 * @param targetDriverName 144 * @throws LoaderException 145 */ 146 public void setTargetDriverName(String targetDriverName) throws LoaderException { 147 this.generatorParameters.setTargetDriverName(targetDriverName); 148 } 149 150 /*** 151 * This method return targetDriverName 152 * @return targetDriverName 153 * @throws LoaderException 154 */ 155 public String getTargetDriverName() throws LoaderException { 156 return this.generatorParameters.getTargetDriverName(); 157 } 158 159 /*** 160 * This method set valueMode 161 * @param valueMode 162 * @throws LoaderException 163 */ 164 public void setValueMode(String valueMode) throws LoaderException { 165 this.generatorParameters.setValueMode(valueMode); 166 } 167 168 /*** 169 * This method returns valueMode 170 * @return String which is value mode 171 * @throws LoaderException 172 */ 173 public String getValueMode() throws LoaderException { 174 return this.generatorParameters.getValueMode(); 175 } 176 177 /*** 178 * This method set generatorOutput 179 * @param generatorOutput 180 * @throws LoaderException 181 */ 182 public void setGeneratorOutput(String generatorOutput) throws LoaderException { 183 this.generatorParameters.setGeneratorOutput(generatorOutput); 184 } 185 186 /*** 187 * This method return generatorOutput 188 * @return generatorOutput 189 * @throws LoaderException 190 */ 191 public String getGeneratorOutput() throws LoaderException { 192 return this.generatorParameters.getGeneratorOutput(); 193 } 194 195 /*** 196 * This method set sourceUser 197 * @param sourceUser 198 * @throws LoaderException 199 */ 200 public void setSourceUser(String sourceUser) throws LoaderException { 201 this.generatorParameters.setSourceUser(sourceUser); 202 } 203 204 /*** 205 * This method return sourceUser 206 * @return sourceUser 207 * @throws LoaderException 208 */ 209 public String getSourceUser() throws LoaderException { 210 return this.generatorParameters.getSourceUser(); 211 } 212 213 /*** 214 * This method set targetUser 215 * @param targetUser 216 * @throws LoaderException 217 */ 218 public void setTargetUser(String targetUser) throws LoaderException { 219 this.generatorParameters.setTargetUser(targetUser); 220 } 221 222 /*** 223 * This method return targetUser 224 * @return targetUser 225 * @throws LoaderException 226 */ 227 public String getTargetUser() throws LoaderException { 228 return this.generatorParameters.getTargetUser(); 229 } 230 /*** 231 * This method set sourcePassword 232 * @param sourcePassword 233 * @throws LoaderException 234 */ 235 public void setSourcePassword(String sourcePassword) throws LoaderException { 236 this.generatorParameters.setSourcePassword(sourcePassword); 237 } 238 239 /*** 240 * This method return sourcePassword 241 * @return sourcePassword 242 * @throws LoaderException 243 */ 244 public String getSourcePassword() throws LoaderException { 245 return this.generatorParameters.getSourcePassword(); 246 } 247 248 /*** 249 * This method set targetPassword 250 * @param targetPassword 251 * @throws LoaderException 252 */ 253 public void setTargetPassword(String targetPassword) throws LoaderException { 254 this.generatorParameters.setTargetPassword(targetPassword); 255 } 256 257 /*** 258 * This method set targetPassword 259 * @return targetPassword 260 * @throws LoaderException 261 */ 262 public String getTargetPassword() throws LoaderException { 263 return this.generatorParameters.getTargetPassword(); 264 } 265 266 /*** 267 * This method set domlPath 268 * @param domlPath 269 * @throws LoaderException 270 */ 271 public void setDomlPath(String domlPath) throws LoaderException { 272 this.generatorParameters.setDomlPath(domlPath); 273 } 274 275 /*** 276 * This method return domlPath 277 * @return domlPath 278 * @throws LoaderException 279 */ 280 public String getDomlPath() throws LoaderException { 281 return this.generatorParameters.getDomlPath(); 282 } 283 284 /*** 285 * This method set packageName 286 * @param packageName 287 * @throws LoaderException 288 */ 289 public void setPackageName(String packageName) throws LoaderException { 290 this.generatorParameters.setPackageName(packageName); 291 } 292 293 /*** 294 * This method return packageName 295 * @return packageName 296 * @throws LoaderException 297 */ 298 public String getPackageName() throws LoaderException { 299 return this.generatorParameters.getPackageName(); 300 } 301 /*** 302 * This method set generateDropTableStmt 303 * @param generateDropTableStmt 304 * @throws LoaderException 305 */ 306 public void setGenerateDropTableStmt(boolean generateDropTableStmt) throws LoaderException { 307 this.generatorParameters.setSqlStmtDropTable(new Boolean(generateDropTableStmt).toString()); 308 } 309 /*** 310 * This method return generateDropTableStmt 311 * @return generateDropTableStmt 312 * @throws LoaderException 313 */ 314 public boolean getGenerateDropTableStmt() throws LoaderException { 315 Vector tempVector = this.generatorParameters.getSqlToGenerate(); 316 String dropTables = (String) tempVector.elementAt(1); 317 if (dropTables.equalsIgnoreCase("DropTables")) { 318 return true; 319 } else { 320 return false; 321 } 322 323 } 324 /*** 325 * This method set generateCreateTableStmt 326 * @param generateCreateTableStmt 327 * @throws LoaderException 328 */ 329 public void setGenerateCreateTableStmt(boolean generateCreateTableStmt) throws LoaderException { 330 this.generatorParameters.setSqlStmtCreateTable(new Boolean(generateCreateTableStmt).toString()); 331 } 332 333 /*** 334 * This method will return boolean which represents if user set "Create Tables" or not 335 * @return boolean value 336 * @throws LoaderException 337 */ 338 public boolean getGenerateCreateTableStmt() throws LoaderException { 339 Vector tempVector = this.generatorParameters.getSqlToGenerate(); 340 String createTables = (String) tempVector.elementAt(2); 341 if (createTables.equalsIgnoreCase("CreateTables")) { 342 return true; 343 } else { 344 return false; 345 } 346 } 347 /*** 348 * This method set generateDropIntegrityStmt 349 * @param generateDropIntegrityStmt 350 * @throws LoaderException 351 */ 352 353 public void setGenerateDropIntegrityStmt(boolean generateDropIntegrityStmt) throws LoaderException { 354 this.generatorParameters.setSqlStmtDropIntegrity(new Boolean(generateDropIntegrityStmt).toString()); 355 } 356 /*** 357 * This method return generateDropIntegrityStmt 358 * @return generateDropIntegrityStmt 359 * @throws LoaderException 360 */ 361 public boolean getGenerateDropIntegrityStmt() throws LoaderException { 362 Vector tempVector = this.generatorParameters.getSqlToGenerate(); 363 String dropIntegrity = (String) tempVector.elementAt(0); 364 if (dropIntegrity.equalsIgnoreCase("DropIntegrity")) { 365 return true; 366 } else { 367 return false; 368 } 369 } 370 /*** 371 * This method set generateCreatePKStmt 372 * @param generateCreatePKStmt 373 * @throws LoaderException 374 */ 375 public void setGenerateCreatePKStmt(boolean generateCreatePKStmt) throws LoaderException { 376 this.generatorParameters.setSqlStmtCreatePK(new Boolean(generateCreatePKStmt).toString()); 377 } 378 /*** 379 * This method return generateCreatePKStmt 380 * @return GenerateCreatePKStmt 381 * @throws LoaderException 382 */ 383 public boolean getGenerateCreatePKStmt() throws LoaderException { 384 Vector tempVector = this.generatorParameters.getSqlToGenerate(); 385 String createPrimary = (String) tempVector.elementAt(4); 386 if (createPrimary.equalsIgnoreCase("CreatePrimary")) { 387 return true; 388 } else { 389 return false; 390 } 391 } 392 /*** 393 * This method set generateCreateFKStmt 394 * @param generateCreateFKStmt 395 * @throws LoaderException 396 */ 397 public void setGenerateCreateFKStmt(boolean generateCreateFKStmt) throws LoaderException { 398 this.generatorParameters.setSqlStmtCreateFK(new Boolean(generateCreateFKStmt).toString()); 399 } 400 401 /*** 402 * This method return generateCreateFKStmt 403 * @return generateCreateFKStmt 404 * @throws LoaderException 405 */ 406 public boolean getGenerateCreateFKStmt() throws LoaderException { 407 Vector tempVector = this.generatorParameters.getSqlToGenerate(); 408 String createForeign = (String) tempVector.elementAt(5); 409 if (createForeign.equalsIgnoreCase("CreateForeigin")) { 410 return true; 411 } else { 412 return false; 413 } 414 } 415 /*** 416 * This method set generateCreateIndexStmt 417 * @param generateCreateIndexStmt 418 * @throws LoaderException 419 */ 420 public void setGenerateCreateIndexStmt(boolean generateCreateIndexStmt) throws LoaderException { 421 this.generatorParameters.setSqlStmtCreateIndex(new Boolean(generateCreateIndexStmt).toString()); 422 } 423 /*** 424 * This method return generateCreateIndexStmt 425 * @return CreateIndexes 426 * @throws LoaderException 427 */ 428 public boolean getGenerateCreateIndexStmt() throws LoaderException { 429 Vector tempVector = this.generatorParameters.getSqlToGenerate(); 430 String createIndexes = (String) tempVector.elementAt(3); 431 if (createIndexes.equalsIgnoreCase("CreateIndexes")) { 432 return true; 433 } else { 434 return false; 435 } 436 } 437 /*** 438 * This method set generateSqlForAllVendors 439 * @param generateSqlForAllVendors 440 * @throws LoaderException 441 */ 442 public void setGenerateSqlForAllVendors(boolean generateSqlForAllVendors) throws LoaderException { 443 this.generatorParameters.setAllVendors(new Boolean(generateSqlForAllVendors).toString()); 444 } 445 446 /*** 447 * This method return GenerateSqlForAllVendors 448 * @return GenerateSqlForAllVendors 449 * @throws LoaderException 450 */ 451 public boolean getGenerateSqlForAllVendors() throws LoaderException { 452 return this.generatorParameters.getSqlForAllVendors(); 453 } 454 /*** 455 * This method set generateXml 456 * @param generateXml 457 * @throws LoaderException 458 */ 459 public void setGenerateXml(boolean generateXml) throws LoaderException { 460 this.generatorParameters.setGenerateXml(new Boolean(generateXml).toString()); 461 } 462 463 /*** 464 * This method return generateXml 465 * @return boolean 466 * @throws LoaderException 467 */ 468 public boolean getGenerateXml() throws LoaderException { 469 String tempGenerateXml = this.generatorParameters.getGenerateXml(); 470 return (new Boolean(tempGenerateXml)).booleanValue(); 471 472 } 473 /*** 474 * This method set generateDoml 475 * @param generateDoml 476 * @throws LoaderException 477 */ 478 public void setGenerateDoml(boolean generateDoml) throws LoaderException { 479 this.generatorParameters.setGenerateDoml(new Boolean(generateDoml).toString()); 480 } 481 482 /*** 483 * This method return generateDoml 484 * @return boolean with value for generateDoml 485 * @throws LoaderException 486 */ 487 public boolean getGenerateDoml() throws LoaderException { 488 String tempGenerateDoml = this.generatorParameters.getGenerateDoml(); 489 return (new Boolean(tempGenerateDoml)).booleanValue(); 490 } 491 492 /*** 493 * This method return generateSQL 494 * @return bollean with value for generateSQL 495 * @throws LoaderException 496 */ 497 public boolean getGenerateSQL() throws LoaderException { 498 boolean tempGenerateSQL = this.generatorParameters.isGenerateSql(); 499 return tempGenerateSQL; 500 } 501 /*** 502 * This method set fullMode 503 * @param fullMode 504 * @throws LoaderException 505 */ 506 public void setFullMode(boolean fullMode) throws LoaderException { 507 this.generatorParameters.setFullMode(new Boolean(fullMode).toString()); 508 } 509 510 /*** 511 * This method return fullMode 512 * @return boolean with value for fullMode 513 * @throws LoaderException 514 */ 515 public boolean getFullMode() throws LoaderException { 516 return this.generatorParameters.getFullMode(); 517 } 518 519 /*** 520 * This method set includeTableList 521 * @param includeTableList 522 * @throws LoaderException 523 */ 524 public void setIncludeTableList(String includeTableList) throws LoaderException { 525 this.generatorParameters.setIncludeTableList(includeTableList); 526 } 527 528 /*** 529 * This method return includeTableList 530 * @return String which is list with included tables 531 * @throws LoaderException 532 */ 533 public String getIncludeTableList() throws LoaderException { 534 Vector tmpIncludeTableList = this.generatorParameters.getIncludeTableList(); 535 return tmpIncludeTableList.toString(); 536 } 537 538 /*** 539 * This method set confJarStructure 540 * @param confJarStructure 541 * @throws LoaderException 542 */ 543 public void setConfJarStructure(String confJarStructure) throws LoaderException { 544 this.generatorParameters.setConfJarStructure(confJarStructure); 545 } 546 547 /*** 548 * This method get confJarStructure 549 * @return ConfJarStructure 550 * @throws LoaderException 551 */ 552 public String getConfJarStructure() throws LoaderException { 553 return this.generatorParameters.getConfJarStructure(); 554 } 555 556 /*** 557 * This method set restoreMode 558 * @param restoreMode 559 * @throws LoaderException 560 */ 561 public void setRestoreMode(String restoreMode) throws LoaderException { 562 this.generatorParameters.setRestoreMode(restoreMode); 563 } 564 565 /*** 566 * This method return restoreMode 567 * @return restoreMode 568 * @throws LoaderException 569 */ 570 public String getRestoreMode() throws LoaderException { 571 return this.generatorParameters.getRestoreMode(); 572 } 573 574 575 /*** 576 * This method return logMode 577 * @return logMode 578 */ 579 public String getLogMode() { 580 return logMode; 581 } 582 583 /*** 584 * This method return strLogDirName 585 * @return strLogDirName 586 */ 587 public String getStrLogDirName() { 588 return strLogDirName; 589 } 590 591 /*** 592 * This method return strLogFileName 593 * @return strLogFileName 594 */ 595 public String getStrLogFileName() { 596 return strLogFileName; 597 } 598 599 /*** 600 * This method set logMode 601 * @param logMode 602 */ 603 public void setLogMode(String logMode) { 604 this.logMode = logMode; 605 } 606 607 /*** 608 * This method set strLogDirName 609 * @param strLogDirName 610 */ 611 public void setStrLogDirName(String strLogDirName) { 612 this.strLogDirName = strLogDirName; 613 } 614 615 /*** 616 * This method set strLogFileName 617 * @param strLogFileName 618 */ 619 public void setStrLogFileName(String strLogFileName) { 620 this.strLogFileName = strLogFileName; 621 } 622 623 /*** 624 * This method write values for all input parameters to System out 625 * @throws LoaderException 626 */ 627 public String inputToString() throws LoaderException { 628 String resString = ""; 629 try { 630 631 resString ="Source type="+ getSourceType()+ "\n" 632 + "Source driver=" + getSourceDriverName()+ "\n" 633 + "Source URL=" + getSourceDataBase()+ "\n" 634 + "Source user="+ getSourceUser()+ "\n" 635 + "Source password="+ getSourcePassword()+ "\n" 636 + "Target type=" + getTargetType()+ "\n" 637 + "Target driver=" + getTargetDriverName() + "\n" 638 + "Target URL=" + getTargetDataBase() + "\n" 639 + "Target user=" + getTargetUser() + "\n" 640 + "Target password=" + getTargetPassword() + "\n" 641 + "Conf file in jar=" + getConfJarStructure() + "\n" 642 + "Doml path=" + getDomlPath()+ "\n" 643 + "Ouput directory=" + getGeneratorOutput() + "\n" 644 + "Include table list=" + getIncludeTableList() + "\n" 645 + "Restore mode=" + getRestoreMode()+ "\n" 646 + "Value mode="+ getValueMode()+ "\n" 647 + "Generate create foreign keys ="+ getGenerateCreateFKStmt()+ "\n" 648 + "Generate create indexes ="+ getGenerateCreateIndexStmt()+ "\n" 649 + "Generate create primary keys ="+ getGenerateCreatePKStmt()+ "\n" 650 + "Generate create tables ="+ getGenerateCreateTableStmt()+ "\n" 651 + "Generate drop foreign keys ="+ getGenerateDropIntegrityStmt()+ "\n" 652 + "Generate drop tables ="+ getGenerateDropTableStmt()+ "\n" 653 + "Generate sql for all vendors ="+ getGenerateSqlForAllVendors()+ "\n" 654 + "Generate doml ="+ getGenerateDoml()+ "\n" 655 + "Package name="+ getPackageName()+ "\n" 656 + "Generate xml ="+ getGenerateXml()+ "\n" 657 + "Full mode=" + getFullMode() + "\n" 658 + "Log mode=" + getLogMode() + "\n" 659 + "Log directory name=" + getStrLogDirName() + "\n" 660 + "Log file name=" + getStrLogFileName() + "\n"; 661 662 return resString; 663 } catch (Exception e) { 664 throw new LoaderException("Exception:" + e.getMessage(), e); 665 } 666 } 667 668 /*** 669 * Construct object LoaderGenerator with associated parameters. 670 * @param sourceType defines the type of the source data. 671 * @param targetType defines the type of the target data. 672 * @param sourceDriverName is driver of defined source database. 673 * @param targetDriverName is driver of defined target database. 674 * @param sourceDataBase defines the place where you're put the database tables. 675 * @param targetDataBase defines the place where the target database tables are. 676 * @param valueMode defines the difference from overwrite and update attribute. 677 * Default valueMode is Overwrite. 678 * @param generatorOutput is optional. That represents the directory, where the 679 * Octopus place created files. If this argument don't exists, Octopus place 680 * created files in to current directory! 681 * @param sourceUser defines the user of the source database. 682 * @param sourcePassword defines user password for the source database. 683 * @param targetUser defines the user of the target database. 684 * @param targetPassword defines user password for the target database. 685 * @param domlPath defines if the doml file exists. Default value is false 686 * all, application generates xml, sql and doml files as ouput files. If the generateDoc has value 687 * doml, application generates only the doml file, and if generateDoc has the value wdoml, application 688 * generates xml and sql files. 689 * @param packageName defines the package name for the generated doml file. 690 * @param generateDropTableStmt defines if you want to generate only Sql statement for DROP TABLE 691 * @param generateCreateTableStmt defines if you want to generate only Sql statement for CREATE TABLE 692 * @param generateCreatePKStmt defines if you want to generate only Sql statement for ALTER TABLE 693 * @param generateCreateFKStmt defines if you want to generate only Sql statement for ALTER TABLE 694 * @param generateCreateIndexStmt defines if you want to generate only Sql statement for ALTER TABLE 695 * @param generateSqlForAllVendors defines if you want to generate Sql statements for all named 696 * database vendors 697 * @param generateXml defines if you want to generate xml file as output files 698 * @param generateDoml defines if you want to generate doml file as output file 699 * @param fullMode defines in which mode you want to generate xml files. 700 * @param includeTableList defines the list of tables which you want to include into 701 * Generator process 702 * @param confJarStructure defines the structure of jar file in which are conf 703 * files placed 704 * @throws LoaderException 705 */ 706 707 public LoaderGenerator(String sourceType, String sourceDataBase, 708 String valueMode, String generatorOutput, String sourceDriverName, 709 String targetDriverName, String targetDataBase, String targetType, 710 String sourceUser, String sourcePassword, String targetUser, 711 String targetPassword, String domlPath, String packageName, String generateDropTableStmt, 712 String generateDropIntegrityStmt, String generateCreateTableStmt, String generateCreatePKStmt, 713 String generateCreateFKStmt, String generateCreateIndexStmt, String generateSqlForAllVendors, 714 String generateXml, String generateDoml, String fullMode, String includeTableList, 715 String confJarStructure) 716 throws LoaderException { 717 718 this(sourceType, sourceDataBase, valueMode, generatorOutput, 719 sourceDriverName, targetDriverName, targetDataBase, targetType, 720 sourceUser, sourcePassword, targetUser, targetPassword, domlPath, 721 packageName, generateDropTableStmt, generateDropIntegrityStmt, 722 generateCreateTableStmt, generateCreatePKStmt, generateCreateFKStmt, 723 generateCreateIndexStmt, generateSqlForAllVendors, generateXml, generateDoml, 724 fullMode, "false", includeTableList, confJarStructure); 725 726 } 727 728 /*** 729 * Construct object LoaderGenerator with associated parameters. 730 * @param sourceType defines the type of the source data. 731 * @param targetType defines the type of the target data. 732 * @param sourceDriverName is driver of defined source database. 733 * @param targetDriverName is driver of defined target database. 734 * @param sourceDataBase defines the place where you're put the database tables. 735 * @param targetDataBase defines the place where the target database tables are. 736 * @param valueMode defines the difference from overwrite and update attribute. 737 * Default valueMode is Overwrite. 738 * @param generatorOutput is optional. That represents the directory, where the 739 * Octopus place created files. If this argument don't exists, Octopus place 740 * created files in to current directory! 741 * @param sourceUser defines the user of the source database. 742 * @param sourcePassword defines user password for the source database. 743 * @param targetUser defines the user of the target database. 744 * @param targetPassword defines user password for the target database. 745 * @param domlPath defines if the doml file exists. Default value is false 746 * all, application generates xml, sql and doml files as ouput files. If the generateDoc has value 747 * doml, application generates only the doml file, and if generateDoc has the value wdoml, application 748 * generates xml and sql files. 749 * @param packageName defines the package name for the generated doml file. 750 * @param generateDropTableStmt defines if you want to generate only Sql statement for DROP TABLE 751 * @param generateCreateTableStmt defines if you want to generate only Sql statement for CREATE TABLE 752 * @param generateCreatePKStmt defines if you want to generate only Sql statement for ALTER TABLE 753 * @param generateCreateFKStmt defines if you want to generate only Sql statement for ALTER TABLE 754 * @param generateCreateIndexStmt defines if you want to generate only Sql statement for ALTER TABLE 755 * @param generateSqlForAllVendors defines if you want to generate Sql statements for all named 756 * database vendors 757 * @param generateXml defines if you want to generate xml file as output files 758 * @param generateDoml defines if you want to generate doml file as output file 759 * @param fullMode defines in which mode you want to generate xml files. 760 * @param restoreMode defines if we use application for restoring the database 761 * @param includeTableList defines the list of tables which you want to include into 762 * Generator process 763 * @param confJarStructure defines the structure of jar file in which are conf files 764 * placed. 765 * @throws LoaderException 766 */ 767 768 public LoaderGenerator(String sourceType, String sourceDataBase, String valueMode, 769 String generatorOutput, String sourceDriverName, String targetDriverName, 770 String targetDataBase, String targetType, String sourceUser, String sourcePassword, 771 String targetUser, String targetPassword, String domlPath, String packageName, 772 String generateDropTableStmt, String generateDropIntegrityStmt, String generateCreateTableStmt, 773 String generateCreatePKStmt, String generateCreateFKStmt, String generateCreateIndexStmt, 774 String generateSqlForAllVendors, String generateXml, String generateDoml, String fullMode, 775 String restoreMode, String includeTableList, String confJarStructure) 776 throws LoaderException { 777 778 generatorParameters = new InputParameters(confJarStructure); 779 generatorParameters.setConfJarStructure(confJarStructure); 780 781 generatorParameters.setSourceType(sourceType); 782 //target and source driver name must goes frist, because alterTablePrimaryKey... 783 generatorParameters.setTargetDriverName(targetDriverName); 784 generatorParameters.setSourceDriverName(sourceDriverName); 785 generatorParameters.setTargetType(targetType); 786 generatorParameters.setSourceDataBase(sourceDataBase); 787 generatorParameters.setTargetDataBase(targetDataBase); 788 generatorParameters.setValueMode(valueMode); 789 generatorParameters.setGeneratorOutput(generatorOutput); 790 generatorParameters.setSourceUser(sourceUser); 791 generatorParameters.setSourcePassword(sourcePassword); 792 generatorParameters.setTargetUser(targetUser); 793 generatorParameters.setTargetPassword(targetPassword); 794 795 if (generateDropTableStmt != null) 796 generatorParameters.setSqlStmtDropTable(generateDropTableStmt); 797 if (generateDropIntegrityStmt != null) 798 generatorParameters.setSqlStmtDropIntegrity(generateDropIntegrityStmt); 799 if (generateCreateTableStmt != null) 800 generatorParameters.setSqlStmtCreateTable(generateCreateTableStmt); 801 if (generateCreatePKStmt != null) 802 generatorParameters.setSqlStmtCreatePK(generateCreatePKStmt); 803 if (generateCreateFKStmt != null) 804 generatorParameters.setSqlStmtCreateFK(generateCreateFKStmt); 805 if (generateCreateIndexStmt != null) 806 generatorParameters.setSqlStmtCreateIndex(generateCreateIndexStmt); 807 if (generateSqlForAllVendors != null) 808 generatorParameters.setAllVendors(generateSqlForAllVendors); 809 810 generatorParameters.setDomlPath(domlPath); 811 if (generateXml != null) 812 generatorParameters.setGenerateXml(generateXml); 813 if (generateDoml != null) 814 generatorParameters.setGenerateDoml(generateDoml); 815 generatorParameters.setPackageName(packageName); 816 if (fullMode != null) 817 generatorParameters.setFullMode(fullMode); 818 if (restoreMode != null) 819 generatorParameters.setRestoreMode(restoreMode); 820 if (includeTableList != null) 821 generatorParameters.setIncludeTableList(includeTableList); 822 823 generatorParameters.setSourceDriverProperties(); 824 generatorParameters.setTargetDriverProperties(); 825 generatorParameters.setOidAndVersionColumnName(); 826 generatorParameters.setHasSize(); 827 generatorParameters.setIsDecimal(); 828 //setLogger(); 829 830 } 831 832 /*** 833 * Construct object LoaderGenerator with associated parameters. 834 * @param sourceType defines the type of the source data. 835 * @param targetType defines the type of the target data. 836 * @param sourceDriverName is driver of defined source database. 837 * @param targetDriverName is driver of defined target database. 838 * @param sourceDataBase defines the place where you're put the database tables. 839 * @param targetDataBase defines the place where the target database tables are. 840 * @param valueMode defines the difference from overwrite and update attribute. 841 * Default valueMode is Overwrite. 842 * @param generatorOutput is optional. That represents the directory, where the 843 * Octopus place created files. If this argument don't exists, Octopus place 844 * created files in to current directory! 845 * @param sourceUser defines the user of the source database. 846 * @param sourcePassword defines user password for the source database. 847 * @param targetUser defines the user of the target database. 848 * @param targetPassword defines user password for the target database. 849 * @param domlPath defines if the doml file exists. Default value is false 850 * all, application generates xml, sql and doml files as ouput files. If the generateDoc has value 851 * doml, application generates only the doml file, and if generateDoc has the value wdoml, application 852 * generates xml and sql files. 853 * @param packageName defines the package name for the generated doml file. 854 * @param generateDropTableStmt defines if you want to generate only Sql statement for DROP TABLE 855 * @param generateCreateTableStmt defines if you want to generate only Sql statement for CREATE TABLE 856 * @param generateCreatePKStmt defines if you want to generate only Sql statement for ALTER TABLE 857 * @param generateCreateFKStmt defines if you want to generate only Sql statement for ALTER TABLE 858 * @param generateCreateIndexStmt defines if you want to generate only Sql statement for ALTER TABLE 859 * @param generateSqlForAllVendors defines if you want to generate Sql statements for all named 860 * database vendors 861 * @param generateXml defines if you want to generate xml file as output files 862 * @param generateDoml defines if you want to generate doml file as output file 863 * @param fullMode defines in which mode you want to generate xml files. 864 * @param restoreMode defines if we use application for restoring the database 865 * @param includeTableList defines the list of tables which you want to include into 866 * Generator process 867 * @param confJarStructure defines the structure of jar file in which are conf files 868 * @param logMode defines logging level 869 * @param logDirName defines logging directory 870 * @param logFileName defines logging file name 871 * placed. 872 * @throws LoaderException 873 */ 874 875 public LoaderGenerator(String sourceType, String sourceDataBase, String valueMode, 876 String generatorOutput, String sourceDriverName, String targetDriverName, String targetDataBase, 877 String targetType, String sourceUser, String sourcePassword, String targetUser, 878 String targetPassword, String domlPath, String packageName, String generateDropTableStmt, 879 String generateDropIntegrityStmt, String generateCreateTableStmt, String generateCreatePKStmt, 880 String generateCreateFKStmt, String generateCreateIndexStmt, String generateSqlForAllVendors, 881 String generateXml, String generateDoml, String fullMode, String restoreMode, 882 String includeTableList, String confJarStructure, String logMode, String logDirName, 883 String logFileName) 884 throws LoaderException { 885 886 generatorParameters = new InputParameters(confJarStructure); 887 generatorParameters.setConfJarStructure(confJarStructure); 888 889 generatorParameters.setSourceType(sourceType); 890 //target and source driver name must goes frist, because alterTablePrimaryKey... 891 generatorParameters.setTargetDriverName(targetDriverName); 892 generatorParameters.setSourceDriverName(sourceDriverName); 893 generatorParameters.setTargetType(targetType); 894 generatorParameters.setSourceDataBase(sourceDataBase); 895 generatorParameters.setTargetDataBase(targetDataBase); 896 generatorParameters.setValueMode(valueMode); 897 generatorParameters.setGeneratorOutput(generatorOutput); 898 generatorParameters.setSourceUser(sourceUser); 899 generatorParameters.setSourcePassword(sourcePassword); 900 generatorParameters.setTargetUser(targetUser); 901 generatorParameters.setTargetPassword(targetPassword); 902 903 if (generateDropTableStmt != null) 904 generatorParameters.setSqlStmtDropTable(generateDropTableStmt); 905 if (generateDropIntegrityStmt != null) 906 generatorParameters.setSqlStmtDropIntegrity(generateDropIntegrityStmt); 907 if (generateCreateTableStmt != null) 908 generatorParameters.setSqlStmtCreateTable(generateCreateTableStmt); 909 if (generateCreatePKStmt != null) 910 generatorParameters.setSqlStmtCreatePK(generateCreatePKStmt); 911 if (generateCreateFKStmt != null) 912 generatorParameters.setSqlStmtCreateFK(generateCreateFKStmt); 913 if (generateCreateIndexStmt != null) 914 generatorParameters.setSqlStmtCreateIndex(generateCreateIndexStmt); 915 if (generateSqlForAllVendors != null) 916 generatorParameters.setAllVendors(generateSqlForAllVendors); 917 918 generatorParameters.setDomlPath(domlPath); 919 if (generateXml != null) 920 generatorParameters.setGenerateXml(generateXml); 921 if (generateDoml != null) 922 generatorParameters.setGenerateDoml(generateDoml); 923 generatorParameters.setPackageName(packageName); 924 if (fullMode != null) 925 generatorParameters.setFullMode(fullMode); 926 if (restoreMode != null) 927 generatorParameters.setRestoreMode(restoreMode); 928 if (includeTableList != null) 929 generatorParameters.setIncludeTableList(includeTableList); 930 if (logMode != null) { 931 this.logMode = logMode; 932 } 933 if (logDirName != null) { 934 this.strLogDirName = logDirName; 935 } 936 if (logFileName != null) { 937 this.strLogFileName = logFileName; 938 } 939 generatorParameters.setSourceDriverProperties(); 940 generatorParameters.setTargetDriverProperties(); 941 generatorParameters.setOidAndVersionColumnName(); 942 generatorParameters.setHasSize(); 943 generatorParameters.setIsDecimal(); 944 945 } 946 947 /*** 948 * Public constructor of LoaderGenerator class. Constructor set value for sourceDataBase and 949 * targetDataBase attribute. Class set all other attributes to the default values. 950 * @param sourceDataBase defines the place where you're put the database tables. 951 * @param targetDataBase defines the place where the target database tables are. 952 * @param sourceType defines the type of the source database. 953 * @param targetType defines the type of the target database. 954 * @throws LoaderException 955 */ 956 public LoaderGenerator(String sourceDataBase, String targetDataBase, String sourceType, 957 String targetType) throws LoaderException { 958 959 this(sourceDataBase, targetDataBase, sourceType, targetType, null); 960 961 } 962 963 /*** 964 * Public constructor of LoaderGenerator class. Constructor set value for sourceDataBase and 965 * targetDataBase attribute. Class set all other attributes to the default values. 966 * @param sourceDataBase defines the place where you're put the database tables. 967 * @param targetDataBase defines the place where the target database tables are. 968 * @param sourceType defines the type of the source database. 969 * @param targetType defines the type of the target database. 970 * @throws LoaderException 971 */ 972 public LoaderGenerator(String sourceDataBase, String targetDataBase, String sourceType, 973 String targetType, String confJarStructure) throws LoaderException { 974 975 generatorParameters = new InputParameters(""); 976 generatorParameters.setConfJarStructure(confJarStructure); 977 generatorParameters.setSourceDataBase(sourceDataBase); 978 979 generatorParameters.setTargetDataBase(targetDataBase); 980 generatorParameters.setSourceType(sourceType); 981 generatorParameters.setTargetType(targetType); 982 generatorParameters.setSourceDriverProperties(); 983 generatorParameters.setTargetDriverProperties(); 984 generatorParameters.setOidAndVersionColumnName(); 985 generatorParameters.setHasSize(); 986 generatorParameters.setIsDecimal(); 987 //setLogger(); 988 } 989 990 /*** 991 * Main method controls parameters, it they are OK starts load method, but if they aren't makes alert. 992 * @param args represents the input parameters 993 * 994 * Usage: java org.webdocwf.util.loader.generator.Generator [options] 995 * Options: 996 * -st sourceType, defines the type of the source database. 997 * -tt targetType, defines the type of the target database. 998 * -sdn sourceDriverName, defines the driver of defined source database. 999 * -tdn targetDriverName, defines the driver of defined target database. 1000 * -sdb sourceDataBase, defines the place where you're put the source database tables. 1001 * -tdb targetDataBase, defines the place where you're put the target database tables. 1002 * -m valueMode, defines the difference from overwrite and update attribute. If the valueMode 1003 * has value 'copy', attribute has value 'Overwrite', or if the valueMode has value 'sync', attribute 1004 * has value 'Update'. Default value of valueMode is 'copy'. 1005 * -o generatorOutput, is optional. That represent the directory, where the Octopus place created files. 1006 * If this argument don't exists, Octopus place created files in to current directory! 1007 * -su sourceUser, defines the user of the source database. 1008 * -sp sourcePassword, defines the user password for the source database. 1009 * -tu targetUser, defines the user of the target database. 1010 * -tp targetPassword, defines the user password for the target database. 1011 * -doml domlUrl, defines the place where the doml file is placed. 1012 * -pack packageName, defines the package name for the generated doml file. 1013 * -xml -xml generateXml, defines if you want to generate xml files as output files 1014 * -gdoml generateDoml, defines if you want to generate doml file as output file. 1015 * -sqlCT generateCreateTables defines if you want to generate only Sql statement for CREATE TABLE. 1016 * -sqlDT generateDropTableStmt defines if you want to generate only Sql statement for DROP TABLE. 1017 * -sqlCPK generateCreatePrimaryKeys defines if you want to generate only Sql statement for ALTER TABLE ADD CONSTRAINT (PRIMARY KEY). 1018 * -sqlCFK generateCreateForeigKeys defines if you want to generate only Sql statement for ALTER TABLE ADD CONSTRAINT (FOREIGN KEY). 1019 * -sqlCI generateCreateIndex defines if you want to generate only Sql statement for CREATE INDEX. 1020 * -sqlAll generateSqlForAllVendors defines if you want to generate sql statements for all named database vendors. 1021 * -fm fullMode defines the mode of output xml files. Possible values are true and false. 1022 * -lm logMode defines logging level 1023 * -l logDirName defines logging directory 1024 * -f logFileName defines logging file name 1025 **/ 1026 1027 public static void main(String args[]) { 1028 1029 String generatorOutput = null; 1030 String valueMode = null; 1031 String domlUrl = null; 1032 String packageName = null; 1033 1034 String sourceType = null; 1035 String sourceDataBase = null; 1036 String sourceDriverName = null; 1037 String sourceUser = null; 1038 String sourcePassword = null; 1039 1040 String targetType = null; 1041 String targetDataBase = null; 1042 String targetDriverName = null; 1043 String targetUser = null; 1044 String targetPassword = null; 1045 1046 //logging 1047 String logDirName = null; 1048 String logFileName = null; 1049 String logMode = null; 1050 1051 //Output mode 1052 //main 1053 String generateXml = null; 1054 String generateDoml = null; 1055 //for generate sql 1056 String generateDropTableStmt = null; 1057 String generateDropIntegrityStmt = null; 1058 String generateCreateTableStmt = null; 1059 String generateCreatePKStmt = null; 1060 String generateCreateFKStmt = null; 1061 String generateCreateIndexStmt = null; 1062 1063 //for genrate sql for all vendors 1064 String generateSqlForAllVendors = null; 1065 //optimized modes 1066 String fullMode = null; 1067 String restoreMode = null; 1068 String includeTableList = null; 1069 String confJarStructure = null; 1070 1071 if (args.length > 8 && args.length < 53) { 1072 for (int i = 0; i < args.length - 1; i = i + 1) { 1073 if (args[i].equalsIgnoreCase("-st")) 1074 sourceType = args[++i]; 1075 else if (args[i].equalsIgnoreCase("-sdb")) 1076 sourceDataBase = args[++i]; 1077 else if (args[i].equalsIgnoreCase("-m")) 1078 valueMode = args[++i]; 1079 else if (args[i].equalsIgnoreCase("-o")) 1080 generatorOutput = args[++i]; 1081 else if (args[i].equalsIgnoreCase("-sdn")) 1082 sourceDriverName = args[++i]; 1083 else if (args[i].equalsIgnoreCase("-tdn")) 1084 targetDriverName = args[++i]; 1085 else if (args[i].equalsIgnoreCase("-tdb")) 1086 targetDataBase = args[++i]; 1087 if (args[i].equalsIgnoreCase("-tt")) 1088 targetType = args[++i]; 1089 if (args[i].equalsIgnoreCase("-su")) 1090 sourceUser = args[++i]; 1091 if (args[i].equalsIgnoreCase("-sp")) 1092 sourcePassword = args[++i]; 1093 if (args[i].equalsIgnoreCase("-tu")) 1094 targetUser = args[++i]; 1095 if (args[i].equalsIgnoreCase("-tp")) 1096 targetPassword = args[++i]; 1097 if (args[i].equalsIgnoreCase("-doml")) 1098 domlUrl = args[++i]; 1099 if (args[i].equalsIgnoreCase("-pack")) 1100 packageName = args[++i]; 1101 if (args[i].equalsIgnoreCase("-xml")) 1102 generateXml = args[++i]; 1103 if (args[i].equalsIgnoreCase("-gdoml")) 1104 generateDoml = args[++i]; 1105 if (args[i].equalsIgnoreCase("-sqlCT")) 1106 generateCreateTableStmt = args[++i]; 1107 if (args[i].equalsIgnoreCase("-sqlDT")) 1108 generateDropTableStmt = args[++i]; 1109 if (args[i].equalsIgnoreCase("-sqlDI")) 1110 generateDropIntegrityStmt = args[++i]; 1111 if (args[i].equalsIgnoreCase("-sqlCPK")) 1112 generateCreatePKStmt = args[++i]; 1113 if (args[i].equalsIgnoreCase("-sqlCFK")) 1114 generateCreateFKStmt = args[++i]; 1115 if (args[i].equalsIgnoreCase("-sqlCI")) 1116 generateCreateIndexStmt = args[++i]; 1117 if (args[i].equalsIgnoreCase("-sqlAll")) 1118 generateSqlForAllVendors = args[++i]; 1119 if (args[i].equalsIgnoreCase("-fm")) 1120 fullMode = args[++i]; 1121 if (args[i].equalsIgnoreCase("-rm")) 1122 restoreMode = args[++i]; 1123 if (args[i].equalsIgnoreCase("-it")) 1124 includeTableList = args[++i]; 1125 if (args[i].equalsIgnoreCase("-cjs")) 1126 confJarStructure = args[++i]; 1127 if (args[i].equalsIgnoreCase("-lm")) 1128 logMode = args[++i]; 1129 else if (args[i].equalsIgnoreCase("-l")) 1130 logDirName = args[++i]; 1131 else if (args[i].equalsIgnoreCase("-f")) 1132 logFileName = args[++i]; 1133 } 1134 } else { 1135 System.out.println("You didn't enter all required parameters, for running the application!"); 1136 BufferOctopusClass.getInstance().writeToBuffer("You didn't enter all required parameters, for running the application!"); 1137 printUsage(); 1138 System.exit(1); 1139 } 1140 try { 1141 1142 LoaderGenerator generator = new LoaderGenerator(sourceType, sourceDataBase, valueMode, generatorOutput, sourceDriverName, targetDriverName, targetDataBase, targetType, sourceUser, sourcePassword, targetUser, targetPassword, domlUrl, packageName, generateDropTableStmt, generateDropIntegrityStmt, generateCreateTableStmt, generateCreatePKStmt, generateCreateFKStmt, generateCreateIndexStmt, generateSqlForAllVendors, generateXml, generateDoml, fullMode, restoreMode, includeTableList, confJarStructure, logMode, logDirName, logFileName)/package-summary.html">LoaderGenerator generator = new LoaderGenerator(sourceType, sourceDataBase, valueMode, generatorOutput, sourceDriverName, targetDriverName, targetDataBase, targetType, sourceUser, sourcePassword, targetUser, targetPassword, domlUrl, packageName, generateDropTableStmt, generateDropIntegrityStmt, generateCreateTableStmt, generateCreatePKStmt, generateCreateFKStmt, generateCreateIndexStmt, generateSqlForAllVendors, generateXml, generateDoml, fullMode, restoreMode, includeTableList, confJarStructure, logMode, logDirName, logFileName); 1143 1144 generator.generate(); 1145 System.exit(0); 1146 1147 } catch (LoaderException le) { 1148 System.out.println(le.getStackTraceAsString()); 1149 BufferOctopusClass.getInstance().writeToBuffer(le.getStackTraceAsString()); 1150 return; 1151 } catch (Throwable th) { 1152 BufferOctopusClass.getInstance().writeToBuffer(th.getMessage()); 1153 th.printStackTrace(System.out); 1154 return; 1155 } 1156 } 1157 1158 static void printUsage() { 1159 //System.out.println("Usage: java org.webdocwf.util.loader.generator.Generator [options] "); 1160 BufferOctopusClass.getInstance().writeToBuffer("Usage: java org.webdocwf.util.loader.generator.Generator [options] "); 1161 //System.out.println(" Options:"); 1162 BufferOctopusClass.getInstance().writeToBuffer(" Options:"); 1163 //System.out.println(" -st sourceType, defines the type of the source database."); 1164 BufferOctopusClass.getInstance().writeToBuffer(" -st sourceType, defines the type of the source database."); 1165 //System.out.println(" -tt targetType, defines the type of the target database."); 1166 BufferOctopusClass.getInstance().writeToBuffer(" -tt targetType, defines the type of the target database."); 1167 //System.out.println(" -sdn sourceDriverName, represents driver of defined source database."); 1168 BufferOctopusClass.getInstance().writeToBuffer(" -sdn sourceDriverName, represents driver of defined source database."); 1169 // System.out.println(" -tdn targetDriverName, represents driver of defined target database."); 1170 BufferOctopusClass.getInstance().writeToBuffer(" -tdn targetDriverName, represents driver of defined target database."); 1171 // System.out.println(" -sdb sourceDatabase, defines the place where you're put the database tables"); 1172 BufferOctopusClass.getInstance().writeToBuffer(" -sdb sourceDatabase, defines the place where you're put the database tables"); 1173 // System.out.println(" -tdb targetDataBase defines the place where the target database tables are."); 1174 BufferOctopusClass.getInstance().writeToBuffer(" -tdb targetDataBase defines the place where the target database tables are."); 1175 // System.out.println(" -m valueMode, is the difference from overwrite and update attribute"); 1176 BufferOctopusClass.getInstance().writeToBuffer(" -m valueMode, is the difference from overwrite and update attribute"); 1177 // System.out.println(" -su sourceUser, defines the user of the source database."); 1178 BufferOctopusClass.getInstance().writeToBuffer(" -su sourceUser, defines the user of the source database."); 1179 // System.out.println(" -sp sourcePassword, defines user password for the source database."); 1180 BufferOctopusClass.getInstance().writeToBuffer(" -sp sourcePassword, defines user password for the source database."); 1181 // System.out.println(" -tu targetUser, defines the user of the target database."); 1182 BufferOctopusClass.getInstance().writeToBuffer(" -tu targetUser, defines the user of the target database."); 1183 // System.out.println(" -tp targetPassword, defines user password for the target database."); 1184 BufferOctopusClass.getInstance().writeToBuffer(" -tp targetPassword, defines user password for the target database."); 1185 // System.out.println(" -doml domlUrl, defines the place where the doml file is placed."); 1186 BufferOctopusClass.getInstance().writeToBuffer(" -doml domlUrl, defines the place where the doml file is placed."); 1187 // System.out.println(" -o generatorOutput, is optional. That represent the directory, where the Together Data Transformer place"+ 1188 // " created files. If this argument dont exists, Together Data Transformer place created files in to current direcory!"); 1189 BufferOctopusClass.getInstance().writeToBuffer(" -o generatorOutput, is optional. That represent the directory, where the Together Data Transformer place" + " created files. If this argument dont exists, Together Data Transformer place created files in to current direcory!"); 1190 // System.out.println(" -pack packageName, defines the package name for the generated doml file."); 1191 BufferOctopusClass.getInstance().writeToBuffer(" -pack packageName, defines the package name for the generated doml file."); 1192 1193 // System.out.println(" -xml generateXml, defines if you want to generate xml files as output files. "+ 1194 // " Possible values are true and false."); 1195 BufferOctopusClass.getInstance().writeToBuffer(" -xml generateXml, defines if you want to generate xml files as output files. " + " Possible values are true and false."); 1196 // System.out.println(" -gdoml generateDoml, defines if you want to generate doml file as output file. "+ 1197 // " Possible values are true and false."); 1198 BufferOctopusClass.getInstance().writeToBuffer(" -gdoml generateDoml, defines if you want to generate doml file as output file. " + " Possible values are true and false."); 1199 // System.out.println(" -sqlCT generateCreateTables, defines if you want to generate only Sql statement for CREATE TABLE."); 1200 BufferOctopusClass.getInstance().writeToBuffer(" -sqlCT generateCreateTables, defines if you want to generate only Sql statement for CREATE TABLE."); 1201 1202 // System.out.println(" -sqlDT generateDropTableStmt, defines if you want to generate only Sql statement for DROP TABLE."); 1203 BufferOctopusClass.getInstance().writeToBuffer(" -sqlDT generateDropTableStmt, defines if you want to generate only Sql statement for DROP TABLE."); 1204 1205 // System.out.println(" -sqlCPK generateCreatePrimaryKeys, defines if you want to generate only Sql statement for ALTER TABLE ADD CONSTRAINT (PRIMARY KEY)."); 1206 BufferOctopusClass.getInstance().writeToBuffer(" -sqlCPK generateCreatePrimaryKeys, defines if you want to generate only Sql statement for ALTER TABLE ADD CONSTRAINT (PRIMARY KEY)."); 1207 1208 // System.out.println(" -sqlCFK generateCreateForeigKeys, defines if you want to generate only Sql statement for ALTER TABLE ADD CONSTRAINT (FOREIGN KEY)."); 1209 BufferOctopusClass.getInstance().writeToBuffer(" -sqlCFK generateCreateForeigKeys, defines if you want to generate only Sql statement for ALTER TABLE ADD CONSTRAINT (FOREIGN KEY)."); 1210 1211 // System.out.println(" -sqlCI generateCreateIndex, defines if you want to generate only Sql statement for CREATE INDEX."); 1212 BufferOctopusClass.getInstance().writeToBuffer(" -sqlCI generateCreateIndex, defines if you want to generate only Sql statement for CREATE INDEX."); 1213 1214 // System.out.println(" -sqlAll generateSqlForAllVendors, defines if you want to generate sql statements for all named database vendors."); 1215 BufferOctopusClass.getInstance().writeToBuffer(" -sqlAll generateSqlForAllVendors, defines if you want to generate sql statements for all named database vendors."); 1216 1217 // System.out.println(" -fm fullMode, defines the mode of output xml files. Possible values are true and false."); 1218 BufferOctopusClass.getInstance().writeToBuffer(" -fm fullMode, defines the mode of output xml files. Possible values are true and false."); 1219 1220 // System.out.println(" -it includeTableList, defines tables which you want to incude into Generator process."); 1221 BufferOctopusClass.getInstance().writeToBuffer(" -it includeTableList, defines tables which you want to incude into Generator process."); 1222 1223 // System.out.println("For more details, see documentation."); 1224 BufferOctopusClass.getInstance().writeToBuffer("For more details, see documentation."); 1225 //System.out.println(" -lm defines the default logmode. Possible values are 'none', 'normal' (is the default) and 'full'."); 1226 BufferOctopusClass.getInstance().writeToBuffer(" -lm defines the default logmode. Possible values are 'none', 'normal' (is the default) and 'full'."); 1227 1228 //System.out.println(" -l defines the logfile directory. The default is the current working directory. \n"); 1229 BufferOctopusClass.getInstance().writeToBuffer(" -v defines variables used in variable columns. \n"); 1230 1231 //System.out.println(" -f defines the logfile name. The default is 'GeneratorLog-YYYY-MM-DD-HH-mm-SS.txt'. \n"); 1232 BufferOctopusClass.getInstance().writeToBuffer(" -f defines the logfile name. The default is 'GeneratorLog-YYYY-MM-DD-HH-mm-SS.txt'. \n"); 1233 1234 } 1235 1236 /*** 1237 * This method init logger 1238 * @throws LoaderException 1239 */ 1240 private void setLogger() throws LoaderException { 1241 1242 this.timeCounter = new TimeWatch(); 1243 this.timeCounter.setStartJobTime(); 1244 1245 try { 1246 1247 this.logger = new StandardLogger(); 1248 this.strLoggerParam = this.strLogDirName + ";" + this.strLogFileName; 1249 this.standardLogger = true; 1250 this.logger.configure(strLoggerParam); 1251 this.logger.setEnabledLogLevels(this.logMode); 1252 } catch (Exception e) { 1253 1254 LoaderException le = new LoaderException("Error while instantiate StandardLogger!", e); 1255 throw le; 1256 } 1257 } 1258 1259 /*** 1260 * 1261 * Method generate is main method in class LoaderGenerator. It is used to load data from the source 1262 * table, and starts LoadJobWriter,CreateIncludeFiles and CreateIncludeDomlFiles methods. 1263 * @throws LoaderException 1264 */ 1265 public void generate() throws LoaderException { 1266 1267 try { 1268 LoadJobWriter loadJobWriter; 1269 GenerateSqlForAllVendors generateSqlForAllVendors; 1270 //Zk added for logging 1271 this.setLogger(); 1272 1273 if (standardLogger == true) { 1274 this.logger.write("normal", "Default (Standard) Logger is load."); 1275 this.logger.write("normal", "OctopusGenerator started."); 1276 } 1277 if (generatorParameters.getSqlForAllVendors() == true) { 1278 1279 generateSqlForAllVendors = new GenerateSqlForAllVendors(generatorParameters); 1280 1281 } else { 1282 if (generatorParameters.getDomlPath() == null || generatorParameters.getDomlPath().equalsIgnoreCase("")) { 1283 CreateIncludeFiles createIncludeFiles = new CreateIncludeFiles(generatorParameters); 1284 } else { 1285 CreateIncludeDomlFiles createIncludeDomlFiles; 1286 createIncludeDomlFiles = new CreateIncludeDomlFiles(generatorParameters); 1287 } 1288 if (generatorParameters.getGenerateXml().equalsIgnoreCase("true")) 1289 loadJobWriter = new LoadJobWriter(generatorParameters); 1290 } 1291 if (this.standardLogger == true) { 1292 this.logger.write("normal", "Duration: " + this.timeCounter.getTotalTime()); 1293 this.logger.write("normal", "OctopusGenerator finished."); 1294 } 1295 } catch (Exception e) { 1296 String msg = "Exception in method generate() in LoaderGenerator class!"; 1297 LoaderException le = new LoaderException(msg + "\n" + e.getMessage(), (Throwable) e); 1298 if (standardLogger == true) { 1299 this.logger.write("full", "Exception in method generate() in LoaderGenerator class!" + "\n" + le.getStackTraceAsString()); 1300 } 1301 throw le; 1302 1303 } 1304 1305 } 1306 1307 }

This page was automatically generated by Maven