svn merge -c 1352689 from trunk. Backport HADOOP-8524 to branch-2. (harsh)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1352693 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
22d23a4d0f
commit
13bbb35577
|
@ -44,6 +44,9 @@ Release 2.0.1-alpha - UNRELEASED
|
||||||
|
|
||||||
HADOOP-8368. Use CMake rather than autotools to build native code (ccccabe via tucu)
|
HADOOP-8368. Use CMake rather than autotools to build native code (ccccabe via tucu)
|
||||||
|
|
||||||
|
HADOOP-8524. Allow users to get source of a Configuration
|
||||||
|
parameter (harsh)
|
||||||
|
|
||||||
BUG FIXES
|
BUG FIXES
|
||||||
|
|
||||||
HADOOP-8372. NetUtils.normalizeHostName() incorrectly handles hostname
|
HADOOP-8372. NetUtils.normalizeHostName() incorrectly handles hostname
|
||||||
|
|
|
@ -1034,6 +1034,38 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the absolute path to the resource object (file, URL, etc.), for a given
|
||||||
|
* property name.
|
||||||
|
*
|
||||||
|
* @param name - The property name to get the source of.
|
||||||
|
* @return null - If the property or its source wasn't found or if the property
|
||||||
|
* was defined in code (i.e. in a Configuration instance, not from a physical
|
||||||
|
* resource). Otherwise, returns the absolute path of the resource that loaded
|
||||||
|
* the property name, as a String.
|
||||||
|
*/
|
||||||
|
@InterfaceStability.Unstable
|
||||||
|
public synchronized String getPropertySource(String name) {
|
||||||
|
if (properties == null) {
|
||||||
|
// If properties is null, it means a resource was newly added
|
||||||
|
// but the props were cleared so as to load it upon future
|
||||||
|
// requests. So lets force a load by asking a properties list.
|
||||||
|
getProps();
|
||||||
|
}
|
||||||
|
// Return a null right away if our properties still
|
||||||
|
// haven't loaded or the resource mapping isn't defined
|
||||||
|
if (properties == null || updatingResource == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
String source = updatingResource.get(name);
|
||||||
|
if (source == null || source.equals(UNKNOWN_RESOURCE)) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return source;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A class that represents a set of positive integer ranges. It parses
|
* A class that represents a set of positive integer ranges. It parses
|
||||||
* strings of the form: "2-3,5,7-" where ranges are separated by comma and
|
* strings of the form: "2-3,5,7-" where ranges are separated by comma and
|
||||||
|
|
|
@ -640,6 +640,26 @@ public class TestConfiguration extends TestCase {
|
||||||
conf.getPattern("test.pattern3", defaultPattern).pattern());
|
conf.getPattern("test.pattern3", defaultPattern).pattern());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testPropertySource() throws IOException {
|
||||||
|
out = new BufferedWriter(new FileWriter(CONFIG));
|
||||||
|
startConfig();
|
||||||
|
appendProperty("test.foo", "bar");
|
||||||
|
endConfig();
|
||||||
|
Path fileResource = new Path(CONFIG);
|
||||||
|
conf.addResource(fileResource);
|
||||||
|
conf.set("fs.defaultFS", "value");
|
||||||
|
assertEquals(
|
||||||
|
"Resource string returned for a file-loaded property" +
|
||||||
|
" must be a proper absolute path",
|
||||||
|
fileResource,
|
||||||
|
new Path(conf.getPropertySource("test.foo")));
|
||||||
|
assertEquals("Resource string returned for a set() property must be null",
|
||||||
|
null,
|
||||||
|
conf.getPropertySource("fs.defaultFS"));
|
||||||
|
assertEquals("Resource string returned for an unset property must be null",
|
||||||
|
null, conf.getPropertySource("fs.defaultFoo"));
|
||||||
|
}
|
||||||
|
|
||||||
public void testSocketAddress() throws IOException {
|
public void testSocketAddress() throws IOException {
|
||||||
Configuration conf = new Configuration();
|
Configuration conf = new Configuration();
|
||||||
final String defaultAddr = "host:1";
|
final String defaultAddr = "host:1";
|
||||||
|
|
Loading…
Reference in New Issue