Ok, start of a patch for this attached.
I wasn't sure if the "conf." prefix is required, so patch has this as a comment.
Attached, doh.

C

Index: src/org/apache/pig/tools/grunt/GruntParser.java
===================================================================
--- src/org/apache/pig/tools/grunt/GruntParser.java     (revision 628031)
+++ src/org/apache/pig/tools/grunt/GruntParser.java     (working copy)
@@ -143,13 +143,19 @@
             //mPigServer.setJobName(unquote(value));
             mPigServer.setJobName(value);
         }
-        else
+        else /* if (key.startsWith("conf.")) */
         {
+                       /* key = key.replaceAll("^conf.",""); */
+            mPigServer.getPigContext().setConfProperty(key, value);
+        }
+               /*
+        else {
             // other key-value pairs can go there
             // for now just throw exception since we don't support
             // anything else
             throw new ParseException("Unrecognized set key: " + key);
-        }
+               }*/
+
     }
     
     protected void processStore(String alias, String file, String func) throws 
IOException {
Index: src/org/apache/pig/impl/PigContext.java
===================================================================
--- src/org/apache/pig/impl/PigContext.java     (revision 628031)
+++ src/org/apache/pig/impl/PigContext.java     (working copy)
@@ -295,6 +295,14 @@
         return conf;
     }
 
+    public String getConfProperty(String key, String defaultValue) {
+        return conf.getProperty(key, defaultValue);
+    }
+
+    public void setConfProperty(String key, String value) {
+        conf.setProperty(key, value);
+    }
+
     /**
      * Defines an alias for the given function spec. This
      * is useful for functions that require arguments to the 
Index: src/org/apache/pig/Main.java
===================================================================
--- src/org/apache/pig/Main.java        (revision 628031)
+++ src/org/apache/pig/Main.java        (working copy)
@@ -141,9 +141,9 @@
             case 'o': {
                    String gateway = System.getProperty("ssh.gateway");
                    if (gateway == null || gateway.length() == 0) {
-                       System.setProperty("hod.server", "local");
+                       pigContext.setConfProperty("hod.server", "local");
                    } else {
-                       System.setProperty("hod.server", 
System.getProperty("ssh.gateway"));
+                       pigContent.setConfProperty("hod.server", 
System.getProperty("ssh.gateway"));
                    }
                 break;
                       }
Index: src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java
===================================================================
--- src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java     
(revision 628031)
+++ src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java     
(working copy)
@@ -109,7 +109,7 @@
         //First set the ssh socket factory
         setSSHFactory();
         
-        String hodServer = System.getProperty("hod.server");
+        String hodServer = pigContext.getConfProperty("hod.server");
     
         if (hodServer != null && hodServer.length() > 0) {
             String hdfsAndMapred[] = doHod(hodServer);
@@ -117,7 +117,7 @@
             setJobtrackerLocation(hdfsAndMapred[1]);
         }
         else {
-            String cluster = System.getProperty("cluster");
+            String cluster = pigContext.getConfProperty("cluster");
             if (cluster != null && cluster.length() > 0) {
                 if(cluster.indexOf(':') < 0) {
                     cluster = cluster + ":50020";
@@ -125,7 +125,7 @@
                 setJobtrackerLocation(cluster);
             }
 
-            String nameNode = System.getProperty("namenode");
+            String nameNode = pigContext.getConfProperty("namenode");
             if (nameNode!=null && nameNode.length() > 0) {
                 if(nameNode.indexOf(':') < 0) {
                     nameNode = nameNode + ":8020";
@@ -293,7 +293,7 @@
     }
     
     private void setSSHFactory(){
-        String g = System.getProperty("ssh.gateway");
+        String g = pigContext.getConfProperty("ssh.gateway");
         if (g == null || g.length() == 0) return;
         try {
             Class clazz = 
Class.forName("org.apache.pig.shock.SSHSocketImplFactory");
@@ -324,25 +324,25 @@
             // Make the kryptonite released version the default if nothing
             // else is specified.
             StringBuilder cmd = new StringBuilder();
-            cmd.append(System.getProperty("hod.expect.root"));
+            cmd.append(pigContext.getConfProperty("hod.expect.root"));
             cmd.append('/');
             cmd.append("libexec/pig/");
-            cmd.append(System.getProperty("hod.expect.uselatest"));
+            cmd.append(pigContext.getConfProperty("hod.expect.uselatest"));
             cmd.append('/');
-            cmd.append(System.getProperty("hod.command"));
+            cmd.append(pigContext.getConfProperty("hod.command"));
 
-            String cluster = System.getProperty("yinst.cluster");
+            String cluster = pigContext.getConfProperty("yinst.cluster");
            
             // TODO This is a Yahoo specific holdover, need to remove
             // this.
             if (cluster != null && cluster.length() > 0 && 
!cluster.startsWith("kryptonite")) {
                 cmd.append(" --config=");
-                cmd.append(System.getProperty("hod.config.dir"));
+                cmd.append(pigContext.getConfProperty("hod.config.dir"));
                 cmd.append('/');
                 cmd.append(cluster);
             }
 
-            cmd.append(" " + System.getProperty("hod.param", ""));
+            cmd.append(" " + pigContext.getConfProperty("hod.param", ""));
 
             if (server.equals("local")) {
                 p = Runtime.getRuntime().exec(cmd.toString());

Reply via email to