You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ol...@apache.org on 2010/02/17 20:21:55 UTC

svn commit: r911150 - in /hadoop/pig/trunk: CHANGES.txt src/org/apache/pig/PigServer.java test/org/apache/pig/test/TestPigContext.java

Author: olga
Date: Wed Feb 17 19:21:55 2010
New Revision: 911150

URL: http://svn.apache.org/viewvc?rev=911150&view=rev
Log:
PIG-1226: suuport for additional jar files (thejas via olgan)

Modified:
    hadoop/pig/trunk/CHANGES.txt
    hadoop/pig/trunk/src/org/apache/pig/PigServer.java
    hadoop/pig/trunk/test/org/apache/pig/test/TestPigContext.java

Modified: hadoop/pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=911150&r1=911149&r2=911150&view=diff
==============================================================================
--- hadoop/pig/trunk/CHANGES.txt (original)
+++ hadoop/pig/trunk/CHANGES.txt Wed Feb 17 19:21:55 2010
@@ -24,6 +24,8 @@
 
 IMPROVEMENTS
 
+PIG-1226: suuport for additional jar files (thejas via olgan)
+
 PIG-1230: Streaming input in POJoinPackage should use nonspillable bag to
 collect tuples (ashutoshc) 
 

Modified: hadoop/pig/trunk/src/org/apache/pig/PigServer.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/PigServer.java?rev=911150&r1=911149&r2=911150&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/PigServer.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/PigServer.java Wed Feb 17 19:21:55 2010
@@ -167,8 +167,32 @@
         if (connect) {
             pigContext.connect();
         }
+        
+        addJarsFromProperties();
     }
     
+    private void addJarsFromProperties() throws ExecException {
+        //add jars from properties to extraJars
+        String jar_str = pigContext.getProperties().getProperty("pig.additional.jars");
+        if(jar_str != null){
+            for(String jar : jar_str.split(":")){
+                try {
+                    registerJar(jar);
+                } catch (IOException e) {
+                    int errCode = 4010;
+                    String msg = 
+                        "Failed to register jar :" + jar + ". Caught exception.";
+                    throw new ExecException(
+                            msg,
+                            errCode,
+                            PigException.USER_ENVIRONMENT,
+                            e
+                    );
+                }
+            }
+        }
+    }
+
     public PigContext getPigContext(){
         return pigContext;
     }

Modified: hadoop/pig/trunk/test/org/apache/pig/test/TestPigContext.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/test/org/apache/pig/test/TestPigContext.java?rev=911150&r1=911149&r2=911150&view=diff
==============================================================================
--- hadoop/pig/trunk/test/org/apache/pig/test/TestPigContext.java (original)
+++ hadoop/pig/trunk/test/org/apache/pig/test/TestPigContext.java Wed Feb 17 19:21:55 2010
@@ -151,12 +151,16 @@
                 
         // generate jar file
         String jarName = "TestUDFJar.jar";
+        String jarFile = tmpDir.getAbsolutePath() + FILE_SEPARATOR + jarName;
         status = Util.executeShellCommand("jar -cf " + tmpDir.getAbsolutePath() + FILE_SEPARATOR + jarName + 
                               " -C " + tmpDir.getAbsolutePath() + " " + "com");
         assertTrue(status==0);
+        Properties properties = cluster.getProperties();
+        PigContext pigContext = new PigContext(ExecType.MAPREDUCE, properties);
         
-        PigServer pig = new PigServer(pigContext);
-        pig.registerJar(tmpDir.getAbsolutePath() + FILE_SEPARATOR + jarName);
+        //register jar using properties
+        pigContext.getProperties().setProperty("pig.additional.jars", jarFile);
+        PigServer pigServer = new PigServer(pigContext);
 
         PigContext.initializeImportList("com.xxx.udf1:com.xxx.udf2.");
         ArrayList<String> importList = PigContext.getPackageImportList();
@@ -182,7 +186,6 @@
         ps.close();
         
         FileLocalizer.deleteTempFiles();
-        PigServer pigServer = new PigServer(ExecType.MAPREDUCE, cluster.getProperties());
         pigServer.registerQuery("A = LOAD '" + Util.generateURI(tmpFile.toString()) + "' using TestUDF2() AS (num:chararray);");
         pigServer.registerQuery("B = foreach A generate TestUDF1(num);");
         Iterator<Tuple> iter = pigServer.openIterator("B");