You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ja...@apache.org on 2014/08/19 22:44:08 UTC

[2/2] git commit: SQOOP-1449: Sqoop2: From/To: Re-enable common tests

SQOOP-1449: Sqoop2: From/To: Re-enable common tests

(Abraham Elmahrek via Jarek Jarcec Cecho)


Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/3bb7ff83
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/3bb7ff83
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/3bb7ff83

Branch: refs/heads/SQOOP-1367
Commit: 3bb7ff834123f74dd650a57597a59c4854479f0d
Parents: 5f04f53
Author: Jarek Jarcec Cecho <ja...@apache.org>
Authored: Tue Aug 19 13:42:50 2014 -0700
Committer: Jarek Jarcec Cecho <ja...@apache.org>
Committed: Tue Aug 19 13:42:50 2014 -0700

----------------------------------------------------------------------
 .../org/apache/sqoop/common/TestMapContext.java | 156 +++----
 .../sqoop/common/TestSqoopResponseCode.java     |  26 +-
 .../apache/sqoop/common/TestVersionInfo.java    |  16 +-
 .../apache/sqoop/json/TestConnectionBean.java   | 202 ++++-----
 .../apache/sqoop/json/TestConnectorBean.java    |  72 ++--
 .../apache/sqoop/json/TestFrameworkBean.java    |  52 +--
 .../java/org/apache/sqoop/json/TestJobBean.java | 116 ++---
 .../org/apache/sqoop/json/TestSchemaBean.java   |  40 +-
 .../java/org/apache/sqoop/json/TestUtil.java    | 216 +++++-----
 .../apache/sqoop/json/TestValidationBean.java   | 212 +++++----
 .../sqoop/json/util/TestFormSerialization.java  | 224 +++++-----
 .../json/util/TestSchemaSerialization.java      | 262 ++++++------
 .../org/apache/sqoop/model/TestFormUtils.java   | 428 +++++++++----------
 .../sqoop/model/TestMAccountableEntity.java     |  56 +--
 .../apache/sqoop/model/TestMBooleanInput.java   | 132 +++---
 .../org/apache/sqoop/model/TestMConnection.java | 178 ++++----
 .../sqoop/model/TestMConnectionForms.java       |  32 +-
 .../org/apache/sqoop/model/TestMConnector.java  |  72 ++--
 .../org/apache/sqoop/model/TestMEnumInput.java  |  68 +--
 .../java/org/apache/sqoop/model/TestMForm.java  | 114 ++---
 .../org/apache/sqoop/model/TestMFormList.java   |  52 +--
 .../org/apache/sqoop/model/TestMFramework.java  |  29 +-
 .../apache/sqoop/model/TestMIntegerInput.java   | 144 +++----
 .../java/org/apache/sqoop/model/TestMJob.java   | 213 ++++-----
 .../org/apache/sqoop/model/TestMJobForms.java   |  31 +-
 .../org/apache/sqoop/model/TestMMapInput.java   | 160 +++----
 .../apache/sqoop/model/TestMNamedElement.java   |  20 +-
 .../sqoop/model/TestMPersistableEntity.java     |  46 +-
 .../apache/sqoop/model/TestMStringInput.java    | 132 +++---
 .../sqoop/model/TestMValidatedElement.java      |  80 ++--
 .../sqoop/submission/TestSubmissionStatus.java  |  68 +--
 .../sqoop/submission/counter/TestCounter.java   |  32 +-
 .../submission/counter/TestCounterGroup.java    | 104 ++---
 .../sqoop/submission/counter/TestCounters.java  |  76 ++--
 .../sqoop/utils/TestMapResourceBundle.java      |  20 +-
 .../org/apache/sqoop/validation/TestStatus.java |  50 +--
 .../apache/sqoop/validation/TestValidation.java | 218 +++++-----
 37 files changed, 2113 insertions(+), 2036 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/common/TestMapContext.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/common/TestMapContext.java b/common/src/test/java/org/apache/sqoop/common/TestMapContext.java
index 4c229ae..f4718c0 100644
--- a/common/src/test/java/org/apache/sqoop/common/TestMapContext.java
+++ b/common/src/test/java/org/apache/sqoop/common/TestMapContext.java
@@ -29,82 +29,82 @@ import org.junit.Test;
  */
 public class TestMapContext {
 
-//  /**
-//   * Test method for Initialization
-//   */
-//  @Test
-//  public void testInitalization() {
-//    Map<String, String> options = new HashMap<String, String>();
-//    options.put("testkey", "testvalue");
-//    MapContext mc = new MapContext(options);
-//    Assert.assertEquals("testvalue", mc.getString("testkey"));
-//  }
-//
-//  /**
-//   * Test method for getString
-//   */
-//  @Test
-//  public void testGetString() {
-//    Map<String, String> options = new HashMap<String, String>();
-//    options.put("testkey", "testvalue");
-//    MapContext mc = new MapContext(options);
-//    Assert.assertEquals("testvalue", mc.getString("testkey", "defaultValue"));
-//    Assert.assertEquals("defaultValue",
-//        mc.getString("wrongKey", "defaultValue"));
-//  }
-//
-//  /**
-//   * Test method for getString with default value
-//   */
-//  @Test
-//  public void testGetBoolean() {
-//    Map<String, String> options = new HashMap<String, String>();
-//    options.put("testkey", "true");
-//    MapContext mc = new MapContext(options);
-//    Assert.assertEquals(true, mc.getBoolean("testkey", false));
-//    Assert.assertEquals(false, mc.getBoolean("wrongKey", false));
-//  }
-//
-//  /**
-//   * Test method for getInt with default value
-//   */
-//  @Test
-//  public void testGetInt() {
-//    Map<String, String> options = new HashMap<String, String>();
-//    options.put("testkey", "123");
-//    MapContext mc = new MapContext(options);
-//    Assert.assertEquals(123, mc.getInt("testkey", 456));
-//    Assert.assertEquals(456, mc.getInt("wrongKey", 456));
-//  }
-//
-//  /**
-//   * Test method for getLong with default value
-//   */
-//  @Test
-//  public void testGetLong() {
-//    Map<String, String> options = new HashMap<String, String>();
-//    options.put("testkey", "123");
-//    MapContext mc = new MapContext(options);
-//    Assert.assertEquals(123l, mc.getLong("testkey", 456l));
-//    Assert.assertEquals(456l, mc.getLong("wrongKey", 456l));
-//  }
-//
-//  /**
-//   * Test method for getNestedProperties()
-//   */
-//  @Test
-//  public void testGetNestedProperties() {
-//    Map<String, String> options = new HashMap<String, String>();
-//    options.put("sqooptest1", "value");
-//    options.put("sqooptest2", "value");
-//    options.put("testsqoop1", "value");
-//    options.put("testsqoop1", "value");
-//    MapContext mc = new MapContext(options);
-//    Map<String, String> result = mc.getNestedProperties("sqoop");
-//    Assert.assertEquals(2, result.size());
-//    Assert.assertTrue(result.containsKey("test1"));
-//    Assert.assertTrue(result.containsKey("test2"));
-//    Assert.assertFalse(result.containsKey("testsqoop1"));
-//    Assert.assertFalse(result.containsKey("testsqoop2"));
-//  }
+  /**
+   * Test method for Initialization
+   */
+  @Test
+  public void testInitalization() {
+    Map<String, String> options = new HashMap<String, String>();
+    options.put("testkey", "testvalue");
+    MapContext mc = new MapContext(options);
+    Assert.assertEquals("testvalue", mc.getString("testkey"));
+  }
+
+  /**
+   * Test method for getString
+   */
+  @Test
+  public void testGetString() {
+    Map<String, String> options = new HashMap<String, String>();
+    options.put("testkey", "testvalue");
+    MapContext mc = new MapContext(options);
+    Assert.assertEquals("testvalue", mc.getString("testkey", "defaultValue"));
+    Assert.assertEquals("defaultValue",
+        mc.getString("wrongKey", "defaultValue"));
+  }
+
+  /**
+   * Test method for getString with default value
+   */
+  @Test
+  public void testGetBoolean() {
+    Map<String, String> options = new HashMap<String, String>();
+    options.put("testkey", "true");
+    MapContext mc = new MapContext(options);
+    Assert.assertEquals(true, mc.getBoolean("testkey", false));
+    Assert.assertEquals(false, mc.getBoolean("wrongKey", false));
+  }
+
+  /**
+   * Test method for getInt with default value
+   */
+  @Test
+  public void testGetInt() {
+    Map<String, String> options = new HashMap<String, String>();
+    options.put("testkey", "123");
+    MapContext mc = new MapContext(options);
+    Assert.assertEquals(123, mc.getInt("testkey", 456));
+    Assert.assertEquals(456, mc.getInt("wrongKey", 456));
+  }
+
+  /**
+   * Test method for getLong with default value
+   */
+  @Test
+  public void testGetLong() {
+    Map<String, String> options = new HashMap<String, String>();
+    options.put("testkey", "123");
+    MapContext mc = new MapContext(options);
+    Assert.assertEquals(123l, mc.getLong("testkey", 456l));
+    Assert.assertEquals(456l, mc.getLong("wrongKey", 456l));
+  }
+
+  /**
+   * Test method for getNestedProperties()
+   */
+  @Test
+  public void testGetNestedProperties() {
+    Map<String, String> options = new HashMap<String, String>();
+    options.put("sqooptest1", "value");
+    options.put("sqooptest2", "value");
+    options.put("testsqoop1", "value");
+    options.put("testsqoop1", "value");
+    MapContext mc = new MapContext(options);
+    Map<String, String> result = mc.getNestedProperties("sqoop");
+    Assert.assertEquals(2, result.size());
+    Assert.assertTrue(result.containsKey("test1"));
+    Assert.assertTrue(result.containsKey("test2"));
+    Assert.assertFalse(result.containsKey("testsqoop1"));
+    Assert.assertFalse(result.containsKey("testsqoop2"));
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/common/TestSqoopResponseCode.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/common/TestSqoopResponseCode.java b/common/src/test/java/org/apache/sqoop/common/TestSqoopResponseCode.java
index d8aa1d5..f556c1c 100644
--- a/common/src/test/java/org/apache/sqoop/common/TestSqoopResponseCode.java
+++ b/common/src/test/java/org/apache/sqoop/common/TestSqoopResponseCode.java
@@ -25,17 +25,17 @@ import org.junit.Test;
  */
 public class TestSqoopResponseCode {
 
-//  /**
-//   * Test for the method getFromCode()
-//   */
-//  @Test
-//  public void testGetFromCode() {
-//    SqoopResponseCode src = SqoopResponseCode.getFromCode("1000");
-//    Assert.assertEquals("OK", src.getMessage());
-//    Assert.assertEquals("1000", src.getCode());
-//
-//    SqoopResponseCode src1 = SqoopResponseCode.getFromCode("2000");
-//    Assert.assertEquals("ERROR", src1.getMessage());
-//    Assert.assertEquals("2000", src1.getCode());
-//  }
+  /**
+   * Test for the method getFromCode()
+   */
+  @Test
+  public void testGetFromCode() {
+    SqoopResponseCode src = SqoopResponseCode.getFromCode("1000");
+    Assert.assertEquals("OK", src.getMessage());
+    Assert.assertEquals("1000", src.getCode());
+
+    SqoopResponseCode src1 = SqoopResponseCode.getFromCode("2000");
+    Assert.assertEquals("ERROR", src1.getMessage());
+    Assert.assertEquals("2000", src1.getCode());
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/common/TestVersionInfo.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/common/TestVersionInfo.java b/common/src/test/java/org/apache/sqoop/common/TestVersionInfo.java
index f853af0..27d78f4 100644
--- a/common/src/test/java/org/apache/sqoop/common/TestVersionInfo.java
+++ b/common/src/test/java/org/apache/sqoop/common/TestVersionInfo.java
@@ -22,13 +22,13 @@ import org.junit.Test;
 
 public class TestVersionInfo {
 
-//  @Test
-//  public void testValues() throws Exception {
-//    Assert.assertNotSame("Unknown", VersionInfo.getVersion());
-//    Assert.assertNotSame("Unknown", VersionInfo.getRevision());
-//    Assert.assertNotSame("Unknown", VersionInfo.getDate());
-//    Assert.assertNotSame("Unknown", VersionInfo.getUser());
-//    Assert.assertNotSame("Unknown", VersionInfo.getUrl());
-//  }
+  @Test
+  public void testValues() throws Exception {
+    Assert.assertNotSame("Unknown", VersionInfo.getVersion());
+    Assert.assertNotSame("Unknown", VersionInfo.getRevision());
+    Assert.assertNotSame("Unknown", VersionInfo.getDate());
+    Assert.assertNotSame("Unknown", VersionInfo.getUser());
+    Assert.assertNotSame("Unknown", VersionInfo.getUrl());
+  }
 
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java b/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java
index 205694a..19f81a8 100644
--- a/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java
+++ b/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java
@@ -34,105 +34,105 @@ import static org.apache.sqoop.json.TestUtil.*;
  *
  */
 public class TestConnectionBean {
-//  @Test
-//  public void testSerialization() {
-//    Date created = new Date();
-//    Date updated = new Date();
-//    MConnection connection = getConnection("ahoj");
-//    connection.setName("Connection");
-//    connection.setPersistenceId(666);
-//    connection.setCreationUser("admin");
-//    connection.setCreationDate(created);
-//    connection.setLastUpdateUser("user");
-//    connection.setLastUpdateDate(updated);
-//    connection.setEnabled(false);
-//
-//    // Fill some data at the beginning
-//    MStringInput input = (MStringInput) connection.getConnectorPart().getForms()
-//      .get(0).getInputs().get(0);
-//    input.setValue("Hi there!");
-//
-//    // Serialize it to JSON object
-//    ConnectionBean bean = new ConnectionBean(connection);
-//    JSONObject json = bean.extract(false);
-//
-//    // Check for sensitivity
-//    JSONArray all = (JSONArray)json.get("all");
-//    JSONObject allItem = (JSONObject)all.get(0);
-//    JSONArray connectors = (JSONArray)allItem.get("connector");
-//    JSONObject connector = (JSONObject)connectors.get(0);
-//    JSONArray inputs = (JSONArray)connector.get("inputs");
-//    for (Object input1 : inputs) {
-//      assertTrue(((JSONObject)input1).containsKey("sensitive"));
-//    }
-//
-//    // "Move" it across network in text form
-//    String string = json.toJSONString();
-//
-//    // Retrieved transferred object
-//    JSONObject retrievedJson = (JSONObject) JSONValue.parse(string);
-//    ConnectionBean retrievedBean = new ConnectionBean();
-//    retrievedBean.restore(retrievedJson);
-//    MConnection target = retrievedBean.getConnections().get(0);
-//
-//    // Check id and name
-//    assertEquals(666, target.getPersistenceId());
-//    assertEquals("Connection", target.getName());
-//    assertEquals("admin", target.getCreationUser());
-//    assertEquals(created, target.getCreationDate());
-//    assertEquals("user", target.getLastUpdateUser());
-//    assertEquals(updated, target.getLastUpdateDate());
-//    assertEquals(false, target.getEnabled());
-//
-//    // Test that value was correctly moved
-//    MStringInput targetInput = (MStringInput) target.getConnectorPart()
-//      .getForms().get(0).getInputs().get(0);
-//    assertEquals("Hi there!", targetInput.getValue());
-//  }
-//
-//  @Test
-//  public void testSensitivityFilter() {
-//    Date created = new Date();
-//    Date updated = new Date();
-//    MConnection connection = getConnection("ahoj");
-//    connection.setName("Connection");
-//    connection.setPersistenceId(666);
-//    connection.setCreationUser("admin");
-//    connection.setCreationDate(created);
-//    connection.setLastUpdateUser("user");
-//    connection.setLastUpdateDate(updated);
-//    connection.setEnabled(true);
-//
-//    // Fill some data at the beginning
-//    MStringInput input = (MStringInput) connection.getConnectorPart().getForms()
-//      .get(0).getInputs().get(0);
-//    input.setValue("Hi there!");
-//
-//    // Serialize it to JSON object
-//    ConnectionBean bean = new ConnectionBean(connection);
-//    JSONObject json = bean.extract(false);
-//    JSONObject jsonFiltered = bean.extract(true);
-//
-//    // Sensitive values should exist
-//    JSONArray all = (JSONArray)json.get("all");
-//    JSONObject allItem = (JSONObject)all.get(0);
-//    JSONArray connectors = (JSONArray)allItem.get("connector");
-//    JSONObject connector = (JSONObject)connectors.get(0);
-//    JSONArray inputs = (JSONArray)connector.get("inputs");
-//    assertEquals(3, inputs.size());
-//    // Inputs are ordered when creating connection
-//    JSONObject password = (JSONObject)inputs.get(2);
-//    assertTrue(password.containsKey("value"));
-//
-//    // Sensitive values should not exist
-//    all = (JSONArray)jsonFiltered.get("all");
-//    allItem = (JSONObject)all.get(0);
-//    connectors = (JSONArray)allItem.get("connector");
-//    connector = (JSONObject)connectors.get(0);
-//    inputs = (JSONArray)connector.get("inputs");
-//    assertEquals(3, inputs.size());
-//    // Inputs are ordered when creating connection
-//    password = (JSONObject)inputs.get(2);
-//    assertFalse(password.containsKey("value"));
-//  }
+  @Test
+  public void testSerialization() {
+    Date created = new Date();
+    Date updated = new Date();
+    MConnection connection = getConnection("ahoj");
+    connection.setName("Connection");
+    connection.setPersistenceId(666);
+    connection.setCreationUser("admin");
+    connection.setCreationDate(created);
+    connection.setLastUpdateUser("user");
+    connection.setLastUpdateDate(updated);
+    connection.setEnabled(false);
+
+    // Fill some data at the beginning
+    MStringInput input = (MStringInput) connection.getConnectorPart().getForms()
+      .get(0).getInputs().get(0);
+    input.setValue("Hi there!");
+
+    // Serialize it to JSON object
+    ConnectionBean bean = new ConnectionBean(connection);
+    JSONObject json = bean.extract(false);
+
+    // Check for sensitivity
+    JSONArray all = (JSONArray)json.get("all");
+    JSONObject allItem = (JSONObject)all.get(0);
+    JSONArray connectors = (JSONArray)allItem.get("connector");
+    JSONObject connector = (JSONObject)connectors.get(0);
+    JSONArray inputs = (JSONArray)connector.get("inputs");
+    for (Object input1 : inputs) {
+      assertTrue(((JSONObject)input1).containsKey("sensitive"));
+    }
+
+    // "Move" it across network in text form
+    String string = json.toJSONString();
+
+    // Retrieved transferred object
+    JSONObject retrievedJson = (JSONObject) JSONValue.parse(string);
+    ConnectionBean retrievedBean = new ConnectionBean();
+    retrievedBean.restore(retrievedJson);
+    MConnection target = retrievedBean.getConnections().get(0);
+
+    // Check id and name
+    assertEquals(666, target.getPersistenceId());
+    assertEquals("Connection", target.getName());
+    assertEquals("admin", target.getCreationUser());
+    assertEquals(created, target.getCreationDate());
+    assertEquals("user", target.getLastUpdateUser());
+    assertEquals(updated, target.getLastUpdateDate());
+    assertEquals(false, target.getEnabled());
+
+    // Test that value was correctly moved
+    MStringInput targetInput = (MStringInput) target.getConnectorPart()
+      .getForms().get(0).getInputs().get(0);
+    assertEquals("Hi there!", targetInput.getValue());
+  }
+
+  @Test
+  public void testSensitivityFilter() {
+    Date created = new Date();
+    Date updated = new Date();
+    MConnection connection = getConnection("ahoj");
+    connection.setName("Connection");
+    connection.setPersistenceId(666);
+    connection.setCreationUser("admin");
+    connection.setCreationDate(created);
+    connection.setLastUpdateUser("user");
+    connection.setLastUpdateDate(updated);
+    connection.setEnabled(true);
+
+    // Fill some data at the beginning
+    MStringInput input = (MStringInput) connection.getConnectorPart().getForms()
+      .get(0).getInputs().get(0);
+    input.setValue("Hi there!");
+
+    // Serialize it to JSON object
+    ConnectionBean bean = new ConnectionBean(connection);
+    JSONObject json = bean.extract(false);
+    JSONObject jsonFiltered = bean.extract(true);
+
+    // Sensitive values should exist
+    JSONArray all = (JSONArray)json.get("all");
+    JSONObject allItem = (JSONObject)all.get(0);
+    JSONArray connectors = (JSONArray)allItem.get("connector");
+    JSONObject connector = (JSONObject)connectors.get(0);
+    JSONArray inputs = (JSONArray)connector.get("inputs");
+    assertEquals(3, inputs.size());
+    // Inputs are ordered when creating connection
+    JSONObject password = (JSONObject)inputs.get(2);
+    assertTrue(password.containsKey("value"));
+
+    // Sensitive values should not exist
+    all = (JSONArray)jsonFiltered.get("all");
+    allItem = (JSONObject)all.get(0);
+    connectors = (JSONArray)allItem.get("connector");
+    connector = (JSONObject)connectors.get(0);
+    inputs = (JSONArray)connector.get("inputs");
+    assertEquals(3, inputs.size());
+    // Inputs are ordered when creating connection
+    password = (JSONObject)inputs.get(2);
+    assertFalse(password.containsKey("value"));
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestConnectorBean.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/json/TestConnectorBean.java b/common/src/test/java/org/apache/sqoop/json/TestConnectorBean.java
index 58ea308..e078474 100644
--- a/common/src/test/java/org/apache/sqoop/json/TestConnectorBean.java
+++ b/common/src/test/java/org/apache/sqoop/json/TestConnectorBean.java
@@ -37,40 +37,40 @@ import static org.apache.sqoop.json.TestUtil.*;
  */
 public class TestConnectorBean {
 
-//  /**
-//   * Test that by JSON serialization followed by deserialization we will get
-//   * equal connector object.
-//   */
-//  @Test
-//  public void testSerialization() {
-//    // Create testing connector
-//    List<MConnector> connectors = new LinkedList<MConnector>();
-//    connectors.add(getConnector("jdbc"));
-//    connectors.add(getConnector("mysql"));
-//
-//    // Create testing bundles
-//    Map<Long, ResourceBundle> bundles = new HashMap<Long, ResourceBundle>();
-//    bundles.put(1L, getResourceBundle());
-//    bundles.put(2L, getResourceBundle());
-//
-//    // Serialize it to JSON object
-//    ConnectorBean bean = new ConnectorBean(connectors, bundles);
-//    JSONObject json = bean.extract(false);
-//
-//    // "Move" it across network in text form
-//    String string = json.toJSONString();
-//
-//    // Retrieved transferred object
-//    JSONObject retrievedJson = (JSONObject) JSONValue.parse(string);
-//    ConnectorBean retrievedBean = new ConnectorBean();
-//    retrievedBean.restore(retrievedJson);
-//
-//    assertEquals(connectors.size(), retrievedBean.getConnectors().size());
-//    assertEquals(connectors.get(0), retrievedBean.getConnectors().get(0));
-//
-//    ResourceBundle retrievedBundle = retrievedBean.getResourceBundles().get(1L);
-//    assertNotNull(retrievedBundle);
-//    assertEquals("a", retrievedBundle.getString("a"));
-//    assertEquals("b", retrievedBundle.getString("b"));
-//  }
+  /**
+   * Test that by JSON serialization followed by deserialization we will get
+   * equal connector object.
+   */
+  @Test
+  public void testSerialization() {
+    // Create testing connector
+    List<MConnector> connectors = new LinkedList<MConnector>();
+    connectors.add(getConnector("jdbc"));
+    connectors.add(getConnector("mysql"));
+
+    // Create testing bundles
+    Map<Long, ResourceBundle> bundles = new HashMap<Long, ResourceBundle>();
+    bundles.put(1L, getResourceBundle());
+    bundles.put(2L, getResourceBundle());
+
+    // Serialize it to JSON object
+    ConnectorBean bean = new ConnectorBean(connectors, bundles);
+    JSONObject json = bean.extract(false);
+
+    // "Move" it across network in text form
+    String string = json.toJSONString();
+
+    // Retrieved transferred object
+    JSONObject retrievedJson = (JSONObject) JSONValue.parse(string);
+    ConnectorBean retrievedBean = new ConnectorBean();
+    retrievedBean.restore(retrievedJson);
+
+    assertEquals(connectors.size(), retrievedBean.getConnectors().size());
+    assertEquals(connectors.get(0), retrievedBean.getConnectors().get(0));
+
+    ResourceBundle retrievedBundle = retrievedBean.getResourceBundles().get(1L);
+    assertNotNull(retrievedBundle);
+    assertEquals("a", retrievedBundle.getString("a"));
+    assertEquals("b", retrievedBundle.getString("b"));
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestFrameworkBean.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/json/TestFrameworkBean.java b/common/src/test/java/org/apache/sqoop/json/TestFrameworkBean.java
index e667755..5cc110a 100644
--- a/common/src/test/java/org/apache/sqoop/json/TestFrameworkBean.java
+++ b/common/src/test/java/org/apache/sqoop/json/TestFrameworkBean.java
@@ -34,31 +34,31 @@ import static org.junit.Assert.*;
  */
 public class TestFrameworkBean {
 
-//  /**
-//   * Test that by JSON serialization followed by deserialization we will get
-//   * equal framework object.
-//   */
-//  @Test
-//  public void testSerialization() {
-//    MFramework framework = getFramework();
-//
-//    // Serialize it to JSON object
-//    FrameworkBean bean = new FrameworkBean(framework, getResourceBundle());
-//    JSONObject json = bean.extract(false);
-//
-//    // "Move" it across network in text form
-//    String string = json.toJSONString();
-//
-//    // Retrieved transferred object
-//    JSONObject retrievedJson = (JSONObject) JSONValue.parse(string);
-//    FrameworkBean retrievedBean = new FrameworkBean();
-//    retrievedBean.restore(retrievedJson);
-//
-//    assertEquals(framework, retrievedBean.getFramework());
-//
-//    ResourceBundle retrievedBundle = retrievedBean.getResourceBundle();
-//    assertEquals("a", retrievedBundle.getString("a"));
-//    assertEquals("b", retrievedBundle.getString("b"));
-//  }
+  /**
+   * Test that by JSON serialization followed by deserialization we will get
+   * equal framework object.
+   */
+  @Test
+  public void testSerialization() {
+    MFramework framework = getFramework();
+
+    // Serialize it to JSON object
+    FrameworkBean bean = new FrameworkBean(framework, getResourceBundle());
+    JSONObject json = bean.extract(false);
+
+    // "Move" it across network in text form
+    String string = json.toJSONString();
+
+    // Retrieved transferred object
+    JSONObject retrievedJson = (JSONObject) JSONValue.parse(string);
+    FrameworkBean retrievedBean = new FrameworkBean();
+    retrievedBean.restore(retrievedJson);
+
+    assertEquals(framework, retrievedBean.getFramework());
+
+    ResourceBundle retrievedBundle = retrievedBean.getResourceBundle();
+    assertEquals("a", retrievedBundle.getString("a"));
+    assertEquals("b", retrievedBundle.getString("b"));
+  }
 
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestJobBean.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/json/TestJobBean.java b/common/src/test/java/org/apache/sqoop/json/TestJobBean.java
index 8638408..3106d39 100644
--- a/common/src/test/java/org/apache/sqoop/json/TestJobBean.java
+++ b/common/src/test/java/org/apache/sqoop/json/TestJobBean.java
@@ -17,62 +17,72 @@
  */
 package org.apache.sqoop.json;
 
-//import org.apache.sqoop.model.MJob;
-//import org.apache.sqoop.model.MStringInput;
-//import org.json.simple.JSONObject;
-//import org.json.simple.JSONValue;
-//import org.json.simple.parser.ParseException;
-//import org.junit.Test;
-//
-//import java.util.Date;
-//
-//import static junit.framework.Assert.assertEquals;
-//import static org.apache.sqoop.json.TestUtil.getJob;
+import org.apache.sqoop.common.Direction;
+import org.apache.sqoop.model.MJob;
+import org.apache.sqoop.model.MStringInput;
+import org.json.simple.JSONObject;
+import org.json.simple.JSONValue;
+import org.json.simple.parser.ParseException;
+import org.junit.Test;
+
+import java.util.Date;
+
+import static junit.framework.Assert.assertEquals;
+import static org.apache.sqoop.json.TestUtil.getJob;
 
 /**
  *
  */
 public class TestJobBean {
-//  @Test
-//  public void testSerialization() throws ParseException {
-//    Date created = new Date();
-//    Date updated = new Date();
-//    MJob job = getJob("ahoj", MJob.Type.IMPORT);
-//    job.setName("The big job");
-//    job.setPersistenceId(666);
-//    job.setCreationDate(created);
-//    job.setLastUpdateDate(updated);
-//    job.setEnabled(false);
-//
-//    // Fill some data at the beginning
-//    MStringInput input = (MStringInput) job.getFromPart().getForms()
-//      .get(0).getInputs().get(0);
-//    input.setValue("Hi there!");
-//
-//    // Serialize it to JSON object
-//    JobBean bean = new JobBean(job);
-//    JSONObject json = bean.extract(false);
-//
-//    // "Move" it across network in text form
-//    String string = json.toJSONString();
-//
-//    // Retrieved transferred object
-//    JSONObject retrievedJson = (JSONObject)JSONValue.parseWithException(string);
-//    JobBean retrievedBean = new JobBean();
-//    retrievedBean.restore(retrievedJson);
-//    MJob target = retrievedBean.getJobs().get(0);
-//
-//    // Check id and name
-//    assertEquals(666, target.getPersistenceId());
-//    assertEquals(MJob.Type.IMPORT, target.getType());
-//    assertEquals("The big job", target.getName());
-//    assertEquals(created, target.getCreationDate());
-//    assertEquals(updated, target.getLastUpdateDate());
-//    assertEquals(false, target.getEnabled());
-//
-//    // Test that value was correctly moved
-//    MStringInput targetInput = (MStringInput) target.getFromPart()
-//      .getForms().get(0).getInputs().get(0);
-//    assertEquals("Hi there!", targetInput.getValue());
-//  }
+  @Test
+  public void testSerialization() throws ParseException {
+    Date created = new Date();
+    Date updated = new Date();
+    MJob job = getJob("ahoj");
+    job.setName("The big job");
+    job.setPersistenceId(666);
+    job.setCreationDate(created);
+    job.setLastUpdateDate(updated);
+    job.setEnabled(false);
+
+    // Fill some data at the beginning
+    MStringInput input = (MStringInput) job.getConnectorPart(Direction.FROM)
+        .getForms().get(0).getInputs().get(0);
+    input.setValue("Hi there!");
+    input = (MStringInput) job.getConnectorPart(Direction.TO)
+        .getForms().get(0).getInputs().get(0);
+    input.setValue("Hi there again!");
+
+    // Serialize it to JSON object
+    JobBean bean = new JobBean(job);
+    JSONObject json = bean.extract(false);
+
+    // "Move" it across network in text form
+    String string = json.toJSONString();
+
+    // Retrieved transferred object
+    JSONObject retrievedJson = (JSONObject)JSONValue.parseWithException(string);
+    JobBean retrievedBean = new JobBean();
+    retrievedBean.restore(retrievedJson);
+    MJob target = retrievedBean.getJobs().get(0);
+
+    // Check id and name
+    assertEquals(666, target.getPersistenceId());
+    assertEquals(target.getConnectionId(Direction.FROM), 1);
+    assertEquals(target.getConnectionId(Direction.TO), 2);
+    assertEquals(target.getConnectorId(Direction.FROM), 1);
+    assertEquals(target.getConnectorId(Direction.TO), 2);
+    assertEquals("The big job", target.getName());
+    assertEquals(created, target.getCreationDate());
+    assertEquals(updated, target.getLastUpdateDate());
+    assertEquals(false, target.getEnabled());
+
+    // Test that value was correctly moved
+    MStringInput targetInput = (MStringInput) target.getConnectorPart(Direction.FROM)
+      .getForms().get(0).getInputs().get(0);
+    assertEquals("Hi there!", targetInput.getValue());
+    targetInput = (MStringInput) target.getConnectorPart(Direction.TO)
+        .getForms().get(0).getInputs().get(0);
+    assertEquals("Hi there again!", targetInput.getValue());
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestSchemaBean.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/json/TestSchemaBean.java b/common/src/test/java/org/apache/sqoop/json/TestSchemaBean.java
index ce107a8..5daab76 100644
--- a/common/src/test/java/org/apache/sqoop/json/TestSchemaBean.java
+++ b/common/src/test/java/org/apache/sqoop/json/TestSchemaBean.java
@@ -29,24 +29,24 @@ import org.json.simple.JSONValue;
  * as a means of transfer.
  */
 public class TestSchemaBean extends TestSchemaSerialization {
-//
-//  /**
-//   * Override the transfer method to use the SchemaBean.
-//   *
-//   * @param schema
-//   * @return
-//   */
-//  @Override
-//  protected Schema transfer(Schema schema) {
-//    SchemaBean extractBean = new SchemaBean(schema);
-//    JSONObject extractJson = extractBean.extract(true);
-//
-//    String transferredString = extractJson.toJSONString();
-//
-//    JSONObject restoreJson = (JSONObject) JSONValue.parse(transferredString);
-//    SchemaBean restoreBean = new SchemaBean();
-//    restoreBean.restore(restoreJson);
-//
-//    return restoreBean.getSchema();
-//  }
+
+  /**
+   * Override the transfer method to use the SchemaBean.
+   *
+   * @param schema
+   * @return
+   */
+  @Override
+  protected Schema transfer(Schema schema) {
+    SchemaBean extractBean = new SchemaBean(schema);
+    JSONObject extractJson = extractBean.extract(true);
+
+    String transferredString = extractJson.toJSONString();
+
+    JSONObject restoreJson = (JSONObject) JSONValue.parse(transferredString);
+    SchemaBean restoreBean = new SchemaBean();
+    restoreBean.restore(restoreJson);
+
+    return restoreBean.getSchema();
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestUtil.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/json/TestUtil.java b/common/src/test/java/org/apache/sqoop/json/TestUtil.java
index d3e118b..a9aa233 100644
--- a/common/src/test/java/org/apache/sqoop/json/TestUtil.java
+++ b/common/src/test/java/org/apache/sqoop/json/TestUtil.java
@@ -17,6 +17,7 @@
  */
 package org.apache.sqoop.json;
 
+import org.apache.sqoop.common.Direction;
 import org.apache.sqoop.model.MConnection;
 import org.apache.sqoop.model.MConnectionForms;
 import org.apache.sqoop.model.MConnector;
@@ -38,115 +39,108 @@ import java.util.ResourceBundle;
  *
  */
 public class TestUtil {
-//  public static MConnector getConnector(String name) {
-//    return new MConnector(name, name + ".class", "1.0-test",
-//      getConnectionForms(), getAllJobForms());
-//  }
-//
-//  public static MFramework getFramework() {
-//    return new MFramework(getConnectionForms(), getAllJobForms(), "1");
-//  }
-//
-//  public static MConnection getConnection(String name) {
-//    return new MConnection(1,
-//                           getConnector(name).getConnectionForms(),
-//                           getFramework().getConnectionForms()
-//    );
-//  }
-//
-//  public static MJob getJob(String name, MJob.Type type) {
-//    return new MJob(1, 1,
-//                    type,
-//                    getConnector(name).getJobForms(type),
-//                    getFramework().getJobForms(type)
-//    );
-//  }
-//
-//  public static MConnectionForms getConnectionForms() {
-//    List<MInput<?>> inputs;
-//    MStringInput input;
-//    MForm form;
-//    List<MForm> connectionForms = new ArrayList<MForm>();
-//    inputs = new ArrayList<MInput<?>>();
-//
-//    input = new MStringInput("url", false, (short) 10);
-//    input.setPersistenceId(1);
-//    inputs.add(input);
-//
-//    input = new MStringInput("username", false, (short) 10);
-//    input.setPersistenceId(2);
-//    input.setValue("test");
-//    inputs.add(input);
-//
-//    input = new MStringInput("password", true, (short) 10);
-//    input.setPersistenceId(3);
-//    input.setValue("test");
-//    inputs.add(input);
-//
-//    form = new MForm("connection", inputs);
-//    form.setPersistenceId(10);
-//    connectionForms.add(form);
-//
-//    return new MConnectionForms(connectionForms);
-//  }
-//
-//  public static MJobForms getJobForms(MJob.Type type) {
-//    List<MInput<?>> inputs;
-//    MStringInput input;
-//    MForm form;
-//    List<MForm> jobForms = new ArrayList<MForm>();
-//
-//    inputs = new ArrayList<MInput<?>>();
-//
-//    input = new MStringInput("A", false, (short) 10);
-//    input.setPersistenceId(4);
-//    inputs.add(input);
-//
-//    input = new MStringInput("B", false, (short) 10);
-//    input.setPersistenceId(5);
-//    inputs.add(input);
-//
-//    input = new MStringInput("C", false, (short) 10);
-//    input.setPersistenceId(6);
-//    inputs.add(input);
-//
-//    form = new MForm("Z", inputs);
-//    form.setPersistenceId(11);
-//    jobForms.add(form);
-//
-//    inputs = new ArrayList<MInput<?>>();
-//
-//    input = new MStringInput("D", false, (short) 10);
-//    input.setPersistenceId(7);
-//    inputs.add(input);
-//
-//    input = new MStringInput("E", false, (short) 10);
-//    input.setPersistenceId(8);
-//    inputs.add(input);
-//
-//    input = new MStringInput("F", false, (short) 10);
-//    input.setPersistenceId(9);
-//    inputs.add(input);
-//
-//    form = new MForm("connection", inputs);
-//    form.setPersistenceId(12);
-//    jobForms.add(form);
-//
-//    return new MJobForms(type, jobForms);
-//  }
-//
-//  public static List<MJobForms> getAllJobForms() {
-//    List<MJobForms> jobs = new ArrayList<MJobForms>();
-//    jobs.add(getJobForms(MJob.Type.IMPORT));
-//
-//    return jobs;
-//  }
-//
-//  public static ResourceBundle getResourceBundle() {
-//    Map<String, Object> map = new HashMap<String, Object>();
-//    map.put("a", "a");
-//    map.put("b", "b");
-//
-//    return new MapResourceBundle(map);
-//  }
+  public static MConnector getConnector(String name) {
+    return new MConnector(name, name + ".class", "1.0-test",
+      getConnectionForms(), getJobForms(), getJobForms());
+  }
+
+  public static MFramework getFramework() {
+    return new MFramework(getConnectionForms(), getJobForms(), "1");
+  }
+
+  public static MConnection getConnection(String name) {
+    return new MConnection(1,
+                           getConnector(name).getConnectionForms(),
+                           getFramework().getConnectionForms()
+    );
+  }
+
+  public static MJob getJob(String name) {
+    return new MJob(1, 2, 1, 2,
+                    getConnector(name).getJobForms(Direction.FROM),
+                    getConnector(name).getJobForms(Direction.TO),
+                    getFramework().getJobForms()
+    );
+  }
+
+  public static MConnectionForms getConnectionForms() {
+    List<MInput<?>> inputs;
+    MStringInput input;
+    MForm form;
+    List<MForm> connectionForms = new ArrayList<MForm>();
+    inputs = new ArrayList<MInput<?>>();
+
+    input = new MStringInput("url", false, (short) 10);
+    input.setPersistenceId(1);
+    inputs.add(input);
+
+    input = new MStringInput("username", false, (short) 10);
+    input.setPersistenceId(2);
+    input.setValue("test");
+    inputs.add(input);
+
+    input = new MStringInput("password", true, (short) 10);
+    input.setPersistenceId(3);
+    input.setValue("test");
+    inputs.add(input);
+
+    form = new MForm("connection", inputs);
+    form.setPersistenceId(10);
+    connectionForms.add(form);
+
+    return new MConnectionForms(connectionForms);
+  }
+
+  public static MJobForms getJobForms() {
+    List<MInput<?>> inputs;
+    MStringInput input;
+    MForm form;
+    List<MForm> jobForms = new ArrayList<MForm>();
+
+    inputs = new ArrayList<MInput<?>>();
+
+    input = new MStringInput("A", false, (short) 10);
+    input.setPersistenceId(4);
+    inputs.add(input);
+
+    input = new MStringInput("B", false, (short) 10);
+    input.setPersistenceId(5);
+    inputs.add(input);
+
+    input = new MStringInput("C", false, (short) 10);
+    input.setPersistenceId(6);
+    inputs.add(input);
+
+    form = new MForm("Z", inputs);
+    form.setPersistenceId(11);
+    jobForms.add(form);
+
+    inputs = new ArrayList<MInput<?>>();
+
+    input = new MStringInput("D", false, (short) 10);
+    input.setPersistenceId(7);
+    inputs.add(input);
+
+    input = new MStringInput("E", false, (short) 10);
+    input.setPersistenceId(8);
+    inputs.add(input);
+
+    input = new MStringInput("F", false, (short) 10);
+    input.setPersistenceId(9);
+    inputs.add(input);
+
+    form = new MForm("connection", inputs);
+    form.setPersistenceId(12);
+    jobForms.add(form);
+
+    return new MJobForms(jobForms);
+  }
+
+  public static ResourceBundle getResourceBundle() {
+    Map<String, Object> map = new HashMap<String, Object>();
+    map.put("a", "a");
+    map.put("b", "b");
+
+    return new MapResourceBundle(map);
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestValidationBean.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/json/TestValidationBean.java b/common/src/test/java/org/apache/sqoop/json/TestValidationBean.java
index 704d55b..c6086dd 100644
--- a/common/src/test/java/org/apache/sqoop/json/TestValidationBean.java
+++ b/common/src/test/java/org/apache/sqoop/json/TestValidationBean.java
@@ -17,6 +17,7 @@
  */
 package org.apache.sqoop.json;
 
+import org.apache.sqoop.common.Direction;
 import org.apache.sqoop.validation.Status;
 import org.apache.sqoop.validation.Validation;
 import org.json.simple.JSONObject;
@@ -32,76 +33,143 @@ import static org.junit.Assert.*;
  *
  */
 public class TestValidationBean {
-//
-//  @Test
-//  public void testSerialization() {
-//    // Serialize it to JSON object
-//    ValidationBean bean = new ValidationBean(
-//      getValidation(Status.FINE),
-//      getValidation(Status.UNACCEPTABLE)
-//    );
-//    JSONObject json = bean.extract(false);
-//
-//    // "Move" it across network in text form
-//    String string = json.toJSONString();
-//
-//    // Retrieved transferred object
-//    JSONObject retrievedJson = (JSONObject) JSONValue.parse(string);
-//    ValidationBean retrievedBean = new ValidationBean();
-//    retrievedBean.restore(retrievedJson);
-//
-//    assertNull(retrievedBean.getId());
-//
-//    Validation.FormInput fa = new Validation.FormInput("f", "i");
-//    Validation.FormInput fb = new Validation.FormInput("f2", "i2");
-//
-//    Validation connector = retrievedBean.getConnectorValidation();
-//    assertEquals(Status.FINE, connector.getStatus());
-//    assertEquals(2, connector.getMessages().size());
-//    assertTrue(connector.getMessages().containsKey(fa));
-//    assertEquals(new Validation.Message(Status.FINE, "d"),
-//      connector.getMessages().get(fa));
-//
-//    Validation framework = retrievedBean.getFrameworkValidation();
-//    assertEquals(Status.UNACCEPTABLE, framework.getStatus());
-//    assertEquals(2, framework.getMessages().size());
-//    assertTrue(framework.getMessages().containsKey(fb));
-//    assertEquals(new Validation.Message(Status.UNACCEPTABLE, "c"),
-//      framework.getMessages().get(fb));
-//  }
-//
-//  @Test
-//  public void testId() {
-//    // Serialize it to JSON object
-//    ValidationBean bean = new ValidationBean(
-//      getValidation(Status.FINE),
-//      getValidation(Status.FINE)
-//    );
-//    bean.setId((long) 10);
-//    JSONObject json = bean.extract(false);
-//
-//    // "Move" it across network in text form
-//    String string = json.toJSONString();
-//
-//    // Retrieved transferred object
-//    JSONObject retrievedJson = (JSONObject) JSONValue.parse(string);
-//    ValidationBean retrievedBean = new ValidationBean();
-//    retrievedBean.restore(retrievedJson);
-//
-//    assertEquals((Long)(long) 10, retrievedBean.getId());
-//  }
-//
-//  public Validation getValidation(Status status) {
-//    Map<Validation.FormInput, Validation.Message> messages =
-//      new HashMap<Validation.FormInput, Validation.Message>();
-//
-//    messages.put(
-//      new Validation.FormInput("f", "i"),
-//      new Validation.Message(status, "d"));
-//    messages.put(
-//      new Validation.FormInput("f2", "i2"),
-//      new Validation.Message(status, "c"));
-//
-//    return new Validation(status, messages);
-//  }
+
+  @Test
+  public void testJobValidationBeanSerialization() {
+    // Serialize it to JSON object
+    JobValidationBean bean = new JobValidationBean(
+      getValidation(Status.FINE),
+      getValidation(Status.UNACCEPTABLE),
+      getValidation(Status.FINE)
+    );
+    JSONObject json = bean.extract(false);
+
+    // "Move" it across network in text form
+    String string = json.toJSONString();
+
+    // Retrieved transferred object
+    JSONObject retrievedJson = (JSONObject) JSONValue.parse(string);
+    JobValidationBean retrievedBean = new JobValidationBean();
+    retrievedBean.restore(retrievedJson);
+
+    assertNull(retrievedBean.getId());
+
+    Validation.FormInput fa = new Validation.FormInput("f", "i");
+    Validation.FormInput fb = new Validation.FormInput("f2", "i2");
+
+    Validation fromConnector = retrievedBean.getConnectorValidation(Direction.FROM);
+    assertEquals(Status.FINE, fromConnector.getStatus());
+    assertEquals(2, fromConnector.getMessages().size());
+    assertTrue(fromConnector.getMessages().containsKey(fa));
+    assertEquals(new Validation.Message(Status.FINE, "d"),
+        fromConnector.getMessages().get(fa));
+
+    Validation toConnector = retrievedBean.getConnectorValidation(Direction.TO);
+    assertEquals(Status.FINE, toConnector.getStatus());
+    assertEquals(2, toConnector.getMessages().size());
+    assertTrue(toConnector.getMessages().containsKey(fa));
+    assertEquals(new Validation.Message(Status.FINE, "d"),
+        toConnector.getMessages().get(fa));
+
+    Validation framework = retrievedBean.getFrameworkValidation();
+    assertEquals(Status.UNACCEPTABLE, framework.getStatus());
+    assertEquals(2, framework.getMessages().size());
+    assertTrue(framework.getMessages().containsKey(fb));
+    assertEquals(new Validation.Message(Status.UNACCEPTABLE, "c"),
+      framework.getMessages().get(fb));
+  }
+
+  @Test
+  public void testJobValidationBeanId() {
+    // Serialize it to JSON object
+    JobValidationBean bean = new JobValidationBean(
+        getValidation(Status.FINE),
+        getValidation(Status.FINE),
+        getValidation(Status.FINE)
+    );
+    bean.setId((long) 10);
+    JSONObject json = bean.extract(false);
+
+    // "Move" it across network in text form
+    String string = json.toJSONString();
+
+    // Retrieved transferred object
+    JSONObject retrievedJson = (JSONObject) JSONValue.parse(string);
+    JobValidationBean retrievedBean = new JobValidationBean();
+    retrievedBean.restore(retrievedJson);
+
+    assertEquals((Long)(long) 10, retrievedBean.getId());
+  }
+
+  @Test
+  public void testConnectionValidationBeanSerialization() {
+    // Serialize it to JSON object
+    ConnectionValidationBean bean = new ConnectionValidationBean(
+        getValidation(Status.FINE),
+        getValidation(Status.UNACCEPTABLE)
+    );
+    JSONObject json = bean.extract(false);
+
+    // "Move" it across network in text form
+    String string = json.toJSONString();
+
+    // Retrieved transferred object
+    JSONObject retrievedJson = (JSONObject) JSONValue.parse(string);
+    ConnectionValidationBean retrievedBean = new ConnectionValidationBean();
+    retrievedBean.restore(retrievedJson);
+
+    assertNull(retrievedBean.getId());
+
+    Validation.FormInput fa = new Validation.FormInput("f", "i");
+    Validation.FormInput fb = new Validation.FormInput("f2", "i2");
+
+    Validation connector = retrievedBean.getConnectorValidation();
+    assertEquals(Status.FINE, connector.getStatus());
+    assertEquals(2, connector.getMessages().size());
+    assertTrue(connector.getMessages().containsKey(fa));
+    assertEquals(new Validation.Message(Status.FINE, "d"),
+        connector.getMessages().get(fa));
+
+    Validation framework = retrievedBean.getFrameworkValidation();
+    assertEquals(Status.UNACCEPTABLE, framework.getStatus());
+    assertEquals(2, framework.getMessages().size());
+    assertTrue(framework.getMessages().containsKey(fb));
+    assertEquals(new Validation.Message(Status.UNACCEPTABLE, "c"),
+        framework.getMessages().get(fb));
+  }
+
+  @Test
+  public void testConnectionValidationBeanId() {
+    // Serialize it to JSON object
+    ConnectionValidationBean bean = new ConnectionValidationBean(
+        getValidation(Status.FINE),
+        getValidation(Status.FINE)
+    );
+    bean.setId((long) 10);
+    JSONObject json = bean.extract(false);
+
+    // "Move" it across network in text form
+    String string = json.toJSONString();
+
+    // Retrieved transferred object
+    JSONObject retrievedJson = (JSONObject) JSONValue.parse(string);
+    ConnectionValidationBean retrievedBean = new ConnectionValidationBean();
+    retrievedBean.restore(retrievedJson);
+
+    assertEquals((Long)(long) 10, retrievedBean.getId());
+  }
+
+  public Validation getValidation(Status status) {
+    Map<Validation.FormInput, Validation.Message> messages =
+      new HashMap<Validation.FormInput, Validation.Message>();
+
+    messages.put(
+      new Validation.FormInput("f", "i"),
+      new Validation.Message(status, "d"));
+    messages.put(
+      new Validation.FormInput("f2", "i2"),
+      new Validation.Message(status, "c"));
+
+    return new Validation(status, messages);
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/util/TestFormSerialization.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/json/util/TestFormSerialization.java b/common/src/test/java/org/apache/sqoop/json/util/TestFormSerialization.java
index 9cd7305..c4223ec 100644
--- a/common/src/test/java/org/apache/sqoop/json/util/TestFormSerialization.java
+++ b/common/src/test/java/org/apache/sqoop/json/util/TestFormSerialization.java
@@ -42,116 +42,116 @@ import static org.junit.Assert.assertNotNull;
  */
 public class TestFormSerialization {
 
-//  @Test
-//  public void testAllDataTypes() {
-//    // Inserted values
-//    Map<String, String> map = new HashMap<String, String>();
-//    map.put("A", "B");
-//
-//    // Fill form with all values
-//    MForm form = getForm();
-//    form.getStringInput("String").setValue("A");
-//    form.getMapInput("Map").setValue(map);
-//    form.getIntegerInput("Integer").setValue(1);
-//    form.getBooleanInput("Boolean").setValue(true);
-//    form.getEnumInput("Enum").setValue("YES");
-//
-//    // Serialize that into JSON
-//    JSONObject jsonObject = FormSerialization.extractForm(form, false);
-//    assertNotNull(jsonObject);
-//
-//    // Exchange the data on string level
-//    String serializedJson = jsonObject.toJSONString();
-//    JSONObject retrievedJson = (JSONObject) JSONValue.parse(serializedJson);
-//
-//    // And retrieve back from JSON representation
-//    MForm retrieved = FormSerialization.restoreForm(retrievedJson);
-//
-//    // Verify all expected values
-//    assertEquals("A", retrieved.getStringInput("String").getValue());
-//    assertEquals(map, retrieved.getMapInput("Map").getValue());
-//    assertEquals(1, (int)retrieved.getIntegerInput("Integer").getValue());
-//    assertEquals(true, retrieved.getBooleanInput("Boolean").getValue());
-//    assertEquals("YES", retrieved.getEnumInput("Enum").getValue());
-//  }
-//
-//  @Test
-//  public void testMapDataType() {
-//    MForm form = getMapForm();
-//
-//    // Inserted values
-//    Map<String, String> map = new HashMap<String, String>();
-//    map.put("A", "B");
-//    form.getMapInput("Map").setValue(map);
-//
-//    // Serialize
-//    JSONObject jsonObject = FormSerialization.extractForm(form, false);
-//    String serializedJson = jsonObject.toJSONString();
-//
-//    // Deserialize
-//    JSONObject retrievedJson = (JSONObject) JSONValue.parse(serializedJson);
-//    MForm retrieved = FormSerialization.restoreForm(retrievedJson);
-//    assertEquals(map, retrieved.getMapInput("Map").getValue());
-//  }
-//
-//  @Test(expected=SqoopException.class)
-//  public void testMapDataTypeException() {
-//    MForm form = getMapForm();
-//
-//    // Inserted values
-//    Map<String, String> map = new HashMap<String, String>();
-//    map.put("A", "B");
-//    form.getMapInput("Map").setValue(map);
-//
-//    // Serialize
-//    JSONObject jsonObject = FormSerialization.extractForm(form, false);
-//    String serializedJson = jsonObject.toJSONString();
-//
-//    // Replace map value with a fake string to force exception
-//    String badSerializedJson = serializedJson.replace("{\"A\":\"B\"}", "\"nonsensical string\"");
-//    System.out.println(badSerializedJson);
-//    JSONObject retrievedJson = (JSONObject) JSONValue.parse(badSerializedJson);
-//    FormSerialization.restoreForm(retrievedJson);
-//  }
-//
-//  protected MForm getMapForm() {
-//    List<MInput<?>> inputs;
-//    MInput input;
-//
-//    inputs = new LinkedList<MInput<?>>();
-//
-//    input = new MMapInput("Map", false);
-//    inputs.add(input);
-//
-//    return new MForm("f", inputs);
-//  }
-//
-//  /**
-//   * Return form with all data types.
-//   *
-//   * @return
-//   */
-//  protected MForm getForm() {
-//    List<MInput<?>> inputs;
-//    MInput input;
-//
-//    inputs = new LinkedList<MInput<?>>();
-//
-//    input = new MStringInput("String", false, (short)30);
-//    inputs.add(input);
-//
-//    input = new MMapInput("Map", false);
-//    inputs.add(input);
-//
-//    input = new MIntegerInput("Integer", false);
-//    inputs.add(input);
-//
-//    input = new MBooleanInput("Boolean", false);
-//    inputs.add(input);
-//
-//    input = new MEnumInput("Enum", false, new String[] {"YES", "NO"});
-//    inputs.add(input);
-//
-//    return new MForm("f", inputs);
-//  }
+  @Test
+  public void testAllDataTypes() {
+    // Inserted values
+    Map<String, String> map = new HashMap<String, String>();
+    map.put("A", "B");
+
+    // Fill form with all values
+    MForm form = getForm();
+    form.getStringInput("String").setValue("A");
+    form.getMapInput("Map").setValue(map);
+    form.getIntegerInput("Integer").setValue(1);
+    form.getBooleanInput("Boolean").setValue(true);
+    form.getEnumInput("Enum").setValue("YES");
+
+    // Serialize that into JSON
+    JSONObject jsonObject = FormSerialization.extractForm(form, false);
+    assertNotNull(jsonObject);
+
+    // Exchange the data on string level
+    String serializedJson = jsonObject.toJSONString();
+    JSONObject retrievedJson = (JSONObject) JSONValue.parse(serializedJson);
+
+    // And retrieve back from JSON representation
+    MForm retrieved = FormSerialization.restoreForm(retrievedJson);
+
+    // Verify all expected values
+    assertEquals("A", retrieved.getStringInput("String").getValue());
+    assertEquals(map, retrieved.getMapInput("Map").getValue());
+    assertEquals(1, (int)retrieved.getIntegerInput("Integer").getValue());
+    assertEquals(true, retrieved.getBooleanInput("Boolean").getValue());
+    assertEquals("YES", retrieved.getEnumInput("Enum").getValue());
+  }
+
+  @Test
+  public void testMapDataType() {
+    MForm form = getMapForm();
+
+    // Inserted values
+    Map<String, String> map = new HashMap<String, String>();
+    map.put("A", "B");
+    form.getMapInput("Map").setValue(map);
+
+    // Serialize
+    JSONObject jsonObject = FormSerialization.extractForm(form, false);
+    String serializedJson = jsonObject.toJSONString();
+
+    // Deserialize
+    JSONObject retrievedJson = (JSONObject) JSONValue.parse(serializedJson);
+    MForm retrieved = FormSerialization.restoreForm(retrievedJson);
+    assertEquals(map, retrieved.getMapInput("Map").getValue());
+  }
+
+  @Test(expected=SqoopException.class)
+  public void testMapDataTypeException() {
+    MForm form = getMapForm();
+
+    // Inserted values
+    Map<String, String> map = new HashMap<String, String>();
+    map.put("A", "B");
+    form.getMapInput("Map").setValue(map);
+
+    // Serialize
+    JSONObject jsonObject = FormSerialization.extractForm(form, false);
+    String serializedJson = jsonObject.toJSONString();
+
+    // Replace map value with a fake string to force exception
+    String badSerializedJson = serializedJson.replace("{\"A\":\"B\"}", "\"nonsensical string\"");
+    System.out.println(badSerializedJson);
+    JSONObject retrievedJson = (JSONObject) JSONValue.parse(badSerializedJson);
+    FormSerialization.restoreForm(retrievedJson);
+  }
+
+  protected MForm getMapForm() {
+    List<MInput<?>> inputs;
+    MInput input;
+
+    inputs = new LinkedList<MInput<?>>();
+
+    input = new MMapInput("Map", false);
+    inputs.add(input);
+
+    return new MForm("f", inputs);
+  }
+
+  /**
+   * Return form with all data types.
+   *
+   * @return
+   */
+  protected MForm getForm() {
+    List<MInput<?>> inputs;
+    MInput input;
+
+    inputs = new LinkedList<MInput<?>>();
+
+    input = new MStringInput("String", false, (short)30);
+    inputs.add(input);
+
+    input = new MMapInput("Map", false);
+    inputs.add(input);
+
+    input = new MIntegerInput("Integer", false);
+    inputs.add(input);
+
+    input = new MBooleanInput("Boolean", false);
+    inputs.add(input);
+
+    input = new MEnumInput("Enum", false, new String[] {"YES", "NO"});
+    inputs.add(input);
+
+    return new MForm("f", inputs);
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java b/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java
index e36308d..ab5bbd4 100644
--- a/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java
+++ b/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java
@@ -43,135 +43,135 @@ import static org.junit.Assert.assertEquals;
  */
 public class TestSchemaSerialization {
 
-//  @Test
-//  public void testArray() {
-//    Schema array = new Schema("array").addColumn(new Array("a", new Decimal()));
-//    transferAndAssert(array);
-//  }
-//
-//  @Test
-//  public void testBinary() {
-//    Schema binary = new Schema("b").addColumn(new Binary("A", 100L));
-//    transferAndAssert(binary);
-//  }
-//
-//  @Test
-//  public void testBit() {
-//    Schema bit = new Schema("b").addColumn(new Bit("B"));
-//    transferAndAssert(bit);
-//  }
-//
-//  @Test
-//  public void testDate() {
-//    Schema date = new Schema("d").addColumn(new Date("d"));
-//    transferAndAssert(date);
-//  }
-//
-//  @Test
-//  public void testDateTime() {
-//    Schema dateTime = new Schema("dt").addColumn(new DateTime("dt", Boolean.FALSE, Boolean.TRUE));
-//    transferAndAssert(dateTime);
-//  }
-//
-//  @Test
-//  public void testDecimal() {
-//    Schema decimal = new Schema("d").addColumn(new Decimal("d", 12L, 15L));
-//    transferAndAssert(decimal);
-//  }
-//
-//  @Test
-//  public void testEnum() {
-//    Schema e = new Schema("e").addColumn(new Enum("e", new Text()));
-//    transferAndAssert(e);
-//  }
-//
-//  @Test
-//  public void testFixedPoint() {
-//    Schema f = new Schema("f").addColumn(new FixedPoint("fp", 4L, Boolean.FALSE));
-//    transferAndAssert(f);
-//  }
-//
-//  @Test
-//  public void testFloatingPoint() {
-//    Schema fp = new Schema("fp").addColumn(new FloatingPoint("k", 4L));
-//    transferAndAssert(fp);
-//  }
-//
-//  @Test
-//  public void testMap() {
-//    Schema m = new Schema("m").addColumn(new Map("m", new Text(), new Decimal()));
-//    transferAndAssert(m);
-//  }
-//
-//  @Test
-//  public void testSet() {
-//    Schema s = new Schema("s").addColumn(new Set("b", new Binary()));
-//    transferAndAssert(s);
-//  }
-//
-//  @Test
-//  public void testText() {
-//    Schema t = new Schema("t").addColumn(new Text("x", 10L));
-//    transferAndAssert(t);
-//  }
-//
-//  @Test
-//  public void testTime() {
-//    Schema t = new Schema("t").addColumn(new Time("t", Boolean.FALSE));
-//    transferAndAssert(t);
-//  }
-//
-//  @Test
-//  public void testUnsupported() {
-//    Schema t = new Schema("t").addColumn(new Unsupported("u", 4L));
-//    transferAndAssert(t);
-//  }
-//  @Test
-//  public void testNullable() {
-//    Schema nullable = new Schema("n").addColumn(new Text("x", Boolean.FALSE));
-//    transferAndAssert(nullable);
-//  }
-//
-//  @Test
-//  public void testAllTypes() {
-//    Schema allTypes = new Schema("all-types")
-//      .addColumn(new Array("a", new Text()))
-//      .addColumn(new Binary("b"))
-//      .addColumn(new Bit("c"))
-//      .addColumn(new Date("d"))
-//      .addColumn(new DateTime("e"))
-//      .addColumn(new Decimal("f"))
-//      .addColumn(new Enum("g", new Text()))
-//      .addColumn(new FixedPoint("h"))
-//      .addColumn(new FloatingPoint("i"))
-//      .addColumn(new Map("j", new Text(), new Text()))
-//      .addColumn(new Set("k", new Text()))
-//      .addColumn(new Text("l"))
-//      .addColumn(new Time("m"))
-//      .addColumn(new Unsupported("u"))
-//    ;
-//    transferAndAssert(allTypes);
-//  }
-//
-//  @Test
-//  public void testComplex() {
-//    Schema complex = new Schema("complex")
-//      .addColumn(new Map(new Array(new Enum(new Text())), new Set(new Array(new Text()))).setName("a"))
-//    ;
-//    transferAndAssert(complex);
-//  }
-//
-//  private void transferAndAssert(Schema schema) {
-//    Schema transferred = transfer(schema);
-//    assertEquals(schema, transferred);
-//  }
-//
-//  protected Schema transfer(Schema schema) {
-//    JSONObject extractJson = SchemaSerialization.extractSchema(schema);
-//
-//    String transferredString = extractJson.toJSONString();
-//
-//    JSONObject restoreJson = (JSONObject) JSONValue.parse(transferredString);
-//    return SchemaSerialization.restoreSchemna(restoreJson);
-//  }
+  @Test
+  public void testArray() {
+    Schema array = new Schema("array").addColumn(new Array("a", new Decimal()));
+    transferAndAssert(array);
+  }
+
+  @Test
+  public void testBinary() {
+    Schema binary = new Schema("b").addColumn(new Binary("A", 100L));
+    transferAndAssert(binary);
+  }
+
+  @Test
+  public void testBit() {
+    Schema bit = new Schema("b").addColumn(new Bit("B"));
+    transferAndAssert(bit);
+  }
+
+  @Test
+  public void testDate() {
+    Schema date = new Schema("d").addColumn(new Date("d"));
+    transferAndAssert(date);
+  }
+
+  @Test
+  public void testDateTime() {
+    Schema dateTime = new Schema("dt").addColumn(new DateTime("dt", Boolean.FALSE, Boolean.TRUE));
+    transferAndAssert(dateTime);
+  }
+
+  @Test
+  public void testDecimal() {
+    Schema decimal = new Schema("d").addColumn(new Decimal("d", 12L, 15L));
+    transferAndAssert(decimal);
+  }
+
+  @Test
+  public void testEnum() {
+    Schema e = new Schema("e").addColumn(new Enum("e", new Text()));
+    transferAndAssert(e);
+  }
+
+  @Test
+  public void testFixedPoint() {
+    Schema f = new Schema("f").addColumn(new FixedPoint("fp", 4L, Boolean.FALSE));
+    transferAndAssert(f);
+  }
+
+  @Test
+  public void testFloatingPoint() {
+    Schema fp = new Schema("fp").addColumn(new FloatingPoint("k", 4L));
+    transferAndAssert(fp);
+  }
+
+  @Test
+  public void testMap() {
+    Schema m = new Schema("m").addColumn(new Map("m", new Text(), new Decimal()));
+    transferAndAssert(m);
+  }
+
+  @Test
+  public void testSet() {
+    Schema s = new Schema("s").addColumn(new Set("b", new Binary()));
+    transferAndAssert(s);
+  }
+
+  @Test
+  public void testText() {
+    Schema t = new Schema("t").addColumn(new Text("x", 10L));
+    transferAndAssert(t);
+  }
+
+  @Test
+  public void testTime() {
+    Schema t = new Schema("t").addColumn(new Time("t", Boolean.FALSE));
+    transferAndAssert(t);
+  }
+
+  @Test
+  public void testUnsupported() {
+    Schema t = new Schema("t").addColumn(new Unsupported("u", 4L));
+    transferAndAssert(t);
+  }
+  @Test
+  public void testNullable() {
+    Schema nullable = new Schema("n").addColumn(new Text("x", Boolean.FALSE));
+    transferAndAssert(nullable);
+  }
+
+  @Test
+  public void testAllTypes() {
+    Schema allTypes = new Schema("all-types")
+      .addColumn(new Array("a", new Text()))
+      .addColumn(new Binary("b"))
+      .addColumn(new Bit("c"))
+      .addColumn(new Date("d"))
+      .addColumn(new DateTime("e"))
+      .addColumn(new Decimal("f"))
+      .addColumn(new Enum("g", new Text()))
+      .addColumn(new FixedPoint("h"))
+      .addColumn(new FloatingPoint("i"))
+      .addColumn(new Map("j", new Text(), new Text()))
+      .addColumn(new Set("k", new Text()))
+      .addColumn(new Text("l"))
+      .addColumn(new Time("m"))
+      .addColumn(new Unsupported("u"))
+    ;
+    transferAndAssert(allTypes);
+  }
+
+  @Test
+  public void testComplex() {
+    Schema complex = new Schema("complex")
+      .addColumn(new Map(new Array(new Enum(new Text())), new Set(new Array(new Text()))).setName("a"))
+    ;
+    transferAndAssert(complex);
+  }
+
+  private void transferAndAssert(Schema schema) {
+    Schema transferred = transfer(schema);
+    assertEquals(schema, transferred);
+  }
+
+  protected Schema transfer(Schema schema) {
+    JSONObject extractJson = SchemaSerialization.extractSchema(schema);
+
+    String transferredString = extractJson.toJSONString();
+
+    JSONObject restoreJson = (JSONObject) JSONValue.parse(transferredString);
+    return SchemaSerialization.restoreSchemna(restoreJson);
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java b/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java
index 6c76347..08dfa7b 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java
@@ -32,218 +32,218 @@ import java.util.Map;
  */
 public class TestFormUtils extends TestCase {
 
-//  public void testToForms() {
-//    Config config = new Config();
-//    config.aForm.a1 = "value";
-//
-//    List<MForm> formsByInstance = FormUtils.toForms(config);
-//    assertEquals(getForms(), formsByInstance);
-//    assertEquals("value", formsByInstance.get(0).getInputs().get(0).getValue());
-//
-//    List<MForm> formsByClass = FormUtils.toForms(Config.class);
-//    assertEquals(getForms(), formsByClass);
-//
-//    List<MForm> formsByBoth = FormUtils.toForms(Config.class, config);
-//    assertEquals(getForms(), formsByBoth);
-//    assertEquals("value", formsByBoth.get(0).getInputs().get(0).getValue());
-//  }
-//
-//  public void testToFormsMissingAnnotation() {
-//    try {
-//      FormUtils.toForms(ConfigWithout.class);
-//    } catch(SqoopException ex) {
-//      assertEquals(ModelError.MODEL_003, ex.getErrorCode());
-//      return;
-//    }
-//
-//    fail("Correct exception wasn't thrown");
-//  }
-//
-//  public void testFailureOnPrimitiveType() {
-//    PrimitiveConfig config = new PrimitiveConfig();
-//
-//    try {
-//      FormUtils.toForms(config);
-//      fail("We were expecting exception for unsupported type.");
-//    } catch(SqoopException ex) {
-//      assertEquals(ModelError.MODEL_007, ex.getErrorCode());
-//    }
-//  }
-//
-//  public void testFillValues() {
-//    List<MForm> forms = getForms();
-//
-//    ((MStringInput)forms.get(0).getInputs().get(0)).setValue("value");
-//
-//    Config config = new Config();
-//
-//    FormUtils.fromForms(forms, config);
-//    assertEquals("value", config.aForm.a1);
-//  }
-//
-//  public void testFillValuesObjectReuse() {
-//    List<MForm> forms = getForms();
-//
-//    ((MStringInput)forms.get(0).getInputs().get(0)).setValue("value");
-//
-//    Config config = new Config();
-//    config.aForm.a2 = "x";
-//    config.bForm.b1 = "y";
-//
-//    FormUtils.fromForms(forms, config);
-//    assertEquals("value", config.aForm.a1);
-//    assertNull(config.aForm.a2);
-//    assertNull(config.bForm.b2);
-//    assertNull(config.bForm.b2);
-//  }
-//
-//  public void testApplyValidation() {
-//    Validation validation = getValidation();
-//    List<MForm> forms = getForms();
-//
-//    FormUtils.applyValidation(forms, validation);
-//
-//    assertEquals(Status.ACCEPTABLE,
-//      forms.get(0).getInputs().get(0).getValidationStatus());
-//    assertEquals("e1",
-//      forms.get(0).getInputs().get(0).getValidationMessage());
-//
-//    assertEquals(Status.UNACCEPTABLE,
-//      forms.get(0).getInputs().get(1).getValidationStatus());
-//    assertEquals("e2",
-//      forms.get(0).getInputs().get(1).getValidationMessage());
-//  }
-//
-//  public void testJson() {
-//    Config config = new Config();
-//    config.aForm.a1 = "A";
-//    config.bForm.b2 = "B";
-//    config.cForm.intValue = 4;
-//    config.cForm.map.put("C", "D");
-//    config.cForm.enumeration = Enumeration.X;
-//
-//    String json = FormUtils.toJson(config);
-//
-//    Config targetConfig = new Config();
-//
-//    // Old values from should be always removed
-//    targetConfig.aForm.a2 = "X";
-//    targetConfig.bForm.b1 = "Y";
-//    // Nulls in forms shouldn't be an issue either
-//    targetConfig.cForm = null;
-//
-//    FormUtils.fillValues(json, targetConfig);
-//
-//    assertEquals("A", targetConfig.aForm.a1);
-//    assertNull(targetConfig.aForm.a2);
-//
-//    assertNull(targetConfig.bForm.b1);
-//    assertEquals("B", targetConfig.bForm.b2);
-//
-//    assertEquals((Integer)4, targetConfig.cForm.intValue);
-//    assertEquals(1, targetConfig.cForm.map.size());
-//    assertTrue(targetConfig.cForm.map.containsKey("C"));
-//    assertEquals("D", targetConfig.cForm.map.get("C"));
-//    assertEquals(Enumeration.X, targetConfig.cForm.enumeration);
-//  }
-//
-//  protected Validation getValidation() {
-//    Map<Validation.FormInput, Validation.Message> messages
-//      = new HashMap<Validation.FormInput, Validation.Message>();
-//
-//    messages.put(
-//      new Validation.FormInput("aForm", "a1"),
-//      new Validation.Message(Status.ACCEPTABLE, "e1"));
-//    messages.put(
-//      new Validation.FormInput("aForm", "a2"),
-//      new Validation.Message(Status.UNACCEPTABLE, "e2"));
-//
-//    return new Validation(Status.UNACCEPTABLE, messages);
-//  }
-//
-//  /**
-//   * Form structure that corresponds to Config class declared below
-//   * @return Form structure
-//   */
-//  protected List<MForm> getForms() {
-//    List<MForm> ret = new LinkedList<MForm>();
-//
-//    List<MInput<?>> inputs;
-//
-//    // Form A
-//    inputs = new LinkedList<MInput<?>>();
-//    inputs.add(new MStringInput("aForm.a1", false, (short)30));
-//    inputs.add(new MStringInput("aForm.a2", true, (short)-1));
-//    ret.add(new MForm("aForm", inputs));
-//
-//    // Form B
-//    inputs = new LinkedList<MInput<?>>();
-//    inputs.add(new MStringInput("bForm.b1", false, (short)2));
-//    inputs.add(new MStringInput("bForm.b2", false, (short)3));
-//    ret.add(new MForm("bForm", inputs));
-//
-//    // Form C
-//    inputs = new LinkedList<MInput<?>>();
-//    inputs.add(new MIntegerInput("cForm.intValue", false));
-//    inputs.add(new MMapInput("cForm.map", false));
-//    inputs.add(new MEnumInput("cForm.enumeration", false, new String[]{"X", "Y"}));
-//    ret.add(new MForm("cForm", inputs));
-//
-//    return ret;
-//  }
-//
-//  @ConfigurationClass
-//  public static class Config {
-//
-//    public Config() {
-//      aForm = new AForm();
-//      bForm = new BForm();
-//      cForm = new CForm();
-//    }
-//
-//    @Form AForm aForm;
-//    @Form BForm bForm;
-//    @Form CForm cForm;
-//  }
-//
-//  @ConfigurationClass
-//  public static class PrimitiveConfig {
-//    @Form DForm dForm;
-//  }
-//
-//  @FormClass
-//  public static class AForm {
-//    @Input(size = 30)  String a1;
-//    @Input(sensitive = true)  String a2;
-//  }
-//
-//  @FormClass
-//  public static class BForm {
-//    @Input(size = 2) String b1;
-//    @Input(size = 3) String b2;
-//  }
-//
-//  @FormClass
-//  public static class CForm {
-//    @Input Integer intValue;
-//    @Input Map<String, String> map;
-//    @Input Enumeration enumeration;
-//
-//    public CForm() {
-//      map = new HashMap<String, String>();
-//    }
-//  }
-//
-//  @FormClass
-//  public static class DForm {
-//    @Input int value;
-//  }
-//
-//  public static class ConfigWithout {
-//  }
-//
-//  enum Enumeration {
-//    X,
-//    Y,
-//  }
+  public void testToForms() {
+    Config config = new Config();
+    config.aForm.a1 = "value";
+
+    List<MForm> formsByInstance = FormUtils.toForms(config);
+    assertEquals(getForms(), formsByInstance);
+    assertEquals("value", formsByInstance.get(0).getInputs().get(0).getValue());
+
+    List<MForm> formsByClass = FormUtils.toForms(Config.class);
+    assertEquals(getForms(), formsByClass);
+
+    List<MForm> formsByBoth = FormUtils.toForms(Config.class, config);
+    assertEquals(getForms(), formsByBoth);
+    assertEquals("value", formsByBoth.get(0).getInputs().get(0).getValue());
+  }
+
+  public void testToFormsMissingAnnotation() {
+    try {
+      FormUtils.toForms(ConfigWithout.class);
+    } catch(SqoopException ex) {
+      assertEquals(ModelError.MODEL_003, ex.getErrorCode());
+      return;
+    }
+
+    fail("Correct exception wasn't thrown");
+  }
+
+  public void testFailureOnPrimitiveType() {
+    PrimitiveConfig config = new PrimitiveConfig();
+
+    try {
+      FormUtils.toForms(config);
+      fail("We were expecting exception for unsupported type.");
+    } catch(SqoopException ex) {
+      assertEquals(ModelError.MODEL_007, ex.getErrorCode());
+    }
+  }
+
+  public void testFillValues() {
+    List<MForm> forms = getForms();
+
+    ((MStringInput)forms.get(0).getInputs().get(0)).setValue("value");
+
+    Config config = new Config();
+
+    FormUtils.fromForms(forms, config);
+    assertEquals("value", config.aForm.a1);
+  }
+
+  public void testFillValuesObjectReuse() {
+    List<MForm> forms = getForms();
+
+    ((MStringInput)forms.get(0).getInputs().get(0)).setValue("value");
+
+    Config config = new Config();
+    config.aForm.a2 = "x";
+    config.bForm.b1 = "y";
+
+    FormUtils.fromForms(forms, config);
+    assertEquals("value", config.aForm.a1);
+    assertNull(config.aForm.a2);
+    assertNull(config.bForm.b2);
+    assertNull(config.bForm.b2);
+  }
+
+  public void testApplyValidation() {
+    Validation validation = getValidation();
+    List<MForm> forms = getForms();
+
+    FormUtils.applyValidation(forms, validation);
+
+    assertEquals(Status.ACCEPTABLE,
+      forms.get(0).getInputs().get(0).getValidationStatus());
+    assertEquals("e1",
+      forms.get(0).getInputs().get(0).getValidationMessage());
+
+    assertEquals(Status.UNACCEPTABLE,
+      forms.get(0).getInputs().get(1).getValidationStatus());
+    assertEquals("e2",
+      forms.get(0).getInputs().get(1).getValidationMessage());
+  }
+
+  public void testJson() {
+    Config config = new Config();
+    config.aForm.a1 = "A";
+    config.bForm.b2 = "B";
+    config.cForm.intValue = 4;
+    config.cForm.map.put("C", "D");
+    config.cForm.enumeration = Enumeration.X;
+
+    String json = FormUtils.toJson(config);
+
+    Config targetConfig = new Config();
+
+    // Old values from should be always removed
+    targetConfig.aForm.a2 = "X";
+    targetConfig.bForm.b1 = "Y";
+    // Nulls in forms shouldn't be an issue either
+    targetConfig.cForm = null;
+
+    FormUtils.fillValues(json, targetConfig);
+
+    assertEquals("A", targetConfig.aForm.a1);
+    assertNull(targetConfig.aForm.a2);
+
+    assertNull(targetConfig.bForm.b1);
+    assertEquals("B", targetConfig.bForm.b2);
+
+    assertEquals((Integer)4, targetConfig.cForm.intValue);
+    assertEquals(1, targetConfig.cForm.map.size());
+    assertTrue(targetConfig.cForm.map.containsKey("C"));
+    assertEquals("D", targetConfig.cForm.map.get("C"));
+    assertEquals(Enumeration.X, targetConfig.cForm.enumeration);
+  }
+
+  protected Validation getValidation() {
+    Map<Validation.FormInput, Validation.Message> messages
+      = new HashMap<Validation.FormInput, Validation.Message>();
+
+    messages.put(
+      new Validation.FormInput("aForm", "a1"),
+      new Validation.Message(Status.ACCEPTABLE, "e1"));
+    messages.put(
+      new Validation.FormInput("aForm", "a2"),
+      new Validation.Message(Status.UNACCEPTABLE, "e2"));
+
+    return new Validation(Status.UNACCEPTABLE, messages);
+  }
+
+  /**
+   * Form structure that corresponds to Config class declared below
+   * @return Form structure
+   */
+  protected List<MForm> getForms() {
+    List<MForm> ret = new LinkedList<MForm>();
+
+    List<MInput<?>> inputs;
+
+    // Form A
+    inputs = new LinkedList<MInput<?>>();
+    inputs.add(new MStringInput("aForm.a1", false, (short)30));
+    inputs.add(new MStringInput("aForm.a2", true, (short)-1));
+    ret.add(new MForm("aForm", inputs));
+
+    // Form B
+    inputs = new LinkedList<MInput<?>>();
+    inputs.add(new MStringInput("bForm.b1", false, (short)2));
+    inputs.add(new MStringInput("bForm.b2", false, (short)3));
+    ret.add(new MForm("bForm", inputs));
+
+    // Form C
+    inputs = new LinkedList<MInput<?>>();
+    inputs.add(new MIntegerInput("cForm.intValue", false));
+    inputs.add(new MMapInput("cForm.map", false));
+    inputs.add(new MEnumInput("cForm.enumeration", false, new String[]{"X", "Y"}));
+    ret.add(new MForm("cForm", inputs));
+
+    return ret;
+  }
+
+  @ConfigurationClass
+  public static class Config {
+
+    public Config() {
+      aForm = new AForm();
+      bForm = new BForm();
+      cForm = new CForm();
+    }
+
+    @Form AForm aForm;
+    @Form BForm bForm;
+    @Form CForm cForm;
+  }
+
+  @ConfigurationClass
+  public static class PrimitiveConfig {
+    @Form DForm dForm;
+  }
+
+  @FormClass
+  public static class AForm {
+    @Input(size = 30)  String a1;
+    @Input(sensitive = true)  String a2;
+  }
+
+  @FormClass
+  public static class BForm {
+    @Input(size = 2) String b1;
+    @Input(size = 3) String b2;
+  }
+
+  @FormClass
+  public static class CForm {
+    @Input Integer intValue;
+    @Input Map<String, String> map;
+    @Input Enumeration enumeration;
+
+    public CForm() {
+      map = new HashMap<String, String>();
+    }
+  }
+
+  @FormClass
+  public static class DForm {
+    @Input int value;
+  }
+
+  public static class ConfigWithout {
+  }
+
+  enum Enumeration {
+    X,
+    Y,
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java b/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java
index 942a056..f3d4166 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java
@@ -30,32 +30,32 @@ import org.junit.Test;
  */
 public class TestMAccountableEntity {
 
-//  /**
-//   * Test for class initialization
-//   */
-//  @Test
-//  public void testInitialization() {
-//    List<MForm> forms = new ArrayList<MForm>();
-//    MIntegerInput input = new MIntegerInput("INTEGER-INPUT", false);
-//    List<MInput<?>> list = new ArrayList<MInput<?>>();
-//    list.add(input);
-//    MForm form = new MForm("FORMNAME", list);
-//    forms.add(form);
-//    MAccountableEntity connection = new MConnection(123l, new MConnectionForms(
-//        forms), new MConnectionForms(forms));
-//    // Initially creation date and last update date is same
-//    assertEquals(connection.getCreationDate(), connection.getLastUpdateDate());
-//    Date testCreationDate = new Date();
-//    Date testLastUpdateDate = new Date();
-//    connection.setCreationUser("admin");
-//    connection.setCreationDate(testCreationDate);
-//    connection.setLastUpdateUser("user");
-//    connection.setLastUpdateDate(testLastUpdateDate);
-//    connection.setEnabled(false);
-//    assertEquals(testCreationDate, connection.getCreationDate());
-//    assertEquals("admin", connection.getCreationUser());
-//    assertEquals(testLastUpdateDate, connection.getLastUpdateDate());
-//    assertEquals(false, connection.getEnabled());
-//    assertEquals("user", connection.getLastUpdateUser());
-//  }
+  /**
+   * Test for class initialization
+   */
+  @Test
+  public void testInitialization() {
+    List<MForm> forms = new ArrayList<MForm>();
+    MIntegerInput input = new MIntegerInput("INTEGER-INPUT", false);
+    List<MInput<?>> list = new ArrayList<MInput<?>>();
+    list.add(input);
+    MForm form = new MForm("FORMNAME", list);
+    forms.add(form);
+    MAccountableEntity connection = new MConnection(123l, new MConnectionForms(
+        forms), new MConnectionForms(forms));
+    // Initially creation date and last update date is same
+    assertEquals(connection.getCreationDate(), connection.getLastUpdateDate());
+    Date testCreationDate = new Date();
+    Date testLastUpdateDate = new Date();
+    connection.setCreationUser("admin");
+    connection.setCreationDate(testCreationDate);
+    connection.setLastUpdateUser("user");
+    connection.setLastUpdateDate(testLastUpdateDate);
+    connection.setEnabled(false);
+    assertEquals(testCreationDate, connection.getCreationDate());
+    assertEquals("admin", connection.getCreationUser());
+    assertEquals(testLastUpdateDate, connection.getLastUpdateDate());
+    assertEquals(false, connection.getEnabled());
+    assertEquals("user", connection.getLastUpdateUser());
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/model/TestMBooleanInput.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestMBooleanInput.java b/common/src/test/java/org/apache/sqoop/model/TestMBooleanInput.java
index b955aa4..cf9cf24 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestMBooleanInput.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestMBooleanInput.java
@@ -30,70 +30,70 @@ import static org.junit.Assert.assertTrue;
  */
 public class TestMBooleanInput {
 
-//  /**
-//   * Test for class initialization
-//   */
-//  @Test
-//  public void testInitialization() {
-//    MBooleanInput input = new MBooleanInput("sqoopsqoop", true);
-//    assertEquals("sqoopsqoop", input.getName());
-//    assertEquals(true, input.isSensitive());
-//    assertEquals(MInputType.BOOLEAN, input.getType());
-//  }
-//
-//  /**
-//   * Test for equals() method
-//   */
-//  @Test
-//  public void testEquals() {
-//    // Positive test
-//    MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true);
-//    MBooleanInput input2 = new MBooleanInput("sqoopsqoop", true);
-//    assertTrue(input1.equals(input2));
-//
-//    // Negative test
-//    MBooleanInput input3 = new MBooleanInput("sqoopsqoop", false);
-//    MBooleanInput input4 = new MBooleanInput("sqoopsqoop", true);
-//    assertFalse(input3.equals(input4));
-//
-//    MBooleanInput input5 = new MBooleanInput("sqoopsqoop", false);
-//    MBooleanInput input6 = new MBooleanInput("sqoop", false);
-//    assertFalse(input5.equals(input6));
-//  }
-//
-//  /**
-//   * Test for value
-//   */
-//  @Test
-//  public void testValue() {
-//    MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true);
-//    input1.setValue(true);
-//    assertEquals(true, input1.getValue());
-//    input1.setEmpty();
-//    assertNull(input1.getValue());
-//  }
-//
-//  /**
-//   * Test for getUrlSafeValueString() and restoreFromUrlSafeValueString()
-//   */
-//  @Test
-//  public void testUrlSafe() {
-//    MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true);
-//    input1.setValue(true);
-//    // Getting URL safe string
-//    String tmp = input1.getUrlSafeValueString();
-//    // Restore to actual value
-//    input1.restoreFromUrlSafeValueString(tmp);
-//    assertEquals(true, input1.getValue());
-//  }
-//
-//  /**
-//   * Test case for MNamedElement.getLabelKey() and MNamedElement.getHelpKey()
-//   */
-//  @Test
-//  public void testNamedElement() {
-//    MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true);
-//    assertEquals("sqoopsqoop.label", input1.getLabelKey());
-//    assertEquals("sqoopsqoop.help", input1.getHelpKey());
-//  }
+  /**
+   * Test for class initialization
+   */
+  @Test
+  public void testInitialization() {
+    MBooleanInput input = new MBooleanInput("sqoopsqoop", true);
+    assertEquals("sqoopsqoop", input.getName());
+    assertEquals(true, input.isSensitive());
+    assertEquals(MInputType.BOOLEAN, input.getType());
+  }
+
+  /**
+   * Test for equals() method
+   */
+  @Test
+  public void testEquals() {
+    // Positive test
+    MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true);
+    MBooleanInput input2 = new MBooleanInput("sqoopsqoop", true);
+    assertTrue(input1.equals(input2));
+
+    // Negative test
+    MBooleanInput input3 = new MBooleanInput("sqoopsqoop", false);
+    MBooleanInput input4 = new MBooleanInput("sqoopsqoop", true);
+    assertFalse(input3.equals(input4));
+
+    MBooleanInput input5 = new MBooleanInput("sqoopsqoop", false);
+    MBooleanInput input6 = new MBooleanInput("sqoop", false);
+    assertFalse(input5.equals(input6));
+  }
+
+  /**
+   * Test for value
+   */
+  @Test
+  public void testValue() {
+    MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true);
+    input1.setValue(true);
+    assertEquals(true, input1.getValue());
+    input1.setEmpty();
+    assertNull(input1.getValue());
+  }
+
+  /**
+   * Test for getUrlSafeValueString() and restoreFromUrlSafeValueString()
+   */
+  @Test
+  public void testUrlSafe() {
+    MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true);
+    input1.setValue(true);
+    // Getting URL safe string
+    String tmp = input1.getUrlSafeValueString();
+    // Restore to actual value
+    input1.restoreFromUrlSafeValueString(tmp);
+    assertEquals(true, input1.getValue());
+  }
+
+  /**
+   * Test case for MNamedElement.getLabelKey() and MNamedElement.getHelpKey()
+   */
+  @Test
+  public void testNamedElement() {
+    MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true);
+    assertEquals("sqoopsqoop.label", input1.getLabelKey());
+    assertEquals("sqoopsqoop.help", input1.getHelpKey());
+  }
 }