public abstract class BaseMigrationTool extends Object implements MigrationTool
Description: Base class for Migration and Testcases. Provides infrastructure and common utilities.
development: 2007-2014
| Modifier and Type | Field and Description |
|---|---|
protected DatabaseLocker |
databaseLocker |
protected DBVersionMeta |
dbVersionMeta |
protected static org.slf4j.Logger |
log |
protected String |
migrateConfigFileName |
protected JdbcDatabase |
targetDatabase |
| Constructor and Description |
|---|
BaseMigrationTool() |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
acceptDirectoryForSQLParser(File aDirectory)
overwrite in subclasses
|
protected void |
applyEnvironment(JdbcConfig jdbcConfig)
ensure that the env-variables are used immediately to connect the database!
|
protected Connection |
assertConnection() |
void |
checkObjectsValid(String databaseType)
callback - invoke DatabaseSchemaChecker for invalid triggers, views, ...
|
void |
checkSchemaComplete(String dev)
callback - invoke DatabaseSchemaChecker for completeness of
schema (columns, tables, foreign keys, indices, ...)
|
protected void |
commit()
Deprecated.
|
void |
connectTargetDatabase() |
void |
copyFiles(String configKey)
copy the files from source to target
|
protected JdbcDatabase |
createDatabase(JdbcConfig databaseConfig) |
void |
dbDump(String file)
callback - invoke dbunit
example: "data.XML"
|
void |
dbSetup(String files)
callback - invoke dbunit
|
void |
disconnectDatabase() |
void |
doGroovyScript(String scriptInvocation)
callback - invoke a groovy script
|
void |
doMethodOperation(String methodName,
String methodParam) |
void |
doSQLLines(String scriptName)
callback - read the script and execute each SQL line
|
void |
doSQLLinesIgnoreErrors(String scriptName)
callback - read the script and execute each SQL line
|
void |
doSQLScript(String scriptName)
callback - parse the script and execute each SQL statement
|
void |
doSQLScriptIgnoreErrors(String scriptName)
callback - parse the script and execute each SQL statement
|
void |
execSQLScript(String scriptName)
execute the content of a file as a single SQL statement.
|
protected Method |
findMethod(Class clazz,
String methodName,
int paramCount) |
DatabaseLocker |
getDatabaseLocker() |
DBVersionMeta |
getDbVersionMeta() |
Map |
getEnvironment()
a map for environment properties (JVM System-Properties overwrite these properties)
(to be used to conditional execution of statements in
SQL scripts)
|
String[] |
getGroovyScriptsDirs() |
protected String |
getJdbcConfigFile() |
org.slf4j.Logger |
getLog() |
Config |
getMigrateConfig() |
protected List |
getOperations(String name) |
String |
getScriptsDir() |
JdbcDatabase |
getTargetDatabase() |
void |
halt(String message)
callback -
|
protected void |
handleException(String msg,
Exception ex) |
void |
invokeBean(String classMethod)
invoke a n-arg-method on a new instance of a class.
|
protected void |
invokeBeanCallbacks(Object receiver) |
protected void |
invokeClassMethod(boolean isStatic,
String classMethod) |
void |
invokeStatic(String classMethod)
invoke a static n-arg-method on a class.
|
protected boolean |
isFailOnError() |
protected void |
iterateSQLLines(ScriptVisitor visitor,
String scriptName,
boolean failOnError)
iterate sql script.
|
protected void |
iterateSQLScript(ScriptVisitor visitor,
String scriptName,
boolean failOnError)
iterate sql script.
|
void |
lockBusy() |
void |
log(Object obj) |
protected List<DatabaseSchemaChecker.Options> |
parseOptions(StringTokenizer t) |
protected void |
perform(List operations) |
void |
print(Object obj) |
protected void |
replaceProperties(Map env) |
void |
rollback() |
void |
setConfigRootUrl(String configRoot) |
void |
setDatabaseLocker(DatabaseLocker busyLocker) |
void |
setMigrateConfigFileName(String migrateConfigFileName) |
void |
setScriptsDir(String scriptsDir) |
void |
setTargetDatabase(JdbcDatabase targetDatabase) |
void |
setUp() |
protected void |
setupDatabaseLocker() |
protected void |
setupVersionMeta() |
protected Object[] |
splitMethodArgs(String classMethod) |
protected List<String> |
splitParams(String methodName) |
protected int |
sqlExec(String sql) |
protected SQLCursor |
sqlSelect(String sql)
utility method to exec a JDBC SELECT statement directly
|
void |
tearDown() |
void |
terminateTransactions() |
void |
unlockBusy() |
void |
version(String dbVersion)
callback - update the version
|
protected static final org.slf4j.Logger log
protected JdbcDatabase targetDatabase
protected String migrateConfigFileName
protected final DBVersionMeta dbVersionMeta
protected DatabaseLocker databaseLocker
public void setUp()
public void setConfigRootUrl(String configRoot)
protected void setupVersionMeta()
protected void setupDatabaseLocker()
public void halt(String message)
public void version(String dbVersion) throws JdbcException
JdbcExceptionpublic void lockBusy()
public void unlockBusy()
public DatabaseLocker getDatabaseLocker()
public void setDatabaseLocker(DatabaseLocker busyLocker)
busyLocker - public void execSQLScript(String scriptName) throws SQLException, IOException
scriptName - - may contain properties,
but not supported are: -- #if conditions, reconnect, subscripts etc.SQLExceptionIOExceptionpublic void doSQLScript(String scriptName) throws IOException, SQLException
IOExceptionSQLExceptionpublic void doSQLScriptIgnoreErrors(String scriptName) throws Exception
Exceptionpublic void doSQLLines(String scriptName) throws IOException, SQLException
IOExceptionSQLExceptionpublic void doSQLLinesIgnoreErrors(String scriptName) throws Exception
Exceptionprotected void iterateSQLLines(ScriptVisitor visitor, String scriptName, boolean failOnError) throws IOException, SQLException
IOExceptionSQLExceptionpublic void checkObjectsValid(String databaseType) throws Exception
Exceptionpublic void checkSchemaComplete(String dev) throws Exception
Exceptionprotected List<DatabaseSchemaChecker.Options> parseOptions(StringTokenizer t) throws MalformedURLException
MalformedURLExceptionpublic void dbSetup(String files) throws Exception
files - - comma-separated delete and insert DB-Unit script,
example: "delete_data.xml,data.XML"
example: "data.XML"Exceptionpublic void copyFiles(String configKey) throws IOException
configKey - - key in the env, value is list of source_1, target_1, ... URLsIOExceptionpublic void dbDump(String file) throws Exception
Exceptionpublic void invokeStatic(String classMethod) throws Exception
Exceptionpublic void invokeBean(String classMethod) throws Exception
Exceptionprotected void invokeClassMethod(boolean isStatic,
String classMethod)
throws Exception
Exceptionpublic void doGroovyScript(String scriptInvocation) throws Exception
IOExceptionExceptionprotected void invokeBeanCallbacks(Object receiver)
protected void iterateSQLScript(ScriptVisitor visitor, String scriptName, boolean failOnError) throws IOException, SQLException
IOExceptionSQLExceptionpublic DBVersionMeta getDbVersionMeta()
public Map getEnvironment()
getEnvironment in interface MigrationToolprotected void replaceProperties(Map env)
public JdbcDatabase getTargetDatabase()
getTargetDatabase in interface MigrationToolpublic Config getMigrateConfig()
public void setMigrateConfigFileName(String migrateConfigFileName)
public String getScriptsDir()
public String[] getGroovyScriptsDirs()
public void setScriptsDir(String scriptsDir)
public void doMethodOperation(String methodName, String methodParam) throws Exception
Exceptionpublic void connectTargetDatabase()
protected JdbcDatabase createDatabase(JdbcConfig databaseConfig)
protected void applyEnvironment(JdbcConfig jdbcConfig)
@Deprecated protected void commit()
protected String getJdbcConfigFile()
public void print(Object obj)
public void log(Object obj)
public org.slf4j.Logger getLog()
protected boolean acceptDirectoryForSQLParser(File aDirectory)
protected SQLCursor sqlSelect(String sql) throws SQLException
SQLExceptionprotected Connection assertConnection() throws JdbcException
JdbcExceptionprotected int sqlExec(String sql) throws SQLException
SQLExceptionpublic void setTargetDatabase(JdbcDatabase targetDatabase)
protected boolean isFailOnError()
Copyright © 2008-2016. All Rights Reserved.