Author: daijy
Date: Thu Oct 27 20:24:40 2016
New Revision: 1766882

URL: http://svn.apache.org/viewvc?rev=1766882&view=rev
Log:
PIG-4934: SET command does not work well with deprecated settings

Added:
    pig/trunk/test/org/apache/pig/test/TestConfigurationUtil.java
Modified:
    pig/trunk/CHANGES.txt
    
pig/trunk/src/org/apache/pig/backend/hadoop/datastorage/ConfigurationUtil.java
    
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java

Modified: pig/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1766882&r1=1766881&r2=1766882&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Thu Oct 27 20:24:40 2016
@@ -50,6 +50,8 @@ OPTIMIZATIONS
  
 BUG FIXES
 
+PIG-4934: SET command does not work well with deprecated settings (szita via 
daijy)
+
 PIG-4798: big integer literals fail to parse (szita via daijy)
 
 PIG-5045: CSVExcelStorage Load: A Quoted Field with a Single Escaped Quote 
"""" Becomes "" This should become " instead

Modified: 
pig/trunk/src/org/apache/pig/backend/hadoop/datastorage/ConfigurationUtil.java
URL: 
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/backend/hadoop/datastorage/ConfigurationUtil.java?rev=1766882&r1=1766881&r2=1766882&view=diff
==============================================================================
--- 
pig/trunk/src/org/apache/pig/backend/hadoop/datastorage/ConfigurationUtil.java 
(original)
+++ 
pig/trunk/src/org/apache/pig/backend/hadoop/datastorage/ConfigurationUtil.java 
Thu Oct 27 20:24:40 2016
@@ -106,4 +106,14 @@ public class ConfigurationUtil {
             }
         }
     }
+
+    /**
+     * Returns Properties containing alternative names of given property and 
same values - can be used to solve deprecations
+     * @return
+     */
+    public static Properties expandForAlternativeNames(String name, String 
value){
+        final Configuration config = new Configuration(false);
+        config.set(name,value);
+        return ConfigurationUtil.toProperties(config);
+    }
 }

Modified: 
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java
URL: 
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java?rev=1766882&r1=1766881&r2=1766882&view=diff
==============================================================================
--- 
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java
 (original)
+++ 
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java
 Thu Oct 27 20:24:40 2016
@@ -351,7 +351,11 @@ public abstract class HExecutionEngine i
     @Override
     public void setProperty(String property, String value) {
         Properties properties = pigContext.getProperties();
-        properties.put(property, value);
+        if (Configuration.isDeprecated(property)) {
+            
properties.putAll(ConfigurationUtil.expandForAlternativeNames(property, value));
+        } else {
+            properties.put(property, value);
+        }
     }
 
     @Override

Added: pig/trunk/test/org/apache/pig/test/TestConfigurationUtil.java
URL: 
http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestConfigurationUtil.java?rev=1766882&view=auto
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestConfigurationUtil.java (added)
+++ pig/trunk/test/org/apache/pig/test/TestConfigurationUtil.java Thu Oct 27 
20:24:40 2016
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.pig.test;
+
+
+import java.util.Properties;
+
+import org.apache.pig.backend.hadoop.datastorage.ConfigurationUtil;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class TestConfigurationUtil {
+
+    @Test
+    public void testExpandForAlternativeNames() {
+        Properties properties = null;
+        properties = 
ConfigurationUtil.expandForAlternativeNames("fs.df.interval", "500");
+        Assert.assertEquals(1,properties.size());
+        Assert.assertEquals("500",properties.get("fs.df.interval"));
+
+        properties = 
ConfigurationUtil.expandForAlternativeNames("dfs.df.interval", "600");
+        Assert.assertEquals(2,properties.size());
+        Assert.assertEquals("600",properties.get("fs.df.interval"));
+        Assert.assertEquals("600",properties.get("dfs.df.interval"));
+
+        properties = ConfigurationUtil.expandForAlternativeNames("", "");
+        Assert.assertEquals(1,properties.size());
+        Assert.assertEquals("",properties.get(""));
+
+    }
+}


Reply via email to