From 202ae0630bf63a529a004a64f485487c9a682c85 Mon Sep 17 00:00:00 2001 From: Bilung Lee Date: Fri, 5 Oct 2012 13:10:37 -0700 Subject: [PATCH] SQOOP-619 Display user persistent id of newly created connection and job objects (Jarek Cecho) --- .../client/shell/CloneConnectionFunction.java | 4 ++-- .../sqoop/client/shell/CloneJobFunction.java | 4 ++-- .../shell/CreateConnectionFunction.java | 3 ++- .../sqoop/client/shell/CreateJobFunction.java | 3 ++- .../org/apache/sqoop/json/ValidationBean.java | 23 +++++++++++++++++++ 5 files changed, 31 insertions(+), 6 deletions(-) diff --git a/client/src/main/java/org/apache/sqoop/client/shell/CloneConnectionFunction.java b/client/src/main/java/org/apache/sqoop/client/shell/CloneConnectionFunction.java index 9716de6e..c5fd9929 100644 --- a/client/src/main/java/org/apache/sqoop/client/shell/CloneConnectionFunction.java +++ b/client/src/main/java/org/apache/sqoop/client/shell/CloneConnectionFunction.java @@ -119,8 +119,8 @@ private void cloneConnection(String connectionId) throws IOException { status = createConnection(connection); } while(!status.canProceed()); - io.out.println("Connection was successfully updated with status " - + status.name()); + io.out.println("Connection was successfully created with validation status " + + status.name() + " and persistent id " + connection.getPersistenceId()); } private Status createConnection(MConnection connection) { diff --git a/client/src/main/java/org/apache/sqoop/client/shell/CloneJobFunction.java b/client/src/main/java/org/apache/sqoop/client/shell/CloneJobFunction.java index 6c579d09..94df945c 100644 --- a/client/src/main/java/org/apache/sqoop/client/shell/CloneJobFunction.java +++ b/client/src/main/java/org/apache/sqoop/client/shell/CloneJobFunction.java @@ -118,8 +118,8 @@ private void cloneJob(String jobId) throws IOException { status = createJob(job); } while(!status.canProceed()); - io.out.println("Job was successfully updated with status " - + status.name()); + io.out.println("Job was successfully created with validation status " + + status.name() + " and persistent id " + job.getPersistenceId()); } private Status createJob(MJob job) { diff --git a/client/src/main/java/org/apache/sqoop/client/shell/CreateConnectionFunction.java b/client/src/main/java/org/apache/sqoop/client/shell/CreateConnectionFunction.java index 904624cf..4e5c916e 100644 --- a/client/src/main/java/org/apache/sqoop/client/shell/CreateConnectionFunction.java +++ b/client/src/main/java/org/apache/sqoop/client/shell/CreateConnectionFunction.java @@ -127,7 +127,8 @@ private void createConnection(String connectorId) throws IOException { } while(!status.canProceed()); io.out.println("New connection was successfully created with validation " - + "status " + status.name()); + + "status " + status.name() + " and persistent id " + + connection.getPersistenceId()); } private FrameworkBean getFrameworkBean() { diff --git a/client/src/main/java/org/apache/sqoop/client/shell/CreateJobFunction.java b/client/src/main/java/org/apache/sqoop/client/shell/CreateJobFunction.java index 1a8b901a..0db93bf6 100644 --- a/client/src/main/java/org/apache/sqoop/client/shell/CreateJobFunction.java +++ b/client/src/main/java/org/apache/sqoop/client/shell/CreateJobFunction.java @@ -153,7 +153,8 @@ private void createJob(String connectionId, String type) throws IOException { } while(!status.canProceed()); io.out.println("New job was successfully created with validation " - + "status " + status.name()); + + "status " + status.name() + " and persistent id " + + job.getPersistenceId()); } diff --git a/common/src/main/java/org/apache/sqoop/json/ValidationBean.java b/common/src/main/java/org/apache/sqoop/json/ValidationBean.java index b56f6ed6..6883a85a 100644 --- a/common/src/main/java/org/apache/sqoop/json/ValidationBean.java +++ b/common/src/main/java/org/apache/sqoop/json/ValidationBean.java @@ -21,6 +21,7 @@ import org.apache.sqoop.model.MForm; import org.apache.sqoop.model.MInput; import org.apache.sqoop.model.MJob; +import org.apache.sqoop.model.MPersistableEntity; import org.apache.sqoop.model.MValidatedElement; import org.apache.sqoop.validation.Status; import org.json.simple.JSONObject; @@ -36,6 +37,7 @@ public class ValidationBean implements JsonBean { private static final String STATUS = "status"; private static final String TYPE = "type"; + private static final String ID = "id"; private static final String CONNECTOR_PART = "connector"; private static final String FRAMEWORK_PART = "framework"; @@ -97,6 +99,17 @@ public JSONObject extract() { object.put(CONNECTOR_PART, extractForms(connectorPart)); object.put(FRAMEWORK_PART, extractForms(frameworkPart)); + // If we do have ID available, let's send it across network + long id = MPersistableEntity.PERSISTANCE_ID_DEFAULT; + if(connection != null) { + id = connection.getPersistenceId(); + } else if(job != null) { + id = job.getPersistenceId(); + } + if( id != MPersistableEntity.PERSISTANCE_ID_DEFAULT) { + object.put(ID, id); + } + return object; } @@ -141,6 +154,16 @@ public void restore(JSONObject jsonObject) { restoreForms(connectorPart, job.getConnectorPart().getForms()); restoreForms(frameworkPart, job.getFrameworkPart().getForms()); } + + // Restore persistent id if available + if(jsonObject.containsKey(ID)) { + long id = (Long)jsonObject.get(ID); + if(connection != null) { + connection.setPersistenceId(id); + } else if(job != null) { + job.setPersistenceId(id); + } + } } private void restoreForms(JSONObject json, List forms) {