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 2012/07/16 22:26:48 UTC

svn commit: r1362238 - in /sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client: core/ClientError.java shell/SetCommand.java shell/SqoopCommand.java

Author: jarcec
Date: Mon Jul 16 20:26:48 2012
New Revision: 1362238

URL: http://svn.apache.org/viewvc?rev=1362238&view=rev
Log:
SQOOP-495. Support for parameter substitution in the client shell.

(Vasanth kumar RJ via Jarek Jarcec Cecho)

Modified:
    sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/core/ClientError.java
    sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/shell/SetCommand.java
    sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/shell/SqoopCommand.java

Modified: sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/core/ClientError.java
URL: http://svn.apache.org/viewvc/sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/core/ClientError.java?rev=1362238&r1=1362237&r2=1362238&view=diff
==============================================================================
--- sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/core/ClientError.java (original)
+++ sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/core/ClientError.java Mon Jul 16 20:26:48 2012
@@ -31,7 +31,10 @@ public enum ClientError implements Error
   CLIENT_0002("The specified function is not recognized"),
 
   /** An error has occurred when parsing options. */
-  CLIENT_0003("An error has occurred when parsing options");
+  CLIENT_0003("An error has occurred when parsing options"),
+
+  /** Unable to resolve the variables. */
+  CLIENT_0004("Unable to resolve the variables");
 
   private final String message;
 

Modified: sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/shell/SetCommand.java
URL: http://svn.apache.org/viewvc/sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/shell/SetCommand.java?rev=1362238&r1=1362237&r2=1362238&view=diff
==============================================================================
--- sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/shell/SetCommand.java (original)
+++ sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/shell/SetCommand.java Mon Jul 16 20:26:48 2012
@@ -41,7 +41,7 @@ public class SetCommand extends SqoopCom
       io.out.println();
       return null;
     }
-
+    resolveVariables(args);
     String func = (String)args.get(0);
     if (func.equals("server")) {
       if (serverFunction == null) {

Modified: sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/shell/SqoopCommand.java
URL: http://svn.apache.org/viewvc/sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/shell/SqoopCommand.java?rev=1362238&r1=1362237&r2=1362238&view=diff
==============================================================================
--- sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/shell/SqoopCommand.java (original)
+++ sqoop/branches/sqoop2/client/src/main/java/org/apache/sqoop/client/shell/SqoopCommand.java Mon Jul 16 20:26:48 2012
@@ -17,9 +17,18 @@
  */
 package org.apache.sqoop.client.shell;
 
+import groovy.lang.GroovyShell;
+import groovy.lang.MissingPropertyException;
+import groovy.lang.Script;
+
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
 
+import org.apache.sqoop.client.core.ClientError;
+import org.apache.sqoop.common.SqoopException;
 import org.codehaus.groovy.tools.shell.ComplexCommandSupport;
 import org.codehaus.groovy.tools.shell.Shell;
 
@@ -112,4 +121,20 @@ public abstract class SqoopCommand exten
 
     return help;
   }
+
+  @SuppressWarnings({ "rawtypes", "unchecked" })
+  protected void resolveVariables(List arg) {
+    List temp = new ArrayList();
+    GroovyShell gs = new GroovyShell(getBinding());
+    for(Object obj:arg) {
+      Script scr = gs.parse("\""+(String)obj+"\"");
+      try {
+        temp.add(scr.run().toString());
+      }
+      catch(MissingPropertyException e) {
+        throw new SqoopException(ClientError.CLIENT_0004, e.getMessage(), e);
+      }
+    }
+    Collections.copy(arg, temp);
+  }
 }
\ No newline at end of file