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 bo...@apache.org on 2012/04/17 16:23:12 UTC
svn commit: r1327110 - in
/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common:
CHANGES.txt src/main/java/org/apache/hadoop/conf/Configuration.java
src/test/java/org/apache/hadoop/conf/TestConfiguration.java
Author: bobby
Date: Tue Apr 17 14:23:11 2012
New Revision: 1327110
URL: http://svn.apache.org/viewvc?rev=1327110&view=rev
Log:
svn merge -c 1327108 from trunk. FIXES: HADOOP-8286. Simplify getting a socket address from conf (Daryn Sharp via bobby)
Modified:
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1327110&r1=1327109&r2=1327110&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt Tue Apr 17 14:23:11 2012
@@ -33,6 +33,9 @@ Release 0.23.3 - UNRELEASED
HADOOP-8283. Allow tests to control token service value (Daryn Sharp via
bobby)
+ HADOOP-8286. Simplify getting a socket address from conf (Daryn Sharp via
+ bobby)
+
Release 0.23.2 - UNRELEASED
NEW FEATURES
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java?rev=1327110&r1=1327109&r2=1327110&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java Tue Apr 17 14:23:11 2012
@@ -30,6 +30,7 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
+import java.net.InetSocketAddress;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
@@ -68,6 +69,7 @@ import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.CommonConfigurationKeys;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.io.WritableUtils;
+import org.apache.hadoop.net.NetUtils;
import org.apache.hadoop.util.ReflectionUtils;
import org.apache.hadoop.util.StringUtils;
import org.codehaus.jackson.JsonFactory;
@@ -1139,6 +1141,20 @@ public class Configuration implements It
}
/**
+ * Get the socket address for <code>name</code> property as a
+ * <code>InetSocketAddress</code>.
+ * @param name property name.
+ * @param defaultAddress the default value
+ * @param defaultPort the default port
+ * @return InetSocketAddress
+ */
+ public InetSocketAddress getSocketAddr(
+ String name, String defaultAddress, int defaultPort) {
+ final String address = get(name, defaultAddress);
+ return NetUtils.createSocketAddr(address, defaultPort, name);
+ }
+
+ /**
* Load a class by name.
*
* @param name the class name.
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java?rev=1327110&r1=1327109&r2=1327110&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java Tue Apr 17 14:23:11 2012
@@ -23,6 +23,7 @@ import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringWriter;
+import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -35,6 +36,7 @@ import static org.junit.Assert.assertArr
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.net.NetUtils;
import org.codehaus.jackson.map.ObjectMapper;
public class TestConfiguration extends TestCase {
@@ -604,6 +606,38 @@ public class TestConfiguration extends T
conf.getPattern("test.pattern3", defaultPattern).pattern());
}
+ public void testSocketAddress() throws IOException {
+ Configuration conf = new Configuration();
+ final String defaultAddr = "host:1";
+ final int defaultPort = 2;
+ InetSocketAddress addr = null;
+
+ addr = conf.getSocketAddr("myAddress", defaultAddr, defaultPort);
+ assertEquals(defaultAddr, NetUtils.getHostPortString(addr));
+
+ conf.set("myAddress", "host2");
+ addr = conf.getSocketAddr("myAddress", defaultAddr, defaultPort);
+ assertEquals("host2:"+defaultPort, NetUtils.getHostPortString(addr));
+
+ conf.set("myAddress", "host2:3");
+ addr = conf.getSocketAddr("myAddress", defaultAddr, defaultPort);
+ assertEquals("host2:3", NetUtils.getHostPortString(addr));
+
+ boolean threwException = false;
+ conf.set("myAddress", "bad:-port");
+ try {
+ addr = conf.getSocketAddr("myAddress", defaultAddr, defaultPort);
+ } catch (IllegalArgumentException iae) {
+ threwException = true;
+ assertEquals("Does not contain a valid host:port authority: " +
+ "bad:-port (configuration property 'myAddress')",
+ iae.getMessage());
+
+ } finally {
+ assertTrue(threwException);
+ }
+ }
+
public void testReload() throws IOException {
out=new BufferedWriter(new FileWriter(CONFIG));
startConfig();