HADOOP-7993. Hadoop ignores old-style config options for enabling compressed output. (Anupam Seth via mahadev) - Merging r1236506 from trunk.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1236507 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1f235fbb04
commit
ef144fd7a0
|
@ -167,6 +167,9 @@ Release 0.23.1 - Unreleased
|
|||
HADOOP-7997. SequenceFile.createWriter(...createParent...) no
|
||||
longer works on existing file. (Gregory Chanan via eli)
|
||||
|
||||
HADOOP-7993. Hadoop ignores old-style config options for enabling compressed
|
||||
output. (Anupam Seth via mahadev)
|
||||
|
||||
Release 0.23.0 - 2011-11-01
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -345,7 +345,17 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
|
|||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
private void handleDeprecation() {
|
||||
LOG.debug("Handling deprecation for all properties in config...");
|
||||
Set<Object> keys = new HashSet<Object>();
|
||||
keys.addAll(getProps().keySet());
|
||||
for (Object item: keys) {
|
||||
LOG.debug("Handling deprecation for " + (String)item);
|
||||
handleDeprecation((String)item);
|
||||
}
|
||||
}
|
||||
|
||||
static{
|
||||
//print deprecation warning if hadoop-site.xml is found in classpath
|
||||
ClassLoader cL = Thread.currentThread().getContextClassLoader();
|
||||
|
@ -1665,7 +1675,7 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
|
|||
Element conf = doc.createElement("configuration");
|
||||
doc.appendChild(conf);
|
||||
conf.appendChild(doc.createTextNode("\n"));
|
||||
getProps(); // ensure properties is set
|
||||
handleDeprecation(); //ensure properties is set and deprecation is handled
|
||||
for (Enumeration e = properties.keys(); e.hasMoreElements();) {
|
||||
String name = (String)e.nextElement();
|
||||
Object object = properties.get(name);
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
|
||||
package org.apache.hadoop.conf;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
|
||||
import org.apache.hadoop.conf.Configuration;
|
||||
import org.apache.hadoop.fs.CommonConfigurationKeys;
|
||||
|
||||
|
@ -32,4 +34,22 @@ public class TestDeprecatedKeys extends TestCase {
|
|||
String scriptFile = conf.get(CommonConfigurationKeys.NET_TOPOLOGY_SCRIPT_FILE_NAME_KEY);
|
||||
assertTrue(scriptFile.equals("xyz")) ;
|
||||
}
|
||||
|
||||
//Tests reading / writing a conf file with deprecation after setting
|
||||
public void testReadWriteWithDeprecatedKeys() throws Exception {
|
||||
Configuration conf = new Configuration();
|
||||
conf.setBoolean("old.config.yet.to.be.deprecated", true);
|
||||
Configuration.addDeprecation("old.config.yet.to.be.deprecated",
|
||||
new String[]{"new.conf.to.replace.deprecated.conf"});
|
||||
ByteArrayOutputStream out=new ByteArrayOutputStream();
|
||||
String fileContents;
|
||||
try {
|
||||
conf.writeXml(out);
|
||||
fileContents = out.toString();
|
||||
} finally {
|
||||
out.close();
|
||||
}
|
||||
assertTrue(fileContents.contains("old.config.yet.to.be.deprecated"));
|
||||
assertTrue(fileContents.contains("new.conf.to.replace.deprecated.conf"));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue