Author: tucu
Date: Thu Sep 6 18:17:04 2012
New Revision: 1381704
URL: http://svn.apache.org/viewvc?rev=1381704&view=rev
Log:
HADOOP-8749. HADOOP-8031 changed the way in which relative xincludes are handled in Configuration.
(ahmed via tucu)
Modified:
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1381704&r1=1381703&r2=1381704&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt Thu Sep
6 18:17:04 2012
@@ -260,6 +260,9 @@ Release 2.0.1-alpha - UNRELEASED
HADOOP-8766. FileContextMainOperationsBaseTest should randomize the root
dir. (Colin Patrick McCabe via atm)
+ HADOOP-8749. HADOOP-8031 changed the way in which relative xincludes are handled in
+ Configuration. (ahmed via tucu)
+
BREAKDOWN OF HDFS-3042 SUBTASKS
HADOOP-8220. ZKFailoverController doesn't handle failure to become active
Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java?rev=1381704&r1=1381703&r2=1381704&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
(original)
+++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
Thu Sep 6 18:17:04 2012
@@ -1833,11 +1833,11 @@ public class Configuration implements It
if (url == null) {
return null;
}
- return parse(builder, url.openStream());
+ return parse(builder, url.openStream(), url.toString());
}
- private Document parse(DocumentBuilder builder, InputStream is)
- throws IOException, SAXException {
+ private Document parse(DocumentBuilder builder, InputStream is,
+ String systemId) throws IOException, SAXException {
if (!quietmode) {
LOG.info("parsing input stream " + is);
}
@@ -1845,7 +1845,8 @@ public class Configuration implements It
return null;
}
try {
- return builder.parse(is);
+ return (systemId == null) ? builder.parse(is) : builder.parse(is,
+ systemId);
} finally {
is.close();
}
@@ -1913,10 +1914,11 @@ public class Configuration implements It
if (!quiet) {
LOG.info("parsing File " + file);
}
- doc = parse(builder, new BufferedInputStream(new FileInputStream(file)));
+ doc = parse(builder, new BufferedInputStream(
+ new FileInputStream(file)), ((Path)resource).toString());
}
} else if (resource instanceof InputStream) {
- doc = parse(builder, (InputStream) resource);
+ doc = parse(builder, (InputStream) resource, null);
returnCachedProperties = true;
} else if (resource instanceof Properties) {
overlay(properties, (Properties)resource);
Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java?rev=1381704&r1=1381703&r2=1381704&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
(original)
+++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
Thu Sep 6 18:17:04 2012
@@ -358,6 +358,36 @@ public class TestConfiguration extends T
tearDown();
}
+ public void testRelativeIncludes() throws Exception {
+ tearDown();
+ String relConfig = new File("./tmp/test-config.xml").getAbsolutePath();
+ String relConfig2 = new File("./tmp/test-config2.xml").getAbsolutePath();
+
+ new File(new File(relConfig).getParent()).mkdirs();
+ out = new BufferedWriter(new FileWriter(relConfig2));
+ startConfig();
+ appendProperty("a", "b");
+ endConfig();
+
+ out = new BufferedWriter(new FileWriter(relConfig));
+ startConfig();
+ // Add the relative path instead of the absolute one.
+ addInclude(new File(relConfig2).getName());
+ appendProperty("c", "d");
+ endConfig();
+
+ // verify that the includes file contains all properties
+ Path fileResource = new Path(relConfig);
+ conf.addResource(fileResource);
+ assertEquals(conf.get("a"), "b");
+ assertEquals(conf.get("c"), "d");
+
+ // Cleanup
+ new File(relConfig).delete();
+ new File(relConfig2).delete();
+ new File(new File(relConfig).getParent()).delete();
+ }
+
BufferedWriter out;
public void testIntegerRanges() {
|