Skip to content

Commit

Permalink
Refactoring in progress ...
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed Nov 14, 2011
1 parent 56d0687 commit ff28944
Show file tree
Hide file tree
Showing 258 changed files with 8,506 additions and 22,606 deletions.
Expand Up @@ -38,7 +38,7 @@
import org.jumpmind.symmetric.common.logging.LogFactory;
import org.jumpmind.symmetric.config.PropertiesFactoryBean;
import org.jumpmind.symmetric.db.IDbDialect;
import org.jumpmind.symmetric.db.ddl.model.Table;
import org.jumpmind.symmetric.db.model.Table;
import org.jumpmind.symmetric.ext.IExtensionPointManager;
import org.jumpmind.symmetric.job.IJobManager;
import org.jumpmind.symmetric.model.Node;
Expand Down
Expand Up @@ -56,15 +56,15 @@
import org.jumpmind.symmetric.common.ParameterConstants;
import org.jumpmind.symmetric.common.logging.ILog;
import org.jumpmind.symmetric.common.logging.LogFactory;
import org.jumpmind.symmetric.db.ddl.Platform;
import org.jumpmind.symmetric.db.ddl.io.DatabaseIO;
import org.jumpmind.symmetric.db.ddl.model.Column;
import org.jumpmind.symmetric.db.ddl.model.Database;
import org.jumpmind.symmetric.db.ddl.model.ForeignKey;
import org.jumpmind.symmetric.db.ddl.model.Index;
import org.jumpmind.symmetric.db.ddl.model.Table;
import org.jumpmind.symmetric.db.ddl.platform.SqlBuilder;
import org.jumpmind.symmetric.db.io.DatabaseIO;
import org.jumpmind.symmetric.db.model.Column;
import org.jumpmind.symmetric.db.model.Database;
import org.jumpmind.symmetric.db.model.ForeignKey;
import org.jumpmind.symmetric.db.model.Index;
import org.jumpmind.symmetric.db.model.Table;
import org.jumpmind.symmetric.db.platform.SqlBuilder;
import org.jumpmind.symmetric.db.sql.DmlStatement;
import org.jumpmind.symmetric.db.sql.SqlScript;
import org.jumpmind.symmetric.db.sql.DmlStatement.DmlType;
import org.jumpmind.symmetric.db.sql.SqlConstants;
import org.jumpmind.symmetric.db.sybase.SybaseDbDialect;
Expand All @@ -78,6 +78,7 @@
import org.jumpmind.symmetric.model.TriggerRouter;
import org.jumpmind.symmetric.service.IParameterService;
import org.jumpmind.symmetric.util.AppUtils;
import org.jumpmind.symmetric.util.FormatUtils;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.DataAccessResourceFailureException;
import org.springframework.dao.TransientDataAccessResourceException;
Expand All @@ -101,7 +102,7 @@ abstract public class AbstractDbDialect implements IDbDialect {

protected JdbcTemplate jdbcTemplate;

protected Platform platform;
protected IDatabasePlatform platform;

protected Database cachedModel = new Database();

Expand Down Expand Up @@ -212,7 +213,7 @@ public int getMaxTriggerNameLength() {
: MAX_SYMMETRIC_SUPPORTED_TRIGGER_SIZE;
}

public void init(Platform pf, int queryTimeout, JdbcTemplate jdbcTemplate) {
public void init(IDatabasePlatform pf, int queryTimeout, JdbcTemplate jdbcTemplate) {
log.info("DbDialectInUse", this.getClass().getName());
this.jdbcTemplate = jdbcTemplate;
this.queryTimeoutInSeconds = queryTimeout;
Expand Down Expand Up @@ -552,22 +553,22 @@ protected String createPostTriggerDDL(DataEventType dml, Trigger trigger, Trigge
}

public String getCreateSymmetricDDL() {
Database db = readSymmetricSchemaFromXml();
prefixConfigDatabase(db);
return platform.getCreateTablesSql(db, true, true);
Database database = readSymmetricSchemaFromXml();
prefixConfigDatabase(database);
StringWriter writer = new StringWriter();
SqlBuilder builder = platform.createSqlBuilder(writer);
builder.createTables(database, true);
return writer.getBuffer().toString();
}

public String getCreateTableSQL(TriggerRouter trig) {
Table table = getTable(null, trig.getTrigger().getSourceSchemaName(), trig.getTrigger()
.getSourceTableName(), true);
public String getCreateTableSQL(TriggerRouter triggerRouter) {
Table table = getTable(null, triggerRouter.getTrigger().getSourceSchemaName(),
triggerRouter.getTrigger().getSourceTableName(), true);
String sql = null;
try {
StringWriter buffer = new StringWriter();
platform.getSqlBuilder().setWriter(buffer);
platform.getSqlBuilder().createTable(cachedModel, table);
sql = buffer.toString();
} catch (IOException e) {
}
StringWriter writer = new StringWriter();
SqlBuilder builder = platform.createSqlBuilder(writer);
builder.createTable(cachedModel, table);
sql = writer.toString();
return sql;
}

Expand Down Expand Up @@ -604,7 +605,7 @@ public String getCreateTableXML(TriggerRouter triggerRouter) {
public void createTables(String xml) {
StringReader reader = new StringReader(xml);
Database db = new DatabaseIO().read(reader);
platform.createTables(db, true, true);
platform.createDatabase(jdbcTemplate.getDataSource(), db, true, true);
}

public boolean doesDatabaseNeedConfigured() {
Expand Down Expand Up @@ -663,9 +664,10 @@ protected boolean createTablesIfNecessary() {
}
}

SqlBuilder builder = platform.getSqlBuilder();
StringWriter writer = new StringWriter();
SqlBuilder builder = platform.createSqlBuilder(writer);

if (builder.isAlterDatabase(modelFromDatabase, modelFromXml, null)) {
if (builder.isAlterDatabase(modelFromDatabase, modelFromXml)) {
log.info("TablesAutoUpdatingFoundTablesToAlter");
DataSource ds = jdbcTemplate.getDataSource();
String delimiter = platform.getPlatformInfo().getSqlCommandDelimiter();
Expand All @@ -676,9 +678,7 @@ protected boolean createTablesIfNecessary() {
new SqlScript(sql, ds, true, delimiter, null).execute();
}

StringWriter writer = new StringWriter();
builder.setWriter(writer);
builder.alterDatabase(modelFromDatabase, modelFromXml, null);
builder.alterDatabase(modelFromDatabase, modelFromXml);
String alterSql = writer.toString();
if (log.isDebugEnabled()) {
log.debug("TablesAutoUpdatingAlterSql", alterSql);
Expand Down Expand Up @@ -762,7 +762,7 @@ protected void fixIndexes(Table table, String tablePrefix) throws CloneNotSuppor
}
}

public Platform getPlatform() {
public IDatabasePlatform getPlatform() {
return this.platform;
}

Expand Down Expand Up @@ -878,7 +878,8 @@ public Object[] getObjectValues(BinaryEncoding encoding, String[] values,
objectValue = getDate(value, SqlConstants.TIMESTAMP_PATTERNS);
} else if (type == Types.TIMESTAMP
|| (type == Types.DATE && isDateOverrideToTimestamp())) {
objectValue = new Timestamp(getTime(value, SqlConstants.TIMESTAMP_PATTERNS));
objectValue = new Timestamp(getTime(value,
SqlConstants.TIMESTAMP_PATTERNS));
} else if (type == Types.CHAR) {
String charValue = value.toString();
if ((StringUtils.isBlank(charValue) && isBlankCharColumnSpacePadded())
Expand Down Expand Up @@ -1201,7 +1202,7 @@ public boolean areDatabaseTransactionsPendingSince(long time) {
public long getDatabaseTime() {
try {
String sql = "select current_timestamp from " + tablePrefix + "_node_identity";
sql = AppUtils.replaceTokens(sql, getSqlScriptReplacementTokens(), false);
sql = FormatUtils.replaceTokens(sql, getSqlScriptReplacementTokens(), false);
return jdbcTemplate.queryForObject(sql, java.util.Date.class).getTime();

} catch (Exception ex) {
Expand Down Expand Up @@ -1270,7 +1271,7 @@ public String getDriverVersion() {
public String scrubSql(String sql) {
Map<String, String> replacementTokens = getSqlScriptReplacementTokens();
if (replacementTokens != null) {
return AppUtils.replaceTokens(sql, replacementTokens, false).trim();
return FormatUtils.replaceTokens(sql, replacementTokens, false).trim();
} else {
return sql;
}
Expand Down Expand Up @@ -1315,10 +1316,10 @@ public void addDatabaseUpgradeListener(IDatabaseUpgradeListener listener) {
protected void initLobHandler() {
}

public DmlStatement createStatementBuilder(DmlType type, String catalogName, String schemaName, String tableName, Column[] keys,
Column[] columns, Column[] preFilteredColumns) {
return new DmlStatement(type, catalogName, schemaName, tableName, keys, columns, preFilteredColumns,
isDateOverrideToTimestamp(), getIdentifierQuoteString());
public DmlStatement createStatementBuilder(DmlType type, String catalogName, String schemaName,
String tableName, Column[] keys, Column[] columns, Column[] preFilteredColumns) {
return new DmlStatement(type, catalogName, schemaName, tableName, keys, columns,
preFilteredColumns, isDateOverrideToTimestamp(), getIdentifierQuoteString());
}

public void setPrimaryKeyViolationCodes(int[] primaryKeyViolationCodes) {
Expand Down
Expand Up @@ -20,7 +20,7 @@

package org.jumpmind.symmetric.db;

import org.jumpmind.symmetric.db.ddl.model.Table;
import org.jumpmind.symmetric.db.model.Table;
import org.jumpmind.symmetric.model.Channel;
import org.jumpmind.symmetric.model.Node;
import org.jumpmind.symmetric.model.Trigger;
Expand Down
Expand Up @@ -24,8 +24,8 @@
import java.util.ArrayList;

import org.apache.commons.collections.CollectionUtils;
import org.jumpmind.symmetric.db.ddl.model.Column;
import org.jumpmind.symmetric.db.ddl.model.Table;
import org.jumpmind.symmetric.db.model.Column;
import org.jumpmind.symmetric.db.model.Table;
import org.jumpmind.symmetric.db.sql.DmlStatement.DmlType;
import org.jumpmind.symmetric.load.IColumnFilter;
import org.jumpmind.symmetric.load.IDataLoaderContext;
Expand Down
Expand Up @@ -26,26 +26,21 @@

import org.jumpmind.symmetric.common.logging.ILog;
import org.jumpmind.symmetric.common.logging.LogFactory;
import org.jumpmind.symmetric.db.ddl.Platform;
import org.jumpmind.symmetric.db.ddl.PlatformFactory;
import org.jumpmind.symmetric.db.ddl.PlatformUtils;
import org.jumpmind.symmetric.db.ddl.platform.db2.Db2Platform;
import org.jumpmind.symmetric.db.ddl.platform.derby.DerbyPlatform;
import org.jumpmind.symmetric.db.ddl.platform.firebird.FirebirdPlatform;
import org.jumpmind.symmetric.db.ddl.platform.greenplum.GreenplumPlatform;
import org.jumpmind.symmetric.db.ddl.platform.h2.H2Platform;
import org.jumpmind.symmetric.db.ddl.platform.hsqldb.HsqlDbPlatform;
import org.jumpmind.symmetric.db.ddl.platform.hsqldb2.HsqlDb2Platform;
import org.jumpmind.symmetric.db.ddl.platform.informix.InformixPlatform;
import org.jumpmind.symmetric.db.ddl.platform.interbase.InterbasePlatform;
import org.jumpmind.symmetric.db.ddl.platform.mssql.MSSqlPlatform;
import org.jumpmind.symmetric.db.ddl.platform.mysql.MySqlPlatform;
import org.jumpmind.symmetric.db.ddl.platform.oracle.Oracle10Platform;
import org.jumpmind.symmetric.db.ddl.platform.oracle.Oracle8Platform;
import org.jumpmind.symmetric.db.ddl.platform.oracle.Oracle9Platform;
import org.jumpmind.symmetric.db.ddl.platform.postgresql.PostgreSqlPlatform;
import org.jumpmind.symmetric.db.ddl.platform.sqlite.SqLitePlatform;
import org.jumpmind.symmetric.db.ddl.platform.sybase.SybasePlatform;
import org.jumpmind.symmetric.db.platform.db2.Db2Platform;
import org.jumpmind.symmetric.db.platform.derby.DerbyPlatform;
import org.jumpmind.symmetric.db.platform.firebird.FirebirdPlatform;
import org.jumpmind.symmetric.db.platform.greenplum.GreenplumPlatform;
import org.jumpmind.symmetric.db.platform.h2.H2Platform;
import org.jumpmind.symmetric.db.platform.hsqldb.HsqlDbPlatform;
import org.jumpmind.symmetric.db.platform.hsqldb2.HsqlDb2Platform;
import org.jumpmind.symmetric.db.platform.informix.InformixPlatform;
import org.jumpmind.symmetric.db.platform.interbase.InterbasePlatform;
import org.jumpmind.symmetric.db.platform.mssql.MSSqlPlatform;
import org.jumpmind.symmetric.db.platform.mysql.MySqlPlatform;
import org.jumpmind.symmetric.db.platform.oracle.OraclePlatform;
import org.jumpmind.symmetric.db.platform.postgresql.PostgreSqlPlatform;
import org.jumpmind.symmetric.db.platform.sqlite.SqLitePlatform;
import org.jumpmind.symmetric.db.platform.sybase.SybasePlatform;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.beans.factory.FactoryBean;
Expand Down Expand Up @@ -78,7 +73,7 @@ public IDbDialect getObject() throws Exception {

waitForAvailableDatabase();

Platform pf = PlatformFactory.createNewPlatformInstance(jdbcTemplate.getDataSource());
IDatabasePlatform pf = DatabasePlatformFactory.createNewPlatformInstance(jdbcTemplate.getDataSource());

if (forceDelimitedIdentifierModeOn) {
pf.setDelimitedIdentifierModeOn(true);
Expand All @@ -92,11 +87,7 @@ public IDbDialect getObject() throws Exception {

if (pf instanceof MySqlPlatform) {
dialect = (AbstractDbDialect) beanFactory.getBean("mysqlDialect");
} else if (pf instanceof Oracle8Platform) {
dialect = (AbstractDbDialect) beanFactory.getBean("oracleDialect");
} else if (pf instanceof Oracle9Platform) {
dialect = (AbstractDbDialect) beanFactory.getBean("oracleDialect");
} else if (pf instanceof Oracle10Platform) {
} else if (pf instanceof OraclePlatform) {
dialect = (AbstractDbDialect) beanFactory.getBean("oracleDialect");
} else if (pf instanceof MSSqlPlatform) {
dialect = (AbstractDbDialect) beanFactory.getBean("msSqlDialect");
Expand All @@ -117,13 +108,13 @@ public IDbDialect getObject() throws Exception {
} else if (pf instanceof InformixPlatform) {
dialect = (AbstractDbDialect) beanFactory.getBean("informixDialect");
} else if (pf instanceof Db2Platform) {
String currentDbProductVersion = PlatformUtils.getDatabaseProductVersion(jdbcTemplate
String currentDbProductVersion = DatabasePlatformUtils.getDatabaseProductVersion(jdbcTemplate
.getDataSource());
if (currentDbProductVersion.equals(db2zSeriesProductVersion)) {
dialect = (AbstractDbDialect) beanFactory.getBean("db2zSeriesDialect");
} else {
int dbMajorVersion = PlatformUtils.getDatabaseMajorVersion(jdbcTemplate.getDataSource());
int dbMinorVersion = PlatformUtils.getDatabaseMinorVersion(jdbcTemplate.getDataSource());
int dbMajorVersion = DatabasePlatformUtils.getDatabaseMajorVersion(jdbcTemplate.getDataSource());
int dbMinorVersion = DatabasePlatformUtils.getDatabaseMinorVersion(jdbcTemplate.getDataSource());
if (dbMajorVersion < 9 || (dbMajorVersion == 9 && dbMinorVersion < 5)) {
dialect = (AbstractDbDialect) beanFactory.getBean("db2Dialect");
} else {
Expand Down
Expand Up @@ -23,9 +23,8 @@
import java.util.Map;
import java.util.Set;

import org.jumpmind.symmetric.db.ddl.Platform;
import org.jumpmind.symmetric.db.ddl.model.Column;
import org.jumpmind.symmetric.db.ddl.model.Table;
import org.jumpmind.symmetric.db.model.Column;
import org.jumpmind.symmetric.db.model.Table;
import org.jumpmind.symmetric.db.sql.DmlStatement;
import org.jumpmind.symmetric.db.sql.DmlStatement.DmlType;
import org.jumpmind.symmetric.ext.IDatabaseUpgradeListener;
Expand Down Expand Up @@ -90,7 +89,7 @@ public void removeTrigger(StringBuilder sqlBuffer, String catalogName, String sc

public void initTablesAndFunctions();

public Platform getPlatform();
public IDatabasePlatform getPlatform();

public String getName();

Expand Down

0 comments on commit ff28944

Please sign in to comment.