1 23 24 package org.infoglue.cmsinstaller; 25 import java.sql.*; 26 import java.io.*; 27 import java.util.*; 28 29 public class SQLServerDatabaseCommander extends DatabaseCommander 30 { 31 private final String driver = "net.sourceforge.jtds.jdbc.Driver"; 32 private static String sqlServerVersion = ""; 33 34 public SQLServerDatabaseCommander(String driverClass, String databaseHostName, String databasePortNumber, String databaseInstance, String url, String userName, String password, String infoglueDatabaseUserName, String infoglueDatabasePassword, String databaseName, String databaseSuffix, String hostName, boolean createDatabase, boolean createInitialData, boolean createAntSeekHome, boolean createOfficeStand, boolean createOfficeStand2) throws Exception 35 { 36 super(driverClass, databaseHostName, databasePortNumber, databaseInstance, url, userName, password, infoglueDatabaseUserName, infoglueDatabasePassword, databaseName, databaseSuffix, hostName, createDatabase, createInitialData, createAntSeekHome, createOfficeStand, createOfficeStand2); 37 } 38 39 public String getUrl(String hostName, String databasePortNumber, String database) 40 { 41 String url = "jdbc:jtds:sqlserver://" + hostName + ":" + databasePortNumber + ((this.getDatabaseInstance().equalsIgnoreCase("") ? ";DatabaseName=" + database + ";SelectMethod=Cursor" : ";INSTANCE=" + this.getDatabaseInstance() + ";DatabaseName=" + database + ";SelectMethod=Cursor")); 42 return url; 43 } 46 47 public String getUnicodeUrl(String hostName, String databasePortNumber, String database) 48 { 49 String url = "jdbc:jtds:sqlserver://" + hostName + ":" + databasePortNumber + ((this.getDatabaseInstance().equalsIgnoreCase("") ? ";DatabaseName=" + database + ";SelectMethod=Cursor" : ";INSTANCE=" + this.getDatabaseInstance() + ";DatabaseName=" + database + ";SelectMethod=Cursor")); 50 return url; 51 } 54 55 public String getTDSSpecficUrl(String hostName, String databasePortNumber, String database) 56 { 57 String url = "jdbc:jtds:sqlserver://" + hostName + ":" + databasePortNumber + ((this.getDatabaseInstance().equalsIgnoreCase("") ? ";DatabaseName=" + database + ";SelectMethod=Cursor" : ";INSTANCE=" + this.getDatabaseInstance() + ";DatabaseName=" + database + ";SelectMethod=Cursor")); 58 return url; 59 } 63 64 public void setupDatabase() throws Exception 65 { 66 if(this.createDatabase) 67 createDatabase(); 68 69 System.out.println("this.sqlServerVersion:" + this.sqlServerVersion); 70 if(this.sqlServerVersion.indexOf("9.0") > -1) 71 callProcedure(getConnection(), "sp_dbcmptlevel", databaseName, "80"); 72 73 if(this.createInitialData) 74 { 75 createTables(); 76 createInitialData(); 77 setupExamples(); 78 } 79 80 if(this.createDatabase) 81 createUsers(); 82 } 83 84 public void deleteDatabase() throws Exception 85 { 86 dropDatabase(); 87 dropUsers(); 88 } 89 90 91 private void createDatabase() throws Exception 92 { 93 Logger.logInfo("Setting up a new database...."); 94 issueCommand(getConnection(), "CREATE DATABASE " + databaseName + ";"); 95 } 96 97 private void createTables() throws Exception 98 { 99 String url = getTDSSpecficUrl(databaseHostName, databasePortNumber, databaseName); 100 Connection conn = getConnection(url, this.userName, this.password); 101 102 Logger.logInfo("Setting up a new database...."); 103 104 try 105 { 106 108 109 String sql = "CREATE TABLE #test (" 110 + " f_int INT," 111 + " f_varchar VARCHAR(255) )"; 112 Statement stmt = conn.createStatement(); 113 stmt.execute( sql ); 114 115 FileInputStream fis = new FileInputStream("sqlserver_infoglue_core_schema.sql"); 116 StringBuffer sb = new StringBuffer (); 117 int c; 118 while((c = fis.read()) != -1) 119 { 120 char character = (char)c; 121 sb.append(character); 122 } 123 String script = sb.toString(); 124 126 StringTokenizer st = new StringTokenizer(script, ";"); 127 while (st.hasMoreTokens()) 128 { 129 String command = st.nextToken(); 130 Logger.logInfo("Command: " + command); 131 issueCommand(conn, command + ";"); 132 } 133 134 } 135 catch(Exception e) 136 { 137 Logger.logInfo("Error: " + e); 138 } 139 } 140 141 private void createInitialData() throws Exception 142 { 143 String url = getTDSSpecficUrl(databaseHostName, databasePortNumber, databaseName); 144 Connection conn = getConnection(url, this.userName, this.password); 145 146 Logger.logInfo("Setting up initial data...."); 147 148 try 149 { 150 FileInputStream fis = new FileInputStream("sqlserver_infoglue_initial_data.sql"); 151 StringBuffer sb = new StringBuffer (); 152 int c; 153 while((c = fis.read()) != -1) 154 { 155 char character = (char)c; 156 sb.append(character); 157 } 158 String script = sb.toString(); 159 161 String [] commands = script.split("#endquery"); 162 Logger.logInfo("Parsed " + commands.length + " commands from script"); 163 164 for(int i=0; i<commands.length; i++) 165 { 166 String command = commands[i]; 167 if(command.indexOf("SPECIAL") > -1) 168 issueSpecialCommand(conn, command.trim()); 169 else 170 issueCommand(conn, command.trim()); 171 } 172 173 } 174 catch(Exception e) 175 { 176 Logger.logInfo("Error: " + e); 177 } 178 } 179 180 public void upgradeTo1_3(Connection conn) throws Exception 181 { 182 Logger.logInfo("Upgrading to 1.3"); 183 184 try 185 { 186 FileInputStream fis = new FileInputStream("sqlserver_upgrade1_2_to1_3.sql"); 187 StringBuffer sb = new StringBuffer (); 188 int c; 189 while((c = fis.read()) != -1) 190 { 191 char character = (char)c; 192 sb.append(character); 193 } 194 String script = sb.toString(); 195 Logger.logInfo("script:" + script); 196 197 StringTokenizer st = new StringTokenizer(script, ";"); 198 while (st.hasMoreTokens()) 199 { 200 String command = st.nextToken(); 201 issueCommand(conn, command + ";"); 203 } 204 } 205 catch(Exception e) 206 { 207 Logger.logInfo("Error: " + e); 208 } 209 } 210 211 public void upgradeTo1_3_2(Connection conn) throws Exception 212 { 213 Logger.logInfo("Upgrading to 1.3.2"); 214 215 try 216 { 217 FileInputStream fis = new FileInputStream("sqlserver_upgrade1_3_to1_3_2.sql"); 218 StringBuffer sb = new StringBuffer (); 219 int c; 220 while((c = fis.read()) != -1) 221 { 222 char character = (char)c; 223 sb.append(character); 224 } 225 String script = sb.toString(); 226 Logger.logInfo("script:" + script); 227 228 StringTokenizer st = new StringTokenizer(script, ";"); 229 while (st.hasMoreTokens()) 230 { 231 String command = st.nextToken(); 232 issueCommand(conn, command + ";"); 234 } 235 } 236 catch(Exception e) 237 { 238 Logger.logInfo("Error: " + e); 239 } 240 } 241 242 public void upgradeTo2_0(Connection conn) throws Exception 243 { 244 Logger.logInfo("Upgrading to 2_0"); 245 246 try 247 { 248 FileInputStream fis = new FileInputStream("sqlserver_upgrade1_3_2_to2_0.sql"); 249 StringBuffer sb = new StringBuffer (); 250 int c; 251 while((c = fis.read()) != -1) 252 { 253 char character = (char)c; 254 sb.append(character); 255 } 256 String script = sb.toString(); 257 Logger.logInfo("script:" + script); 258 259 StringTokenizer st = new StringTokenizer(script, ";"); 260 while (st.hasMoreTokens()) 261 { 262 String command = st.nextToken(); 263 issueCommand(conn, command + ";"); 265 } 266 } 267 catch(Exception e) 268 { 269 Logger.logInfo("Error: " + e); 270 } 271 } 272 273 public void upgradeTo2_1(Connection conn) throws Exception 274 { 275 Logger.logInfo("Upgrading to 2_1"); 276 277 try 278 { 279 FileInputStream fis = new FileInputStream("sqlserver_upgrade2_0_to2_1.sql"); 280 StringBuffer sb = new StringBuffer (); 281 int c; 282 while((c = fis.read()) != -1) 283 { 284 char character = (char)c; 285 sb.append(character); 286 } 287 String script = sb.toString(); 288 Logger.logInfo("script:" + script); 289 290 StringTokenizer st = new StringTokenizer(script, ";"); 291 while (st.hasMoreTokens()) 292 { 293 String command = st.nextToken(); 294 issueCommand(conn, command + ";"); 296 } 297 } 298 catch(Exception e) 299 { 300 Logger.logInfo("Error: " + e); 301 } 302 } 303 304 public void upgradeTo2_3(Connection conn) throws Exception 305 { 306 Logger.logInfo("Upgrading to 2_3"); 307 308 try 309 { 310 FileInputStream fis = new FileInputStream("sqlserver_upgrade2_1_to2_3.sql"); 311 StringBuffer sb = new StringBuffer (); 312 int c; 313 while((c = fis.read()) != -1) 314 { 315 char character = (char)c; 316 sb.append(character); 317 } 318 String script = sb.toString(); 319 Logger.logInfo("script:" + script); 320 321 StringTokenizer st = new StringTokenizer(script, ";"); 322 while (st.hasMoreTokens()) 323 { 324 String command = st.nextToken(); 325 issueCommand(conn, command + ";"); 327 } 328 } 329 catch(Exception e) 330 { 331 Logger.logInfo("Error: " + e); 332 } 333 } 334 335 private void createUsers() throws Exception 336 { 337 Logger.logInfo("Setting up all users...."); 338 339 String url = "jdbc:jtds:sqlserver://" + databaseHostName + ":" + databasePortNumber + ((this.getDatabaseInstance().equalsIgnoreCase("")) ? "" : ";INSTANCE=" + this.getDatabaseInstance()); 341 Connection conn = getConnection(url, this.userName, this.password); 343 344 callProcedure(conn, "sp_addlogin", this.infoglueDatabaseUserName, this.infoglueDatabasePassword, databaseName); 345 346 conn.close(); 347 348 url = getTDSSpecficUrl(databaseHostName, databasePortNumber, databaseName); 349 350 conn = getConnection(url, this.userName, this.password); 351 352 callProcedure(conn, "sp_grantdbaccess", this.infoglueDatabaseUserName, databaseName); 353 callProcedure(conn, "sp_addrolemember", "db_owner", this.infoglueDatabaseUserName); 354 callProcedure(conn, "sp_addrolemember", "db_owner", databaseName); 355 callProcedure(conn, "sp_addrolemember", "db_owner", this.infoglueDatabaseUserName + this.databaseSuffix); 356 } 357 358 359 private void dropDatabase() throws Exception 360 { 361 Logger.logInfo("Deleting the database...."); 362 issueCommand(getConnection(), "DROP DATABASE " + databaseName + ";"); 363 } 364 365 366 private void dropUsers() throws Exception 367 { 368 Logger.logInfo("Dropping all users...."); 369 370 } 373 374 377 378 private void issueCommand(Connection conn, String sql) 379 { 380 if(sql == null || sql.trim().length() == 0) 381 return; 382 383 try 384 { 385 Statement stmt = conn.createStatement(); 386 stmt.execute(sql); 387 stmt.close(); 388 } 392 catch(SQLException ex) 393 { 394 Logger.logInfo("Command failed: " + ex.getMessage()); 395 Logger.logInfo("SQL: " + sql); 396 System.err.println("SQLException: " + ex.getMessage()); 397 } 398 } 399 400 401 402 403 404 407 408 private void callProcedure(Connection conn, String procedure, String arg1, String arg2, String arg3) 409 { 410 Logger.logInfo("procedure: " + procedure + " (" + arg1 + "," + arg2 + ")"); 411 412 try 413 { 414 CallableStatement cs = conn.prepareCall("{call " + procedure + " (?,?,?)}"); 415 cs.setString(1, arg1); 416 cs.setString(2, arg2); 417 cs.setString(3, arg3); 418 cs.executeQuery(); 419 cs.close(); 420 } 422 catch(SQLException ex) 423 { 424 Logger.logInfo("callProcedure failed: " + ex.getMessage()); 425 Logger.logInfo("procedure: " + procedure + " (" + arg1 + "," + arg2 + ")"); 426 System.err.println("SQLException: " + ex.getMessage()); 427 } 428 } 429 430 431 434 435 private void callProcedure(Connection conn, String procedure, String arg1, String arg2) 436 { 437 Logger.logInfo("procedure: " + procedure + " (" + arg1 + "," + arg2 + ")"); 438 439 try 440 { 441 CallableStatement cs = conn.prepareCall("{call " + procedure + " (?,?)}"); 442 cs.setString(1, arg1); 443 cs.setString(2, arg2); 444 cs.executeQuery(); 445 cs.close(); 446 } 448 catch(SQLException ex) 449 { 450 Logger.logInfo("callProcedure failed: " + ex.getMessage()); 451 Logger.logInfo("procedure: " + procedure + " (" + arg1 + "," + arg2 + ")"); 452 System.err.println("SQLException: " + ex.getMessage()); 453 } 454 } 455 456 459 460 private void callProcedure(Connection conn, String SQL) 461 { 462 Logger.logInfo("SQL: " + SQL); 463 464 try 465 { 466 CallableStatement cs = conn.prepareCall("{call " + SQL + "}"); 467 cs.executeQuery(); 468 cs.close(); 469 } 471 catch(SQLException ex) 472 { 473 Logger.logInfo("callProcedure failed: " + ex.getMessage()); 474 Logger.logInfo("sql: " + SQL); 475 System.err.println("SQLException: " + ex.getMessage()); 476 } 477 } 478 479 480 public void createCastorFile() throws Exception 481 { 482 StringBuffer xmlFile = new StringBuffer (); 483 484 xmlFile.append("<!DOCTYPE database PUBLIC \"-//EXOLAB/Castor JDO Configuration DTD Version 1.0//EN\" \"http://castor.codehaus.org/jdo-conf.dtd\">\n"); 485 xmlFile.append("<jdo-conf>\n"); 486 xmlFile.append("<database name=\"INFOGLUE_CMS\" engine=\"sql-server\">\n"); 487 xmlFile.append("<data-source class-name=\"org.apache.commons.dbcp.BasicDataSource\">\n"); 488 xmlFile.append("<param name=\"driver-class-name\" value=\"" + driverClass + "\"/>\n"); 489 xmlFile.append("<param name=\"username\" value=\"" + this.infoglueDatabaseUserName + "\"/>\n"); 490 xmlFile.append("<param name=\"password\" value=\"" + this.infoglueDatabasePassword + "\"/>\n"); 491 xmlFile.append("<param name=\"url\" value=\"jdbc:jtds:sqlserver://" + databaseHostName + ":" + databasePortNumber + ((this.getDatabaseInstance().equalsIgnoreCase("")) ? ";DatabaseName=" + databaseName + ";SelectMethod=Cursor\"/>\n" : ";INSTANCE=" + this.getDatabaseInstance() + ";DatabaseName=" + databaseName + ";SelectMethod=Cursor\"/>\n")); 492 xmlFile.append("<param name=\"max-active\" value=\"20\"/>\n"); 493 xmlFile.append("<param name=\"connection-properties\" value=\"\"/>\n"); 494 xmlFile.append("<param name=\"DatabaseName\" value=\"" + databaseName + "\"/>\n"); 495 xmlFile.append("<param name=\"SelectMethod\" value=\"cursor\"/>\n"); 496 xmlFile.append("</data-source>\n"); 497 xmlFile.append("<mapping HREF=\"classes/mapping.xml\"/>\n"); 498 xmlFile.append("</database>\n"); 499 xmlFile.append("<transaction-demarcation mode=\"local\" />\n"); 500 xmlFile.append("</jdo-conf>\n"); 501 502 516 517 PrintWriter pw = new PrintWriter(new FileWriter("localConfigs/database.xml")); 518 pw.println(xmlFile.toString()); 519 pw.close(); 520 } 521 522 public void createCastorRootFile() throws Exception 523 { 524 StringBuffer xmlFile = new StringBuffer (); 525 526 xmlFile.append("<!DOCTYPE database PUBLIC \"-//EXOLAB/Castor JDO Configuration DTD Version 1.0//EN\" \"http://castor.codehaus.org/jdo-conf.dtd\">\n"); 527 xmlFile.append("<jdo-conf>\n"); 528 xmlFile.append("<database name=\"INFOGLUE_CMS\" engine=\"sql-server\">\n"); 529 xmlFile.append("<data-source class-name=\"org.apache.commons.dbcp.BasicDataSource\">\n"); 530 xmlFile.append("<param name=\"driver-class-name\" value=\"" + driverClass + "\"/>\n"); 531 xmlFile.append("<param name=\"username\" value=\"" + this.userName + "\"/>\n"); 532 xmlFile.append("<param name=\"password\" value=\"" + this.password + "\"/>\n"); 533 xmlFile.append("<param name=\"url\" value=\"jdbc:jtds:sqlserver://" + databaseHostName + ":" + databasePortNumber + ((this.getDatabaseInstance().equalsIgnoreCase("")) ? ";DatabaseName=" + this.databaseName + ";SelectMethod=Cursor\"/>\n" : ";INSTANCE=" + this.getDatabaseInstance() + ";DatabaseName=" + databaseName + ";SelectMethod=Cursor\"/>\n")); 534 xmlFile.append("<param name=\"max-active\" value=\"20\"/>\n"); 535 xmlFile.append("<param name=\"connection-properties\" value=\"\"/>\n"); 536 xmlFile.append("<param name=\"DatabaseName\" value=\"" + databaseName + "\"/>\n"); 537 xmlFile.append("<param name=\"SelectMethod\" value=\"cursor\"/>\n"); 538 xmlFile.append("</data-source>\n"); 539 xmlFile.append("<mapping HREF=\"classes/mapping.xml\"/>\n"); 540 xmlFile.append("</database>\n"); 541 xmlFile.append("<transaction-demarcation mode=\"local\" />\n"); 542 xmlFile.append("</jdo-conf>\n"); 543 544 557 558 PrintWriter pw = new PrintWriter(new FileWriter("localConfigs/database.xml")); 559 pw.println(xmlFile.toString()); 560 pw.close(); 561 } 562 563 public void createOSWorkflowFile() throws Exception 564 { 565 StringBuffer xmlFile = new StringBuffer (); 566 567 xmlFile.append("<osworkflow>"); 568 xmlFile.append("<persistence class=\"org.infoglue.cms.util.workflow.InfoGlueJDBCWorkflowStore\">"); 569 xmlFile.append("<property key=\"username\" value=\"" + this.infoglueDatabaseUserName + "\"/>"); 570 xmlFile.append("<property key=\"password\" value=\"" + this.infoglueDatabasePassword + "\"/>"); 571 xmlFile.append("<property key=\"driverClassName\" value=\"" + driverClass + "\"/>"); 572 xmlFile.append("<property key=\"url\" value=\"jdbc:jtds:sqlserver://" + databaseHostName + ":" + databasePortNumber + ((this.getDatabaseInstance().equalsIgnoreCase("")) ? ";DatabaseName=" + databaseName + ";SelectMethod=Cursor\"/>" : ";INSTANCE=" + this.getDatabaseInstance() + ";DatabaseName=" + databaseName + ";SelectMethod=Cursor\"/>")); 574 575 xmlFile.append("<property key=\"entry.sequence\" value=\"select sum(c1) + 1 from (select 1 as tb, count(*) as c1 from os_wfentry union select 2 as tb, count(*) as c1 from os_wfentry) as TabelaFinal\"/>"); 576 xmlFile.append("<property key=\"entry.table\" value=\"OS_WFENTRY\"/>"); 577 xmlFile.append("<property key=\"entry.id\" value=\"ID\"/>"); 578 xmlFile.append("<property key=\"entry.name\" value=\"NAME\"/>"); 579 xmlFile.append("<property key=\"entry.state\" value=\"STATE\"/>"); 580 xmlFile.append("<property key=\"step.sequence\" value=\"select sum(c1) + 1 from (select 1 as tb, count(*) as c1 from os_currentstep union select 2 as tb, count(*) as c1 from os_historystep) as TabelaFinal\"/>"); 581 xmlFile.append("<property key=\"history.table\" value=\"OS_HISTORYSTEP\"/>"); 582 xmlFile.append("<property key=\"current.table\" value=\"OS_CURRENTSTEP\"/>"); 583 xmlFile.append("<property key=\"historyPrev.table\" value=\"OS_HISTORYSTEP_PREV\"/>"); 584 xmlFile.append("<property key=\"currentPrev.table\" value=\"OS_CURRENTSTEP_PREV\"/>"); 585 xmlFile.append("<property key=\"step.id\" value=\"ID\"/>"); 586 xmlFile.append("<property key=\"step.entryId\" value=\"ENTRY_ID\"/>"); 587 xmlFile.append("<property key=\"step.stepId\" value=\"STEP_ID\"/>"); 588 xmlFile.append("<property key=\"step.actionId\" value=\"ACTION_ID\"/>"); 589 xmlFile.append("<property key=\"step.owner\" value=\"OWNER\"/>"); 590 xmlFile.append("<property key=\"step.caller\" value=\"CALLER\"/>"); 591 xmlFile.append("<property key=\"step.startDate\" value=\"START_DATE\"/>"); 592 xmlFile.append("<property key=\"step.finishDate\" value=\"FINISH_DATE\"/>"); 593 xmlFile.append("<property key=\"step.dueDate\" value=\"DUE_DATE\"/>"); 594 xmlFile.append("<property key=\"step.status\" value=\"STATUS\"/>"); 595 xmlFile.append("<property key=\"step.previousId\" value=\"PREVIOUS_ID\"/>"); 596 xmlFile.append("</persistence>"); 597 598 xmlFile.append("<factory class=\"com.opensymphony.workflow.loader.XMLWorkflowFactory\">"); 599 xmlFile.append("<property key=\"resource\" value=\"workflows.xml\" />"); 600 xmlFile.append("</factory>"); 601 602 xmlFile.append("</osworkflow>"); 603 604 PrintWriter pw = new PrintWriter(new FileWriter("localConfigs/osworkflow.xml")); 605 pw.println(xmlFile.toString()); 606 pw.close(); 607 } 608 609 public void createOSPropertiesFile() throws Exception 610 { 611 StringBuffer xmlFile = new StringBuffer (); 612 613 xmlFile.append("<propertysets>"); 614 xmlFile.append("<propertyset name=\"aggregate\" class=\"com.opensymphony.module.propertyset.aggregate.AggregatePropertySet\"/>"); 615 xmlFile.append("<propertyset name=\"cached\" class=\"com.opensymphony.module.propertyset.cached.CachingPropertySet\"/>"); 616 xmlFile.append("<propertyset name=\"jdbc\" class=\"org.infoglue.cms.util.workflow.InfoGlueJDBCPropertySet\">"); 617 xmlFile.append("<arg name=\"username\" value=\"" + this.infoglueDatabaseUserName + "\"/>"); 618 xmlFile.append("<arg name=\"password\" value=\"" + this.infoglueDatabasePassword + "\"/>"); 619 xmlFile.append("<arg name=\"driverClassName\" value=\"" + driverClass + "\"/>"); 620 xmlFile.append("<arg name=\"url\" value=\"jdbc:jtds:sqlserver://" + databaseHostName + ":" + databasePortNumber + ((this.getDatabaseInstance().equalsIgnoreCase("")) ? ";DatabaseName=" + databaseName + ";SelectMethod=Cursor\"/>" : ";INSTANCE=" + this.getDatabaseInstance() + ";DatabaseName=" + databaseName + ";SelectMethod=Cursor\"/>")); 622 623 xmlFile.append("<arg name=\"table.name\" value=\"OS_PROPERTYENTRY\"/>"); 624 634 xmlFile.append("<arg name=\"col.globalKey\" value=\"entity_name\"/>"); 635 xmlFile.append("<arg name=\"col.entityId\" value=\"entity_id\"/>"); 636 xmlFile.append("<arg name=\"col.itemKey\" value=\"entity_key\"/>"); 637 xmlFile.append("<arg name=\"col.itemType\" value=\"key_type\"/>"); 638 xmlFile.append("<arg name=\"col.booleanVal\" value=\"boolean_val\"/>"); 639 xmlFile.append("<arg name=\"col.string\" value=\"string_val\"/>"); 640 xmlFile.append("<arg name=\"col.date\" value=\"date_val\"/>"); 641 xmlFile.append("<arg name=\"col.data\" value=\"data_val\"/>"); 642 xmlFile.append("<arg name=\"col.float\" value=\"double_val\"/>"); 643 xmlFile.append("<arg name=\"col.number\" value=\"int_val\"/>"); 644 645 xmlFile.append("</propertyset>"); 646 xmlFile.append("<propertyset name=\"ejb\" class=\"com.opensymphony.module.propertyset.ejb.EJBPropertySet\"/>"); 647 xmlFile.append("<propertyset name=\"javabeans\" class=\"com.opensymphony.module.propertyset.javabeans.BeanIntrospectorPropertySet\"/>"); 648 xmlFile.append("<propertyset name=\"map\" class=\"com.opensymphony.module.propertyset.map.MapPropertySet\"/>"); 649 xmlFile.append("<propertyset name=\"memory\" class=\"com.opensymphony.module.propertyset.memory.MemoryPropertySet\"/>"); 650 xmlFile.append("<propertyset name=\"serializable\" class=\"com.opensymphony.module.propertyset.memory.SerializablePropertySet\"/>"); 651 xmlFile.append("<propertyset name=\"ofbiz\" class=\"com.opensymphony.module.propertyset.ofbiz.OFBizPropertySet\"/>"); 652 xmlFile.append("<propertyset name=\"hibernate\" class=\"org.infoglue.cms.util.workflow.hibernate.InfoGlueHibernatePropertySet\"/>"); 653 xmlFile.append("<propertyset name=\"xml\" class=\"com.opensymphony.module.propertyset.xml.XMLPropertySet\"/>"); 654 xmlFile.append("</propertysets>"); 655 656 PrintWriter pw = new PrintWriter(new FileWriter("localConfigs/propertyset.xml")); 657 pw.println(xmlFile.toString()); 658 pw.close(); 659 } 660 661 public void testSetupDummyDatabase() throws Exception 662 { 663 PreparedStatement pstmt = getConnection().prepareStatement("CREATE DATABASE infoglueDummy;"); 664 pstmt.execute(); 665 pstmt.close(); 666 667 pstmt = getConnection().prepareStatement("DROP DATABASE infoglueDummy;"); 668 pstmt.execute(); 669 pstmt.close(); 670 671 Connection conn = getConnection(); 672 sqlServerVersion = conn.getMetaData().getDatabaseMajorVersion() + "." + conn.getMetaData().getDatabaseMinorVersion(); 673 System.out.println("sqlServerVersion:" + sqlServerVersion); 674 675 } 676 677 678 public void testConnectDatabase() throws Exception 679 { 680 Connection conn = getConnection(getUrl(this.databaseHostName, this.databasePortNumber, this.databaseName + this.databaseSuffix), this.infoglueDatabaseUserName, this.infoglueDatabasePassword); 681 682 sqlServerVersion = conn.getMetaData().getDatabaseMajorVersion() + "." + conn.getMetaData().getDatabaseMinorVersion(); 683 System.out.println("sqlServerVersion:" + sqlServerVersion); 684 } 685 686 687 690 protected void issueSpecialBlobCommand(Connection conn, String sql) 691 { 692 694 } 695 public String getDriver() 696 { 697 return driver; 698 } 699 700 public String getDatabaseVendor() throws Exception 701 { 702 return "SQL Server"; 703 } 704 705 706 } | Popular Tags |