MAPREDUCE-4210. Expose listener address for WebApp (Daryn Sharp via bobby)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1333144 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Robert Joseph Evans 2012-05-02 18:27:17 +00:00
parent 13a5af0907
commit f8ed2ad524
3 changed files with 23 additions and 0 deletions

View File

@ -310,6 +310,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());