diff --git a/future/symmetric3-jdbc/src/main/java/org/jumpmind/symmetric/jdbc/db/JdbcModelReader.java b/future/symmetric3-jdbc/src/main/java/org/jumpmind/symmetric/jdbc/db/JdbcModelReader.java index fcf447fd58..5d8d45bda4 100644 --- a/future/symmetric3-jdbc/src/main/java/org/jumpmind/symmetric/jdbc/db/JdbcModelReader.java +++ b/future/symmetric3-jdbc/src/main/java/org/jumpmind/symmetric/jdbc/db/JdbcModelReader.java @@ -60,43 +60,41 @@ /** * An utility class to create a Database model from a live database. - * - * @version $Revision: 543392 $ */ public class JdbcModelReader { /** The Log to which logging calls will be made. */ - protected final Log _log = LogFactory.getLog(getClass()); + protected final Log log = LogFactory.getLog(getClass()); /** The descriptors for the relevant columns in the table meta data. */ - private final List _columnsForTable; + private final List columnsForTable; /** The descriptors for the relevant columns in the table column meta data. */ - private final List _columnsForColumn; + private final List columnsForColumn; /** The descriptors for the relevant columns in the primary key meta data. */ - private final List _columnsForPK; + private final List columnsForPK; /** The descriptors for the relevant columns in the foreign key meta data. */ - private final List _columnsForFK; + private final List columnsForFK; /** The descriptors for the relevant columns in the index meta data. */ - private final List _columnsForIndex; + private final List columnsForIndex; /** The platform that this model reader belongs to. */ - private IPlatform _platform; + private IPlatform platform; /** * Contains default column sizes (minimum sizes that a JDBC-compliant db * must support). */ - private HashMap _defaultSizes = new HashMap(); + private HashMap defaultSizes = new HashMap(); /** The default database catalog to read. */ - private String _defaultCatalogPattern = "%"; + private String defaultCatalogPattern = "%"; /** The default database schema(s) to read. */ - private String _defaultSchemaPattern = "%"; + private String defaultSchemaPattern = "%"; /** The default pattern for reading all tables. */ - private String _defaultTablePattern = "%"; + private String defaultTablePattern = "%"; /** The default pattern for reading all columns. */ - private String _defaultColumnPattern; + private String defaultColumnPattern; /** The table types to recognize per default. */ - private String[] _defaultTableTypes = { "TABLE" }; + private String[] defaultTableTypes = { "TABLE" }; /** The active connection while reading a database model. */ - private Connection _connection; + private Connection connection; private DataSource dataSource; @@ -107,28 +105,28 @@ public class JdbcModelReader { * The plaftform this builder belongs to */ public JdbcModelReader(IPlatform platform, DataSource dataSource) { - _platform = platform; + this.platform = platform; this.dataSource = dataSource; - _defaultSizes.put(new Integer(Types.CHAR), "254"); - _defaultSizes.put(new Integer(Types.VARCHAR), "254"); - _defaultSizes.put(new Integer(Types.LONGVARCHAR), "254"); - _defaultSizes.put(new Integer(Types.BINARY), "254"); - _defaultSizes.put(new Integer(Types.VARBINARY), "254"); - _defaultSizes.put(new Integer(Types.LONGVARBINARY), "254"); - _defaultSizes.put(new Integer(Types.INTEGER), "32"); - _defaultSizes.put(new Integer(Types.BIGINT), "64"); - _defaultSizes.put(new Integer(Types.REAL), "7,0"); - _defaultSizes.put(new Integer(Types.FLOAT), "15,0"); - _defaultSizes.put(new Integer(Types.DOUBLE), "15,0"); - _defaultSizes.put(new Integer(Types.DECIMAL), "15,15"); - _defaultSizes.put(new Integer(Types.NUMERIC), "15,15"); - - _columnsForTable = initColumnsForTable(); - _columnsForColumn = initColumnsForColumn(); - _columnsForPK = initColumnsForPK(); - _columnsForFK = initColumnsForFK(); - _columnsForIndex = initColumnsForIndex(); + defaultSizes.put(new Integer(Types.CHAR), "254"); + defaultSizes.put(new Integer(Types.VARCHAR), "254"); + defaultSizes.put(new Integer(Types.LONGVARCHAR), "254"); + defaultSizes.put(new Integer(Types.BINARY), "254"); + defaultSizes.put(new Integer(Types.VARBINARY), "254"); + defaultSizes.put(new Integer(Types.LONGVARBINARY), "254"); + defaultSizes.put(new Integer(Types.INTEGER), "32"); + defaultSizes.put(new Integer(Types.BIGINT), "64"); + defaultSizes.put(new Integer(Types.REAL), "7,0"); + defaultSizes.put(new Integer(Types.FLOAT), "15,0"); + defaultSizes.put(new Integer(Types.DOUBLE), "15,0"); + defaultSizes.put(new Integer(Types.DECIMAL), "15,15"); + defaultSizes.put(new Integer(Types.NUMERIC), "15,15"); + + columnsForTable = initColumnsForTable(); + columnsForColumn = initColumnsForColumn(); + columnsForPK = initColumnsForPK(); + columnsForFK = initColumnsForFK(); + columnsForIndex = initColumnsForIndex(); } /** @@ -137,7 +135,7 @@ public JdbcModelReader(IPlatform platform, DataSource dataSource) { * @return The platform */ public IPlatform getPlatform() { - return _platform; + return platform; } /** @@ -146,7 +144,7 @@ public IPlatform getPlatform() { * @return The platform settings */ public PlatformInfo getPlatformInfo() { - return _platform.getPlatformInfo(); + return platform.getPlatformInfo(); } /** @@ -160,10 +158,10 @@ public PlatformInfo getPlatformInfo() { protected List initColumnsForTable() { List result = new ArrayList(); - result.add(new MetaDataColumnDescriptor("TABLE_NAME", Types.VARCHAR)); - result.add(new MetaDataColumnDescriptor("TABLE_TYPE", Types.VARCHAR, "UNKNOWN")); - result.add(new MetaDataColumnDescriptor("TABLE_CAT", Types.VARCHAR)); - result.add(new MetaDataColumnDescriptor("TABLE_SCHEM", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("TABLENAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("TABLETYPE", Types.VARCHAR, "UNKNOWN")); + result.add(new MetaDataColumnDescriptor("TABLECAT", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("TABLESCHEM", Types.VARCHAR)); result.add(new MetaDataColumnDescriptor("REMARKS", Types.VARCHAR)); return result; @@ -180,22 +178,22 @@ protected List initColumnsForTable() { protected List initColumnsForColumn() { List result = new ArrayList(); - // As suggested by Alexandre Borgoltz, we're reading the COLUMN_DEF + // As suggested by Alexandre Borgoltz, we're reading the COLUMNDEF // first because Oracle // has problems otherwise (it seemingly requires a LONG column to be the // first to be read) // See also DDLUTILS-29 - result.add(new MetaDataColumnDescriptor("COLUMN_DEF", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("COLUMNDEF", Types.VARCHAR)); // we're also reading the table name so that a model reader impl can // filter manually - result.add(new MetaDataColumnDescriptor("TABLE_NAME", Types.VARCHAR)); - result.add(new MetaDataColumnDescriptor("COLUMN_NAME", Types.VARCHAR)); - result.add(new MetaDataColumnDescriptor("DATA_TYPE", Types.INTEGER, new Integer( + result.add(new MetaDataColumnDescriptor("TABLENAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("COLUMNNAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("DATATYPE", Types.INTEGER, new Integer( java.sql.Types.OTHER))); - result.add(new MetaDataColumnDescriptor("NUM_PREC_RADIX", Types.INTEGER, new Integer(10))); - result.add(new MetaDataColumnDescriptor("DECIMAL_DIGITS", Types.INTEGER, new Integer(0))); - result.add(new MetaDataColumnDescriptor("COLUMN_SIZE", Types.VARCHAR)); - result.add(new MetaDataColumnDescriptor("IS_NULLABLE", Types.VARCHAR, "YES")); + result.add(new MetaDataColumnDescriptor("NUMPRECRADIX", Types.INTEGER, new Integer(10))); + result.add(new MetaDataColumnDescriptor("DECIMALDIGITS", Types.INTEGER, new Integer(0))); + result.add(new MetaDataColumnDescriptor("COLUMNSIZE", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("ISNULLABLE", Types.VARCHAR, "YES")); result.add(new MetaDataColumnDescriptor("REMARKS", Types.VARCHAR)); return result; @@ -212,13 +210,13 @@ protected List initColumnsForColumn() { protected List initColumnsForPK() { List result = new ArrayList(); - result.add(new MetaDataColumnDescriptor("COLUMN_NAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("COLUMNNAME", Types.VARCHAR)); // we're also reading the table name so that a model reader impl can // filter manually - result.add(new MetaDataColumnDescriptor("TABLE_NAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("TABLENAME", Types.VARCHAR)); // the name of the primary key is currently only interesting to the pk // index name resolution - result.add(new MetaDataColumnDescriptor("PK_NAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("PKNAME", Types.VARCHAR)); return result; } @@ -234,14 +232,14 @@ protected List initColumnsForPK() { protected List initColumnsForFK() { List result = new ArrayList(); - result.add(new MetaDataColumnDescriptor("PKTABLE_NAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("PKTABLENAME", Types.VARCHAR)); // we're also reading the table name so that a model reader impl can // filter manually - result.add(new MetaDataColumnDescriptor("FKTABLE_NAME", Types.VARCHAR)); - result.add(new MetaDataColumnDescriptor("KEY_SEQ", Types.TINYINT, new Short((short) 0))); - result.add(new MetaDataColumnDescriptor("FK_NAME", Types.VARCHAR)); - result.add(new MetaDataColumnDescriptor("PKCOLUMN_NAME", Types.VARCHAR)); - result.add(new MetaDataColumnDescriptor("FKCOLUMN_NAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("FKTABLENAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("KEYSEQ", Types.TINYINT, new Short((short) 0))); + result.add(new MetaDataColumnDescriptor("FKNAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("PKCOLUMNNAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("FKCOLUMNNAME", Types.VARCHAR)); return result; } @@ -257,14 +255,14 @@ protected List initColumnsForFK() { protected List initColumnsForIndex() { List result = new ArrayList(); - result.add(new MetaDataColumnDescriptor("INDEX_NAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("INDEXNAME", Types.VARCHAR)); // we're also reading the table name so that a model reader impl can // filter manually - result.add(new MetaDataColumnDescriptor("TABLE_NAME", Types.VARCHAR)); - result.add(new MetaDataColumnDescriptor("NON_UNIQUE", Types.BIT, Boolean.TRUE)); - result.add(new MetaDataColumnDescriptor("ORDINAL_POSITION", Types.TINYINT, new Short( + result.add(new MetaDataColumnDescriptor("TABLENAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("NONUNIQUE", Types.BIT, Boolean.TRUE)); + result.add(new MetaDataColumnDescriptor("ORDINALPOSITION", Types.TINYINT, new Short( (short) 0))); - result.add(new MetaDataColumnDescriptor("COLUMN_NAME", Types.VARCHAR)); + result.add(new MetaDataColumnDescriptor("COLUMNNAME", Types.VARCHAR)); result.add(new MetaDataColumnDescriptor("TYPE", Types.TINYINT)); return result; @@ -276,7 +274,7 @@ protected List initColumnsForIndex() { * @return The default catalog(s) */ public String getDefaultCatalogPattern() { - return _defaultCatalogPattern; + return defaultCatalogPattern; } /** @@ -286,7 +284,7 @@ public String getDefaultCatalogPattern() { * The catalog(s) */ public void setDefaultCatalogPattern(String catalogPattern) { - _defaultCatalogPattern = catalogPattern; + defaultCatalogPattern = catalogPattern; } /** @@ -295,7 +293,7 @@ public void setDefaultCatalogPattern(String catalogPattern) { * @return The default schema(s) */ public String getDefaultSchemaPattern() { - return _defaultSchemaPattern; + return defaultSchemaPattern; } /** @@ -305,7 +303,7 @@ public String getDefaultSchemaPattern() { * The schema(s) */ public void setDefaultSchemaPattern(String schemaPattern) { - _defaultSchemaPattern = schemaPattern; + defaultSchemaPattern = schemaPattern; } /** @@ -315,7 +313,7 @@ public void setDefaultSchemaPattern(String schemaPattern) { * @return The table pattern */ public String getDefaultTablePattern() { - return _defaultTablePattern; + return defaultTablePattern; } /** @@ -325,7 +323,7 @@ public String getDefaultTablePattern() { * The table pattern */ public void setDefaultTablePattern(String tablePattern) { - _defaultTablePattern = tablePattern; + defaultTablePattern = tablePattern; } /** @@ -335,7 +333,7 @@ public void setDefaultTablePattern(String tablePattern) { * @return The column pattern */ public String getDefaultColumnPattern() { - return _defaultColumnPattern; + return defaultColumnPattern; } /** @@ -345,7 +343,7 @@ public String getDefaultColumnPattern() { * The column pattern */ public void setDefaultColumnPattern(String columnPattern) { - _defaultColumnPattern = columnPattern; + defaultColumnPattern = columnPattern; } /** @@ -354,7 +352,7 @@ public void setDefaultColumnPattern(String columnPattern) { * @return The default table types */ public String[] getDefaultTableTypes() { - return _defaultTableTypes; + return defaultTableTypes; } /** @@ -366,7 +364,7 @@ public String[] getDefaultTableTypes() { * The table types */ public void setDefaultTableTypes(String[] types) { - _defaultTableTypes = types; + defaultTableTypes = types; } /** @@ -376,7 +374,7 @@ public void setDefaultTableTypes(String[] types) { * @return The column descriptors */ protected List getColumnsForTable() { - return _columnsForTable; + return columnsForTable; } /** @@ -386,7 +384,7 @@ protected List getColumnsForTable() { * @return The column descriptors */ protected List getColumnsForColumn() { - return _columnsForColumn; + return columnsForColumn; } /** @@ -396,7 +394,7 @@ protected List getColumnsForColumn() { * @return The column descriptors */ protected List getColumnsForPK() { - return _columnsForPK; + return columnsForPK; } /** @@ -406,7 +404,7 @@ protected List getColumnsForPK() { * @return The column descriptors */ protected List getColumnsForFK() { - return _columnsForFK; + return columnsForFK; } /** @@ -416,7 +414,7 @@ protected List getColumnsForFK() { * @return The column descriptors */ protected List getColumnsForIndex() { - return _columnsForIndex; + return columnsForIndex; } /** @@ -427,7 +425,7 @@ protected List getColumnsForIndex() { * connection */ protected Connection getConnection() { - return _connection; + return connection; } /** @@ -476,13 +474,13 @@ public Database getDatabase(Connection connection, String name, String catalog, catalog = db.getName(); } } catch (Exception ex) { - _log.log(LogLevel.INFO, ex, "Cannot determine the catalog name from connection."); + log.log(LogLevel.INFO, ex, "Cannot determine the catalog name from connection."); } } else { db.setName(name); } try { - _connection = connection; + this.connection = connection; db.addTables(readTables(catalog, schema, tableTypes)); // Note that we do this here instead of in readTable since platforms // may redefine the @@ -492,7 +490,7 @@ public Database getDatabase(Connection connection, String name, String catalog, sortForeignKeys(db); } } finally { - _connection = null; + connection = null; } db.initialize(); return db; @@ -519,7 +517,7 @@ protected Collection readTables(String catalog, String schemaPattern, Str try { DatabaseMetaDataWrapper metaData = new DatabaseMetaDataWrapper(); - metaData.setMetaData(_connection.getMetaData()); + metaData.setMetaData(connection.getMetaData()); metaData.setCatalog(catalog == null ? getDefaultCatalogPattern() : catalog); metaData.setSchemaPattern(schemaPattern == null ? getDefaultSchemaPattern() : schemaPattern); @@ -600,8 +598,8 @@ protected Table readTableCaseSensitive(String catalogName, String schemaName, // If we don't provide a default schema or catalog, then on some // databases multiple results will be found in the metadata from // multiple schemas/catalogs - final String schema = StringUtils.isBlank(schemaName) ? _platform.getDefaultSchema() : schemaName; - final String catalog = StringUtils.isBlank(catalogName) ? _platform.getDefaultCatalog() + final String schema = StringUtils.isBlank(schemaName) ? platform.getDefaultSchema() : schemaName; + final String catalog = StringUtils.isBlank(catalogName) ? platform.getDefaultCatalog() : catalogName; table = (Table) new Template(dataSource).execute(new IConnectionCallback
() { public Table execute(Connection c) throws SQLException { @@ -612,9 +610,9 @@ public Table execute(Connection c) throws SQLException { metaData.setSchemaPattern(schema); metaData.setTableTypes(null); String tableName = tblName; - if (_platform.getPlatformInfo().isStoresUpperCaseNamesInCatalog()) { + if (platform.getPlatformInfo().isStoresUpperCaseNamesInCatalog()) { tableName = tblName.toUpperCase(); - } else if (_platform.getPlatformInfo().isStoresLowerCaseNamesInCatalog()) { + } else if (platform.getPlatformInfo().isStoresLowerCaseNamesInCatalog()) { tableName = tblName.toLowerCase(); } @@ -638,7 +636,7 @@ public Table execute(Connection c) throws SQLException { } }); } catch (DataException ex) { - _log.log(LogLevel.WARN, ex); + log.log(LogLevel.WARN, ex); } return table; @@ -673,16 +671,16 @@ protected void makeAllColumnsPrimaryKeysIfNoPrimaryKeysFound(Table table) { */ protected Table readTable(DatabaseMetaDataWrapper metaData, Map values) throws SQLException { - String tableName = (String) values.get("TABLE_NAME"); + String tableName = (String) values.get("TABLENAME"); Table table = null; if ((tableName != null) && (tableName.length() > 0)) { table = new Table(); table.setName(tableName); - table.setType((String) values.get("TABLE_TYPE")); - table.setCatalog((String) values.get("TABLE_CAT")); - table.setSchema((String) values.get("TABLE_SCHEM")); + table.setType((String) values.get("TABLETYPE")); + table.setCatalog((String) values.get("TABLECAT")); + table.setSchema((String) values.get("TABLESCHEM")); table.setDescription((String) values.get("REMARKS")); table.addColumns(readColumns(metaData, tableName)); @@ -898,16 +896,16 @@ protected Column readColumn(DatabaseMetaDataWrapper metaData, Map readPrimaryKeyNames(DatabaseMetaDataWrapper metaDat */ protected String readPrimaryKeyName(DatabaseMetaDataWrapper metaData, Map values) throws SQLException { - return (String) values.get("COLUMN_NAME"); + return (String) values.get("COLUMNNAME"); } /** @@ -1011,21 +1009,21 @@ protected Collection readForeignKeys(DatabaseMetaDataWrapper metaDat */ protected void readForeignKey(DatabaseMetaDataWrapper metaData, Map values, Map knownFks) throws SQLException { - String fkName = (String) values.get("FK_NAME"); + String fkName = (String) values.get("FKNAME"); ForeignKey fk = (ForeignKey) knownFks.get(fkName); if (fk == null) { fk = new ForeignKey(fkName); - fk.setForeignTableName((String) values.get("PKTABLE_NAME")); + fk.setForeignTableName((String) values.get("PKTABLENAME")); knownFks.put(fkName, fk); } Reference ref = new Reference(); - ref.setForeignColumnName((String) values.get("PKCOLUMN_NAME")); - ref.setLocalColumnName((String) values.get("FKCOLUMN_NAME")); - if (values.containsKey("KEY_SEQ")) { - ref.setSequenceValue(((Short) values.get("KEY_SEQ")).intValue()); + ref.setForeignColumnName((String) values.get("PKCOLUMNNAME")); + ref.setLocalColumnName((String) values.get("FKCOLUMNNAME")); + if (values.containsKey("KEYSEQ")) { + ref.setSequenceValue(((Short) values.get("KEYSEQ")).intValue()); } fk.addReference(ref); } @@ -1080,13 +1078,13 @@ protected void readIndex(DatabaseMetaDataWrapper metaData, Map v return; } - String indexName = (String) values.get("INDEX_NAME"); + String indexName = (String) values.get("INDEXNAME"); if (indexName != null) { Index index = (Index) knownIndices.get(indexName); if (index == null) { - if (((Boolean) values.get("NON_UNIQUE")).booleanValue()) { + if (((Boolean) values.get("NONUNIQUE")).booleanValue()) { index = new NonUniqueIndex(); } else { index = new UniqueIndex(); @@ -1098,9 +1096,9 @@ protected void readIndex(DatabaseMetaDataWrapper metaData, Map v IndexColumn indexColumn = new IndexColumn(); - indexColumn.setName((String) values.get("COLUMN_NAME")); - if (values.containsKey("ORDINAL_POSITION")) { - indexColumn.setOrdinalPosition(((Short) values.get("ORDINAL_POSITION")).intValue()); + indexColumn.setName((String) values.get("COLUMNNAME")); + if (values.containsKey("ORDINALPOSITION")) { + indexColumn.setOrdinalPosition(((Short) values.get("ORDINALPOSITION")).intValue()); } index.addColumn(indexColumn); } @@ -1202,7 +1200,7 @@ public void determineAutoIncrementFromResultSetMetaData(Connection conn, Table t msg.append(col.toString()); } } - _log.log(LogLevel.WARN, msg.toString()); + log.log(LogLevel.WARN, msg.toString()); } } diff --git a/future/symmetric3-jdbc/src/main/java/org/jumpmind/symmetric/jdbc/db/oracle/OracleJdbcModelReader.java b/future/symmetric3-jdbc/src/main/java/org/jumpmind/symmetric/jdbc/db/oracle/OracleJdbcModelReader.java index fd31ace601..aeff197eac 100644 --- a/future/symmetric3-jdbc/src/main/java/org/jumpmind/symmetric/jdbc/db/oracle/OracleJdbcModelReader.java +++ b/future/symmetric3-jdbc/src/main/java/org/jumpmind/symmetric/jdbc/db/oracle/OracleJdbcModelReader.java @@ -285,7 +285,7 @@ protected Collection readIndices(DatabaseMetaDataWrapper metaData, String readIndex(metaData, values, indices); } else { - _log.log(LogLevel.WARN, "Skipping index %s of type %s", name, type); + log.log(LogLevel.WARN, "Skipping index %s of type %s", name, type); } } } finally {