Author: daijy Date: Fri May 14 01:13:14 2010 New Revision: 944073 URL: http://svn.apache.org/viewvc?rev=944073&view=rev Log: PIG-1381: Need a way for Pig to take an alternative property file
Added: hadoop/pig/trunk/conf/pig-default.properties (contents, props changed) - copied, changed from r944068, hadoop/pig/trunk/conf/pig.properties Removed: hadoop/pig/trunk/conf/pig.properties Modified: hadoop/pig/trunk/CHANGES.txt hadoop/pig/trunk/build.xml hadoop/pig/trunk/src/org/apache/pig/impl/util/PropertiesUtil.java hadoop/pig/trunk/test/org/apache/pig/test/TestPigServer.java Modified: hadoop/pig/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=944073&r1=944072&r2=944073&view=diff ============================================================================== --- hadoop/pig/trunk/CHANGES.txt (original) +++ hadoop/pig/trunk/CHANGES.txt Fri May 14 01:13:14 2010 @@ -116,7 +116,7 @@ in the path and does not consider JAVA_H PIG-1352: piggybank UPPER udf throws exception if argument is null -Release 0.7.0 - Unreleased +Release 0.7.0 INCOMPATIBLE CHANGES @@ -166,6 +166,8 @@ manner (rding via pradeepkth) IMPROVEMENTS +PIG-1381: Need a way for Pig to take an alternative property file (daijy) + PIG-1330: Move pruned schema tracking logic from LoadFunc to core code (daijy) PIG-1320: more documentation updates for Pig 0.7.0 (chandec via olgan) Modified: hadoop/pig/trunk/build.xml URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/build.xml?rev=944073&r1=944072&r2=944073&view=diff ============================================================================== --- hadoop/pig/trunk/build.xml (original) +++ hadoop/pig/trunk/build.xml Fri May 14 01:13:14 2010 @@ -643,6 +643,7 @@ <fileset dir="${build.docs}" /> </copy> + <copy todir="${dist.dir}/conf" file="conf/pig-default.properties"/> <copy todir="${dist.dir}/conf" file="conf/pig.properties"/> <copy todir="${dist.dir}/src" includeEmptyDirs="true"> Copied: hadoop/pig/trunk/conf/pig-default.properties (from r944068, hadoop/pig/trunk/conf/pig.properties) URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/conf/pig-default.properties?p2=hadoop/pig/trunk/conf/pig-default.properties&p1=hadoop/pig/trunk/conf/pig.properties&r1=944068&r2=944073&rev=944073&view=diff ============================================================================== --- hadoop/pig/trunk/conf/pig.properties (original) +++ hadoop/pig/trunk/conf/pig-default.properties Fri May 14 01:13:14 2010 @@ -1,39 +1,17 @@ -# Pig configuration file. All values can be overwritten by command line arguments. +# Pig default configuration file. All values can be overwritten by pig.properties and command line arguments. # see bin/pig -help -# log4jconf log4j configuration file -# log4jconf=./conf/log4j.properties - # brief logging (no timestamps) brief=false -# clustername, name of the hadoop jobtracker. If no port is defined port 50020 will be used. -#cluster - #debug level, INFO is default debug=INFO -# a file that contains pig script -#file= - -# load jarfile, colon separated -#jar= - #verbose print all log messages to screen (default to print only INFO and above to screen) verbose=false #exectype local|mapreduce, mapreduce is default exectype=mapreduce -# hod realted properties -#ssh.gateway -#hod.expect.root -#hod.expect.uselatest -#hod.command -#hod.config.dir -#hod.param - -#pig.logfile= - #Do not spill temp files smaller than this size (bytes) pig.spill.size.threshold=5000000 Propchange: hadoop/pig/trunk/conf/pig-default.properties ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Fri May 14 01:13:14 2010 @@ -0,0 +1 @@ +/hadoop/pig/branches/multiquery/conf/pig.properties:741727-770826 Modified: hadoop/pig/trunk/src/org/apache/pig/impl/util/PropertiesUtil.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/impl/util/PropertiesUtil.java?rev=944073&r1=944072&r2=944073&view=diff ============================================================================== --- hadoop/pig/trunk/src/org/apache/pig/impl/util/PropertiesUtil.java (original) +++ hadoop/pig/trunk/src/org/apache/pig/impl/util/PropertiesUtil.java Fri May 14 01:13:14 2010 @@ -31,16 +31,33 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class PropertiesUtil { + private static final String DEFAULT_PROPERTIES_FILE = "/pig-default.properties"; private static final String PROPERTIES_FILE = "/pig.properties"; private final static Log log = LogFactory.getLog(PropertiesUtil.class); public static void loadPropertiesFromFile(Properties properties) { InputStream inputStream = null; BufferedInputStream bis = null; + Class<PropertiesUtil> clazz = PropertiesUtil.class; try { - Class<PropertiesUtil> clazz = PropertiesUtil.class; inputStream = clazz - .getResourceAsStream(PROPERTIES_FILE); + .getResourceAsStream(DEFAULT_PROPERTIES_FILE); + if (inputStream == null) { + String msg = "no pig-default.properties configuration file available in the classpath"; + log.debug(msg); + } else { + properties.load(inputStream); + } + } catch (Exception e) { + log.error("unable to parse pig-default.properties :", e); + } finally { + if (inputStream != null) try {inputStream.close();} catch (Exception e) {} + } + + try { + inputStream = null; + inputStream = clazz + .getResourceAsStream(PROPERTIES_FILE); if (inputStream == null) { String msg = "no pig.properties configuration file available in the classpath"; log.debug(msg); Modified: hadoop/pig/trunk/test/org/apache/pig/test/TestPigServer.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/test/org/apache/pig/test/TestPigServer.java?rev=944073&r1=944072&r2=944073&view=diff ============================================================================== --- hadoop/pig/trunk/test/org/apache/pig/test/TestPigServer.java (original) +++ hadoop/pig/trunk/test/org/apache/pig/test/TestPigServer.java Fri May 14 01:13:14 2010 @@ -25,11 +25,13 @@ import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintStream; +import java.io.PrintWriter; import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; @@ -38,6 +40,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Properties; import junit.framework.TestCase; @@ -45,6 +48,7 @@ import org.apache.pig.ExecType; import org.apache.pig.PigServer; import org.apache.pig.data.Tuple; import org.apache.pig.impl.logicalLayer.schema.Schema; +import org.apache.pig.impl.util.PropertiesUtil; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; @@ -617,4 +621,30 @@ public class TestPigServer extends TestC index++; } } + + @Test + public void testPigProperties() throws Throwable { + File defaultPropertyFile = new File("pig-default.properties"); + File propertyFile = new File("pig.properties"); + + Properties properties = PropertiesUtil.loadPropertiesFromFile(); + assertTrue(properties.getProperty("test123")==null); + + PrintWriter out = new PrintWriter(new FileWriter(defaultPropertyFile)); + out.println("test123=defaultproperties"); + out.close(); + + properties = PropertiesUtil.loadPropertiesFromFile(); + assertTrue(properties.getProperty("test123").equals("defaultproperties")); + + out = new PrintWriter(new FileWriter(propertyFile)); + out.println("test123=properties"); + out.close(); + + properties = PropertiesUtil.loadPropertiesFromFile(); + assertTrue(properties.getProperty("test123").equals("properties")); + + defaultPropertyFile.delete(); + propertyFile.delete(); + } }