Repository: sqoop Updated Branches: refs/heads/sqoop2 39a220000 -> 151a0a12a
http://git-wip-us.apache.org/repos/asf/sqoop/blob/151a0a12/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbySchemaQuery.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbySchemaQuery.java b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbySchemaQuery.java index 44ec2e3..ce1830e 100644 --- a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbySchemaQuery.java +++ b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbySchemaQuery.java @@ -48,15 +48,16 @@ import static org.apache.sqoop.repository.derby.DerbySchemaConstants.*; * </pre> * </p> * <p> - * <strong>SQ_CONNECTOR</strong>: Connector registration. + * <strong>SQ_CONFIGURABLE</strong>: Configurable registration. * * <pre> * +-----------------------------+ - * | SQ_CONNECTOR | + * | SQ_CONFIGURABLE | * +-----------------------------+ * | SQC_ID: BIGINT PK AUTO-GEN | * | SQC_NAME: VARCHAR(64) | * | SQC_CLASS: VARCHAR(255) | + * | SQC_TYPE: VARCHAR(32) |"CONNECTOR"|"DRIVER" * | SQC_VERSION: VARCHAR(64) | * +-----------------------------+ * </pre> @@ -252,7 +253,6 @@ import static org.apache.sqoop.repository.derby.DerbySchemaConstants.*; * * </p> */ - // NOTE: If you have signed yourself to modify the schema for the repository // such as a rename, change in table relationships or constraints, embrace yourself! // The following code is supposed to be a chronological order of how the @@ -561,199 +561,184 @@ public static final String STMT_SELECT_DEPRECATED_OR_NEW_SYSTEM_VERSION = "SELECT " + COLUMN_SQD_NAME + " FROM " + TABLE_SQ_DIRECTION + " WHERE " + COLUMN_SQD_ID + "=?"; - // DML: Fetch connector Given Name - public static final String STMT_FETCH_BASE_CONNECTOR = + //DML: Get configurable by given name + public static final String STMT_SELECT_FROM_CONFIGURABLE = + "SELECT " + + COLUMN_SQC_ID + ", " + + COLUMN_SQC_NAME + ", " + + COLUMN_SQC_CLASS + ", " + + COLUMN_SQC_VERSION + + " FROM " + TABLE_SQ_CONFIGURABLE + + " WHERE " + COLUMN_SQC_NAME + " = ?"; + + //DML: Get all configurables for a given type + public static final String STMT_SELECT_CONFIGURABLE_ALL_FOR_TYPE = + "SELECT " + + COLUMN_SQC_ID + ", " + + COLUMN_SQC_NAME + ", " + + COLUMN_SQC_CLASS + ", " + + COLUMN_SQC_VERSION + + " FROM " + TABLE_SQ_CONFIGURABLE + + " WHERE " + COLUMN_SQC_TYPE + " = ?"; + + // DML: Select all connectors + @Deprecated // used only for upgrade logic + public static final String STMT_SELECT_CONNECTOR_ALL = + "SELECT " + + COLUMN_SQC_ID + ", " + + COLUMN_SQC_NAME + ", " + + COLUMN_SQC_CLASS + ", " + + COLUMN_SQC_VERSION + + " FROM " + TABLE_SQ_CONNECTOR; + + //DML: Get all configs for a given configurable + public static final String STMT_SELECT_CONFIG_FOR_CONFIGURABLE = "SELECT " - + COLUMN_SQC_ID + ", " - + COLUMN_SQC_NAME + ", " - + COLUMN_SQC_CLASS + ", " - + COLUMN_SQC_VERSION - + " FROM " + TABLE_SQ_CONNECTOR - + " WHERE " + COLUMN_SQC_NAME + " = ?"; - - // DML: Select all connectors - public static final String STMT_SELECT_CONNECTOR_ALL = - "SELECT " - + COLUMN_SQC_ID + ", " - + COLUMN_SQC_NAME + ", " - + COLUMN_SQC_CLASS + ", " - + COLUMN_SQC_VERSION - + " FROM " + TABLE_SQ_CONNECTOR; - - // DML: Fetch all configs for a given connector - public static final String STMT_FETCH_CONFIG_CONNECTOR = - "SELECT " - + COLUMN_SQ_CFG_ID + ", " - + COLUMN_SQ_CFG_CONNECTOR + ", " - + COLUMN_SQ_CFG_NAME + ", " - + COLUMN_SQ_CFG_TYPE + ", " - + COLUMN_SQ_CFG_INDEX - + " FROM " + TABLE_SQ_CONFIG - + " WHERE " + COLUMN_SQ_CFG_CONNECTOR + " = ? " - + " ORDER BY " + COLUMN_SQ_CFG_INDEX; - - // DML: Fetch all driver configs - public static final String STMT_FETCH_CONFIG_DRIVER = - "SELECT " - + COLUMN_SQ_CFG_ID + ", " - + COLUMN_SQ_CFG_CONNECTOR + ", " - + COLUMN_SQ_CFG_NAME + ", " - + COLUMN_SQ_CFG_TYPE + ", " - + COLUMN_SQ_CFG_INDEX - + " FROM " + TABLE_SQ_CONFIG - + " WHERE " + COLUMN_SQ_CFG_CONNECTOR + " IS NULL " - + " ORDER BY " + COLUMN_SQ_CFG_TYPE + ", " + COLUMN_SQ_CFG_INDEX; - - // DML: Fetch inputs for a given config - public static final String STMT_FETCH_INPUT = - "SELECT " - + COLUMN_SQI_ID + ", " - + COLUMN_SQI_NAME + ", " - + COLUMN_SQI_CONFIG + ", " - + COLUMN_SQI_INDEX + ", " - + COLUMN_SQI_TYPE + ", " - + COLUMN_SQI_STRMASK + ", " - + COLUMN_SQI_STRLENGTH + ", " - + COLUMN_SQI_ENUMVALS + ", " - + "cast(null as varchar(100))" - + " FROM " + TABLE_SQ_INPUT - + " WHERE " + COLUMN_SQI_CONFIG + " = ?" - + " ORDER BY " + COLUMN_SQI_INDEX; - - // DML: Fetch inputs and values for a given link + + COLUMN_SQ_CFG_ID + ", " + + COLUMN_SQ_CFG_CONFIGURABLE + ", " + + COLUMN_SQ_CFG_NAME + ", " + + COLUMN_SQ_CFG_TYPE + ", " + + COLUMN_SQ_CFG_INDEX + + " FROM " + TABLE_SQ_CONFIG + + " WHERE " + COLUMN_SQ_CFG_CONFIGURABLE + " = ? " + + " ORDER BY " + COLUMN_SQ_CFG_INDEX; + + // DML: Get inputs for a given config + public static final String STMT_SELECT_INPUT = + "SELECT " + + COLUMN_SQI_ID + ", " + + COLUMN_SQI_NAME + ", " + + COLUMN_SQI_CONFIG + ", " + + COLUMN_SQI_INDEX + ", " + + COLUMN_SQI_TYPE + ", " + + COLUMN_SQI_STRMASK + ", " + + COLUMN_SQI_STRLENGTH + ", " + + COLUMN_SQI_ENUMVALS + ", " + + "cast(null as varchar(100))" + + " FROM " + TABLE_SQ_INPUT + + " WHERE " + COLUMN_SQI_CONFIG + " = ?" + + " ORDER BY " + COLUMN_SQI_INDEX; + + //DML: Get inputs and values for a given link public static final String STMT_FETCH_LINK_INPUT = - "SELECT " - + COLUMN_SQI_ID + ", " - + COLUMN_SQI_NAME + ", " - + COLUMN_SQI_CONFIG + ", " - + COLUMN_SQI_INDEX + ", " - + COLUMN_SQI_TYPE + ", " - + COLUMN_SQI_STRMASK + ", " - + COLUMN_SQI_STRLENGTH + "," - + COLUMN_SQI_ENUMVALS + ", " - + COLUMN_SQ_LNKI_VALUE - + " FROM " + TABLE_SQ_INPUT - + " LEFT OUTER JOIN " + TABLE_SQ_LINK_INPUT - + " ON " + COLUMN_SQ_LNKI_INPUT + " = " + COLUMN_SQI_ID - + " AND " + COLUMN_SQ_LNKI_LINK + " = ?" - + " WHERE " + COLUMN_SQI_CONFIG + " = ?" - + " AND (" + COLUMN_SQ_LNKI_LINK + " = ?" + " OR " + COLUMN_SQ_LNKI_LINK + " IS NULL)" - + " ORDER BY " + COLUMN_SQI_INDEX; - - // DML: Fetch inputs and values for a given job + "SELECT " + + COLUMN_SQI_ID + ", " + + COLUMN_SQI_NAME + ", " + + COLUMN_SQI_CONFIG + ", " + + COLUMN_SQI_INDEX + ", " + + COLUMN_SQI_TYPE + ", " + + COLUMN_SQI_STRMASK + ", " + + COLUMN_SQI_STRLENGTH + "," + + COLUMN_SQI_ENUMVALS + ", " + + COLUMN_SQ_LNKI_VALUE + + " FROM " + TABLE_SQ_INPUT + + " LEFT OUTER JOIN " + TABLE_SQ_LINK_INPUT + + " ON " + COLUMN_SQ_LNKI_INPUT + " = " + COLUMN_SQI_ID + + " AND " + COLUMN_SQ_LNKI_LINK + " = ?" + + " WHERE " + COLUMN_SQI_CONFIG + " = ?" + + " AND (" + COLUMN_SQ_LNKI_LINK + " = ?" + " OR " + COLUMN_SQ_LNKI_LINK + " IS NULL)" + + " ORDER BY " + COLUMN_SQI_INDEX; + + //DML: Fetch inputs and values for a given job public static final String STMT_FETCH_JOB_INPUT = - "SELECT " - + COLUMN_SQI_ID + ", " - + COLUMN_SQI_NAME + ", " - + COLUMN_SQI_CONFIG + ", " - + COLUMN_SQI_INDEX + ", " - + COLUMN_SQI_TYPE + ", " - + COLUMN_SQI_STRMASK + ", " - + COLUMN_SQI_STRLENGTH + ", " - + COLUMN_SQI_ENUMVALS + ", " - + COLUMN_SQBI_VALUE - + " FROM " + TABLE_SQ_INPUT - + " LEFT OUTER JOIN " + TABLE_SQ_JOB_INPUT - + " ON " + COLUMN_SQBI_INPUT + " = " + COLUMN_SQI_ID - + " AND " + COLUMN_SQBI_JOB + " = ?" - + " WHERE " + COLUMN_SQI_CONFIG + " = ?" - + " AND (" + COLUMN_SQBI_JOB + " = ? OR " + COLUMN_SQBI_JOB + " IS NULL)" - + " ORDER BY " + COLUMN_SQI_INDEX; - - // DML: Insert connector base - public static final String STMT_INSERT_CONNECTOR_BASE = - "INSERT INTO " + TABLE_SQ_CONNECTOR + " (" - + COLUMN_SQC_NAME + ", " - + COLUMN_SQC_CLASS + ", " - + COLUMN_SQC_VERSION - + ") VALUES (?, ?, ?)"; - - public static final String STMT_INSERT_CONNECTOR_WITHOUT_SUPPORTED_DIRECTIONS = - "INSERT INTO " + TABLE_SQ_CONNECTOR + " (" - + COLUMN_SQC_NAME + ", " - + COLUMN_SQC_CLASS + ", " - + COLUMN_SQC_VERSION - + ") VALUES (?, ?, ?)"; - - // DML: Insert config base - public static final String STMT_INSERT_CONFIG_BASE = - "INSERT INTO " + TABLE_SQ_CONFIG + " (" - + COLUMN_SQ_CFG_CONNECTOR + ", " - + COLUMN_SQ_CFG_NAME + ", " - + COLUMN_SQ_CFG_TYPE + ", " - + COLUMN_SQ_CFG_INDEX - + ") VALUES ( ?, ?, ?, ?)"; - - // DML: Insert config input - public static final String STMT_INSERT_INPUT_BASE = - "INSERT INTO " + TABLE_SQ_INPUT + " (" - + COLUMN_SQI_NAME + ", " - + COLUMN_SQI_CONFIG + ", " - + COLUMN_SQI_INDEX + ", " - + COLUMN_SQI_TYPE + ", " - + COLUMN_SQI_STRMASK + ", " - + COLUMN_SQI_STRLENGTH + ", " - + COLUMN_SQI_ENUMVALS - + ") VALUES (?, ?, ?, ?, ?, ?, ?)"; - - // Delete all configs for a given connector - public static final String STMT_DELETE_CONFIGS_FOR_CONNECTOR = - "DELETE FROM " + TABLE_SQ_CONFIG - + " WHERE " + COLUMN_SQ_CFG_CONNECTOR + " = ?"; - - // Delete all inputs for a given connector - public static final String STMT_DELETE_INPUTS_FOR_CONNECTOR = - "DELETE FROM " + TABLE_SQ_INPUT - + " WHERE " - + COLUMN_SQI_CONFIG - + " IN (SELECT " - + COLUMN_SQ_CFG_ID - + " FROM " + TABLE_SQ_CONFIG - + " WHERE " - + COLUMN_SQ_CFG_CONNECTOR + " = ?)"; - - // Delete all driver inputs - public static final String STMT_DELETE_DRIVER_INPUTS = - "DELETE FROM " + TABLE_SQ_INPUT - + " WHERE " - + COLUMN_SQI_CONFIG - + " IN (SELECT " - + COLUMN_SQ_CFG_ID - + " FROM " + TABLE_SQ_CONFIG - + " WHERE " - + COLUMN_SQ_CFG_CONNECTOR + " IS NULL)"; - - // Delete all driver configs - public static final String STMT_DELETE_DRIVER_CONFIGS = - "DELETE FROM " + TABLE_SQ_CONFIG - + " WHERE " + COLUMN_SQ_CFG_CONNECTOR + " IS NULL"; - - - // Update the connector - public static final String STMT_UPDATE_CONNECTOR = - "UPDATE " + TABLE_SQ_CONNECTOR - + " SET " + COLUMN_SQC_NAME + " = ?, " - + COLUMN_SQC_CLASS + " = ?, " - + COLUMN_SQC_VERSION + " = ? " - + " WHERE " + COLUMN_SQC_ID + " = ?"; - - // DML: Insert new connection - @Deprecated // used only in upgrade path - public static final String STMT_INSERT_CONNECTION = - "INSERT INTO " + TABLE_SQ_CONNECTION + " (" - + COLUMN_SQN_NAME + ", " - + COLUMN_SQN_CONNECTOR + "," - + COLUMN_SQN_ENABLED + ", " - + COLUMN_SQN_CREATION_USER + ", " - + COLUMN_SQN_CREATION_DATE + ", " - + COLUMN_SQN_UPDATE_USER + ", " + COLUMN_SQN_UPDATE_DATE + "SELECT " + + COLUMN_SQI_ID + ", " + + COLUMN_SQI_NAME + ", " + + COLUMN_SQI_CONFIG + ", " + + COLUMN_SQI_INDEX + ", " + + COLUMN_SQI_TYPE + ", " + + COLUMN_SQI_STRMASK + ", " + + COLUMN_SQI_STRLENGTH + ", " + + COLUMN_SQI_ENUMVALS + ", " + + COLUMN_SQBI_VALUE + + " FROM " + TABLE_SQ_INPUT + + " LEFT OUTER JOIN " + TABLE_SQ_JOB_INPUT + + " ON " + COLUMN_SQBI_INPUT + " = " + COLUMN_SQI_ID + + " AND " + COLUMN_SQBI_JOB + " = ?" + + " WHERE " + COLUMN_SQI_CONFIG + " = ?" + + " AND (" + COLUMN_SQBI_JOB + " = ? OR " + COLUMN_SQBI_JOB + " IS NULL)" + + " ORDER BY " + COLUMN_SQI_INDEX; + + //DML: Insert into configurable + public static final String STMT_INSERT_INTO_CONFIGURABLE = + "INSERT INTO " + TABLE_SQ_CONFIGURABLE + " (" + + COLUMN_SQC_NAME + ", " + + COLUMN_SQC_CLASS + ", " + + COLUMN_SQC_VERSION + ", " + + COLUMN_SQC_TYPE + + ") VALUES (?, ?, ?, ?)"; + + @Deprecated // used only in the upgrade path + public static final String STMT_INSERT_INTO_CONFIGURABLE_WITHOUT_SUPPORTED_DIRECTIONS = + "INSERT INTO " + TABLE_SQ_CONNECTOR+ " (" + + COLUMN_SQC_NAME + ", " + + COLUMN_SQC_CLASS + ", " + + COLUMN_SQC_VERSION + + ") VALUES (?, ?, ?)"; + + //DML: Insert into config + public static final String STMT_INSERT_INTO_CONFIG = + "INSERT INTO " + TABLE_SQ_CONFIG + " (" + + COLUMN_SQ_CFG_CONFIGURABLE + ", " + + COLUMN_SQ_CFG_NAME + ", " + + COLUMN_SQ_CFG_TYPE + ", " + + COLUMN_SQ_CFG_INDEX + + ") VALUES ( ?, ?, ?, ?)"; + + //DML: Insert into config input + public static final String STMT_INSERT_INTO_INPUT = + "INSERT INTO " + TABLE_SQ_INPUT + " (" + + COLUMN_SQI_NAME + ", " + + COLUMN_SQI_CONFIG + ", " + + COLUMN_SQI_INDEX + ", " + + COLUMN_SQI_TYPE + ", " + + COLUMN_SQI_STRMASK + ", " + + COLUMN_SQI_STRLENGTH + ", " + + COLUMN_SQI_ENUMVALS + ") VALUES (?, ?, ?, ?, ?, ?, ?)"; + //Delete all configs for a given configurable + public static final String STMT_DELETE_CONFIGS_FOR_CONFIGURABLE = + "DELETE FROM " + TABLE_SQ_CONFIG + + " WHERE " + COLUMN_SQ_CFG_CONFIGURABLE + " = ?"; + + //Delete all inputs for a given configurable + public static final String STMT_DELETE_INPUTS_FOR_CONFIGURABLE = + "DELETE FROM " + TABLE_SQ_INPUT + + " WHERE " + + COLUMN_SQI_CONFIG + + " IN (SELECT " + + COLUMN_SQ_CFG_ID + + " FROM " + TABLE_SQ_CONFIG + + " WHERE " + + COLUMN_SQ_CFG_CONFIGURABLE + " = ?)"; + + //Update the configurable + public static final String STMT_UPDATE_CONFIGURABLE = + "UPDATE " + TABLE_SQ_CONFIGURABLE + + " SET " + COLUMN_SQC_NAME + " = ?, " + + COLUMN_SQC_CLASS + " = ?, " + + COLUMN_SQC_VERSION + " = ?, " + + COLUMN_SQC_TYPE + " = ? " + + " WHERE " + COLUMN_SQC_ID + " = ?"; + + //DML: Insert new connection + @Deprecated // used only in upgrade path + public static final String STMT_INSERT_CONNECTION = + "INSERT INTO " + TABLE_SQ_CONNECTION + " (" + + COLUMN_SQN_NAME + ", " + + COLUMN_SQN_CONNECTOR + "," + + COLUMN_SQN_ENABLED + ", " + + COLUMN_SQN_CREATION_USER + ", " + + COLUMN_SQN_CREATION_DATE + ", " + + COLUMN_SQN_UPDATE_USER + ", " + COLUMN_SQN_UPDATE_DATE + + ") VALUES (?, ?, ?, ?, ?, ?, ?)"; + // DML: Insert new link public static final String STMT_INSERT_LINK = "INSERT INTO " + TABLE_SQ_LINK + " (" + COLUMN_SQ_LNK_NAME + ", " - + COLUMN_SQ_LNK_CONNECTOR + ", " + + COLUMN_SQ_LNK_CONFIGURABLE + ", " + COLUMN_SQ_LNK_ENABLED + ", " + COLUMN_SQ_LNK_CREATION_USER + ", " + COLUMN_SQ_LNK_CREATION_DATE + ", " @@ -798,7 +783,7 @@ public static final String STMT_SELECT_DEPRECATED_OR_NEW_SYSTEM_VERSION = "SELECT " + COLUMN_SQ_LNK_ID + ", " + COLUMN_SQ_LNK_NAME + ", " - + COLUMN_SQ_LNK_CONNECTOR + ", " + + COLUMN_SQ_LNK_CONFIGURABLE + ", " + COLUMN_SQ_LNK_ENABLED + ", " + COLUMN_SQ_LNK_CREATION_USER + ", " + COLUMN_SQ_LNK_CREATION_DATE + ", " @@ -807,12 +792,12 @@ public static final String STMT_SELECT_DEPRECATED_OR_NEW_SYSTEM_VERSION = + " FROM " + TABLE_SQ_LINK + " WHERE " + COLUMN_SQ_LNK_ID + " = ?"; - // DML: Select all connections + // DML: Select all links public static final String STMT_SELECT_LINK_ALL = "SELECT " + COLUMN_SQ_LNK_ID + ", " + COLUMN_SQ_LNK_NAME + ", " - + COLUMN_SQ_LNK_CONNECTOR + ", " + + COLUMN_SQ_LNK_CONFIGURABLE + ", " + COLUMN_SQ_LNK_ENABLED + ", " + COLUMN_SQ_LNK_CREATION_USER + ", " + COLUMN_SQ_LNK_CREATION_DATE + ", " @@ -820,19 +805,19 @@ public static final String STMT_SELECT_DEPRECATED_OR_NEW_SYSTEM_VERSION = + COLUMN_SQ_LNK_UPDATE_DATE + " FROM " + TABLE_SQ_LINK; - // DML: Select all connections for a specific connector. - public static final String STMT_SELECT_LINK_FOR_CONNECTOR = + // DML: Select all links for a specific connector. + public static final String STMT_SELECT_LINK_FOR_CONNECTOR_CONFIGURABLE = "SELECT " + COLUMN_SQ_LNK_ID + ", " + COLUMN_SQ_LNK_NAME + ", " - + COLUMN_SQ_LNK_CONNECTOR + ", " + + COLUMN_SQ_LNK_CONFIGURABLE + ", " + COLUMN_SQ_LNK_ENABLED + ", " + COLUMN_SQ_LNK_CREATION_USER + ", " + COLUMN_SQ_LNK_CREATION_DATE + ", " + COLUMN_SQ_LNK_UPDATE_USER + ", " + COLUMN_SQ_LNK_UPDATE_DATE + " FROM " + TABLE_SQ_LINK - + " WHERE " + COLUMN_SQ_LNK_CONNECTOR + " = ?"; + + " WHERE " + COLUMN_SQ_LNK_CONFIGURABLE + " = ?"; // DML: Check if given link exists public static final String STMT_SELECT_LINK_CHECK_BY_ID = @@ -897,34 +882,35 @@ public static final String STMT_SELECT_DEPRECATED_OR_NEW_SYSTEM_VERSION = + " ON " + COLUMN_SQB_FROM_LINK + " = " + COLUMN_SQ_LNK_ID + " WHERE " + COLUMN_SQ_LNK_ID + " = ? "; - // DML: Select all jobs - public static final String STMT_SELECT_JOB = - "SELECT " - + "FROM_LINK." + COLUMN_SQ_LNK_CONNECTOR + ", " - + "TO_LINK." + COLUMN_SQ_LNK_CONNECTOR + ", " - + "JOB." + COLUMN_SQB_ID + ", " - + "JOB." + COLUMN_SQB_NAME + ", " - + "JOB." + COLUMN_SQB_FROM_LINK + ", " - + "JOB." + COLUMN_SQB_TO_LINK + ", " - + "JOB." + COLUMN_SQB_ENABLED + ", " - + "JOB." + COLUMN_SQB_CREATION_USER + ", " - + "JOB." + COLUMN_SQB_CREATION_DATE + ", " - + "JOB." + COLUMN_SQB_UPDATE_USER + ", " - + "JOB." + COLUMN_SQB_UPDATE_DATE - + " FROM " + TABLE_SQ_JOB + " JOB" - + " LEFT JOIN " + TABLE_SQ_LINK + " FROM_LINK" - + " ON " + COLUMN_SQB_FROM_LINK + " = FROM_LINK." + COLUMN_SQ_LNK_ID - + " LEFT JOIN " + TABLE_SQ_LINK + " TO_LINK" - + " ON " + COLUMN_SQB_TO_LINK + " = TO_LINK." + COLUMN_SQ_LNK_ID; + //DML: Select all jobs + public static final String STMT_SELECT_JOB = + "SELECT " + + "FROM_CONNECTOR." + COLUMN_SQ_LNK_CONFIGURABLE + ", " + + "TO_CONNECTOR." + COLUMN_SQ_LNK_CONFIGURABLE + ", " + + "JOB." + COLUMN_SQB_ID + ", " + + "JOB." + COLUMN_SQB_NAME + ", " + + "JOB." + COLUMN_SQB_FROM_LINK + ", " + + "JOB." + COLUMN_SQB_TO_LINK + ", " + + "JOB." + COLUMN_SQB_ENABLED + ", " + + "JOB." + COLUMN_SQB_CREATION_USER + ", " + + "JOB." + COLUMN_SQB_CREATION_DATE + ", " + + "JOB." + COLUMN_SQB_UPDATE_USER + ", " + + "JOB." + COLUMN_SQB_UPDATE_DATE + + " FROM " + TABLE_SQ_JOB + " JOB" + + " LEFT JOIN " + TABLE_SQ_LINK + " FROM_CONNECTOR" + + " ON " + COLUMN_SQB_FROM_LINK + " = FROM_CONNECTOR." + COLUMN_SQ_LNK_ID + + " LEFT JOIN " + TABLE_SQ_LINK + " TO_CONNECTOR" + + " ON " + COLUMN_SQB_TO_LINK + " = TO_CONNECTOR." + COLUMN_SQ_LNK_ID; // DML: Select one specific job public static final String STMT_SELECT_JOB_SINGLE_BY_ID = STMT_SELECT_JOB + " WHERE " + COLUMN_SQB_ID + " = ?"; // DML: Select all jobs for a Connector - public static final String STMT_SELECT_ALL_JOBS_FOR_CONNECTOR = STMT_SELECT_JOB - + " WHERE FROM_LINK." + COLUMN_SQ_LNK_CONNECTOR + " = ? OR TO_LINK." - + COLUMN_SQ_LNK_CONNECTOR + " = ?"; + public static final String STMT_SELECT_ALL_JOBS_FOR_CONNECTOR_CONFIGURABLE = + STMT_SELECT_JOB + + " WHERE FROM_LINK." + COLUMN_SQ_LNK_CONFIGURABLE + " = ? OR TO_LINK." + + COLUMN_SQ_LNK_CONFIGURABLE + " = ?"; // DML: Insert new submission public static final String STMT_INSERT_SUBMISSION = @@ -1196,7 +1182,7 @@ public static final String STMT_SELECT_DEPRECATED_OR_NEW_SYSTEM_VERSION = public static final String QUERY_UPGRADE_DROP_TABLE_SQ_CONNECTION_CONSTRAINT_1 = "ALTER TABLE " + TABLE_SQ_CONNECTION_INPUT + " DROP CONSTRAINT " + CONSTRAINT_SQNI_SQI; public static final String QUERY_UPGRADE_DROP_TABLE_SQ_CONNECTION_CONSTRAINT_2 = "ALTER TABLE " - + TABLE_SQ_CONNECTION_INPUT + " DROP CONSTRAINT " + CONSTRAINT_SQNI_SQN; + + TABLE_SQ_CONNECTION_INPUT + " DROP CONSTRAINT " + CONSTRAINT_SQNI_SQN; public static final String QUERY_UPGRADE_DROP_TABLE_SQ_CONNECTION_CONSTRAINT_3 = "ALTER TABLE " + TABLE_SQ_JOB + " DROP CONSTRAINT " + CONSTRAINT_SQB_SQN_FROM; @@ -1225,6 +1211,15 @@ public static final String STMT_SELECT_DEPRECATED_OR_NEW_SYSTEM_VERSION = public static final String QUERY_UPGRADE_RENAME_TABLE_SQ_CONNECTION_COLUMN_8 = "RENAME COLUMN " + TABLE_SQ_LINK + "." + COLUMN_SQN_ENABLED + " TO " + COLUMN_SQ_LNK_ENABLED; + // rename the constraint CONSTRAINT_SQF_SQC to CONSTRAINT_SQ_CFG_SQC + public static final String QUERY_UPGRADE_DROP_TABLE_SQ_CONNECTION_CONNECTOR_CONSTRAINT = "ALTER TABLE " + + TABLE_SQ_LINK + " DROP CONSTRAINT " + CONSTRAINT_SQN_SQC; + + public static final String QUERY_UPGRADE_ADD_TABLE_SQ_LINK_CONNECTOR_CONSTRAINT = "ALTER TABLE " + + TABLE_SQ_LINK + " ADD CONSTRAINT " + CONSTRAINT_SQ_LNK_SQC + " " + "FOREIGN KEY (" + + COLUMN_SQ_LNK_CONNECTOR + ") " + "REFERENCES " + TABLE_SQ_CONNECTOR + " (" + COLUMN_SQC_ID + + ")"; + // table rename for CONNECTION_INPUT -> LINK_INPUT public static final String QUERY_UPGRADE_RENAME_TABLE_SQ_CONNECTION_INPUT_TO_SQ_LINK_INPUT = "RENAME TABLE " + TABLE_SQ_CONNECTION_INPUT + " TO SQ_LINK_INPUT"; @@ -1262,6 +1257,23 @@ public static final String STMT_SELECT_DEPRECATED_OR_NEW_SYSTEM_VERSION = public static final String QUERY_UPGRADE_RENAME_TABLE_SQ_FORM_COLUMN_6 = "RENAME COLUMN " + TABLE_SQ_CONFIG + "." + COLUMN_SQF_INDEX + " TO " + COLUMN_SQ_CFG_INDEX; + // rename the constraint CONSTRAINT_SQF_SQC to CONSTRAINT_SQ_CFG_SQC + public static final String QUERY_UPGRADE_DROP_TABLE_SQ_FORM_CONNECTOR_CONSTRAINT = "ALTER TABLE " + + TABLE_SQ_CONFIG + " DROP CONSTRAINT " + CONSTRAINT_SQF_SQC; + + public static final String QUERY_UPGRADE_ADD_TABLE_SQ_CONFIG_CONNECTOR_CONSTRAINT = "ALTER TABLE " + + TABLE_SQ_CONFIG + + " ADD CONSTRAINT " + + CONSTRAINT_SQ_CFG_SQC + + " " + + "FOREIGN KEY (" + + COLUMN_SQ_CFG_CONNECTOR + + ") " + + "REFERENCES " + + TABLE_SQ_CONNECTOR + + " (" + + COLUMN_SQC_ID + + ")"; // column rename and constraint add for SQ_INPUT public static final String QUERY_UPGRADE_RENAME_TABLE_SQ_INPUT_FORM_COLUMN = "RENAME COLUMN " @@ -1285,52 +1297,131 @@ public static final String STMT_SELECT_DEPRECATED_OR_NEW_SYSTEM_VERSION = + TABLE_SQ_JOB + " ADD CONSTRAINT " + CONSTRAINT_SQB_SQ_LNK_TO + " FOREIGN KEY (" + COLUMN_SQB_TO_LINK + ") REFERENCES " + TABLE_SQ_LINK + " (" + COLUMN_SQ_LNK_ID + ")"; - public static final String QUERY_UPGRADE_TABLE_SQ_JOB_ADD_UNIQUE_CONSTRAINT_NAME = - "ALTER TABLE " + TABLE_SQ_JOB + " ADD CONSTRAINT " - + CONSTRAINT_SQB_NAME_UNIQUE + " UNIQUE (" + COLUMN_SQB_NAME + ")"; - - public static final String QUERY_UPGRADE_TABLE_SQ_LINK_ADD_UNIQUE_CONSTRAINT_NAME = - "ALTER TABLE " + TABLE_SQ_LINK + " ADD CONSTRAINT " - + CONSTRAINT_SQ_LNK_NAME_UNIQUE + " UNIQUE (" + COLUMN_SQ_LNK_NAME + ")"; - + public static final String QUERY_UPGRADE_TABLE_SQ_JOB_ADD_UNIQUE_CONSTRAINT_NAME = "ALTER TABLE " + + TABLE_SQ_JOB + " ADD CONSTRAINT " + CONSTRAINT_SQB_NAME_UNIQUE + " UNIQUE (" + + COLUMN_SQB_NAME + ")"; + + public static final String QUERY_UPGRADE_TABLE_SQ_LINK_ADD_UNIQUE_CONSTRAINT_NAME = "ALTER TABLE " + + TABLE_SQ_LINK + + " ADD CONSTRAINT " + + CONSTRAINT_SQ_LNK_NAME_UNIQUE + + " UNIQUE (" + + COLUMN_SQ_LNK_NAME + ")"; + + // SQOOP-1557 upgrade queries for table rename for CONNECTOR-> CONFIGURABLE + + // drop the SQ_CONFIG FK for connector table + public static final String QUERY_UPGRADE_DROP_TABLE_SQ_CONFIG_CONNECTOR_CONSTRAINT = "ALTER TABLE " + + TABLE_SQ_CONFIG + " DROP CONSTRAINT " + CONSTRAINT_SQ_CFG_SQC; + + // drop the SQ_LINK FK for connector table + public static final String QUERY_UPGRADE_DROP_TABLE_SQ_LINK_CONSTRAINT = "ALTER TABLE " + + TABLE_SQ_LINK + " DROP CONSTRAINT " + CONSTRAINT_SQ_LNK_SQC; + + // drop the SQ_CONNECTOR_DIRECTION FK for connector table + public static final String QUERY_UPGRADE_DROP_TABLE_SQ_CONNECTOR_DIRECTION_CONSTRAINT = "ALTER TABLE " + + TABLE_SQ_CONNECTOR_DIRECTIONS + " DROP CONSTRAINT " + CONSTRAINT_SQCD_SQC; + + // rename + public static final String QUERY_UPGRADE_RENAME_TABLE_SQ_CONNECTOR_TO_SQ_CONFIGURABLE = "RENAME TABLE " + + TABLE_SQ_CONNECTOR + " TO SQ_CONFIGURABLE"; + + public static final String QUERY_UPGRADE_RENAME_TABLE_SQ_CONFIG_COLUMN_1 = "RENAME COLUMN " + + TABLE_SQ_CONFIG + "." + COLUMN_SQ_CFG_CONNECTOR + " TO " + COLUMN_SQ_CFG_CONFIGURABLE; + + public static final String QUERY_UPGRADE_RENAME_TABLE_SQ_LINK_COLUMN_1 = "RENAME COLUMN " + + TABLE_SQ_LINK + "." + COLUMN_SQ_LNK_CONNECTOR + " TO " + COLUMN_SQ_LNK_CONFIGURABLE; + + // add a type column to the configurable + public static final String QUERY_UPGRADE_TABLE_SQ_CONFIGURABLE_ADD_COLUMN_SQC_TYPE = "ALTER TABLE " + + TABLE_SQ_CONFIGURABLE + " ADD COLUMN " + COLUMN_SQC_TYPE + " VARCHAR(32)"; + + // add the constraints back for SQ_CONFIG + public static final String QUERY_UPGRADE_ADD_TABLE_SQ_CONFIG_CONFIGURABLE_CONSTRAINT = "ALTER TABLE " + + TABLE_SQ_CONFIG + + " ADD CONSTRAINT " + + CONSTRAINT_SQ_CFG_SQC + + " " + + "FOREIGN KEY (" + + COLUMN_SQ_CFG_CONFIGURABLE + + ") " + + "REFERENCES " + + TABLE_SQ_CONFIGURABLE + + " (" + + COLUMN_SQC_ID + ")"; + + // add the constraints back for SQ_LINK + public static final String QUERY_UPGRADE_ADD_TABLE_SQ_LINK_CONFIGURABLE_CONSTRAINT = "ALTER TABLE " + + TABLE_SQ_LINK + + " ADD CONSTRAINT " + + CONSTRAINT_SQ_LNK_SQC + + " " + + "FOREIGN KEY (" + + COLUMN_SQ_LNK_CONFIGURABLE + + ") " + + "REFERENCES " + + TABLE_SQ_CONFIGURABLE + + " (" + + COLUMN_SQC_ID + ")"; + + // add the constraints back for SQ_CONNECTOR_DIRECTION + public static final String QUERY_UPGRADE_ADD_TABLE_SQ_CONNECTOR_DIRECTION_CONSTRAINT = "ALTER TABLE " + + TABLE_SQ_CONNECTOR_DIRECTIONS + + " ADD CONSTRAINT " + + CONSTRAINT_SQCD_SQC + + " " + + "FOREIGN KEY (" + + COLUMN_SQCD_CONNECTOR + + ") " + + "REFERENCES " + + TABLE_SQ_CONFIGURABLE + + " (" + COLUMN_SQC_ID + ")"; + + // add the constraints back for SQ_CONNECTOR_DIRECTION + public static final String QUERY_UPGRADE_ADD_TABLE_SQ_CONNECTOR_DIRECTION_CONFIGURABLE_CONSTRAINT = "ALTER TABLE " + + TABLE_SQ_LINK + " ADD CONSTRAINT " + CONSTRAINT_SQCD_SQC + " " + + "FOREIGN KEY (" + COLUMN_SQCD_CONNECTOR + ") " + + "REFERENCES " + TABLE_SQ_CONFIGURABLE + " (" + COLUMN_SQC_ID + ")"; + + // Config and Connector directions public static final String STMT_INSERT_DIRECTION = "INSERT INTO " + TABLE_SQ_DIRECTION + " " - + "(" + COLUMN_SQD_NAME + ") VALUES (?)"; + + "(" + COLUMN_SQD_NAME + ") VALUES (?)"; - // DML: Fetch all configs public static final String STMT_FETCH_CONFIG_DIRECTIONS = - "SELECT " - + COLUMN_SQ_CFG_ID + ", " - + COLUMN_SQ_CFG_DIRECTION - + " FROM " + TABLE_SQ_CONFIG; + "SELECT " + + COLUMN_SQ_CFG_ID + ", " + + COLUMN_SQ_CFG_DIRECTION + + " FROM " + TABLE_SQ_CONFIG; public static final String QUERY_UPGRADE_TABLE_SQ_CONFIG_DROP_COLUMN_SQ_CFG_DIRECTION_VARCHAR = - "ALTER TABLE " + TABLE_SQ_CONFIG + " DROP COLUMN " + COLUMN_SQ_CFG_DIRECTION; + "ALTER TABLE " + TABLE_SQ_CONFIG + " DROP COLUMN " + COLUMN_SQ_CFG_DIRECTION; + public static final String STMT_INSERT_SQ_CONNECTOR_DIRECTIONS = - "INSERT INTO " + TABLE_SQ_CONNECTOR_DIRECTIONS + " " - + "(" + COLUMN_SQCD_CONNECTOR + ", " + COLUMN_SQCD_DIRECTION + ")" - + " VALUES (?, ?)"; + "INSERT INTO " + TABLE_SQ_CONNECTOR_DIRECTIONS + " " + + "(" + COLUMN_SQCD_CONNECTOR + ", " + COLUMN_SQCD_DIRECTION + ")" + + " VALUES (?, ?)"; public static final String STMT_INSERT_SQ_CONFIG_DIRECTIONS = - "INSERT INTO " + TABLE_SQ_CONFIG_DIRECTIONS + " " - + "(" + COLUMN_SQ_CFG_DIR_CONFIG + ", " + COLUMN_SQ_CFG_DIR_DIRECTION + ")" - + " VALUES (?, ?)"; + "INSERT INTO " + TABLE_SQ_CONFIG_DIRECTIONS + " " + + "(" + COLUMN_SQ_CFG_DIR_CONFIG + ", " + COLUMN_SQ_CFG_DIR_DIRECTION + ")" + + " VALUES (?, ?)"; public static final String STMT_SELECT_SQ_CONNECTOR_DIRECTIONS_ALL = - "SELECT " + COLUMN_SQCD_CONNECTOR + ", " + COLUMN_SQCD_DIRECTION - + " FROM " + TABLE_SQ_CONNECTOR_DIRECTIONS; + "SELECT " + COLUMN_SQCD_CONNECTOR + ", " + COLUMN_SQCD_DIRECTION + + " FROM " + TABLE_SQ_CONNECTOR_DIRECTIONS; public static final String STMT_SELECT_SQ_CONNECTOR_DIRECTIONS = - STMT_SELECT_SQ_CONNECTOR_DIRECTIONS_ALL + " WHERE " - + COLUMN_SQCD_CONNECTOR + " = ?"; + STMT_SELECT_SQ_CONNECTOR_DIRECTIONS_ALL + " WHERE " + + COLUMN_SQCD_CONNECTOR + " = ?"; public static final String STMT_SELECT_SQ_CONFIG_DIRECTIONS_ALL = - "SELECT " + COLUMN_SQ_CFG_DIR_CONFIG + ", " + COLUMN_SQ_CFG_DIR_DIRECTION - + " FROM " + TABLE_SQ_CONFIG_DIRECTIONS; + "SELECT " + COLUMN_SQ_CFG_DIR_CONFIG + ", " + COLUMN_SQ_CFG_DIR_DIRECTION + + " FROM " + TABLE_SQ_CONFIG_DIRECTIONS; public static final String STMT_SELECT_SQ_CONFIG_DIRECTIONS = - STMT_SELECT_SQ_CONFIG_DIRECTIONS_ALL + " WHERE " - + COLUMN_SQ_CFG_DIR_CONFIG + " = ?"; + STMT_SELECT_SQ_CONFIG_DIRECTIONS_ALL + " WHERE " + + COLUMN_SQ_CFG_DIR_CONFIG + " = ?"; private DerbySchemaQuery() { // Disable explicit object creation http://git-wip-us.apache.org/repos/asf/sqoop/blob/151a0a12/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java index 366e4ee..b22dbd5 100644 --- a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java +++ b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java @@ -108,7 +108,7 @@ abstract public class DerbyTestCase { return nameToIdListMap; } - void renameEntities() throws Exception { + void renameEntitiesForConnectionAndForm() throws Exception { // SQ_LINK schema upgrades // drop the constraint before rename and add it back later runQuery(QUERY_UPGRADE_DROP_TABLE_SQ_CONNECTION_CONSTRAINT_1); @@ -124,6 +124,8 @@ abstract public class DerbyTestCase { runQuery(QUERY_UPGRADE_RENAME_TABLE_SQ_CONNECTION_COLUMN_6); runQuery(QUERY_UPGRADE_RENAME_TABLE_SQ_CONNECTION_COLUMN_7); runQuery(QUERY_UPGRADE_RENAME_TABLE_SQ_CONNECTION_COLUMN_8); + runQuery(QUERY_UPGRADE_DROP_TABLE_SQ_CONNECTION_CONNECTOR_CONSTRAINT); + runQuery(QUERY_UPGRADE_ADD_TABLE_SQ_LINK_CONNECTOR_CONSTRAINT); // SQ_LINK_INPUT schema upgrades runQuery(QUERY_UPGRADE_RENAME_TABLE_SQ_CONNECTION_INPUT_TO_SQ_LINK_INPUT); @@ -141,6 +143,8 @@ abstract public class DerbyTestCase { runQuery(QUERY_UPGRADE_RENAME_TABLE_SQ_FORM_COLUMN_4); runQuery(QUERY_UPGRADE_RENAME_TABLE_SQ_FORM_COLUMN_5); runQuery(QUERY_UPGRADE_RENAME_TABLE_SQ_FORM_COLUMN_6); + runQuery(QUERY_UPGRADE_DROP_TABLE_SQ_FORM_CONNECTOR_CONSTRAINT); + runQuery(QUERY_UPGRADE_ADD_TABLE_SQ_CONFIG_CONNECTOR_CONSTRAINT); // SQ_INPUT schema upgrades runQuery(QUERY_UPGRADE_RENAME_TABLE_SQ_INPUT_FORM_COLUMN); @@ -151,12 +155,30 @@ abstract public class DerbyTestCase { runQuery(QUERY_UPGRADE_RENAME_TABLE_SQ_JOB_COLUMN_2); runQuery(QUERY_UPGRADE_ADD_TABLE_SQ_JOB_CONSTRAINT_FROM); runQuery(QUERY_UPGRADE_ADD_TABLE_SQ_JOB_CONSTRAINT_TO); + } + + void renameConnectorToConfigurable() throws Exception { + + // SQ_CONNECTOR to SQ_CONFIGURABLE upgrade + runQuery(QUERY_UPGRADE_DROP_TABLE_SQ_CONFIG_CONNECTOR_CONSTRAINT); + runQuery(QUERY_UPGRADE_DROP_TABLE_SQ_LINK_CONSTRAINT); + runQuery(QUERY_UPGRADE_DROP_TABLE_SQ_CONNECTOR_DIRECTION_CONSTRAINT); + + runQuery(QUERY_UPGRADE_RENAME_TABLE_SQ_CONNECTOR_TO_SQ_CONFIGURABLE); + runQuery(QUERY_UPGRADE_RENAME_TABLE_SQ_CONFIG_COLUMN_1); + runQuery(QUERY_UPGRADE_RENAME_TABLE_SQ_LINK_COLUMN_1); + runQuery(QUERY_UPGRADE_TABLE_SQ_CONFIGURABLE_ADD_COLUMN_SQC_TYPE); + + runQuery(QUERY_UPGRADE_ADD_TABLE_SQ_CONFIG_CONFIGURABLE_CONSTRAINT); + runQuery(QUERY_UPGRADE_ADD_TABLE_SQ_LINK_CONFIGURABLE_CONSTRAINT); + runQuery(QUERY_UPGRADE_ADD_TABLE_SQ_CONNECTOR_DIRECTION_CONSTRAINT); } /** - * Create derby schema. - * FIX(SQOOP-1583): This code needs heavy refactoring. Details are in the ticket. + * Create derby schema. FIX(SQOOP-1583): This code needs heavy refactoring. + * Details are in the ticket. + * * @throws Exception */ protected void createOrUpgradeSchema(int version) throws Exception { @@ -196,11 +218,11 @@ abstract public class DerbyTestCase { runQuery(QUERY_UPGRADE_TABLE_SQ_JOB_ADD_CONSTRAINT_SQB_SQN_FROM); runQuery(QUERY_UPGRADE_TABLE_SQ_JOB_ADD_CONSTRAINT_SQB_SQN_TO); runQuery(QUERY_UPGRADE_TABLE_SQ_JOB_REMOVE_COLUMN_SQB_TYPE); - // todo:rename entities code - renameEntities(); + renameEntitiesForConnectionAndForm(); // add the name constraints runQuery(QUERY_UPGRADE_TABLE_SQ_JOB_ADD_UNIQUE_CONSTRAINT_NAME); runQuery(QUERY_UPGRADE_TABLE_SQ_LINK_ADD_UNIQUE_CONSTRAINT_NAME); + runQuery(QUERY_UPGRADE_TABLE_SQ_CONFIG_DROP_COLUMN_SQ_CFG_DIRECTION_VARCHAR); runQuery(QUERY_CREATE_TABLE_SQ_CONNECTOR_DIRECTIONS); runQuery(QUERY_CREATE_TABLE_SQ_CONFIG_DIRECTIONS); @@ -208,12 +230,13 @@ abstract public class DerbyTestCase { for (Direction direction : Direction.values()) { runQuery(STMT_INSERT_DIRECTION, direction.toString()); } + renameConnectorToConfigurable(); } + // deprecated repository version runQuery("INSERT INTO SQOOP.SQ_SYSTEM(SQM_KEY, SQM_VALUE) VALUES('version', '" + version + "')"); - // why the heck do we insert driver version here? - runQuery("INSERT INTO SQOOP.SQ_SYSTEM(SQM_KEY, SQM_VALUE) " + - "VALUES('" + DerbyRepoConstants.SYSKEY_DRIVER_CONFIG_VERSION + "', '1')"); + // new repository version + runQuery("INSERT INTO SQOOP.SQ_SYSTEM(SQM_KEY, SQM_VALUE) VALUES('repository.version', '" + version + "')"); } @@ -382,19 +405,17 @@ abstract public class DerbyTestCase { protected void loadConnectorAndDriverConfigVersion4() throws Exception { Long configId; + runQuery("INSERT INTO SQOOP.SQ_CONFIGURABLE(SQC_NAME, SQC_CLASS, SQC_VERSION, SQC_TYPE)" + + "VALUES('A', 'org.apache.sqoop.test.A', '1.0-test', 'CONNECTOR')"); - // Connector entry - runQuery("INSERT INTO SQOOP.SQ_CONNECTOR(SQC_NAME, SQC_CLASS, SQC_VERSION)" - + "VALUES('A', 'org.apache.sqoop.test.A', '1.0-test')"); - - for (String connector : new String[]{"1"}) { + for (String connector : new String[] { "1" }) { // Directions runQuery("INSERT INTO SQOOP.SQ_CONNECTOR_DIRECTIONS(SQCD_CONNECTOR, SQCD_DIRECTION)" + "VALUES(" + connector + ", 1)"); runQuery("INSERT INTO SQOOP.SQ_CONNECTOR_DIRECTIONS(SQCD_CONNECTOR, SQCD_DIRECTION)" + "VALUES(" + connector + ", 2)"); - // connector configs + // connector configs with connectorId as 1 for (String direction : new String[]{null, "1", "2"}) { String type; @@ -405,7 +426,7 @@ abstract public class DerbyTestCase { } configId = runInsertQuery("INSERT INTO SQOOP.SQ_CONFIG" - + "(SQ_CFG_CONNECTOR, SQ_CFG_NAME, SQ_CFG_TYPE, SQ_CFG_INDEX) " + + "(SQ_CFG_CONFIGURABLE, SQ_CFG_NAME, SQ_CFG_TYPE, SQ_CFG_INDEX) " + "VALUES(" + connector + ", 'C1', '" + type + "', 0)"); if (direction != null) { @@ -415,7 +436,7 @@ abstract public class DerbyTestCase { } configId = runInsertQuery("INSERT INTO SQOOP.SQ_CONFIG" - + "(SQ_CFG_CONNECTOR, SQ_CFG_NAME, SQ_CFG_TYPE, SQ_CFG_INDEX) " + + "(SQ_CFG_CONFIGURABLE, SQ_CFG_NAME, SQ_CFG_TYPE, SQ_CFG_INDEX) " + "VALUES(" + connector + ", 'C2', '" + type + "', 1)"); if (direction != null) { @@ -426,14 +447,18 @@ abstract public class DerbyTestCase { } } - // driver config + // insert a driver + runQuery("INSERT INTO SQOOP.SQ_CONFIGURABLE(SQC_NAME, SQC_CLASS, SQC_VERSION, SQC_TYPE)" + + "VALUES('SqoopDriver', 'org.apache.sqoop.driver.Driver', '1.0-test', 'DRIVER')"); + + // driver config with driverId as 2 for (String type : new String[]{"JOB"}) { runQuery("INSERT INTO SQOOP.SQ_CONFIG" - + "(SQ_CFG_CONNECTOR, SQ_CFG_NAME, SQ_CFG_TYPE, SQ_CFG_INDEX) " - + "VALUES(NULL" + ", 'C1', '" + type + "', 0)"); + + "(SQ_CFG_CONFIGURABLE, SQ_CFG_NAME, SQ_CFG_TYPE, SQ_CFG_INDEX) " + + "VALUES(2" + ", 'C1', '" + type + "', 0)"); runQuery("INSERT INTO SQOOP.SQ_CONFIG" - + "(SQ_CFG_CONNECTOR, SQ_CFG_NAME, SQ_CFG_TYPE, SQ_CFG_INDEX) " - + "VALUES(NULL" + ", 'C2', '" + type + "', 1)"); + + "(SQ_CFG_CONFIGURABLE, SQ_CFG_NAME, SQ_CFG_TYPE, SQ_CFG_INDEX) " + + "VALUES(2" + ", 'C2', '" + type + "', 1)"); } // Input entries @@ -442,7 +467,7 @@ abstract public class DerbyTestCase { // Connector job (TO) config: 8-11 // Driver JOB config: 12-15 for (int i = 0; i < 4; i++) { - // First config + // First config runQuery("INSERT INTO SQOOP.SQ_INPUT" + "(SQI_NAME, SQI_CONFIG, SQI_INDEX, SQI_TYPE, SQI_STRMASK, SQI_STRLENGTH)" + " VALUES('I1', " + (i * 2 + 1) + ", 0, 'STRING', false, 30)"); @@ -460,6 +485,8 @@ abstract public class DerbyTestCase { } } + + /** * Load testing connector and driver config into repository. * @@ -511,9 +538,9 @@ abstract public class DerbyTestCase { case 4: // Insert two links - CA and CB - runQuery("INSERT INTO SQOOP.SQ_LINK(SQ_LNK_NAME, SQ_LNK_CONNECTOR) " + runQuery("INSERT INTO SQOOP.SQ_LINK(SQ_LNK_NAME, SQ_LNK_CONFIGURABLE) " + "VALUES('CA', 1)"); - runQuery("INSERT INTO SQOOP.SQ_LINK(SQ_LNK_NAME, SQ_LNK_CONNECTOR) " + runQuery("INSERT INTO SQOOP.SQ_LINK(SQ_LNK_NAME, SQ_LNK_CONFIGURABLE) " + "VALUES('CB', 1)"); for (String ci : new String[]{"1", "2"}) { @@ -644,10 +671,10 @@ abstract public class DerbyTestCase { /** * Add a second connector for testing with multiple connectors */ - public void addConnector() throws Exception { + public void addConnectorB() throws Exception { // Connector entry - Long connectorId = runInsertQuery("INSERT INTO SQOOP.SQ_CONNECTOR(SQC_NAME, SQC_CLASS, SQC_VERSION)" - + "VALUES('B', 'org.apache.sqoop.test.B', '1.0-test')"); + Long connectorId = runInsertQuery("INSERT INTO SQOOP.SQ_CONFIGURABLE(SQC_NAME, SQC_CLASS, SQC_VERSION, SQC_TYPE)" + + "VALUES('B', 'org.apache.sqoop.test.B', '1.0-test', 'CONNECTOR')"); runQuery("INSERT INTO SQOOP.SQ_CONNECTOR_DIRECTIONS (SQCD_CONNECTOR, SQCD_DIRECTION) VALUES (" + connectorId + ", 1)"); runQuery("INSERT INTO SQOOP.SQ_CONNECTOR_DIRECTIONS (SQCD_CONNECTOR, SQCD_DIRECTION) VALUES (" + connectorId + ", 2)"); } @@ -745,18 +772,18 @@ abstract public class DerbyTestCase { } protected MToConfig getToConfig() { - return new MToConfig(getConfigs()); + return new MToConfig(getConfigs()); } - + protected MDriverConfig getDriverConfig() { - return new MDriverConfig(getConfigs()); + return new MDriverConfig(getConfigs()); } protected List<MConfig> getConfigs() { List<MConfig> jobConfigs = new LinkedList<MConfig>(); List<MInput<?>> inputs = new LinkedList<MInput<?>>(); - MInput input = new MStringInput("I1", false, (short)30); + MInput input = new MStringInput("I1", false, (short) 30); inputs.add(input); input = new MMapInput("I2", false); inputs.add(input); http://git-wip-us.apache.org/repos/asf/sqoop/blob/151a0a12/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestConnectorHandling.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestConnectorHandling.java b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestConnectorHandling.java index 68a173b..ca40545 100644 --- a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestConnectorHandling.java +++ b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestConnectorHandling.java @@ -62,17 +62,17 @@ public class TestConnectorHandling extends DerbyTestCase { @Test public void testFindAllConnectors() throws Exception { // No connectors in an empty repository, we expect an empty list - assertEquals(handler.findConnectors(getDerbyDatabaseConnection()).size(),0); - + assertEquals(handler.findConnectors(getDerbyDatabaseConnection()).size(), 0); + // add connector A loadConnectorAndDriverConfig(); - addConnector(); - + // adding connector B + addConnectorB(); // Retrieve connectors List<MConnector> connectors = handler.findConnectors(getDerbyDatabaseConnection()); assertNotNull(connectors); - assertEquals(connectors.size(),2); - assertEquals(connectors.get(0).getUniqueName(),"A"); - assertEquals(connectors.get(1).getUniqueName(),"B"); + assertEquals(connectors.size(), 2); + assertEquals(connectors.get(0).getUniqueName(), "A"); + assertEquals(connectors.get(1).getUniqueName(), "B"); } @Test @@ -83,7 +83,7 @@ public class TestConnectorHandling extends DerbyTestCase { assertEquals(1, connector.getPersistenceId()); // Now check content in corresponding tables - assertCountForTable("SQOOP.SQ_CONNECTOR", 1); + assertCountForTable("SQOOP.SQ_CONFIGURABLE", 1); assertCountForTable("SQOOP.SQ_CONFIG", 6); assertCountForTable("SQOOP.SQ_INPUT", 12); @@ -92,6 +92,7 @@ public class TestConnectorHandling extends DerbyTestCase { assertNotNull(retrieved); assertEquals(connector, retrieved); } + @Test public void testFromDirection() throws Exception { MConnector connector = getConnector(true, false); @@ -102,7 +103,7 @@ public class TestConnectorHandling extends DerbyTestCase { assertEquals(1, connector.getPersistenceId()); // Now check content in corresponding tables - assertCountForTable("SQOOP.SQ_CONNECTOR", 1); + assertCountForTable("SQOOP.SQ_CONFIGURABLE", 1); assertCountForTable("SQOOP.SQ_CONFIG", 4); assertCountForTable("SQOOP.SQ_INPUT", 8); @@ -122,7 +123,7 @@ public class TestConnectorHandling extends DerbyTestCase { assertEquals(1, connector.getPersistenceId()); // Now check content in corresponding tables - assertCountForTable("SQOOP.SQ_CONNECTOR", 1); + assertCountForTable("SQOOP.SQ_CONFIGURABLE", 1); assertCountForTable("SQOOP.SQ_CONFIG", 4); assertCountForTable("SQOOP.SQ_INPUT", 8); @@ -142,7 +143,7 @@ public class TestConnectorHandling extends DerbyTestCase { assertEquals(1, connector.getPersistenceId()); // Now check content in corresponding tables - assertCountForTable("SQOOP.SQ_CONNECTOR", 1); + assertCountForTable("SQOOP.SQ_CONFIGURABLE", 1); assertCountForTable("SQOOP.SQ_CONFIG", 2); assertCountForTable("SQOOP.SQ_INPUT", 4); @@ -151,4 +152,4 @@ public class TestConnectorHandling extends DerbyTestCase { assertNotNull(retrieved); assertEquals(connector, retrieved); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/sqoop/blob/151a0a12/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestDriverHandling.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestDriverHandling.java b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestDriverHandling.java index bbf721f..25a0093 100644 --- a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestDriverHandling.java +++ b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestDriverHandling.java @@ -21,11 +21,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; - -import org.apache.sqoop.json.DriverBean; import org.apache.sqoop.model.MDriver; import org.apache.sqoop.model.MDriverConfig; import org.junit.Before; @@ -48,15 +43,19 @@ public class TestDriverHandling extends DerbyTestCase { } @Test - public void testFindDriverConfig() throws Exception { + public void testFindDriver() throws Exception { // On empty repository, no driverConfig should be there - assertNull(handler.findDriver(getDerbyDatabaseConnection())); + assertNull(handler.findDriver(MDriver.DRIVER_NAME, getDerbyDatabaseConnection())); // Load Connector and DriverConfig into repository // TODO(SQOOP-1582):FIX why load connector config for driver testing? + // add a connector A and driver SqoopDriver loadConnectorAndDriverConfig(); // Retrieve it - MDriver driver = handler.findDriver(getDerbyDatabaseConnection()); + MDriver driver = handler.findDriver(MDriver.DRIVER_NAME, getDerbyDatabaseConnection()); assertNotNull(driver); + assertNotNull(driver.getDriverConfig()); + assertEquals("1.0-test", driver.getVersion()); + assertEquals("1.0-test", driver.getVersion()); // Get original structure MDriverConfig originalDriverConfig = getDriverConfig(); @@ -64,7 +63,7 @@ public class TestDriverHandling extends DerbyTestCase { assertEquals(originalDriverConfig, driver.getDriverConfig()); } - public void testRegisterDriverAndConnectorConfig() throws Exception { + public void testRegisterDriver() throws Exception { MDriver driver = getDriver(); handler.registerDriver(driver, getDerbyDatabaseConnection()); @@ -76,59 +75,22 @@ public class TestDriverHandling extends DerbyTestCase { assertCountForTable("SQOOP.SQ_CONFIG", 2); assertCountForTable("SQOOP.SQ_INPUT", 4); - // Registered driver config should be easily recovered back - MDriver retrieved = handler.findDriver(getDerbyDatabaseConnection()); + // Registered driver and config should be easily recovered back + MDriver retrieved = handler.findDriver(MDriver.DRIVER_NAME, getDerbyDatabaseConnection()); assertNotNull(retrieved); assertEquals(driver, retrieved); assertEquals(driver.getVersion(), retrieved.getVersion()); } - private String getDriverVersion() throws Exception { - final String frameworkVersionQuery = - "SELECT SQM_VALUE FROM SQOOP.SQ_SYSTEM WHERE SQM_KEY=?"; - String retVal = null; - PreparedStatement preparedStmt = null; - ResultSet resultSet = null; - try { - preparedStmt = - getDerbyDatabaseConnection().prepareStatement(frameworkVersionQuery); - preparedStmt.setString(1, DerbyRepoConstants.SYSKEY_DRIVER_CONFIG_VERSION); - resultSet = preparedStmt.executeQuery(); - if(resultSet.next()) - retVal = resultSet.getString(1); - return retVal; - } finally { - if(preparedStmt !=null) { - try { - preparedStmt.close(); - } catch(SQLException e) { - } - } - if(resultSet != null) { - try { - resultSet.close(); - } catch(SQLException e) { - } - } - } - } @Test - public void testDriverVersion() throws Exception { + public void testDriverVersionUpgrade() throws Exception { MDriver driver = getDriver(); handler.registerDriver(driver, getDerbyDatabaseConnection()); - - final String lowerVersion = Integer.toString(Integer - .parseInt(DriverBean.CURRENT_DRIVER_VERSION) - 1); - assertEquals(CURRENT_DRIVER_VERSION, getDriverVersion()); - runQuery("UPDATE SQOOP.SQ_SYSTEM SET SQM_VALUE='" + lowerVersion + "' WHERE SQM_KEY = '" - + DerbyRepoConstants.SYSKEY_DRIVER_CONFIG_VERSION + "'"); - assertEquals(lowerVersion, getDriverVersion()); - - handler.upgradeDriverConfigs(driver, getDerbyDatabaseConnection()); - - assertEquals(CURRENT_DRIVER_VERSION, driver.getVersion()); - - assertEquals(CURRENT_DRIVER_VERSION, getDriverVersion()); + String registeredDriverVersion = handler.findDriver(MDriver.DRIVER_NAME, getDerbyDatabaseConnection()).getVersion(); + assertEquals(CURRENT_DRIVER_VERSION, registeredDriverVersion); + driver.setVersion("2"); + handler.upgradeDriverAndConfigs(driver, getDerbyDatabaseConnection()); + assertEquals("2", driver.getVersion()); } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/151a0a12/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestJobHandling.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestJobHandling.java b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestJobHandling.java index a15bda9..85140d5 100644 --- a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestJobHandling.java +++ b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestJobHandling.java @@ -32,6 +32,7 @@ import java.util.Map; import org.apache.sqoop.common.Direction; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.model.MConfig; +import org.apache.sqoop.model.MDriver; import org.apache.sqoop.model.MJob; import org.apache.sqoop.model.MMapInput; import org.apache.sqoop.model.MStringInput; @@ -298,7 +299,7 @@ public class TestJobHandling extends DerbyTestCase { return new MJob(1, 1, 1, 1, handler.findConnector("A", derbyConnection).getFromConfig(), handler.findConnector("A", derbyConnection).getToConfig(), - handler.findDriver(derbyConnection).getDriverConfig() + handler.findDriver(MDriver.DRIVER_NAME, derbyConnection).getDriverConfig() ); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/sqoop/blob/151a0a12/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java ---------------------------------------------------------------------- diff --git a/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java b/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java index 8cf9cf1..45c21a1 100644 --- a/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java +++ b/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java @@ -69,25 +69,20 @@ import org.json.simple.JSONObject; import org.json.simple.JSONValue; /** - * Load user-created content of Sqoop repository from a JSON formatted file - * The loaded connector IDs will be modified to match existing connectors + * Load user-created content of Sqoop repository from a JSON formatted file The + * loaded connector IDs will be modified to match existing connectors */ public class RepositoryLoadTool extends ConfiguredTool { public static final Logger LOG = Logger.getLogger(RepositoryLoadTool.class); - - + @SuppressWarnings("static-access") @Override public boolean runToolWithConfiguration(String[] arguments) { - Options options = new Options(); - options.addOption(OptionBuilder.isRequired() - .hasArg() - .withArgName("filename") - .withLongOpt("input") - .create('i')); + options.addOption(OptionBuilder.isRequired().hasArg().withArgName("filename") + .withLongOpt("input").create('i')); CommandLineParser parser = new GnuParser(); @@ -98,8 +93,7 @@ public class RepositoryLoadTool extends ConfiguredTool { LOG.info("Reading JSON from file" + inputFileName); InputStream input = new FileInputStream(inputFileName); String jsonTxt = IOUtils.toString(input, Charsets.UTF_8); - JSONObject json = - (JSONObject) JSONValue.parse(jsonTxt); + JSONObject json = (JSONObject) JSONValue.parse(jsonTxt); boolean res = load(json); input.close(); return res; @@ -114,99 +108,101 @@ public class RepositoryLoadTool extends ConfiguredTool { return false; } catch (ParseException e) { LOG.error("Error parsing command line arguments:", e); - System.out.println("Error parsing command line arguments. Please check Server logs for details."); + System.out + .println("Error parsing command line arguments. Please check Server logs for details."); return false; } } - private boolean load(JSONObject repo) { - // Validate that loading JSON into repository is supported - JSONObject metadata = (JSONObject) repo.get(JSONConstants.METADATA); - - if (metadata == null) { - LOG.error("Malformed JSON. Key "+ JSONConstants.METADATA + " not found."); - return false; - } - - if (!validateMetadata(metadata)){ - LOG.error("Metadata of repository dump file failed validation (see error above for cause). Aborting repository load."); - return false; - } - - // initialize repository as mutable - RepositoryManager.getInstance().initialize(false); - Repository repository = RepositoryManager.getInstance().getRepository(); - - ConnectorManager.getInstance().initialize(); - - LOG.info("Loading Connections"); - - JSONObject jsonConns = (JSONObject) repo.get(JSONConstants.LINKS); - - if (jsonConns == null) { - LOG.error("Malformed JSON file. Key "+ JSONConstants.LINKS + " not found."); - return false; - } - - LinkBean linkBean = new LinkBean(); - linkBean.restore(updateConnectorIDUsingName(jsonConns)); - - HashMap<Long,Long> connectionIds = new HashMap<Long, Long>(); - - for (MLink link : linkBean.getLinks()) { - long oldId = link.getPersistenceId(); - long newId = loadLink(link); - if (newId == link.PERSISTANCE_ID_DEFAULT) { - LOG.error("loading connection " + link.getName() + " with previous ID " + oldId + " failed. Aborting repository load. Check log for details."); - return false; - } - connectionIds.put(oldId,newId); - } - LOG.info("Loaded " + connectionIds.size() + " connections"); - - LOG.info("Loading Jobs"); - JSONObject jsonJobs = (JSONObject) repo.get(JSONConstants.JOBS); - - if (jsonJobs == null) { - LOG.error("Malformed JSON file. Key "+ JSONConstants.JOBS + " not found."); - return false; - } - - JobBean jobBean = new JobBean(); - jobBean.restore(updateIdUsingMap(updateConnectorIDUsingName(jsonJobs), connectionIds,JSONConstants.LINK_ID)); - - HashMap<Long,Long> jobIds = new HashMap<Long, Long>(); - for (MJob job: jobBean.getJobs()) { - long oldId = job.getPersistenceId(); - long newId = loadJob(job); - - if (newId == job.PERSISTANCE_ID_DEFAULT) { - LOG.error("loading job " + job.getName() + " failed. Aborting repository load. Check log for details."); - return false; - } - jobIds.put(oldId,newId); - - } + // Validate that loading JSON into repository is supported + JSONObject metadata = (JSONObject) repo.get(JSONConstants.METADATA); + + if (metadata == null) { + LOG.error("Malformed JSON. Key " + JSONConstants.METADATA + " not found."); + return false; + } + + if (!validateMetadata(metadata)) { + LOG.error("Metadata of repository dump file failed validation (see error above for cause). Aborting repository load."); + return false; + } + + // initialize repository as mutable + RepositoryManager.getInstance().initialize(false); + Repository repository = RepositoryManager.getInstance().getRepository(); + + ConnectorManager.getInstance().initialize(); + LOG.info("Loading Connections"); + + JSONObject jsonConns = (JSONObject) repo.get(JSONConstants.LINKS); + + if (jsonConns == null) { + LOG.error("Malformed JSON file. Key " + JSONConstants.LINKS + " not found."); + return false; + } + + LinkBean linkBean = new LinkBean(); + linkBean.restore(updateConnectorIDUsingName(jsonConns)); + + HashMap<Long, Long> connectionIds = new HashMap<Long, Long>(); + + for (MLink link : linkBean.getLinks()) { + long oldId = link.getPersistenceId(); + long newId = loadLink(link); + if (newId == link.PERSISTANCE_ID_DEFAULT) { + LOG.error("loading connection " + link.getName() + " with previous ID " + oldId + + " failed. Aborting repository load. Check log for details."); + return false; + } + connectionIds.put(oldId, newId); + } + LOG.info("Loaded " + connectionIds.size() + " connections"); + + LOG.info("Loading Jobs"); + JSONObject jsonJobs = (JSONObject) repo.get(JSONConstants.JOBS); + + if (jsonJobs == null) { + LOG.error("Malformed JSON file. Key " + JSONConstants.JOBS + " not found."); + return false; + } + + JobBean jobBean = new JobBean(); + jobBean.restore(updateIdUsingMap(updateConnectorIDUsingName(jsonJobs), connectionIds, + JSONConstants.LINK_ID)); + + HashMap<Long, Long> jobIds = new HashMap<Long, Long>(); + for (MJob job : jobBean.getJobs()) { + long oldId = job.getPersistenceId(); + long newId = loadJob(job); + + if (newId == job.PERSISTANCE_ID_DEFAULT) { + LOG.error("loading job " + job.getName() + + " failed. Aborting repository load. Check log for details."); + return false; + } + jobIds.put(oldId, newId); + + } LOG.info("Loaded " + jobIds.size() + " jobs"); - LOG.info("Loading Submissions"); - JSONObject jsonSubmissions = (JSONObject) repo.get(JSONConstants.SUBMISSIONS); + LOG.info("Loading Submissions"); + JSONObject jsonSubmissions = (JSONObject) repo.get(JSONConstants.SUBMISSIONS); if (jsonSubmissions == null) { - LOG.error("Malformed JSON file. Key "+ JSONConstants.SUBMISSIONS + " not found."); + LOG.error("Malformed JSON file. Key " + JSONConstants.SUBMISSIONS + " not found."); return false; } - SubmissionBean submissionBean = new SubmissionBean(); - submissionBean.restore(updateIdUsingMap(jsonSubmissions,jobIds,JSONConstants.JOB_ID)); - int submissionCount = 0; - for (MSubmission submission: submissionBean.getSubmissions()) { - resetPersistenceId(submission); - repository.createSubmission(submission); - submissionCount++; - } + SubmissionBean submissionBean = new SubmissionBean(); + submissionBean.restore(updateIdUsingMap(jsonSubmissions, jobIds, JSONConstants.JOB_ID)); + int submissionCount = 0; + for (MSubmission submission : submissionBean.getSubmissions()) { + resetPersistenceId(submission); + repository.createSubmission(submission); + submissionCount++; + } LOG.info("Loaded " + submissionCount + " submissions."); LOG.info("Repository load completed successfully."); return true; @@ -216,12 +212,10 @@ public class RepositoryLoadTool extends ConfiguredTool { ent.setPersistenceId(ent.PERSISTANCE_ID_DEFAULT); } - - /** - * Even though the metadata contains version, revision, compile-date and compile-user - * We are only validating that version match for now. - * More interesting logic can be added later + * Even though the metadata contains version, revision, compile-date and + * compile-user We are only validating that version match for now. More + * interesting logic can be added later */ private boolean validateMetadata(JSONObject metadata) { String jsonVersion = (String) metadata.get(JSONConstants.VERSION); @@ -229,13 +223,14 @@ public class RepositoryLoadTool extends ConfiguredTool { String repoVersion = VersionInfo.getVersion(); if (!jsonVersion.equals(repoVersion)) { - LOG.error("Repository version in file (" + jsonVersion + ") does not match this version of Sqoop (" + repoVersion + ")"); + LOG.error("Repository version in file (" + jsonVersion + + ") does not match this version of Sqoop (" + repoVersion + ")"); return false; } if (!includeSensitive) { - LOG.warn("Loading repository which was dumped without --include-sensitive=true. " + - "This means some sensitive information such as passwords is not included in the dump file and will need to be manually added later."); + LOG.warn("Loading repository which was dumped without --include-sensitive=true. " + + "This means some sensitive information such as passwords is not included in the dump file and will need to be manually added later."); } return true; @@ -243,7 +238,7 @@ public class RepositoryLoadTool extends ConfiguredTool { private long loadLink(MLink link) { - //starting by pretending we have a brand new connection + // starting by pretending we have a brand new connection resetPersistenceId(link); Repository repository = RepositoryManager.getInstance().getRepository(); @@ -262,11 +257,9 @@ public class RepositoryLoadTool extends ConfiguredTool { SqoopConnector connector = ConnectorManager.getInstance().getSqoopConnector( link.getConnectorId()); - Object connectorConfig = ClassUtils.instantiate( - connector.getLinkConfigurationClass()); + Object connectorConfig = ClassUtils.instantiate(connector.getLinkConfigurationClass()); - ConfigUtils.fromConfigs( - link.getConnectorLinkConfig().getConfigs(), connectorConfig); + ConfigUtils.fromConfigs(link.getConnectorLinkConfig().getConfigs(), connectorConfig); ConfigValidationRunner validationRunner = new ConfigValidationRunner(); ConfigValidationResult result = validationRunner.validate(connectorConfig); @@ -284,7 +277,7 @@ public class RepositoryLoadTool extends ConfiguredTool { } private long loadJob(MJob job) { - //starting by pretending we have a brand new job + // starting by pretending we have a brand new job resetPersistenceId(job); MConnector mFromConnector = ConnectorManager.getInstance().getConnectorConfigurable(job.getFromConnectorId()); MConnector mToConnector = ConnectorManager.getInstance().getConnectorConfigurable(job.getToConnectorId()); @@ -329,7 +322,8 @@ public class RepositoryLoadTool extends ConfiguredTool { job.getDriverConfig().getConfigs(), driverConfig); ConfigValidationRunner validationRunner = new ConfigValidationRunner(); - ConfigValidationResult fromConnectorConfigResult = validationRunner.validate(fromConnectorConfig); + ConfigValidationResult fromConnectorConfigResult = validationRunner + .validate(fromConnectorConfig); ConfigValidationResult toConnectorConfigResult = validationRunner.validate(toConnectorConfig); ConfigValidationResult driverConfigResult = validationRunner.validate(driverConfig); @@ -341,17 +335,17 @@ public class RepositoryLoadTool extends ConfiguredTool { } else { LOG.error("Failed to load job:" + job.getName()); - LOG.error("Status of from connector configs:" + fromConnectorConfigResult.getStatus().toString()); + LOG.error("Status of from connector configs:" + + fromConnectorConfigResult.getStatus().toString()); LOG.error("Status of to connector configs:" + toConnectorConfigResult.getStatus().toString()); LOG.error("Status of driver configs:" + driverConfigResult.getStatus().toString()); } return newJob.getPersistenceId(); - } - private JSONObject updateConnectorIDUsingName( JSONObject json) { + private JSONObject updateConnectorIDUsingName(JSONObject json) { JSONArray array = (JSONArray) json.get(JSONConstants.ALL); Repository repository = RepositoryManager.getInstance().getRepository(); @@ -370,11 +364,10 @@ public class RepositoryLoadTool extends ConfiguredTool { long currentConnectorId = connectorMap.get(connectorName); String connectionName = (String) object.get(JSONConstants.NAME); - // If a given connector now has a different ID, we need to update the ID if (connectorId != currentConnectorId) { - LOG.warn("Connection " + connectionName + " uses connector " + connectorName + ". " + - "Replacing previous ID " + connectorId + " with new ID " + currentConnectorId); + LOG.warn("Connection " + connectionName + " uses connector " + connectorName + ". " + + "Replacing previous ID " + connectorId + " with new ID " + currentConnectorId); object.put(JSONConstants.CONNECTOR_ID, currentConnectorId); } @@ -382,7 +375,7 @@ public class RepositoryLoadTool extends ConfiguredTool { return json; } - private JSONObject updateIdUsingMap(JSONObject json, HashMap<Long,Long> idMap, String fieldName) { + private JSONObject updateIdUsingMap(JSONObject json, HashMap<Long, Long> idMap, String fieldName) { JSONArray array = (JSONArray) json.get(JSONConstants.ALL); for (Object obj : array) { @@ -394,6 +387,4 @@ public class RepositoryLoadTool extends ConfiguredTool { return json; } - - }
