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;
   }
 
-
-
 }

Reply via email to