You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by zh...@apache.org on 2015/02/06 22:47:06 UTC
[34/50] [abbrv] hadoop git commit: HADOOP-6964. Allow compact
property description in xml (Kengo Seki via aw)
HADOOP-6964. Allow compact property description in xml (Kengo Seki via aw)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/f9a837ca
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/f9a837ca
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/f9a837ca
Branch: refs/heads/HDFS-EC
Commit: f9a837ca6a6bb9c2d73d7f126881358e81756a7f
Parents: ee9c025
Author: Allen Wittenauer <aw...@apache.org>
Authored: Thu Feb 5 19:09:37 2015 -0800
Committer: Zhe Zhang <zh...@apache.org>
Committed: Fri Feb 6 13:45:51 2015 -0800
----------------------------------------------------------------------
hadoop-common-project/hadoop-common/CHANGES.txt | 3 ++
.../org/apache/hadoop/conf/Configuration.java | 18 ++++++-
.../apache/hadoop/conf/TestConfiguration.java | 55 ++++++++++++++++++++
3 files changed, 75 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/f9a837ca/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt
index aee3a23..b323f32 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -160,6 +160,9 @@ Trunk (Unreleased)
HADOOP-7713. dfs -count -q should label output column (Jonathan Allen
via aw)
+ HADOOP-6964. Allow compact property description in xml (Kengo Seki
+ via aw)
+
BUG FIXES
HADOOP-11473. test-patch says "-1 overall" even when all checks are +1
http://git-wip-us.apache.org/repos/asf/hadoop/blob/f9a837ca/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
index 54ee46d..8f98d0a 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
@@ -90,6 +90,7 @@ import org.apache.hadoop.util.StringInterner;
import org.apache.hadoop.util.StringUtils;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerator;
+import org.w3c.dom.Attr;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -2514,11 +2515,26 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
}
if (!"property".equals(prop.getTagName()))
LOG.warn("bad conf file: element not <property>");
- NodeList fields = prop.getChildNodes();
+
String attr = null;
String value = null;
boolean finalParameter = false;
LinkedList<String> source = new LinkedList<String>();
+
+ Attr propAttr = prop.getAttributeNode("name");
+ if (propAttr != null)
+ attr = StringInterner.weakIntern(propAttr.getValue());
+ propAttr = prop.getAttributeNode("value");
+ if (propAttr != null)
+ value = StringInterner.weakIntern(propAttr.getValue());
+ propAttr = prop.getAttributeNode("final");
+ if (propAttr != null)
+ finalParameter = "true".equals(propAttr.getValue());
+ propAttr = prop.getAttributeNode("source");
+ if (propAttr != null)
+ source.add(StringInterner.weakIntern(propAttr.getValue()));
+
+ NodeList fields = prop.getChildNodes();
for (int j = 0; j < fields.getLength(); j++) {
Node fieldNode = fields.item(j);
if (!(fieldNode instanceof Element))
http://git-wip-us.apache.org/repos/asf/hadoop/blob/f9a837ca/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
index 55bcdc6..7b4fbb5 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
@@ -209,6 +209,31 @@ public class TestConfiguration extends TestCase {
assertNull("my var is not final", conf2.get("my.var"));
}
+ public void testCompactFormat() throws IOException {
+ out=new BufferedWriter(new FileWriter(CONFIG));
+ startConfig();
+ appendCompactFormatProperty("a", "b");
+ appendCompactFormatProperty("c", "d", true);
+ appendCompactFormatProperty("e", "f", false, "g");
+ endConfig();
+ Path fileResource = new Path(CONFIG);
+ Configuration conf = new Configuration(false);
+ conf.addResource(fileResource);
+
+ assertEquals("b", conf.get("a"));
+
+ assertEquals("d", conf.get("c"));
+ Set<String> s = conf.getFinalParameters();
+ assertEquals(1, s.size());
+ assertTrue(s.contains("c"));
+
+ assertEquals("f", conf.get("e"));
+ String[] sources = conf.getPropertySources("e");
+ assertEquals(2, sources.length);
+ assertEquals("g", sources[0]);
+ assertEquals(fileResource.toString(), sources[1]);
+ }
+
public static void assertEq(Object a, Object b) {
System.out.println("assertEq: " + a + ", " + b);
assertEquals(a, b);
@@ -264,6 +289,36 @@ public class TestConfiguration extends TestCase {
out.write("</property>\n");
}
+ void appendCompactFormatProperty(String name, String val) throws IOException {
+ appendCompactFormatProperty(name, val, false);
+ }
+
+ void appendCompactFormatProperty(String name, String val, boolean isFinal)
+ throws IOException {
+ appendCompactFormatProperty(name, val, isFinal, null);
+ }
+
+ void appendCompactFormatProperty(String name, String val, boolean isFinal,
+ String source)
+ throws IOException {
+ out.write("<property ");
+ out.write("name=\"");
+ out.write(name);
+ out.write("\" ");
+ out.write("value=\"");
+ out.write(val);
+ out.write("\" ");
+ if (isFinal) {
+ out.write("final=\"true\" ");
+ }
+ if (source != null) {
+ out.write("source=\"");
+ out.write(source);
+ out.write("\" ");
+ }
+ out.write("/>\n");
+ }
+
public void testOverlay() throws IOException{
out=new BufferedWriter(new FileWriter(CONFIG));
startConfig();