svn merge -c 1333144 FIXES: MAPREDUCE-4210. Expose listener address for WebApp (Daryn Sharp via bobby)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1333145 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Robert Joseph Evans 2012-05-02 18:28:13 +00:00
parent 653bae728f
commit 611dffafc7
3 changed files with 23 additions and 0 deletions

View File

@ -201,6 +201,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

View File

@ -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 ServletModule {
@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();
}

View File

@ -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());