HADOOP-7542. Change Configuration XML format to 1.1 to support for serializing additional characters Contributed by Christopher Egner.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1174562 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1eb7008753
commit
36d7ab3489
|
@ -26,6 +26,8 @@ Trunk (unreleased changes)
|
||||||
HADOOP-7621. alfredo config should be in a file not readable by users
|
HADOOP-7621. alfredo config should be in a file not readable by users
|
||||||
(Alejandro Abdelnur via atm)
|
(Alejandro Abdelnur via atm)
|
||||||
|
|
||||||
|
HADOOP-7542. Change Configuration XML format to 1.1 to support for serializing additional characters (Christopher Egner via harsh)
|
||||||
|
|
||||||
Release 0.23.0 - Unreleased
|
Release 0.23.0 - Unreleased
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -1632,6 +1632,10 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
|
||||||
try {
|
try {
|
||||||
doc =
|
doc =
|
||||||
DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
|
DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
|
||||||
|
|
||||||
|
// Allow a broader set of control characters to appear in job confs.
|
||||||
|
// cf https://issues.apache.org/jira/browse/MAPREDUCE-109
|
||||||
|
doc.setXmlVersion( "1.1" );
|
||||||
} catch (ParserConfigurationException pe) {
|
} catch (ParserConfigurationException pe) {
|
||||||
throw new IOException(pe);
|
throw new IOException(pe);
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class TestConfiguration extends TestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startConfig() throws IOException{
|
private void startConfig() throws IOException{
|
||||||
out.write("<?xml version=\"1.0\"?>\n");
|
out.write("<?xml version=\"1.1\"?>\n");
|
||||||
out.write("<configuration>\n");
|
out.write("<configuration>\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -221,6 +221,18 @@ public class TestConfiguration extends TestCase {
|
||||||
assertEquals("this contains a comment", conf.get("my.comment"));
|
assertEquals("this contains a comment", conf.get("my.comment"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testControlAInValue() throws IOException {
|
||||||
|
out = new BufferedWriter(new FileWriter(CONFIG));
|
||||||
|
startConfig();
|
||||||
|
appendProperty("my.char", "");
|
||||||
|
appendProperty("my.string", "somestring");
|
||||||
|
endConfig();
|
||||||
|
Path fileResource = new Path(CONFIG);
|
||||||
|
conf.addResource(fileResource);
|
||||||
|
assertEquals("\u0001", conf.get("my.char"));
|
||||||
|
assertEquals("some\u0001string", conf.get("my.string"));
|
||||||
|
}
|
||||||
|
|
||||||
public void testTrim() throws IOException {
|
public void testTrim() throws IOException {
|
||||||
out=new BufferedWriter(new FileWriter(CONFIG));
|
out=new BufferedWriter(new FileWriter(CONFIG));
|
||||||
startConfig();
|
startConfig();
|
||||||
|
@ -298,7 +310,7 @@ public class TestConfiguration extends TestCase {
|
||||||
conf.writeXml(baos);
|
conf.writeXml(baos);
|
||||||
String result = baos.toString();
|
String result = baos.toString();
|
||||||
assertTrue("Result has proper header", result.startsWith(
|
assertTrue("Result has proper header", result.startsWith(
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><configuration>"));
|
"<?xml version=\"1.1\" encoding=\"UTF-8\" standalone=\"no\"?><configuration>"));
|
||||||
assertTrue("Result has proper footer", result.endsWith("</configuration>"));
|
assertTrue("Result has proper footer", result.endsWith("</configuration>"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue