Author: bobby Date: Wed May 2 18:29:09 2012 New Revision: 1333147 URL: http://svn.apache.org/viewvc?rev=1333147&view=rev Log: svn merge -c 1333144 FIXES: MAPREDUCE-4210. Expose listener address for WebApp (Daryn Sharp via bobby)
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApp.java hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/TestWebApp.java Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt?rev=1333147&r1=1333146&r2=1333147&view=diff ============================================================================== --- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt (original) +++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt Wed May 2 18:29:09 2012 @@ -35,6 +35,8 @@ Release 0.23.3 - UNRELEASED MAPREDUCE-4079. Allow MR AppMaster to limit ephemeral port range. (bobby via tgraves) + MAPREDUCE-4210. Expose listener address for WebApp (Daryn Sharp via bobby) + OPTIMIZATIONS BUG FIXES Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApp.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApp.java?rev=1333147&r1=1333146&r2=1333147&view=diff ============================================================================== --- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApp.java (original) +++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApp.java Wed May 2 18:29:09 2012 @@ -20,6 +20,7 @@ package org.apache.hadoop.yarn.webapp; import static com.google.common.base.Preconditions.checkNotNull; +import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -75,6 +76,14 @@ public abstract class WebApp extends Ser @Provides public HttpServer httpServer() { return httpServer; } + /** + * Get the address the http server is bound to + * @return InetSocketAddress + */ + public InetSocketAddress getListenerAddress() { + return checkNotNull(httpServer, "httpServer").getListenerAddress(); + } + public int port() { return checkNotNull(httpServer, "httpServer").getPort(); } Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/TestWebApp.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/TestWebApp.java?rev=1333147&r1=1333146&r2=1333147&view=diff ============================================================================== --- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/TestWebApp.java (original) +++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/TestWebApp.java Wed May 2 18:29:09 2012 @@ -149,6 +149,18 @@ public class TestWebApp { app.stop(); } + @Test public void testCreateWithPort() { + // see if the ephemeral port is updated + WebApp app = WebApps.$for(this).at(0).start(); + int port = app.getListenerAddress().getPort(); + assertTrue(port > 0); + app.stop(); + // try to reuse the port + app = WebApps.$for(this).at(port).start(); + assertEquals(port, app.getListenerAddress().getPort()); + app.stop(); + } + @Test public void testServePaths() { WebApp app = WebApps.$for("test", this).start(); assertEquals("/test", app.getRedirectPath());