You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ab...@apache.org on 2014/10/03 08:53:27 UTC
[13/13] git commit: SQOOP-1498: Sqoop2: Repository Object refactoring
(objects prefixed with M)
SQOOP-1498: Sqoop2: Repository Object refactoring (objects prefixed with M)
(Veena Basavaraj via Abraham Elmahrek)
Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/f63c080d
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/f63c080d
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/f63c080d
Branch: refs/heads/SQOOP-1367
Commit: f63c080dd6b20c8c5848d930aeb8cce204cc702d
Parents: e0a2b77
Author: Abraham Elmahrek <ab...@elmahrek.com>
Authored: Thu Oct 2 23:29:50 2014 -0700
Committer: Abraham Elmahrek <ab...@elmahrek.com>
Committed: Thu Oct 2 23:29:50 2014 -0700
----------------------------------------------------------------------
.../org/apache/sqoop/client/SqoopClient.java | 119 +--
.../request/ConnectorResourceRequest.java | 4 +-
.../request/DriverConfigResourceRequest.java | 15 +-
.../client/request/JobResourceRequest.java | 26 +-
.../client/request/LinkResourceRequest.java | 10 +-
.../client/request/SqoopResourceRequests.java | 4 +-
.../apache/sqoop/client/TestSqoopClient.java | 73 +-
.../org/apache/sqoop/json/ConnectorBean.java | 129 +--
.../java/org/apache/sqoop/json/DriverBean.java | 90 ++
.../org/apache/sqoop/json/DriverConfigBean.java | 92 --
.../java/org/apache/sqoop/json/JobBean.java | 77 +-
.../apache/sqoop/json/JobValidationBean.java | 83 +-
.../java/org/apache/sqoop/json/LinkBean.java | 96 +-
.../apache/sqoop/json/LinkValidationBean.java | 56 +-
.../org/apache/sqoop/json/ThrowableBean.java | 2 +-
.../apache/sqoop/json/ValidationResultBean.java | 18 +-
.../sqoop/json/util/ConfigSerialization.java | 226 +++++
.../sqoop/json/util/FormSerialization.java | 223 -----
.../json/util/ResourceBundleSerialization.java | 2 -
.../java/org/apache/sqoop/model/Config.java | 28 +
.../org/apache/sqoop/model/ConfigClass.java | 45 +
.../org/apache/sqoop/model/ConfigUtils.java | 565 +++++++++++
.../apache/sqoop/model/ConfigurationClass.java | 7 +-
.../main/java/org/apache/sqoop/model/Form.java | 28 -
.../java/org/apache/sqoop/model/FormClass.java | 45 -
.../java/org/apache/sqoop/model/FormUtils.java | 565 -----------
.../java/org/apache/sqoop/model/MConfig.java | 117 +++
.../org/apache/sqoop/model/MConfigList.java | 124 +++
.../org/apache/sqoop/model/MConfigType.java | 34 +
.../apache/sqoop/model/MConnectionForms.java | 54 --
.../java/org/apache/sqoop/model/MConnector.java | 124 ++-
.../java/org/apache/sqoop/model/MDriver.java | 82 ++
.../org/apache/sqoop/model/MDriverConfig.java | 65 +-
.../main/java/org/apache/sqoop/model/MForm.java | 117 ---
.../java/org/apache/sqoop/model/MFormList.java | 124 ---
.../java/org/apache/sqoop/model/MFormType.java | 34 -
.../org/apache/sqoop/model/MFromConfig.java | 64 ++
.../main/java/org/apache/sqoop/model/MJob.java | 102 +-
.../java/org/apache/sqoop/model/MJobForms.java | 55 --
.../main/java/org/apache/sqoop/model/MLink.java | 72 +-
.../org/apache/sqoop/model/MLinkConfig.java | 54 ++
.../java/org/apache/sqoop/model/MToConfig.java | 64 ++
.../java/org/apache/sqoop/model/ModelError.java | 6 +-
.../java/org/apache/sqoop/utils/ClassUtils.java | 6 +-
.../sqoop/validation/ConfigValidationError.java | 52 +
.../validation/ConfigValidationResult.java | 98 ++
.../validation/ConfigValidationRunner.java | 177 ++++
.../sqoop/validation/ConfigValidator.java | 228 +++++
.../org/apache/sqoop/validation/Message.java | 2 +-
.../org/apache/sqoop/validation/Validation.java | 228 -----
.../sqoop/validation/ValidationError.java | 52 -
.../sqoop/validation/ValidationResult.java | 98 --
.../sqoop/validation/ValidationRunner.java | 176 ----
.../org/apache/sqoop/json/ConfigTestUtil.java | 217 +++++
.../apache/sqoop/json/TestConnectorBean.java | 37 +-
.../org/apache/sqoop/json/TestDriverBean.java | 62 ++
.../apache/sqoop/json/TestDriverConfigBean.java | 62 --
.../java/org/apache/sqoop/json/TestJobBean.java | 40 +-
.../org/apache/sqoop/json/TestLinkBean.java | 56 +-
.../java/org/apache/sqoop/json/TestUtil.java | 153 ---
.../apache/sqoop/json/TestValidationBean.java | 83 +-
.../sqoop/json/TestValidationResultBean.java | 24 +-
.../json/util/TestConfigSerialization.java | 157 ++++
.../sqoop/json/util/TestFormSerialization.java | 157 ----
.../org/apache/sqoop/model/TestConfigUtils.java | 217 +++++
.../org/apache/sqoop/model/TestFormUtils.java | 226 -----
.../sqoop/model/TestMAccountableEntity.java | 9 +-
.../org/apache/sqoop/model/TestMConfig.java | 86 ++
.../org/apache/sqoop/model/TestMConfigList.java | 55 ++
.../sqoop/model/TestMConnectionForms.java | 48 -
.../org/apache/sqoop/model/TestMConnector.java | 144 +--
.../org/apache/sqoop/model/TestMDriver.java | 40 +
.../apache/sqoop/model/TestMDriverConfig.java | 47 -
.../java/org/apache/sqoop/model/TestMForm.java | 89 --
.../org/apache/sqoop/model/TestMFormList.java | 58 --
.../java/org/apache/sqoop/model/TestMJob.java | 110 ++-
.../org/apache/sqoop/model/TestMJobConfig.java | 42 +
.../org/apache/sqoop/model/TestMJobForms.java | 46 -
.../java/org/apache/sqoop/model/TestMLink.java | 74 +-
.../org/apache/sqoop/model/TestMLinkConfig.java | 45 +
.../apache/sqoop/validation/TestValidation.java | 70 +-
.../sqoop/validation/TestValidationRunner.java | 98 +-
.../validators/TestClassAvailable.java | 12 +-
.../connector/jdbc/GenericJdbcConnector.java | 2 +-
.../jdbc/GenericJdbcConnectorUpgrader.java | 54 +-
.../connector/jdbc/GenericJdbcExtractor.java | 12 +-
.../jdbc/GenericJdbcFromDestroyer.java | 2 +-
.../jdbc/GenericJdbcFromInitializer.java | 36 +-
.../sqoop/connector/jdbc/GenericJdbcLoader.java | 10 +-
.../connector/jdbc/GenericJdbcPartitioner.java | 5 +-
.../connector/jdbc/GenericJdbcToDestroyer.java | 18 +-
.../jdbc/GenericJdbcToInitializer.java | 32 +-
.../connector/jdbc/GenericJdbcValidator.java | 30 +-
.../jdbc/configuration/FromJobConfig.java | 14 +-
.../configuration/FromJobConfiguration.java | 4 +-
.../jdbc/configuration/LinkConfig.java | 6 +-
.../jdbc/configuration/LinkConfiguration.java | 6 +-
.../jdbc/configuration/ToJobConfig.java | 16 +-
.../jdbc/configuration/ToJobConfiguration.java | 4 +-
.../generic-jdbc-connector-config.properties | 24 +-
.../connector/jdbc/GenericJdbcExecutorTest.java | 3 -
.../sqoop/connector/jdbc/TestExtractor.java | 24 +-
.../connector/jdbc/TestFromInitializer.java | 158 ++--
.../apache/sqoop/connector/jdbc/TestLoader.java | 8 +-
.../sqoop/connector/jdbc/TestPartitioner.java | 98 +-
.../sqoop/connector/jdbc/TestToInitializer.java | 188 ++--
.../connector/hdfs/HdfsConfigUpgrader.java | 50 +-
.../sqoop/connector/hdfs/HdfsConnector.java | 2 +-
.../sqoop/connector/hdfs/HdfsExtractor.java | 4 +-
.../sqoop/connector/hdfs/HdfsInitializer.java | 6 +-
.../apache/sqoop/connector/hdfs/HdfsLoader.java | 14 +-
.../sqoop/connector/hdfs/HdfsPartitioner.java | 6 +-
.../sqoop/connector/hdfs/HdfsValidator.java | 49 +-
.../hdfs/configuration/FromJobConfig.java | 4 +-
.../configuration/FromJobConfiguration.java | 4 +-
.../hdfs/configuration/LinkConfig.java | 6 +-
.../hdfs/configuration/LinkConfiguration.java | 8 +-
.../hdfs/configuration/ToJobConfig.java | 4 +-
.../hdfs/configuration/ToJobConfiguration.java | 4 +-
.../resources/hdfs-connector-config.properties | 8 +-
.../idf/TestCSVIntermediateDataFormat.java | 14 +-
.../sqoop/connector/ConnectorHandler.java | 28 +-
.../sqoop/connector/ConnectorManager.java | 2 +-
.../java/org/apache/sqoop/driver/Driver.java | 47 +-
.../sqoop/driver/DriverConfigUpgrader.java | 48 +-
.../sqoop/driver/DriverConfigValidator.java | 46 +
.../apache/sqoop/driver/DriverValidator.java | 54 --
.../org/apache/sqoop/driver/JobManager.java | 72 +-
.../org/apache/sqoop/driver/JobRequest.java | 63 +-
.../configuration/DriverConfiguration.java | 34 +
.../driver/configuration/JobConfiguration.java | 34 -
.../driver/configuration/LinkConfiguration.java | 28 -
.../driver/configuration/ThrottlingConfig.java | 32 +
.../driver/configuration/ThrottlingForm.java | 32 -
.../apache/sqoop/repository/JdbcRepository.java | 46 +-
.../sqoop/repository/JdbcRepositoryHandler.java | 14 +-
.../org/apache/sqoop/repository/Repository.java | 254 +++--
.../sqoop/repository/RepositoryManager.java | 2 +-
.../src/main/resources/driver-config.properties | 12 +-
.../sqoop/driver/TestDriverConfigUpgrader.java | 88 +-
.../org/apache/sqoop/driver/TestJobManager.java | 18 +-
.../sqoop/repository/TestJdbcRepository.java | 495 +++-------
.../main/java/org/apache/sqoop/job/io/Data.java | 2 +-
.../apache/sqoop/job/mr/ConfigurationUtils.java | 124 +--
.../sqoop/job/mr/SqoopDestroyerExecutor.java | 2 +-
.../java/org/apache/sqoop/job/JobUtils.java | 3 +-
.../org/apache/sqoop/job/TestMapReduce.java | 1 -
.../sqoop/job/mr/TestConfigurationUtils.java | 118 ++-
.../sqoop/repository/derby/DerbyRepoError.java | 2 +-
.../derby/DerbyRepositoryHandler.java | 777 +++++++--------
.../repository/derby/DerbySchemaConstants.java | 108 +--
.../repository/derby/DerbySchemaQuery.java | 640 ++++++-------
.../sqoop/repository/derby/DerbyTestCase.java | 287 +++---
.../repository/derby/TestConnectorHandling.java | 6 +-
.../derby/TestDriverConfigHandling.java | 135 ---
.../repository/derby/TestDriverHandling.java | 135 +++
.../sqoop/repository/derby/TestInputTypes.java | 22 +-
.../sqoop/repository/derby/TestJobHandling.java | 216 ++---
.../repository/derby/TestLinkHandling.java | 118 +--
.../derby/TestSubmissionHandling.java | 2 +-
.../sqoop/handler/ConnectorRequestHandler.java | 2 +-
.../handler/DriverConfigRequestHandler.java | 11 +-
.../apache/sqoop/handler/JobRequestHandler.java | 95 +-
.../sqoop/handler/LinkRequestHandler.java | 158 ++--
.../apache/sqoop/shell/CloneJobFunction.java | 18 +-
.../apache/sqoop/shell/CloneLinkFunction.java | 17 +-
.../apache/sqoop/shell/CreateJobFunction.java | 26 +-
.../apache/sqoop/shell/CreateLinkFunction.java | 22 +-
.../org/apache/sqoop/shell/ShowCommand.java | 2 +-
.../sqoop/shell/ShowConnectorFunction.java | 4 +-
.../sqoop/shell/ShowDriverConfigFunction.java | 60 --
.../apache/sqoop/shell/ShowDriverFunction.java | 55 ++
.../org/apache/sqoop/shell/ShowJobFunction.java | 13 +-
.../apache/sqoop/shell/ShowLinkFunction.java | 28 +-
.../org/apache/sqoop/shell/SqoopFunction.java | 4 +-
.../apache/sqoop/shell/UpdateJobFunction.java | 25 +-
.../apache/sqoop/shell/UpdateLinkFunction.java | 23 +-
.../org/apache/sqoop/shell/core/Constants.java | 64 +-
.../sqoop/shell/utils/ConfigDisplayer.java | 258 +++++
.../apache/sqoop/shell/utils/ConfigFiller.java | 911 ++++++++++++++++++
.../apache/sqoop/shell/utils/ConfigOptions.java | 117 +++
.../sqoop/shell/utils/DynamicConfigOptions.java | 35 +
.../sqoop/shell/utils/DynamicFormOptions.java | 35 -
.../apache/sqoop/shell/utils/FormDisplayer.java | 267 ------
.../apache/sqoop/shell/utils/FormFiller.java | 939 -------------------
.../apache/sqoop/shell/utils/FormOptions.java | 117 ---
.../shell/utils/JobDynamicConfigOptions.java | 48 +
.../shell/utils/JobDynamicFormOptions.java | 48 -
.../shell/utils/LinkDynamicConfigOptions.java | 39 +
.../shell/utils/LinkDynamicFormOptions.java | 43 -
.../main/resources/shell-resource.properties | 34 +-
.../sqoop/connector/spi/RepositoryUpgrader.java | 28 +-
.../sqoop/connector/spi/SqoopConnector.java | 10 +-
.../org/apache/sqoop/job/etl/Destroyer.java | 2 +-
.../org/apache/sqoop/job/etl/Extractor.java | 4 +-
.../org/apache/sqoop/job/etl/Initializer.java | 40 +-
.../java/org/apache/sqoop/job/etl/Loader.java | 10 +-
.../org/apache/sqoop/job/etl/Partitioner.java | 10 +-
.../org/apache/sqoop/validation/Validator.java | 12 +-
.../mapreduce/MapreduceSubmissionEngine.java | 18 +-
.../minicluster/TomcatSqoopMiniCluster.java | 13 +-
.../sqoop/test/testcases/ConnectorTestCase.java | 53 +-
.../sqoop/test/testcases/TomcatTestCase.java | 4 +-
.../jdbc/generic/FromHDFSToRDBMSTest.java | 19 +-
.../jdbc/generic/FromRDBMSToHDFSTest.java | 39 +-
.../connector/jdbc/generic/PartitionerTest.java | 25 +-
.../jdbc/generic/TableStagedRDBMSTest.java | 26 +-
.../SubmissionWithDisabledModelObjectsTest.java | 24 +-
208 files changed, 8047 insertions(+), 8493 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/client/src/main/java/org/apache/sqoop/client/SqoopClient.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/SqoopClient.java b/client/src/main/java/org/apache/sqoop/client/SqoopClient.java
index d7e6768..bffb599 100644
--- a/client/src/main/java/org/apache/sqoop/client/SqoopClient.java
+++ b/client/src/main/java/org/apache/sqoop/client/SqoopClient.java
@@ -17,26 +17,27 @@
*/
package org.apache.sqoop.client;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.ResourceBundle;
+
import org.apache.sqoop.client.request.SqoopResourceRequests;
import org.apache.sqoop.common.Direction;
import org.apache.sqoop.common.SqoopException;
import org.apache.sqoop.json.ConnectorBean;
-import org.apache.sqoop.json.DriverConfigBean;
+import org.apache.sqoop.json.DriverBean;
import org.apache.sqoop.json.ValidationResultBean;
-import org.apache.sqoop.model.FormUtils;
-import org.apache.sqoop.model.MLink;
+import org.apache.sqoop.model.ConfigUtils;
import org.apache.sqoop.model.MConnector;
+import org.apache.sqoop.model.MDriver;
import org.apache.sqoop.model.MDriverConfig;
import org.apache.sqoop.model.MJob;
+import org.apache.sqoop.model.MLink;
import org.apache.sqoop.model.MSubmission;
+import org.apache.sqoop.validation.ConfigValidationResult;
import org.apache.sqoop.validation.Status;
-import org.apache.sqoop.validation.ValidationResult;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.ResourceBundle;
/**
* Sqoop client API.
@@ -69,9 +70,9 @@ public class SqoopClient {
private Map<Long, ResourceBundle> connectorConfigBundles;
/**
- * Cached driverConfig.
+ * Cached driver.
*/
- private MDriverConfig driverConfig;
+ private MDriver mDriver;
/**
* Cached driverConfig bundle.
*/
@@ -120,7 +121,7 @@ public class SqoopClient {
connectorConfigBundles = new HashMap<Long, ResourceBundle>();
driverConfigBundle = null;
connectors = new HashMap<Long, MConnector>();
- driverConfig = null;
+ mDriver = null;
isAllConnectors = false;
}
@@ -214,11 +215,10 @@ public class SqoopClient {
* @param connectorId Connector id.
* @return
*/
- public ResourceBundle getConnectorConfigResourceBundle(long connectorId) {
+ public ResourceBundle getConnectorConfigBundle(long connectorId) {
if(connectorConfigBundles.containsKey(connectorId)) {
return connectorConfigBundles.get(connectorId);
}
-
retrieveConnector(connectorId);
return connectorConfigBundles.get(connectorId);
}
@@ -229,33 +229,46 @@ public class SqoopClient {
* @return
*/
public MDriverConfig getDriverConfig() {
- if(driverConfig != null) {
- return driverConfig.clone(false);
+ if (mDriver != null) {
+ return mDriver.clone(false).getDriverConfig();
}
- retrieveAndCacheDriverConfig();
- return driverConfig.clone(false);
-
+ retrieveAndCacheDriver();
+ return mDriver.clone(false).getDriverConfig();
+ }
+
+ /**
+ * Return driver.
+ *
+ * @return
+ */
+ public MDriver getDriver() {
+ if (mDriver != null) {
+ return mDriver.clone(false);
+ }
+ retrieveAndCacheDriver();
+ return mDriver.clone(false);
+
}
/**
* Retrieve driverConfig and cache it.
*/
- private void retrieveAndCacheDriverConfig() {
- DriverConfigBean driverConfigBean = resourceRequests.readDriverConfig();
- driverConfig = driverConfigBean.getDriverConfig();
- driverConfigBundle = driverConfigBean.getResourceBundle();
+ private void retrieveAndCacheDriver() {
+ DriverBean driverBean = resourceRequests.readDriver();
+ mDriver = driverBean.getDriver();
+ driverConfigBundle = driverBean.getDriverConfigResourceBundle();
}
/**
* Return driverConfig bundle.
- *
+ *xx
* @return
*/
public ResourceBundle getDriverConfigBundle() {
if(driverConfigBundle != null) {
return driverConfigBundle;
}
- retrieveAndCacheDriverConfig();
+ retrieveAndCacheDriver();
return driverConfigBundle;
}
@@ -266,11 +279,7 @@ public class SqoopClient {
* @return
*/
public MLink createLink(long connectorId) {
- return new MLink(
- connectorId,
- getConnector(connectorId).getConnectionForms(),
- getDriverConfig().getConnectionForms()
- );
+ return new MLink(connectorId, getConnector(connectorId).getLinkConfig());
}
/**
@@ -281,10 +290,9 @@ public class SqoopClient {
*/
public MLink createLink(String connectorName) {
MConnector connector = getConnector(connectorName);
- if(connector == null) {
+ if (connector == null) {
throw new SqoopException(ClientError.CLIENT_0003, connectorName);
}
-
return createLink(connector.getPersistenceId());
}
@@ -362,9 +370,9 @@ public class SqoopClient {
toLink.getConnectorId(),
fromLink.getPersistenceId(),
toLink.getPersistenceId(),
- getConnector(fromLink.getConnectorId()).getJobForms(Direction.FROM),
- getConnector(toLink.getConnectorId()).getJobForms(Direction.TO),
- getDriverConfig().getJobForms()
+ getConnector(fromLink.getConnectorId()).getFromConfig(),
+ getConnector(toLink.getConnectorId()).getToConfig(),
+ getDriverConfig()
);
}
@@ -530,41 +538,36 @@ public class SqoopClient {
}
private Status applyLinkValidations(ValidationResultBean bean, MLink link) {
- ValidationResult connector = bean.getValidationResults()[0];
- ValidationResult driverConfig = bean.getValidationResults()[1];
-
+ ConfigValidationResult linkConfig = bean.getValidationResults()[0];
// Apply validation results
- FormUtils.applyValidation(link.getConnectorPart().getForms(), connector);
- FormUtils.applyValidation(link.getFrameworkPart().getForms(), driverConfig);
-
+ ConfigUtils.applyValidation(link.getConnectorLinkConfig().getConfigs(), linkConfig);
Long id = bean.getId();
if(id != null) {
link.setPersistenceId(id);
}
-
- return Status.getWorstStatus(connector.getStatus(), driverConfig.getStatus());
+ return Status.getWorstStatus(linkConfig.getStatus());
}
private Status applyJobValidations(ValidationResultBean bean, MJob job) {
- ValidationResult fromConnector = bean.getValidationResults()[0];
- ValidationResult toConnector = bean.getValidationResults()[1];
- ValidationResult driverConfig = bean.getValidationResults()[2];
-
- // Apply validation results
- // @TODO(Abe): From/To validation.
- FormUtils.applyValidation(
- job.getConnectorPart(Direction.FROM).getForms(),
- fromConnector);
- FormUtils.applyValidation(job.getFrameworkPart().getForms(), driverConfig);
- FormUtils.applyValidation(
- job.getConnectorPart(Direction.TO).getForms(),
- toConnector);
+ ConfigValidationResult fromConfig = bean.getValidationResults()[0];
+ ConfigValidationResult toConfig = bean.getValidationResults()[1];
+ // TODO(VB): fix this as part of SQOOP 1509
+ //ConfigValidationResult driverConfig = bean.getValidationResults()[2];
+
+ ConfigUtils.applyValidation(
+ job.getJobConfig(Direction.FROM).getConfigs(),
+ fromConfig);
+ ConfigUtils.applyValidation(
+ job.getJobConfig(Direction.TO).getConfigs(),
+ toConfig);
+ //ConfigUtils.applyValidation(job.getDriverConfig().getSelf().getConfigs(), driverConfig);
Long id = bean.getId();
if(id != null) {
job.setPersistenceId(id);
}
- return Status.getWorstStatus(fromConnector.getStatus(), driverConfig.getStatus(), toConnector.getStatus());
+ return Status.getWorstStatus(fromConfig.getStatus(), toConfig.getStatus());
+ // driverConfig.getStatus());
}
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/client/src/main/java/org/apache/sqoop/client/request/ConnectorResourceRequest.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/request/ConnectorResourceRequest.java b/client/src/main/java/org/apache/sqoop/client/request/ConnectorResourceRequest.java
index 2855de6..e2aae98 100644
--- a/client/src/main/java/org/apache/sqoop/client/request/ConnectorResourceRequest.java
+++ b/client/src/main/java/org/apache/sqoop/client/request/ConnectorResourceRequest.java
@@ -22,7 +22,7 @@ import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
/**
- * Provide cRud semantics over RESTfull HTTP API for connectors. Only read
+ * Provide Read semantics over RESTfull HTTP API for connectors. Only read
* is supported as creation, update and delete might be done only directly on
* server side.
*/
@@ -38,10 +38,8 @@ public class ConnectorResourceRequest extends ResourceRequest
response = super.get(serverUrl + RESOURCE + cid);
}
JSONObject jsonObject = (JSONObject)JSONValue.parse(response);
-
ConnectorBean connectorBean = new ConnectorBean();
connectorBean.restore(jsonObject);
-
return connectorBean;
}
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/client/src/main/java/org/apache/sqoop/client/request/DriverConfigResourceRequest.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/request/DriverConfigResourceRequest.java b/client/src/main/java/org/apache/sqoop/client/request/DriverConfigResourceRequest.java
index 7b2ddc2..f6066fc 100644
--- a/client/src/main/java/org/apache/sqoop/client/request/DriverConfigResourceRequest.java
+++ b/client/src/main/java/org/apache/sqoop/client/request/DriverConfigResourceRequest.java
@@ -17,26 +17,23 @@
*/
package org.apache.sqoop.client.request;
-import org.apache.sqoop.json.DriverConfigBean;
+import org.apache.sqoop.json.DriverBean;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
/**
- * Provide cRud semantics over RESTfull HTTP API for driverConfig. Only read
- * is supported as creation, update and delete is not allowed.
+ * Provide CRUD semantics over RESTfull HTTP API for driverConfig
*/
public class DriverConfigResourceRequest extends ResourceRequest {
public static final String RESOURCE = "v1/config/driver";
- public DriverConfigBean read(String serverUrl) {
+ public DriverBean read(String serverUrl) {
String response = null;
response = super.get(serverUrl + RESOURCE);
JSONObject jsonObject = (JSONObject) JSONValue.parse(response);
-
- DriverConfigBean driverConfigBean = new DriverConfigBean();
- driverConfigBean.restore(jsonObject);
-
- return driverConfigBean;
+ DriverBean driverBean = new DriverBean();
+ driverBean.restore(jsonObject);
+ return driverBean;
}
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/client/src/main/java/org/apache/sqoop/client/request/JobResourceRequest.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/request/JobResourceRequest.java b/client/src/main/java/org/apache/sqoop/client/request/JobResourceRequest.java
index fd858ec..83c08b3 100644
--- a/client/src/main/java/org/apache/sqoop/client/request/JobResourceRequest.java
+++ b/client/src/main/java/org/apache/sqoop/client/request/JobResourceRequest.java
@@ -34,46 +34,36 @@ public class JobResourceRequest extends ResourceRequest {
private static final String ENABLE = "/enable";
private static final String DISABLE = "/disable";
- public JobBean read(String serverUrl, Long xid) {
+ public JobBean read(String serverUrl, Long linkId) {
String response;
- if (xid == null) {
+ if (linkId == null) {
response = super.get(serverUrl + RESOURCE + "all");
} else {
- response = super.get(serverUrl + RESOURCE + xid);
+ response = super.get(serverUrl + RESOURCE + linkId);
}
JSONObject jsonObject = (JSONObject) JSONValue.parse(response);
-
JobBean jobBean = new JobBean();
jobBean.restore(jsonObject);
-
return jobBean;
}
public ValidationResultBean create(String serverUrl, MJob job) {
JobBean jobBean = new JobBean(job);
-
- // Extract all form inputs including sensitive inputs
+ // Extract all config inputs including sensitive inputs
JSONObject jobJson = jobBean.extract(false);
-
String response = super.post(serverUrl + RESOURCE, jobJson.toJSONString());
-
- ValidationResultBean validationBean = new ValidationResultBean();
- validationBean.restore((JSONObject) JSONValue.parse(response));
-
- return validationBean;
+ ValidationResultBean validationResultBean = new ValidationResultBean();
+ validationResultBean.restore((JSONObject) JSONValue.parse(response));
+ return validationResultBean;
}
public ValidationResultBean update(String serverUrl, MJob job) {
JobBean jobBean = new JobBean(job);
-
- // Extract all form inputs including sensitive inputs
+ // Extract all config inputs including sensitive inputs
JSONObject jobJson = jobBean.extract(false);
-
String response = super.put(serverUrl + RESOURCE + job.getPersistenceId(), jobJson.toJSONString());
-
ValidationResultBean validationBean = new ValidationResultBean();
validationBean.restore((JSONObject) JSONValue.parse(response));
-
return validationBean;
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/client/src/main/java/org/apache/sqoop/client/request/LinkResourceRequest.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/request/LinkResourceRequest.java b/client/src/main/java/org/apache/sqoop/client/request/LinkResourceRequest.java
index 2b784c8..64e5cb1 100644
--- a/client/src/main/java/org/apache/sqoop/client/request/LinkResourceRequest.java
+++ b/client/src/main/java/org/apache/sqoop/client/request/LinkResourceRequest.java
@@ -50,28 +50,22 @@ public class LinkResourceRequest extends ResourceRequest {
public ValidationResultBean create(String serverUrl, MLink link) {
LinkBean linkBean = new LinkBean(link);
- // Extract all form inputs including sensitive inputs
+ // Extract all config inputs including sensitive inputs
JSONObject linkJson = linkBean.extract(false);
-
String response = super.post(serverUrl + RESOURCE, linkJson.toJSONString());
-
ValidationResultBean validationBean = new ValidationResultBean();
validationBean.restore((JSONObject) JSONValue.parse(response));
-
return validationBean;
}
public ValidationResultBean update(String serverUrl, MLink link) {
LinkBean linkBean = new LinkBean(link);
- // Extract all form inputs including sensitive inputs
+ // Extract all config inputs including sensitive inputs
JSONObject linkJson = linkBean.extract(false);
-
String response = super.put(serverUrl + RESOURCE + link.getPersistenceId(), linkJson.toJSONString());
-
ValidationResultBean validationBean = new ValidationResultBean();
validationBean.restore((JSONObject) JSONValue.parse(response));
-
return validationBean;
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/client/src/main/java/org/apache/sqoop/client/request/SqoopResourceRequests.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/request/SqoopResourceRequests.java b/client/src/main/java/org/apache/sqoop/client/request/SqoopResourceRequests.java
index 5401eca..a4dee75 100644
--- a/client/src/main/java/org/apache/sqoop/client/request/SqoopResourceRequests.java
+++ b/client/src/main/java/org/apache/sqoop/client/request/SqoopResourceRequests.java
@@ -19,7 +19,7 @@ package org.apache.sqoop.client.request;
import org.apache.sqoop.json.LinkBean;
import org.apache.sqoop.json.ConnectorBean;
-import org.apache.sqoop.json.DriverConfigBean;
+import org.apache.sqoop.json.DriverBean;
import org.apache.sqoop.json.JobBean;
import org.apache.sqoop.json.SubmissionBean;
import org.apache.sqoop.json.ValidationResultBean;
@@ -83,7 +83,7 @@ public class SqoopResourceRequests {
return submissionRequest;
}
- public DriverConfigBean readDriverConfig() {
+ public DriverBean readDriver() {
return getDriverConfigResourceRequest().read(serverUrl);
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/client/src/test/java/org/apache/sqoop/client/TestSqoopClient.java
----------------------------------------------------------------------
diff --git a/client/src/test/java/org/apache/sqoop/client/TestSqoopClient.java b/client/src/test/java/org/apache/sqoop/client/TestSqoopClient.java
index 54ea3d2..18b6132 100644
--- a/client/src/test/java/org/apache/sqoop/client/TestSqoopClient.java
+++ b/client/src/test/java/org/apache/sqoop/client/TestSqoopClient.java
@@ -17,28 +17,36 @@
*/
package org.apache.sqoop.client;
-import org.apache.sqoop.client.request.SqoopResourceRequests;
-import org.apache.sqoop.common.SqoopException;
-import org.apache.sqoop.json.ConnectorBean;
-import org.apache.sqoop.json.DriverConfigBean;
-import org.apache.sqoop.model.MConnectionForms;
-import org.apache.sqoop.model.MConnector;
-import org.apache.sqoop.model.MDriverConfig;
-import org.apache.sqoop.model.MJobForms;
-import org.apache.sqoop.utils.MapResourceBundle;
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.mockito.Mockito.*;
+import org.apache.sqoop.client.request.SqoopResourceRequests;
+import org.apache.sqoop.common.SqoopException;
+import org.apache.sqoop.json.ConnectorBean;
+import org.apache.sqoop.json.DriverBean;
+import org.apache.sqoop.model.MConfig;
+import org.apache.sqoop.model.MConnector;
+import org.apache.sqoop.model.MDriver;
+import org.apache.sqoop.model.MDriverConfig;
+import org.apache.sqoop.model.MFromConfig;
+import org.apache.sqoop.model.MLinkConfig;
+import org.apache.sqoop.model.MToConfig;
+import org.apache.sqoop.utils.MapResourceBundle;
+import org.junit.Before;
+import org.junit.Test;
public class TestSqoopClient {
@@ -62,7 +70,7 @@ public class TestSqoopClient {
MConnector connector = client.getConnector(1);
assertEquals(1, connector.getPersistenceId());
- client.getConnectorConfigResourceBundle(1L);
+ client.getConnectorConfigBundle(1L);
verify(resourceRequests, times(1)).readConnector(1L);
}
@@ -74,7 +82,7 @@ public class TestSqoopClient {
assertEquals(1, connector.getPersistenceId());
assertEquals("A1", connector.getUniqueName());
- client.getConnectorConfigResourceBundle(1L);
+ client.getConnectorConfigBundle(1L);
verify(resourceRequests, times(0)).readConnector(1L);
verify(resourceRequests, times(1)).readConnector(null);
@@ -87,7 +95,7 @@ public class TestSqoopClient {
@Test
public void testGetConnectorBundle() {
when(resourceRequests.readConnector(1L)).thenReturn(connectorBean(connector(1)));
- client.getConnectorConfigResourceBundle(1L);
+ client.getConnectorConfigBundle(1L);
MConnector connector = client.getConnector(1);
assertEquals(1, connector.getPersistenceId());
@@ -101,12 +109,12 @@ public class TestSqoopClient {
*/
@Test
public void testGetDriverConfig() {
- when(resourceRequests.readDriverConfig()).thenReturn(driverConfigBean(driverConfig()));
+ when(resourceRequests.readDriver()).thenReturn(driverBean(driver()));
client.getDriverConfig();
client.getDriverConfigBundle();
- verify(resourceRequests, times(1)).readDriverConfig();
+ verify(resourceRequests, times(1)).readDriver();
}
/**
@@ -115,12 +123,12 @@ public class TestSqoopClient {
*/
@Test
public void testGetDriverConfigBundle() {
- when(resourceRequests.readDriverConfig()).thenReturn(driverConfigBean(driverConfig()));
+ when(resourceRequests.readDriver()).thenReturn(driverBean(driver()));
client.getDriverConfigBundle();
client.getDriverConfig();
- verify(resourceRequests, times(1)).readDriverConfig();
+ verify(resourceRequests, times(1)).readDriver();
}
/**
@@ -135,12 +143,12 @@ public class TestSqoopClient {
Collection<MConnector> connectors = client.getConnectors();
assertEquals(2, connectors.size());
- client.getConnectorConfigResourceBundle(1);
+ client.getConnectorConfigBundle(1);
connector = client.getConnector(1);
assertEquals(1, connector.getPersistenceId());
connector = client.getConnector(2);
- client.getConnectorConfigResourceBundle(2);
+ client.getConnectorConfigBundle(2);
assertEquals(2, connector.getPersistenceId());
connectors = client.getConnectors();
@@ -173,11 +181,11 @@ public class TestSqoopClient {
when(resourceRequests.readConnector(1L)).thenReturn(bean);
when(resourceRequests.readConnector(2L)).thenReturn(bean);
- client.getConnectorConfigResourceBundle(1);
+ client.getConnectorConfigBundle(1);
client.getConnector(1);
client.getConnector(2);
- client.getConnectorConfigResourceBundle(2);
+ client.getConnectorConfigBundle(2);
Collection<MConnector> connectors = client.getConnectors();
assertEquals(2, connectors.size());
@@ -207,21 +215,20 @@ public class TestSqoopClient {
}
return new ConnectorBean(connectorList, bundles);
}
- private DriverConfigBean driverConfigBean(MDriverConfig driverConfig) {
- return new DriverConfigBean(driverConfig, new MapResourceBundle(null));
+ private DriverBean driverBean(MDriver driver) {
+ return new DriverBean(driver, new MapResourceBundle(null));
}
private MConnector connector(long id) {
MConnector connector = new MConnector("A" + id, "A" + id, "1.0" + id,
- new MConnectionForms(null), new MJobForms(null), new MJobForms(null));
+ new MLinkConfig(null), new MFromConfig(null), new MToConfig(null));
connector.setPersistenceId(id);
return connector;
}
- private MDriverConfig driverConfig() {
- MDriverConfig driverConfig = new MDriverConfig(new MConnectionForms(null),
- new MJobForms(null), "1");
- driverConfig.setPersistenceId(1);
- return driverConfig;
+ private MDriver driver() {
+ MDriver driver = new MDriver(new MDriverConfig(new LinkedList<MConfig>()), "1");
+ driver.setPersistenceId(1);
+ return driver;
}
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/common/src/main/java/org/apache/sqoop/json/ConnectorBean.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/json/ConnectorBean.java b/common/src/main/java/org/apache/sqoop/json/ConnectorBean.java
index d726a14..d12b6b0 100644
--- a/common/src/main/java/org/apache/sqoop/json/ConnectorBean.java
+++ b/common/src/main/java/org/apache/sqoop/json/ConnectorBean.java
@@ -17,15 +17,15 @@
*/
package org.apache.sqoop.json;
-import static org.apache.sqoop.json.util.FormSerialization.ALL;
-import static org.apache.sqoop.json.util.FormSerialization.CLASS;
-import static org.apache.sqoop.json.util.FormSerialization.CON_FORMS;
-import static org.apache.sqoop.json.util.FormSerialization.ID;
-import static org.apache.sqoop.json.util.FormSerialization.JOB_FORMS;
-import static org.apache.sqoop.json.util.FormSerialization.NAME;
-import static org.apache.sqoop.json.util.FormSerialization.VERSION;
-import static org.apache.sqoop.json.util.FormSerialization.extractForms;
-import static org.apache.sqoop.json.util.FormSerialization.restoreForms;
+import static org.apache.sqoop.json.util.ConfigSerialization.ALL;
+import static org.apache.sqoop.json.util.ConfigSerialization.CLASS;
+import static org.apache.sqoop.json.util.ConfigSerialization.ID;
+import static org.apache.sqoop.json.util.ConfigSerialization.CONNECTOR_JOB_CONFIG;
+import static org.apache.sqoop.json.util.ConfigSerialization.CONNECTOR_LINK_CONFIG;
+import static org.apache.sqoop.json.util.ConfigSerialization.NAME;
+import static org.apache.sqoop.json.util.ConfigSerialization.VERSION;
+import static org.apache.sqoop.json.util.ConfigSerialization.extractConfigList;
+import static org.apache.sqoop.json.util.ConfigSerialization.restoreConfigList;
import static org.apache.sqoop.json.util.ResourceBundleSerialization.CONNECTOR_CONFIGS;
import static org.apache.sqoop.json.util.ResourceBundleSerialization.extractResourceBundle;
import static org.apache.sqoop.json.util.ResourceBundleSerialization.restoreResourceBundle;
@@ -38,24 +38,28 @@ import java.util.ResourceBundle;
import java.util.Set;
import org.apache.sqoop.common.Direction;
-import org.apache.sqoop.model.MConnectionForms;
+import org.apache.sqoop.model.MConfig;
import org.apache.sqoop.model.MConnector;
-import org.apache.sqoop.model.MForm;
-import org.apache.sqoop.model.MJobForms;
+import org.apache.sqoop.model.MFromConfig;
+import org.apache.sqoop.model.MLinkConfig;
+import org.apache.sqoop.model.MToConfig;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
+/**
+ * Json representation of the connector object
+ *
+ */
public class ConnectorBean implements JsonBean {
private List<MConnector> connectors;
- private Map<Long, ResourceBundle> bundles;
+ private Map<Long, ResourceBundle> connectorConfigBundles;
// for "extract"
- public ConnectorBean(List<MConnector> connectors,
- Map<Long, ResourceBundle> bundles) {
+ public ConnectorBean(List<MConnector> connectors, Map<Long, ResourceBundle> bundles) {
this.connectors = connectors;
- this.bundles = bundles;
+ this.connectorConfigBundles = bundles;
}
// for "restore"
@@ -67,46 +71,46 @@ public class ConnectorBean implements JsonBean {
}
public Map<Long, ResourceBundle> getResourceBundles() {
- return bundles;
+ return connectorConfigBundles;
}
@SuppressWarnings("unchecked")
@Override
public JSONObject extract(boolean skipSensitive) {
- JSONArray array = new JSONArray();
+ JSONArray connectorArray = new JSONArray();
for (MConnector connector : connectors) {
- JSONObject object = new JSONObject();
-
- object.put(ID, connector.getPersistenceId());
- object.put(NAME, connector.getUniqueName());
- object.put(CLASS, connector.getClassName());
- object.put(VERSION, connector.getVersion());
-
- object.put(CON_FORMS, extractForms(connector.getConnectionForms().getForms(), skipSensitive));
- object.put(JOB_FORMS, new JSONObject());
- if (connector.getJobForms(Direction.FROM) != null) {
- ((JSONObject)object.get(JOB_FORMS)).put(
- Direction.FROM, extractForms(connector.getJobForms(Direction.FROM).getForms(), skipSensitive));
+ JSONObject connectorJsonObject = new JSONObject();
+
+ connectorJsonObject.put(ID, connector.getPersistenceId());
+ connectorJsonObject.put(NAME, connector.getUniqueName());
+ connectorJsonObject.put(CLASS, connector.getClassName());
+ connectorJsonObject.put(VERSION, connector.getVersion());
+ connectorJsonObject.put(CONNECTOR_LINK_CONFIG,
+ extractConfigList(connector.getLinkConfig().getConfigs(), skipSensitive));
+
+ connectorJsonObject.put(CONNECTOR_JOB_CONFIG, new JSONObject());
+ // add sub fields to the job config for from and to
+ if (connector.getFromConfig() != null) {
+ ((JSONObject) connectorJsonObject.get(CONNECTOR_JOB_CONFIG)).put(Direction.FROM,
+ extractConfigList(connector.getFromConfig().getConfigs(), skipSensitive));
}
-
- if (connector.getJobForms(Direction.TO) != null) {
- ((JSONObject)object.get(JOB_FORMS)).put(
- Direction.TO, extractForms(connector.getJobForms(Direction.TO).getForms(), skipSensitive));
+ if (connector.getToConfig() != null) {
+ ((JSONObject) connectorJsonObject.get(CONNECTOR_JOB_CONFIG)).put(Direction.TO,
+ extractConfigList(connector.getToConfig().getConfigs(), skipSensitive));
}
- array.add(object);
+ connectorArray.add(connectorJsonObject);
}
JSONObject all = new JSONObject();
- all.put(ALL, array);
+ all.put(ALL, connectorArray);
- if(bundles != null && !bundles.isEmpty()) {
+ if (connectorConfigBundles != null && !connectorConfigBundles.isEmpty()) {
JSONObject jsonBundles = new JSONObject();
- for(Map.Entry<Long, ResourceBundle> entry : bundles.entrySet()) {
- jsonBundles.put(entry.getKey().toString(),
- extractResourceBundle(entry.getValue()));
+ for (Map.Entry<Long, ResourceBundle> entry : connectorConfigBundles.entrySet()) {
+ jsonBundles.put(entry.getKey().toString(), extractResourceBundle(entry.getValue()));
}
all.put(CONNECTOR_CONFIGS, jsonBundles);
}
@@ -129,35 +133,42 @@ public class ConnectorBean implements JsonBean {
String className = (String) object.get(CLASS);
String version = (String) object.get(VERSION);
- MJobForms fromJob = null;
- MJobForms toJob = null;
- List<MForm> connForms = restoreForms((JSONArray) object.get(CON_FORMS));
- JSONObject jobJson = (JSONObject) object.get(JOB_FORMS);
- JSONArray fromJobJson = (JSONArray)jobJson.get(Direction.FROM.name());
- JSONArray toJobJson = (JSONArray)jobJson.get(Direction.TO.name());
- if (fromJobJson != null) {
- List<MForm> fromJobForms = restoreForms(fromJobJson);
- fromJob = new MJobForms(fromJobForms);
+ List<MConfig> linkConfigs = restoreConfigList((JSONArray) object.get(CONNECTOR_LINK_CONFIG));
+
+ // parent that encapsualtes both the from/to configs
+ JSONObject jobConfigJson = (JSONObject) object.get(CONNECTOR_JOB_CONFIG);
+ JSONArray fromJobConfigJson = (JSONArray) jobConfigJson.get(Direction.FROM.name());
+ JSONArray toJobConfigJson = (JSONArray) jobConfigJson.get(Direction.TO.name());
+
+ MFromConfig fromConfig = null;
+ MToConfig toConfig = null;
+ if (fromJobConfigJson != null) {
+
+ List<MConfig> fromJobConfig = restoreConfigList(fromJobConfigJson);
+ fromConfig = new MFromConfig(fromJobConfig);
+
}
- if (toJobJson != null) {
- List<MForm> toJobForms = restoreForms(toJobJson);
- toJob = new MJobForms(toJobForms);
+ if (toJobConfigJson != null) {
+ List<MConfig> toJobConfig = restoreConfigList(toJobConfigJson);
+ toConfig = new MToConfig(toJobConfig);
}
- MConnectionForms connection = new MConnectionForms(connForms);
- MConnector connector = new MConnector(uniqueName, className, version,
- connection, fromJob, toJob);
+
+ MLinkConfig linkConfig = new MLinkConfig(linkConfigs);
+ MConnector connector = new MConnector(uniqueName, className, version, linkConfig, fromConfig,
+ toConfig);
+
connector.setPersistenceId(connectorId);
connectors.add(connector);
}
- if(jsonObject.containsKey(CONNECTOR_CONFIGS)) {
- bundles = new HashMap<Long, ResourceBundle>();
+ if (jsonObject.containsKey(CONNECTOR_CONFIGS)) {
+ connectorConfigBundles = new HashMap<Long, ResourceBundle>();
JSONObject jsonBundles = (JSONObject) jsonObject.get(CONNECTOR_CONFIGS);
Set<Map.Entry<String, JSONObject>> entrySet = jsonBundles.entrySet();
for (Map.Entry<String, JSONObject> entry : entrySet) {
- bundles.put(Long.parseLong(entry.getKey()),
- restoreResourceBundle(entry.getValue()));
+ connectorConfigBundles.put(Long.parseLong(entry.getKey()),
+ restoreResourceBundle(entry.getValue()));
}
}
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/common/src/main/java/org/apache/sqoop/json/DriverBean.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/json/DriverBean.java b/common/src/main/java/org/apache/sqoop/json/DriverBean.java
new file mode 100644
index 0000000..90cdbef
--- /dev/null
+++ b/common/src/main/java/org/apache/sqoop/json/DriverBean.java
@@ -0,0 +1,90 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sqoop.json;
+
+import static org.apache.sqoop.json.util.ConfigSerialization.DRIVER_CONFIG;
+import static org.apache.sqoop.json.util.ConfigSerialization.DRIVER_VERSION;
+import static org.apache.sqoop.json.util.ConfigSerialization.ID;
+import static org.apache.sqoop.json.util.ConfigSerialization.extractConfigList;
+import static org.apache.sqoop.json.util.ConfigSerialization.restoreConfigList;
+import static org.apache.sqoop.json.util.ResourceBundleSerialization.CONFIGS;
+import static org.apache.sqoop.json.util.ResourceBundleSerialization.extractResourceBundle;
+import static org.apache.sqoop.json.util.ResourceBundleSerialization.restoreResourceBundle;
+
+import java.util.List;
+import java.util.ResourceBundle;
+
+import org.apache.sqoop.model.MConfig;
+import org.apache.sqoop.model.MDriver;
+import org.apache.sqoop.model.MDriverConfig;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+/**
+ * Json representation of the driver
+ *
+ */
+public class DriverBean implements JsonBean {
+
+ public static final String CURRENT_DRIVER_VERSION = "1";
+
+ private MDriver driver;
+
+ private ResourceBundle bundle;
+
+ // for "extract"
+ public DriverBean(MDriver driver, ResourceBundle bundle) {
+ this.driver = driver;
+ this.bundle = bundle;
+ }
+
+ // for "restore"
+ public DriverBean() {
+ }
+
+ public MDriver getDriver() {
+ return driver;
+ }
+
+ public ResourceBundle getDriverConfigResourceBundle() {
+ return bundle;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public JSONObject extract(boolean skipSensitive) {
+ JSONArray configs =
+ extractConfigList(driver.getDriverConfig().getConfigs(), skipSensitive);
+
+ JSONObject result = new JSONObject();
+ result.put(ID, driver.getPersistenceId());
+ result.put(DRIVER_VERSION, driver.getVersion());
+ result.put(DRIVER_CONFIG, configs);
+ result.put(CONFIGS, extractResourceBundle(bundle));
+ return result;
+ }
+
+ @Override
+ public void restore(JSONObject jsonObject) {
+ long id = (Long) jsonObject.get(ID);
+ String driverVersion = (String) jsonObject.get(DRIVER_VERSION);
+ List<MConfig> driverConfig = restoreConfigList((JSONArray) jsonObject.get(DRIVER_CONFIG));
+ driver = new MDriver(new MDriverConfig(driverConfig), driverVersion);
+ driver.setPersistenceId(id);
+ bundle = restoreResourceBundle((JSONObject) jsonObject.get(CONFIGS));
+ }
+}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/common/src/main/java/org/apache/sqoop/json/DriverConfigBean.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/json/DriverConfigBean.java b/common/src/main/java/org/apache/sqoop/json/DriverConfigBean.java
deleted file mode 100644
index a2cc8b8..0000000
--- a/common/src/main/java/org/apache/sqoop/json/DriverConfigBean.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sqoop.json;
-
-import org.apache.sqoop.model.MConnectionForms;
-import org.apache.sqoop.model.MForm;
-import org.apache.sqoop.model.MDriverConfig;
-import org.apache.sqoop.model.MJobForms;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-
-import java.util.List;
-import java.util.ResourceBundle;
-
-import static org.apache.sqoop.json.util.FormSerialization.*;
-import static org.apache.sqoop.json.util.ResourceBundleSerialization.*;
-
-public class DriverConfigBean implements JsonBean {
-
- private MDriverConfig driverConfig;
-
- private ResourceBundle bundle;
-
- // for "extract"
- public DriverConfigBean(MDriverConfig driverConfig, ResourceBundle bundle) {
- this.driverConfig = driverConfig;
- this.bundle = bundle;
- }
-
- // for "restore"
- public DriverConfigBean() {
- }
-
- public MDriverConfig getDriverConfig() {
- return driverConfig;
- }
-
- public ResourceBundle getResourceBundle() {
- return bundle;
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public JSONObject extract(boolean skipSensitive) {
- // TODO(Abe): Add From/To connection forms.
- JSONArray conForms =
- extractForms(driverConfig.getConnectionForms().getForms(), skipSensitive);
- JSONArray jobForms = extractForms(driverConfig.getJobForms().getForms(), skipSensitive);
-
- JSONObject result = new JSONObject();
- result.put(ID, driverConfig.getPersistenceId());
- result.put(DRIVER_VERSION, driverConfig.getVersion());
- result.put(CON_FORMS, conForms);
- result.put(JOB_FORMS, jobForms);
- result.put(CONFIGS, extractResourceBundle(bundle));
- return result;
- }
-
- @Override
- public void restore(JSONObject jsonObject) {
- long id = (Long) jsonObject.get(ID);
- String driverVersion = (String) jsonObject.get(DRIVER_VERSION);
-
- List<MForm> connForms = restoreForms((JSONArray) jsonObject.get(CON_FORMS));
- List<MForm> jobForms = restoreForms((JSONArray) jsonObject.get(JOB_FORMS));
-
- // TODO(Abe): Get From/To connection forms.
- driverConfig = new MDriverConfig(
- new MConnectionForms(connForms),
- new MJobForms(jobForms),
- driverVersion);
- driverConfig.setPersistenceId(id);
-
- bundle = restoreResourceBundle((JSONObject) jsonObject.get(CONFIGS));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/common/src/main/java/org/apache/sqoop/json/JobBean.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/json/JobBean.java b/common/src/main/java/org/apache/sqoop/json/JobBean.java
index a3e6071..8f42edb 100644
--- a/common/src/main/java/org/apache/sqoop/json/JobBean.java
+++ b/common/src/main/java/org/apache/sqoop/json/JobBean.java
@@ -17,12 +17,17 @@
*/
package org.apache.sqoop.json;
-import org.apache.sqoop.common.Direction;
-import org.apache.sqoop.model.MForm;
-import org.apache.sqoop.model.MJob;
-import org.apache.sqoop.model.MJobForms;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
+import static org.apache.sqoop.json.util.ConfigSerialization.CREATION_DATE;
+import static org.apache.sqoop.json.util.ConfigSerialization.CREATION_USER;
+import static org.apache.sqoop.json.util.ConfigSerialization.ENABLED;
+import static org.apache.sqoop.json.util.ConfigSerialization.UPDATE_DATE;
+import static org.apache.sqoop.json.util.ConfigSerialization.UPDATE_USER;
+import static org.apache.sqoop.json.util.ConfigSerialization.extractConfigList;
+import static org.apache.sqoop.json.util.ConfigSerialization.restoreConfigList;
+import static org.apache.sqoop.json.util.ResourceBundleSerialization.CONNECTOR_CONFIGS;
+import static org.apache.sqoop.json.util.ResourceBundleSerialization.DRIVER_CONFIGS;
+import static org.apache.sqoop.json.util.ResourceBundleSerialization.extractResourceBundle;
+import static org.apache.sqoop.json.util.ResourceBundleSerialization.restoreResourceBundle;
import java.util.ArrayList;
import java.util.Date;
@@ -32,11 +37,18 @@ import java.util.Map;
import java.util.ResourceBundle;
import java.util.Set;
-import static org.apache.sqoop.json.util.FormSerialization.*;
-import static org.apache.sqoop.json.util.ResourceBundleSerialization.*;
+import org.apache.sqoop.common.Direction;
+import org.apache.sqoop.model.MConfig;
+import org.apache.sqoop.model.MDriver;
+import org.apache.sqoop.model.MDriverConfig;
+import org.apache.sqoop.model.MFromConfig;
+import org.apache.sqoop.model.MJob;
+import org.apache.sqoop.model.MToConfig;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
/**
- *
+ * Json representation of the job config
*/
public class JobBean implements JsonBean {
@@ -47,9 +59,9 @@ public class JobBean implements JsonBean {
private static final String TO_LINK_ID = "to-link-id";
private static final String FROM_CONNECTOR_ID = "from-connector-id";
private static final String TO_CONNECTOR_ID = "to-connector-id";
- private static final String FROM_CONNECTOR_PART = "from-connector";
- private static final String TO_CONNECTOR_PART = "to-connector";
- private static final String FRAMEWORK_PART = "framework";
+ private static final String FROM_CONFIG = "from-config";
+ private static final String TO_CONFIG = "to-config";
+ private static final String DRIVER_CONFIG = "driver-config";
// Required
private List<MJob> jobs;
@@ -114,18 +126,21 @@ public class JobBean implements JsonBean {
object.put(CREATION_DATE, job.getCreationDate().getTime());
object.put(UPDATE_USER, job.getLastUpdateUser());
object.put(UPDATE_DATE, job.getLastUpdateDate().getTime());
- object.put(FROM_LINK_ID, job.getLinkId(Direction.FROM));
- object.put(TO_LINK_ID, job.getLinkId(Direction.TO));
+ // job link associated connectors
object.put(FROM_CONNECTOR_ID, job.getConnectorId(Direction.FROM));
object.put(TO_CONNECTOR_ID, job.getConnectorId(Direction.TO));
- object.put(FROM_CONNECTOR_PART,
- extractForms(job.getConnectorPart(Direction.FROM).getForms(),skipSensitive));
- object.put(TO_CONNECTOR_PART,
- extractForms(job.getConnectorPart(Direction.TO).getForms(), skipSensitive));
- object.put(FRAMEWORK_PART,
- extractForms(job.getFrameworkPart().getForms(), skipSensitive));
-
- array.add(object);
+ // job associated links
+ object.put(FROM_LINK_ID, job.getLinkId(Direction.FROM));
+ object.put(TO_LINK_ID, job.getLinkId(Direction.TO));
+ // job configs
+ object.put(FROM_CONFIG, extractConfigList(job
+ .getJobConfig(Direction.FROM).getConfigs(), skipSensitive));
+ object.put(TO_CONFIG,
+ extractConfigList(job.getJobConfig(Direction.TO).getConfigs(), skipSensitive));
+ object.put(DRIVER_CONFIG,
+ extractConfigList(job.getDriverConfig().getConfigs(), skipSensitive));
+
+ array.add(object);
}
JSONObject all = new JSONObject();
@@ -160,22 +175,22 @@ public class JobBean implements JsonBean {
long toConnectorId = (Long) object.get(TO_CONNECTOR_ID);
long fromConnectionId = (Long) object.get(FROM_LINK_ID);
long toConnectionId = (Long) object.get(TO_LINK_ID);
- JSONArray fromConnectorPart = (JSONArray) object.get(FROM_CONNECTOR_PART);
- JSONArray toConnectorPart = (JSONArray) object.get(TO_CONNECTOR_PART);
- JSONArray frameworkPart = (JSONArray) object.get(FRAMEWORK_PART);
+ JSONArray fromConfigJson = (JSONArray) object.get(FROM_CONFIG);
+ JSONArray toConfigJson = (JSONArray) object.get(TO_CONFIG);
+ JSONArray driverConfigJson = (JSONArray) object.get(DRIVER_CONFIG);
- List<MForm> fromConnectorParts = restoreForms(fromConnectorPart);
- List<MForm> toConnectorParts = restoreForms(toConnectorPart);
- List<MForm> frameworkForms = restoreForms(frameworkPart);
+ List<MConfig> fromConfig = restoreConfigList(fromConfigJson);
+ List<MConfig> toConfig = restoreConfigList(toConfigJson);
+ List<MConfig> driverConfig = restoreConfigList(driverConfigJson);
MJob job = new MJob(
fromConnectorId,
toConnectorId,
fromConnectionId,
toConnectionId,
- new MJobForms(fromConnectorParts),
- new MJobForms(toConnectorParts),
- new MJobForms(frameworkForms)
+ new MFromConfig(fromConfig),
+ new MToConfig(toConfig),
+ new MDriverConfig(driverConfig)
);
job.setPersistenceId((Long) object.get(ID));
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/common/src/main/java/org/apache/sqoop/json/JobValidationBean.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/json/JobValidationBean.java b/common/src/main/java/org/apache/sqoop/json/JobValidationBean.java
index 34c0a4b..9e78fe9 100644
--- a/common/src/main/java/org/apache/sqoop/json/JobValidationBean.java
+++ b/common/src/main/java/org/apache/sqoop/json/JobValidationBean.java
@@ -21,41 +21,41 @@ import org.apache.sqoop.common.Direction;
import org.apache.sqoop.common.DirectionError;
import org.apache.sqoop.common.SqoopException;
import org.apache.sqoop.validation.Status;
-import org.apache.sqoop.validation.Validation;
+import org.apache.sqoop.validation.ConfigValidator;
import org.json.simple.JSONObject;
import java.util.HashMap;
import java.util.Map;
/**
- * Bean for sending validations across network. This bean will move two
- * validation objects at one time - one for connector and second for framework
- * part of validated entity. Optionally validation bean can also transfer
+ * Bean for sending validations across network. This bean will send job validation results
+ * Optionally validation bean can also transfer
* created persistent id in case that new entity was created.
*/
public class JobValidationBean implements JsonBean {
private static final String ID = "id";
- private static final String FRAMEWORK = "framework";
- private static final String CONNECTOR = "connector";
+ private static final String JOB = "job";
private static final String FROM = "from";
private static final String TO = "to";
+ private static final String DRIVER = "driver";
+
private static final String STATUS = "status";
private static final String MESSAGE = "message";
private static final String MESSAGES = "messages";
private Long id;
- private Validation fromConnectorValidation;
- private Validation toConnectorValidation;
- private Validation frameworkValidation;
+ private ConfigValidator fromConfigValidation;
+ private ConfigValidator toConfigValidation;
+ private ConfigValidator driverConfigValidation;
// For "extract"
- public JobValidationBean(Validation fromConnector, Validation framework, Validation toConnector) {
+ public JobValidationBean(ConfigValidator fromConnector, ConfigValidator framework, ConfigValidator toConnector) {
this();
- this.fromConnectorValidation = fromConnector;
- this.toConnectorValidation = toConnector;
- this.frameworkValidation = framework;
+ this.fromConfigValidation = fromConnector;
+ this.toConfigValidation = toConnector;
+ this.driverConfigValidation = framework;
}
// For "restore"
@@ -63,21 +63,21 @@ public class JobValidationBean implements JsonBean {
id = null;
}
- public Validation getConnectorValidation(Direction type) {
+ public ConfigValidator getConnectorValidation(Direction type) {
switch(type) {
case FROM:
- return fromConnectorValidation;
+ return fromConfigValidation;
case TO:
- return toConnectorValidation;
+ return toConfigValidation;
default:
throw new SqoopException(DirectionError.DIRECTION_0000, "Direction: " + type);
}
}
- public Validation getFrameworkValidation() {
- return frameworkValidation;
+ public ConfigValidator getFrameworkValidation() {
+ return driverConfigValidation;
}
public void setId(Long id) {
@@ -91,32 +91,30 @@ public class JobValidationBean implements JsonBean {
@SuppressWarnings("unchecked")
public JSONObject extract(boolean skipSensitive) {
JSONObject object = new JSONObject();
- JSONObject connectorObject = new JSONObject();
+ JSONObject jobObject = new JSONObject();
// Optionally transfer id
if(id != null) {
object.put(ID, id);
}
- connectorObject.put(FROM, extractValidation(getConnectorValidation(Direction.FROM)));
- connectorObject.put(TO, extractValidation(getConnectorValidation(Direction.TO)));
-
- object.put(FRAMEWORK, extractValidation(frameworkValidation));
- object.put(CONNECTOR, connectorObject);
-
+ jobObject.put(FROM, extractValidation(getConnectorValidation(Direction.FROM)));
+ jobObject.put(TO, extractValidation(getConnectorValidation(Direction.TO)));
+ jobObject.put(DRIVER, extractValidation(driverConfigValidation));
+ object.put(JOB, jobObject);
return object;
}
@SuppressWarnings("unchecked")
- private JSONObject extractValidation(Validation validation) {
+ private JSONObject extractValidation(ConfigValidator validation) {
JSONObject object = new JSONObject();
object.put(STATUS, validation.getStatus().name());
JSONObject jsonMessages = new JSONObject();
- Map<Validation.FormInput, Validation.Message> messages = validation.getMessages();
+ Map<ConfigValidator.ConfigInput, ConfigValidator.Message> messages = validation.getMessages();
- for(Map.Entry<Validation.FormInput, Validation.Message> entry : messages.entrySet()) {
+ for(Map.Entry<ConfigValidator.ConfigInput, ConfigValidator.Message> entry : messages.entrySet()) {
JSONObject jsonEntry = new JSONObject();
jsonEntry.put(STATUS, entry.getValue().getStatus().name());
jsonEntry.put(MESSAGE, entry.getValue().getMessage());
@@ -133,20 +131,21 @@ public class JobValidationBean implements JsonBean {
// Optional and accepting NULLs
id = (Long) jsonObject.get(ID);
- JSONObject jsonConnectorObject = (JSONObject)jsonObject.get(CONNECTOR);
+ JSONObject jobJsonObject = (JSONObject)jsonObject.get(JOB);
- fromConnectorValidation = restoreValidation(
- (JSONObject)jsonConnectorObject.get(FROM));
- toConnectorValidation = restoreValidation(
- (JSONObject)jsonConnectorObject.get(TO));
- frameworkValidation = restoreValidation(
- (JSONObject)jsonObject.get(FRAMEWORK));
+ fromConfigValidation = restoreValidation(
+ (JSONObject)jobJsonObject.get(FROM));
+ toConfigValidation = restoreValidation(
+ (JSONObject)jobJsonObject.get(TO));
+ driverConfigValidation = restoreValidation(
+ (JSONObject)jobJsonObject.get(DRIVER));
}
- public Validation restoreValidation(JSONObject jsonObject) {
+ public ConfigValidator restoreValidation(JSONObject jsonObject) {
+
JSONObject jsonMessages = (JSONObject) jsonObject.get(MESSAGES);
- Map<Validation.FormInput, Validation.Message> messages
- = new HashMap<Validation.FormInput, Validation.Message>();
+ Map<ConfigValidator.ConfigInput, ConfigValidator.Message> messages
+ = new HashMap<ConfigValidator.ConfigInput, ConfigValidator.Message>();
for(Object key : jsonMessages.keySet()) {
JSONObject jsonMessage = (JSONObject) jsonMessages.get(key);
@@ -154,14 +153,14 @@ public class JobValidationBean implements JsonBean {
Status status = Status.valueOf((String) jsonMessage.get(STATUS));
String stringMessage = (String) jsonMessage.get(MESSAGE);
- Validation.Message message
- = new Validation.Message(status, stringMessage);
+ ConfigValidator.Message message
+ = new ConfigValidator.Message(status, stringMessage);
- messages.put(new Validation.FormInput((String)key), message);
+ messages.put(new ConfigValidator.ConfigInput((String)key), message);
}
Status status = Status.valueOf((String) jsonObject.get(STATUS));
- return new Validation(status, messages);
+ return new ConfigValidator(status, messages);
}
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/common/src/main/java/org/apache/sqoop/json/LinkBean.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/json/LinkBean.java b/common/src/main/java/org/apache/sqoop/json/LinkBean.java
index 8981ea7..af0fc9d 100644
--- a/common/src/main/java/org/apache/sqoop/json/LinkBean.java
+++ b/common/src/main/java/org/apache/sqoop/json/LinkBean.java
@@ -18,8 +18,8 @@
package org.apache.sqoop.json;
import org.apache.sqoop.model.MLink;
-import org.apache.sqoop.model.MConnectionForms;
-import org.apache.sqoop.model.MForm;
+import org.apache.sqoop.model.MLinkConfig;
+import org.apache.sqoop.model.MConfig;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
@@ -31,7 +31,7 @@ import java.util.Map;
import java.util.ResourceBundle;
import java.util.Set;
-import static org.apache.sqoop.json.util.FormSerialization.*;
+import static org.apache.sqoop.json.util.ConfigSerialization.*;
import static org.apache.sqoop.json.util.ResourceBundleSerialization.*;
/**
@@ -42,16 +42,14 @@ import static org.apache.sqoop.json.util.ResourceBundleSerialization.*;
*/
public class LinkBean implements JsonBean {
- private static final String CONNECTOR_ID = "connector-id";
- private static final String CONNECTOR_PART = "connector";
- private static final String FRAMEWORK_PART = "framework";
+ static final String CONNECTOR_ID = "connector-id";
+ static final String LINK_CONFIG = "link-config";
// Required
private List<MLink> links;
// Optional
- private Map<Long, ResourceBundle> connectorConfigBundles;
- private ResourceBundle driverConfigBundle;
+ private Map<Long, ResourceBundle> linkConfigBundles;
// For "extract"
public LinkBean(MLink link) {
@@ -67,72 +65,56 @@ public class LinkBean implements JsonBean {
// For "restore"
public LinkBean() {
- connectorConfigBundles = new HashMap<Long, ResourceBundle>();
- }
-
- public void setDriverConfigBundle(ResourceBundle driverConfigBundle) {
- this.driverConfigBundle = driverConfigBundle;
+ linkConfigBundles = new HashMap<Long, ResourceBundle>();
}
public void addConnectorConfigBundle(Long id, ResourceBundle connectorConfigBundle) {
- connectorConfigBundles.put(id, connectorConfigBundle);
+ linkConfigBundles.put(id, connectorConfigBundle);
}
- public boolean hasConnectorBundle(Long id) {
- return connectorConfigBundles.containsKey(id);
+ public boolean hasConnectorConfigBundle(Long id) {
+ return linkConfigBundles.containsKey(id);
}
public List<MLink> getLinks() {
return links;
}
- public ResourceBundle getConnectorBundle(Long id) {
- return connectorConfigBundles.get(id);
- }
-
- public ResourceBundle getFrameworkBundle() {
- return driverConfigBundle;
+ public ResourceBundle getConnectorConfigBundle(Long id) {
+ return linkConfigBundles.get(id);
}
@Override
@SuppressWarnings("unchecked")
public JSONObject extract(boolean skipSensitive) {
- JSONArray array = new JSONArray();
+ JSONArray linkArray = new JSONArray();
for(MLink link : links) {
- JSONObject object = new JSONObject();
-
- object.put(ID, link.getPersistenceId());
- object.put(NAME, link.getName());
- object.put(ENABLED, link.getEnabled());
- object.put(CREATION_USER, link.getCreationUser());
- object.put(CREATION_DATE, link.getCreationDate().getTime());
- object.put(UPDATE_USER, link.getLastUpdateUser());
- object.put(UPDATE_DATE, link.getLastUpdateDate().getTime());
- object.put(CONNECTOR_ID, link.getConnectorId());
- object.put(CONNECTOR_PART,
- extractForms(link.getConnectorPart().getForms(), skipSensitive));
- object.put(FRAMEWORK_PART,
- extractForms(link.getFrameworkPart().getForms(), skipSensitive));
-
- array.add(object);
+ JSONObject linkJsonObject = new JSONObject();
+
+ linkJsonObject.put(ID, link.getPersistenceId());
+ linkJsonObject.put(NAME, link.getName());
+ linkJsonObject.put(ENABLED, link.getEnabled());
+ linkJsonObject.put(CREATION_USER, link.getCreationUser());
+ linkJsonObject.put(CREATION_DATE, link.getCreationDate().getTime());
+ linkJsonObject.put(UPDATE_USER, link.getLastUpdateUser());
+ linkJsonObject.put(UPDATE_DATE, link.getLastUpdateDate().getTime());
+ linkJsonObject.put(CONNECTOR_ID, link.getConnectorId());
+ linkJsonObject.put(LINK_CONFIG,
+ extractConfigList(link.getConnectorLinkConfig().getConfigs(), skipSensitive));
+
+ linkArray.add(linkJsonObject);
}
JSONObject all = new JSONObject();
- all.put(ALL, array);
-
- if(!connectorConfigBundles.isEmpty()) {
+ all.put(ALL, linkArray);
+ if (!linkConfigBundles.isEmpty()) {
JSONObject bundles = new JSONObject();
-
- for(Map.Entry<Long, ResourceBundle> entry : connectorConfigBundles.entrySet()) {
- bundles.put(entry.getKey().toString(),
- extractResourceBundle(entry.getValue()));
+ for (Map.Entry<Long, ResourceBundle> entry : linkConfigBundles.entrySet()) {
+ bundles.put(entry.getKey().toString(), extractResourceBundle(entry.getValue()));
}
all.put(CONNECTOR_CONFIGS, bundles);
}
- if(driverConfigBundle != null) {
- all.put(DRIVER_CONFIGS,extractResourceBundle(driverConfigBundle));
- }
return all;
}
@@ -147,15 +129,11 @@ public class LinkBean implements JsonBean {
JSONObject object = (JSONObject) obj;
long connectorId = (Long) object.get(CONNECTOR_ID);
- JSONArray connectorPart = (JSONArray) object.get(CONNECTOR_PART);
- JSONArray frameworkPart = (JSONArray) object.get(FRAMEWORK_PART);
+ JSONArray connectorLinkConfig = (JSONArray) object.get(LINK_CONFIG);
- List<MForm> connectorForms = restoreForms(connectorPart);
- List<MForm> frameworkForms = restoreForms(frameworkPart);
+ List<MConfig> linkConfig = restoreConfigList(connectorLinkConfig);
- MLink link = new MLink(connectorId,
- new MConnectionForms(connectorForms),
- new MConnectionForms(frameworkForms));
+ MLink link = new MLink(connectorId, new MLinkConfig(linkConfig));
link.setPersistenceId((Long) object.get(ID));
link.setName((String) object.get(NAME));
@@ -172,13 +150,9 @@ public class LinkBean implements JsonBean {
JSONObject bundles = (JSONObject) jsonObject.get(CONNECTOR_CONFIGS);
Set<Map.Entry<String, JSONObject>> entrySet = bundles.entrySet();
for (Map.Entry<String, JSONObject> entry : entrySet) {
- connectorConfigBundles.put(Long.parseLong(entry.getKey()),
+ linkConfigBundles.put(Long.parseLong(entry.getKey()),
restoreResourceBundle(entry.getValue()));
}
}
- if(jsonObject.containsKey(DRIVER_CONFIGS)) {
- driverConfigBundle = restoreResourceBundle(
- (JSONObject) jsonObject.get(DRIVER_CONFIGS));
- }
}
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/common/src/main/java/org/apache/sqoop/json/LinkValidationBean.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/json/LinkValidationBean.java b/common/src/main/java/org/apache/sqoop/json/LinkValidationBean.java
index a6a6b65..682f63b 100644
--- a/common/src/main/java/org/apache/sqoop/json/LinkValidationBean.java
+++ b/common/src/main/java/org/apache/sqoop/json/LinkValidationBean.java
@@ -18,37 +18,32 @@
package org.apache.sqoop.json;
import org.apache.sqoop.validation.Status;
-import org.apache.sqoop.validation.Validation;
+import org.apache.sqoop.validation.ConfigValidator;
import org.json.simple.JSONObject;
import java.util.HashMap;
import java.util.Map;
/**
- * Bean for sending validations across network. This bean will move two
- * validation objects at one time - one for connector and second for framework
- * part of validated entity. Optionally validation bean can also transfer
+ * Bean for sending validations across network.This bean will transfer link config
+ * validation results. Optionally validation bean can also transfer
* created persistent id in case that new entity was created.
*/
public class LinkValidationBean implements JsonBean {
private static final String ID = "id";
- private static final String FRAMEWORK = "framework";
- private static final String CONNECTOR = "connector";
private static final String STATUS = "status";
private static final String MESSAGE = "message";
private static final String MESSAGES = "messages";
private Long id;
- private Validation connectorValidation;
- private Validation frameworkValidation;
+ private ConfigValidator linkConfigValidation;
// For "extract"
- public LinkValidationBean(Validation connector, Validation framework) {
+ public LinkValidationBean(ConfigValidator linkConfigValidator) {
this();
- this.connectorValidation = connector;
- this.frameworkValidation = framework;
+ this.linkConfigValidation = linkConfigValidator;
}
// For "restore"
@@ -56,12 +51,8 @@ public class LinkValidationBean implements JsonBean {
id = null;
}
- public Validation getConnectorValidation() {
- return connectorValidation;
- }
-
- public Validation getFrameworkValidation() {
- return frameworkValidation;
+ public ConfigValidator getLinkConfigValidator() {
+ return linkConfigValidation;
}
public void setId(Long id) {
@@ -80,23 +71,20 @@ public class LinkValidationBean implements JsonBean {
if(id != null) {
object.put(ID, id);
}
-
- object.put(CONNECTOR, extractValidation(connectorValidation));
- object.put(FRAMEWORK, extractValidation(frameworkValidation));
-
+ object.put(LinkBean.LINK_CONFIG, extractValidation(linkConfigValidation));
return object;
}
@SuppressWarnings("unchecked")
- private JSONObject extractValidation(Validation validation) {
+ private JSONObject extractValidation(ConfigValidator validation) {
JSONObject object = new JSONObject();
object.put(STATUS, validation.getStatus().name());
JSONObject jsonMessages = new JSONObject();
- Map<Validation.FormInput, Validation.Message> messages = validation.getMessages();
+ Map<ConfigValidator.ConfigInput, ConfigValidator.Message> messages = validation.getMessages();
- for(Map.Entry<Validation.FormInput, Validation.Message> entry : messages.entrySet()) {
+ for(Map.Entry<ConfigValidator.ConfigInput, ConfigValidator.Message> entry : messages.entrySet()) {
JSONObject jsonEntry = new JSONObject();
jsonEntry.put(STATUS, entry.getValue().getStatus().name());
jsonEntry.put(MESSAGE, entry.getValue().getMessage());
@@ -113,16 +101,14 @@ public class LinkValidationBean implements JsonBean {
// Optional and accepting NULLs
id = (Long) jsonObject.get(ID);
- connectorValidation = restoreValidation(
- (JSONObject)jsonObject.get(CONNECTOR));
- frameworkValidation = restoreValidation(
- (JSONObject)jsonObject.get(FRAMEWORK));
+ linkConfigValidation = restoreValidation(
+ (JSONObject)jsonObject.get(LinkBean.LINK_CONFIG));
}
- public Validation restoreValidation(JSONObject jsonObject) {
+ public ConfigValidator restoreValidation(JSONObject jsonObject) {
JSONObject jsonMessages = (JSONObject) jsonObject.get(MESSAGES);
- Map<Validation.FormInput, Validation.Message> messages
- = new HashMap<Validation.FormInput, Validation.Message>();
+ Map<ConfigValidator.ConfigInput, ConfigValidator.Message> messages
+ = new HashMap<ConfigValidator.ConfigInput, ConfigValidator.Message>();
for(Object key : jsonMessages.keySet()) {
JSONObject jsonMessage = (JSONObject) jsonMessages.get(key);
@@ -130,14 +116,14 @@ public class LinkValidationBean implements JsonBean {
Status status = Status.valueOf((String) jsonMessage.get(STATUS));
String stringMessage = (String) jsonMessage.get(MESSAGE);
- Validation.Message message
- = new Validation.Message(status, stringMessage);
+ ConfigValidator.Message message
+ = new ConfigValidator.Message(status, stringMessage);
- messages.put(new Validation.FormInput((String)key), message);
+ messages.put(new ConfigValidator.ConfigInput((String)key), message);
}
Status status = Status.valueOf((String) jsonObject.get(STATUS));
- return new Validation(status, messages);
+ return new ConfigValidator(status, messages);
}
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/common/src/main/java/org/apache/sqoop/json/ThrowableBean.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/json/ThrowableBean.java b/common/src/main/java/org/apache/sqoop/json/ThrowableBean.java
index fc63ed4..cd26020 100644
--- a/common/src/main/java/org/apache/sqoop/json/ThrowableBean.java
+++ b/common/src/main/java/org/apache/sqoop/json/ThrowableBean.java
@@ -26,7 +26,7 @@ import java.util.LinkedList;
import java.util.List;
/**
- * Transfer throwable instance.
+ * Transfer throwable instance as a throwable bean.
*/
public class ThrowableBean implements JsonBean {
http://git-wip-us.apache.org/repos/asf/sqoop/blob/f63c080d/common/src/main/java/org/apache/sqoop/json/ValidationResultBean.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/json/ValidationResultBean.java b/common/src/main/java/org/apache/sqoop/json/ValidationResultBean.java
index 89bc8db..4b3fc37 100644
--- a/common/src/main/java/org/apache/sqoop/json/ValidationResultBean.java
+++ b/common/src/main/java/org/apache/sqoop/json/ValidationResultBean.java
@@ -19,7 +19,7 @@ package org.apache.sqoop.json;
import org.apache.sqoop.validation.Message;
import org.apache.sqoop.validation.Status;
-import org.apache.sqoop.validation.ValidationResult;
+import org.apache.sqoop.validation.ConfigValidationResult;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
@@ -38,18 +38,18 @@ public class ValidationResultBean implements JsonBean {
private static final String STATUS = "STATUS";
private static final String TEXT = "TEXT";
- private ValidationResult[] results;
+ private ConfigValidationResult[] results;
private Long id;
public ValidationResultBean() {
// Empty, for restore
}
- public ValidationResultBean(ValidationResult ... results) {
+ public ValidationResultBean(ConfigValidationResult ... results) {
this.results = results;
}
- public ValidationResult[] getValidationResults() {
+ public ConfigValidationResult[] getValidationResults() {
return results;
}
@@ -65,7 +65,7 @@ public class ValidationResultBean implements JsonBean {
public JSONObject extract(boolean skipSensitive) {
JSONArray array = new JSONArray();
- for(ValidationResult result : results) {
+ for(ConfigValidationResult result : results) {
JSONObject output = extractValidationResult(result);
array.add(output);
}
@@ -78,7 +78,7 @@ public class ValidationResultBean implements JsonBean {
return object;
}
- private JSONObject extractValidationResult(ValidationResult result) {
+ private JSONObject extractValidationResult(ConfigValidationResult result) {
JSONObject ret = new JSONObject();
for(Map.Entry<String, List<Message>> entry : result.getMessages().entrySet()) {
@@ -110,7 +110,7 @@ public class ValidationResultBean implements JsonBean {
@Override
public void restore(JSONObject jsonObject) {
JSONArray array = (JSONArray) jsonObject.get(ROOT);
- results = new ValidationResult[array.size()];
+ results = new ConfigValidationResult[array.size()];
int i = 0;
for(Object item : array) {
@@ -122,8 +122,8 @@ public class ValidationResultBean implements JsonBean {
}
}
- private ValidationResult restoreValidationResult(JSONObject item) {
- ValidationResult result = new ValidationResult();
+ private ConfigValidationResult restoreValidationResult(JSONObject item) {
+ ConfigValidationResult result = new ConfigValidationResult();
Set<Map.Entry<String, JSONArray>> entrySet = item.entrySet();
for(Map.Entry<String, JSONArray> entry : entrySet) {