Skip to content

Commit

Permalink
0000872: Run uninstall with unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed Nov 6, 2012
1 parent f8b9033 commit 555a4bd
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 16 deletions.
Expand Up @@ -153,9 +153,9 @@ protected void createRequiredDatabaseObjects() {
install(sql, triggerDisabled);
}

String pkgPackage = this.parameterService.getTablePrefix() + "_" + "pkg_package";
String pkgPackage = this.parameterService.getTablePrefix() + "_" + "pkg";
if (!installed(SQL_FUNCTION_INSTALLED, pkgPackage)) {
String sql = "CREATE OR REPLACE package sym_pkg as "
String sql = "CREATE OR REPLACE package $(functionName) as "
+ " disable_trigger pls_integer; "
+ " disable_node_id varchar(50); "
+ " procedure setValue (a IN number); "
Expand All @@ -164,19 +164,18 @@ protected void createRequiredDatabaseObjects() {
install(sql, pkgPackage);
}

String pkgPackageBody = this.parameterService.getTablePrefix() + "_" + "pkg_package body";
if (!installed(SQL_FUNCTION_INSTALLED, pkgPackageBody)) {
String sql = "CREATE OR REPLACE package body sym_pkg as "
if (!installed(SQL_FUNCTION_INSTALLED, pkgPackage)) {
String sql = "CREATE OR REPLACE package body $(functionName) as "
+ " procedure setValue(a IN number) is "
+ " begin "
+ " sym_pkg.disable_trigger:=a; "
+ " $(functionName).disable_trigger:=a; "
+ " end; "
+ " procedure setNodeValue(node_id IN varchar) is "
+ " begin "
+ " sym_pkg.disable_node_id := node_id; "
+ " $(functionName).disable_node_id := node_id; "
+ " end; "
+ " end sym_pkg; ";
install(sql, pkgPackageBody);
install(sql, pkgPackage);
}

String wkt2geom = this.parameterService.getTablePrefix() + "_" + "wkt2geom";
Expand Down Expand Up @@ -221,13 +220,11 @@ protected void dropRequiredDatabaseObjects() {
uninstall(SQL_DROP_FUNCTION, wkt2geom);
}


String pkgPackageBody = this.parameterService.getTablePrefix() + "_" + "pkg_package body";
if (!installed(SQL_FUNCTION_INSTALLED, pkgPackageBody)) {
uninstall("DROP PACKAGE BODY $(functionName)", pkgPackageBody);
String pkgPackage = this.parameterService.getTablePrefix() + "_" + "pkg";
if (!installed(SQL_FUNCTION_INSTALLED, pkgPackage)) {
uninstall("DROP PACKAGE BODY $(functionName)", pkgPackage);
}

String pkgPackage = this.parameterService.getTablePrefix() + "_" + "pkg_package";
if (!installed(SQL_FUNCTION_INSTALLED, pkgPackage)) {
uninstall("DROP PACKAGE $(functionName)", pkgPackage);
}
Expand Down
Expand Up @@ -15,8 +15,10 @@
import org.jumpmind.properties.EnvironmentSpecificProperties;
import org.jumpmind.symmetric.ClientSymmetricEngine;
import org.jumpmind.symmetric.ISymmetricEngine;
import org.jumpmind.symmetric.TestConstants;
import org.jumpmind.symmetric.common.ParameterConstants;
import org.jumpmind.symmetric.db.ISymmetricDialect;
import org.jumpmind.symmetric.service.impl.ParameterService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -50,26 +52,81 @@ protected static ISymmetricEngine prepareRoot(String sql) {
dropAndCreateDatabaseTables(properties.getProperty("test.root"), engine);
return engine;
}

public static IDatabasePlatform dropDatabaseTables(String databaseType, ISymmetricEngine engine) {

engine.uninstall();
engine.stop();

ISymmetricDialect dialect = engine.getSymmetricDialect();

final AbstractJdbcDatabasePlatform platform = (AbstractJdbcDatabasePlatform) dialect
.getPlatform();

dialect.cleanupTriggers();

IDdlBuilder builder = platform.getDdlBuilder();

platform.resetDataSource();

String fileName = TestConstants.TEST_DROP_SEQ_SCRIPT + databaseType + "-pre.sql";
URL url = getResource(fileName);
if (url != null) {
new SqlScript(url, dialect.getPlatform().getSqlTemplate(), false).execute(true);
}

Database db2drop = platform.readDatabase(platform.getDefaultCatalog(),
platform.getDefaultSchema(), new String[] { "TABLE" });

String sql = builder.dropTables(db2drop);

platform.resetDataSource();

SqlScript dropScript = new SqlScript(sql, platform.getSqlTemplate(), false);
dropScript.execute(true);

new SqlScript(getResource(TestConstants.TEST_DROP_ALL_SCRIPT), platform.getSqlTemplate(),
false).execute(true);
((ParameterService) engine.getParameterService()).setDatabaseHasBeenInitialized(false);

fileName = TestConstants.TEST_DROP_SEQ_SCRIPT + databaseType + ".sql";
url = getResource(fileName);
if (url != null) {
new SqlScript(url, dialect.getPlatform().getSqlTemplate(), false).execute(true);
}

dialect.purgeRecycleBin();

return platform;
}

// TODO this is the new version that uses uninstall, but i haven't gotten it to work
public static IDatabasePlatform dropDatabaseTables2(String databaseType, ISymmetricEngine engine) {

ISymmetricDialect dialect = engine.getSymmetricDialect();

AbstractJdbcDatabasePlatform platform = (AbstractJdbcDatabasePlatform) dialect
.getPlatform();

engine.uninstall();

platform.resetDataSource();

IDdlBuilder builder = platform.getDdlBuilder();

Database db2drop = platform.readDatabase(platform.getDefaultCatalog(),
platform.getDefaultSchema(), new String[] { "TABLE" });

platform.resetDataSource();

String sql = builder.dropTables(db2drop);
SqlScript dropScript = new SqlScript(sql, platform.getSqlTemplate(), false);
dropScript.execute(true);

platform.resetDataSource();

dialect.purgeRecycleBin();

platform.resetCachedTableModel();

return platform;
}
Expand Down
Expand Up @@ -805,7 +805,7 @@ public void syncTriggers(StringBuilder sqlBuffer, boolean force) {
}
}
} else {
log.info("Failed to synchronize trigger for {}");
log.info("Sync triggers was locked by the cluster service");
}
} else {
log.info("Not synchronizing triggers. {} is set to false",
Expand Down

0 comments on commit 555a4bd

Please sign in to comment.