From 5435cd336517d80d4b7d4a8c0bc878bbc1b7c23a Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Fri, 25 Jan 2013 13:52:32 +1100 Subject: [PATCH] 385306 added getURI method --- .../jetty/proxy/BalancerServletTest.java | 2 +- .../java/org/eclipse/jetty/server/Server.java | 51 ++++++++++ .../jetty/server/handler/HandlerWrapper.java | 17 ---- .../jetty/server/ConnectorCloseTestBase.java | 11 ++- .../jetty/server/ConnectorTimeoutTest.java | 39 ++++---- .../jetty/server/HttpServerTestBase.java | 92 +++++++++---------- .../jetty/server/HttpServerTestFixture.java | 4 +- .../ssl/SelectChannelServerSslTest.java | 4 +- .../servlets/GzipWithPipeliningTest.java | 10 +- 9 files changed, 132 insertions(+), 98 deletions(-) diff --git a/jetty-proxy/src/test/java/org/eclipse/jetty/proxy/BalancerServletTest.java b/jetty-proxy/src/test/java/org/eclipse/jetty/proxy/BalancerServletTest.java index 47dbe714fb7..6c3cc5c558e 100644 --- a/jetty-proxy/src/test/java/org/eclipse/jetty/proxy/BalancerServletTest.java +++ b/jetty-proxy/src/test/java/org/eclipse/jetty/proxy/BalancerServletTest.java @@ -109,7 +109,7 @@ public class BalancerServletTest private int getServerPort(Server server) { - return ((NetworkConnector)server.getConnectors()[0]).getLocalPort(); + return server.getURI().getPort(); } protected byte[] sendRequestToBalancer(String path) throws Exception diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/Server.java b/jetty-server/src/main/java/org/eclipse/jetty/server/Server.java index 05b31fd2443..3295be868e8 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/Server.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/Server.java @@ -19,7 +19,11 @@ package org.eclipse.jetty.server; import java.io.IOException; +import java.net.Inet4Address; +import java.net.InetAddress; import java.net.InetSocketAddress; +import java.net.URI; +import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -35,14 +39,18 @@ import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.xml.validation.Schema; import org.eclipse.jetty.http.HttpField; import org.eclipse.jetty.http.HttpFields; import org.eclipse.jetty.http.HttpGenerator; import org.eclipse.jetty.http.HttpHeader; import org.eclipse.jetty.http.HttpMethod; +import org.eclipse.jetty.http.HttpScheme; import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.http.HttpURI; +import org.eclipse.jetty.http.HttpVersion; +import org.eclipse.jetty.server.handler.ContextHandler; import org.eclipse.jetty.server.handler.HandlerWrapper; import org.eclipse.jetty.util.Attributes; import org.eclipse.jetty.util.AttributesMap; @@ -580,6 +588,49 @@ public class Server extends HandlerWrapper implements Attributes _attributes.setAttribute(name, attribute); } + /* ------------------------------------------------------------ */ + /** + * @return The URI of the first {@link NetworkConnector} and first {@link ContextHandler}, or null + */ + public URI getURI() + { + NetworkConnector connector=null; + for (Connector c: _connectors) + { + if (c instanceof NetworkConnector) + { + connector=(NetworkConnector)c; + break; + } + } + + if (connector==null) + return null; + + ContextHandler context = getChildHandlerByClass(ContextHandler.class); + + try + { + String scheme=connector.getDefaultConnectionFactory().getProtocol().startsWith("SSL-")?"https":"http"; + + String host=connector.getHost(); + if (context!=null && context.getVirtualHosts()!=null && context.getVirtualHosts().length>0) + host=context.getVirtualHosts()[0]; + if (host==null) + host=InetAddress.getLocalHost().getHostAddress(); + + String path=context==null?null:context.getContextPath(); + if (path==null) + path="/"; + return new URI(scheme,null,host,connector.getLocalPort(),path,null,null); + } + catch(Exception e) + { + LOG.warn(e); + return null; + } + } + /* ------------------------------------------------------------ */ @Override public String toString() diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/HandlerWrapper.java b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/HandlerWrapper.java index db7168d73e6..fca767f41ec 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/HandlerWrapper.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/HandlerWrapper.java @@ -123,23 +123,6 @@ public class HandlerWrapper extends AbstractHandlerContainer expandHandler(_handler,list,byClass); } - /* ------------------------------------------------------------ */ - public H getNestedHandlerByClass(Class byclass) - { - HandlerWrapper h=this; - while (h!=null) - { - if (byclass.isInstance(h)) - return (H)h; - Handler w = h.getHandler(); - if (w instanceof HandlerWrapper) - h=(HandlerWrapper)w; - else break; - } - return null; - - } - /* ------------------------------------------------------------ */ @Override public void destroy() diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/ConnectorCloseTestBase.java b/jetty-server/src/test/java/org/eclipse/jetty/server/ConnectorCloseTestBase.java index 107ab81461c..cb6681ea2fa 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/ConnectorCloseTestBase.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/ConnectorCloseTestBase.java @@ -25,6 +25,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.Socket; +import java.net.URI; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -59,7 +60,8 @@ public abstract class ConnectorCloseTestBase extends HttpServerTestFixture configureServer(new HelloWorldHandler()); - Socket client = newSocket(HOST,_connector.getLocalPort()); + URI uri = _server.getURI(); + Socket client = newSocket(uri.getHost(),uri.getPort()); try { OutputStream os = client.getOutputStream(); @@ -101,7 +103,7 @@ public abstract class ConnectorCloseTestBase extends HttpServerTestFixture String request = "GET /data?writes=1&block=16&id="+pipeline+" HTTP/1.1\r\n"+ - "host: "+HOST+":"+_connector.getLocalPort()+"\r\n"+ + "host: "+uri.getHost()+":"+uri.getPort()+"\r\n"+ "user-agent: testharness/1.0 (blah foo/bar)\r\n"+ "accept-encoding: nothing\r\n"+ "cookie: aaa=1234567890\r\n"+ @@ -135,7 +137,8 @@ public abstract class ConnectorCloseTestBase extends HttpServerTestFixture { configureServer(new EchoHandler()); - Socket client = newSocket(HOST,_connector.getLocalPort()); + URI uri = _server.getURI(); + Socket client = newSocket(uri.getHost(),uri.getPort()); try { OutputStream os = client.getOutputStream(); @@ -148,7 +151,7 @@ public abstract class ConnectorCloseTestBase extends HttpServerTestFixture os.write(( "POST /echo?charset=utf-8 HTTP/1.1\r\n"+ - "host: "+HOST+":"+_connector.getLocalPort()+"\r\n"+ + "host: "+uri.getHost()+":"+uri.getPort()+"\r\n"+ "content-type: text/plain; charset=utf-8\r\n"+ "content-length: "+bytes.length+"\r\n"+ "\r\n" diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/ConnectorTimeoutTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/ConnectorTimeoutTest.java index 8d01199e660..685e02c1096 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/ConnectorTimeoutTest.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/ConnectorTimeoutTest.java @@ -60,7 +60,8 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture public void testMaxIdleWithRequest10() throws Exception { configureServer(new HelloWorldHandler()); - Socket client=newSocket(HOST,_connector.getLocalPort()); + + Socket client=newSocket(_serverURI.getHost(),_serverURI.getPort()); client.setSoTimeout(10000); assertFalse(client.isClosed()); @@ -70,7 +71,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture os.write(( "GET / HTTP/1.0\r\n"+ - "host: "+HOST+":"+_connector.getLocalPort()+"\r\n"+ + "host: "+_serverURI.getHost()+":"+_serverURI.getPort()+"\r\n"+ "connection: keep-alive\r\n"+ "\r\n").getBytes("utf-8")); os.flush(); @@ -89,7 +90,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture public void testMaxIdleWithRequest11() throws Exception { configureServer(new EchoHandler()); - Socket client=newSocket(HOST,_connector.getLocalPort()); + Socket client=newSocket(_serverURI.getHost(),_serverURI.getPort()); client.setSoTimeout(10000); assertFalse(client.isClosed()); @@ -101,7 +102,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture byte[] contentB=content.getBytes("utf-8"); os.write(( "POST /echo HTTP/1.1\r\n"+ - "host: "+HOST+":"+_connector.getLocalPort()+"\r\n"+ + "host: "+_serverURI.getHost()+":"+_serverURI.getPort()+"\r\n"+ "content-type: text/plain; charset=utf-8\r\n"+ "content-length: "+contentB.length+"\r\n"+ "\r\n").getBytes("utf-8")); @@ -140,7 +141,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture } }); - Socket client=newSocket(HOST,_connector.getLocalPort()); + Socket client=newSocket(_serverURI.getHost(),_serverURI.getPort()); client.setSoTimeout(10000); assertFalse(client.isClosed()); @@ -150,7 +151,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture os.write(( "GET / HTTP/1.0\r\n"+ - "host: "+HOST+":"+_connector.getLocalPort()+"\r\n"+ + "host: "+_serverURI.getHost()+":"+_serverURI.getPort()+"\r\n"+ "connection: close\r\n"+ "\r\n").getBytes("utf-8")); os.flush(); @@ -177,7 +178,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture { os.write(( "GET / HTTP/1.0\r\n"+ - "host: "+HOST+":"+_connector.getLocalPort()+"\r\n"+ + "host: "+_serverURI.getHost()+":"+_serverURI.getPort()+"\r\n"+ "connection: keep-alive\r\n"+ "\r\n").getBytes("utf-8")); os.flush(); @@ -214,7 +215,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture } }); - Socket client=newSocket(HOST,_connector.getLocalPort()); + Socket client=newSocket(_serverURI.getHost(),_serverURI.getPort()); client.setSoTimeout(10000); assertFalse(client.isClosed()); @@ -224,7 +225,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture os.write(( "GET / HTTP/1.0\r\n"+ - "host: "+HOST+":"+_connector.getLocalPort()+"\r\n"+ + "host: "+_serverURI.getHost()+":"+_serverURI.getPort()+"\r\n"+ "connection: close\r\n"+ "\r\n").getBytes("utf-8")); os.flush(); @@ -290,7 +291,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture } }); - Socket client=newSocket(HOST,_connector.getLocalPort()); + Socket client=newSocket(_serverURI.getHost(),_serverURI.getPort()); client.setSoTimeout(10000); assertFalse(client.isClosed()); @@ -302,7 +303,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture byte[] contentB=content.getBytes("utf-8"); os.write(( "POST /echo HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "content-type: text/plain; charset=utf-8\r\n" + "content-length: " + contentB.length + "\r\n" + "connection: close\r\n" + @@ -329,7 +330,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture { os.write(( "GET / HTTP/1.0\r\n"+ - "host: "+HOST+":"+_connector.getLocalPort()+"\r\n"+ + "host: "+_serverURI.getHost()+":"+_serverURI.getPort()+"\r\n"+ "connection: keep-alive\r\n"+ "\r\n").getBytes("utf-8")); os.flush(); @@ -349,7 +350,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture public void testMaxIdleNoRequest() throws Exception { configureServer(new EchoHandler()); - Socket client=newSocket(HOST,_connector.getLocalPort()); + Socket client=newSocket(_serverURI.getHost(),_serverURI.getPort()); client.setSoTimeout(10000); InputStream is=client.getInputStream(); assertFalse(client.isClosed()); @@ -377,7 +378,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture public void testMaxIdleWithSlowRequest() throws Exception { configureServer(new EchoHandler()); - Socket client=newSocket(HOST,_connector.getLocalPort()); + Socket client=newSocket(_serverURI.getHost(),_serverURI.getPort()); client.setSoTimeout(10000); assertFalse(client.isClosed()); @@ -389,7 +390,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture byte[] contentB=content.getBytes("utf-8"); os.write(( "GET / HTTP/1.0\r\n"+ - "host: "+HOST+":"+_connector.getLocalPort()+"\r\n"+ + "host: "+_serverURI.getHost()+":"+_serverURI.getPort()+"\r\n"+ "connection: keep-alive\r\n"+ "Content-Length: "+(contentB.length*20)+"\r\n"+ "Content-Type: text/plain\r\n"+ @@ -417,7 +418,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture public void testMaxIdleWithSlowResponse() throws Exception { configureServer(new SlowResponseHandler()); - Socket client=newSocket(HOST,_connector.getLocalPort()); + Socket client=newSocket(_serverURI.getHost(),_serverURI.getPort()); client.setSoTimeout(10000); assertFalse(client.isClosed()); @@ -427,7 +428,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture os.write(( "GET / HTTP/1.0\r\n"+ - "host: "+HOST+":"+_connector.getLocalPort()+"\r\n"+ + "host: "+_serverURI.getHost()+":"+_serverURI.getPort()+"\r\n"+ "connection: keep-alive\r\n"+ "Connection: close\r\n"+ "\r\n").getBytes("utf-8")); @@ -446,7 +447,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture public void testMaxIdleWithWait() throws Exception { configureServer(new WaitHandler()); - Socket client=newSocket(HOST,_connector.getLocalPort()); + Socket client=newSocket(_serverURI.getHost(),_serverURI.getPort()); client.setSoTimeout(10000); assertFalse(client.isClosed()); @@ -456,7 +457,7 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture os.write(( "GET / HTTP/1.0\r\n"+ - "host: "+HOST+":"+_connector.getLocalPort()+"\r\n"+ + "host: "+_serverURI.getHost()+":"+_serverURI.getPort()+"\r\n"+ "connection: keep-alive\r\n"+ "Connection: close\r\n"+ "\r\n").getBytes("utf-8")); diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java index d4b3e6064c2..19f364ca6e2 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java @@ -118,7 +118,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture { configureServer(new HelloWorldHandler()); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { ((StdErrLog)Log.getLogger(HttpConnection.class)).setHideStacks(true); ((StdErrLog)Log.getLogger(HttpConnection.class)).info("expect request is too large, then ISE extra data ..."); @@ -149,7 +149,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture { configureServer(new HelloWorldHandler()); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { ((StdErrLog)Log.getLogger(HttpConnection.class)).setHideStacks(true); ((StdErrLog)Log.getLogger(HttpConnection.class)).info("expect URI is too large, then ISE extra data ..."); @@ -192,7 +192,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture StringBuffer request = new StringBuffer("GET / HTTP/1.0\r\n"); request.append("Host: localhost\r\n\r\n"); - Socket client = newSocket(HOST, _connector.getLocalPort()); + Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort()); OutputStream os = client.getOutputStream(); try @@ -246,7 +246,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture request.append("Content-length: 6\n\n"); request.append("foo"); - Socket client = newSocket(HOST, _connector.getLocalPort()); + Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort()); OutputStream os = client.getOutputStream(); os.write(request.toString().getBytes()); @@ -269,7 +269,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture configureServer(new HelloWorldHandler()); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { ((StdErrLog)Log.getLogger(HttpConnection.class)).setHideStacks(true); ((StdErrLog)Log.getLogger(HttpConnection.class)).info("expect header is too large, then ISE extra data ..."); @@ -317,7 +317,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture { configureServer(new HelloWorldHandler()); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); @@ -337,7 +337,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture { configureServer(new EchoHandler()); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); @@ -367,7 +367,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture { configureServer(new EchoHandler()); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); @@ -396,7 +396,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture { configureServer(new HelloWorldHandler()); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); @@ -426,7 +426,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture byte[] bytes = REQUEST2.getBytes(); for (int i = 0; i < LOOPS; i++) { - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); @@ -474,7 +474,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture // Sort the list Arrays.sort(points); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); @@ -505,7 +505,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture // Sort the list Arrays.sort(points); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); @@ -537,7 +537,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture String test = encoding[e] + "x" + b + "x" + w + "x" + c; try { - URL url = new URL(_scheme + "://" + HOST + ":" + _connector.getLocalPort() + "/?writes=" + w + "&block=" + b + (e == 0 ? "" : ("&encoding=" + encoding[e])) + (c == 0 ? "&chars=true" : "")); + URL url = new URL(_scheme + "://" + _serverURI.getHost() + ":" + _serverURI.getPort() + "/?writes=" + w + "&block=" + b + (e == 0 ? "" : ("&encoding=" + encoding[e])) + (c == 0 ? "&chars=true" : "")); InputStream in = (InputStream)url.getContent(); String response = IO.toString(in, e == 0 ? null : encoding[e]); @@ -562,14 +562,14 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture configureServer(new DataHandler()); long start = System.currentTimeMillis(); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); InputStream is = client.getInputStream(); os.write(( "GET /data?writes=1024&block=256 HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "connection: close\r\n" + "content-type: unknown\r\n" + "content-length: 30\r\n" + @@ -624,14 +624,14 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture long start = System.currentTimeMillis(); int total = 0; - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); InputStream is = client.getInputStream(); os.write(( "GET /data?writes=256&block=1024 HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "connection: close\r\n" + "content-type: unknown\r\n" + "\r\n" @@ -665,7 +665,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture { configureServer(new BigBlockHandler()); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { client.setSoTimeout(20000); @@ -674,10 +674,10 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture os.write(( "GET /r1 HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "\r\n" + "GET /r2 HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "connection: close\r\n" + "\r\n" ).getBytes()); @@ -797,7 +797,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture //for (int pipeline=1;pipeline<32;pipeline++) for (int pipeline = 1; pipeline < 32; pipeline++) { - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { client.setSoTimeout(5000); OutputStream os = client.getOutputStream(); @@ -807,7 +807,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture for (int i = 1; i < pipeline; i++) request += "GET /data?writes=1&block=16&id=" + i + " HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "user-agent: testharness/1.0 (blah foo/bar)\r\n" + "accept-encoding: nothing\r\n" + "cookie: aaa=1234567890\r\n" + @@ -815,7 +815,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture request += "GET /data?writes=1&block=16 HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "user-agent: testharness/1.0 (blah foo/bar)\r\n" + "accept-encoding: nothing\r\n" + "cookie: aaa=bbbbbb\r\n" + @@ -844,14 +844,14 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture public void testRecycledWriters() throws Exception { configureServer(new EchoHandler()); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); InputStream is = client.getInputStream(); os.write(( "POST /echo?charset=utf-8 HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "content-type: text/plain; charset=utf-8\r\n" + "content-length: 10\r\n" + "\r\n").getBytes("iso-8859-1")); @@ -862,7 +862,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture os.write(( "POST /echo?charset=utf-8 HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "content-type: text/plain; charset=utf-8\r\n" + "content-length: 10\r\n" + "\r\n" @@ -876,7 +876,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture byte[] contentB = content.getBytes("utf-8"); os.write(( "POST /echo?charset=utf-16 HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "content-type: text/plain; charset=utf-8\r\n" + "content-length: " + contentB.length + "\r\n" + "connection: close\r\n" + @@ -928,28 +928,28 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture { configureServer(new EchoHandler(false)); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); InputStream is = client.getInputStream(); os.write(( "POST /R1 HTTP/1.1\015\012" + - "Host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "Host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "content-type: text/plain; charset=utf-8\r\n" + "content-length: 10\r\n" + "\015\012" + "123456789\n" + "HEAD /R1 HTTP/1.1\015\012" + - "Host: " + HOST + ":" + _connector.getLocalPort() + "\015\012" + + "Host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\015\012" + "content-type: text/plain; charset=utf-8\r\n" + "content-length: 10\r\n" + "\015\012" + "123456789\n" + "POST /R1 HTTP/1.1\015\012" + - "Host: " + HOST + ":" + _connector.getLocalPort() + "\015\012" + + "Host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\015\012" + "content-type: text/plain; charset=utf-8\r\n" + "content-length: 10\r\n" + "Connection: close\015\012" + @@ -976,14 +976,14 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture { configureServer(new EchoHandler()); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); InputStream is = client.getInputStream(); os.write(( "POST /echo?charset=utf-8 HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "content-type: text/plain; charset=utf-8\r\n" + "content-length: 10\r\n" + "\r\n").getBytes("iso-8859-1")); @@ -994,7 +994,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture os.write(( "POST /echo?charset=utf-8 HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "content-type: text/plain; charset=utf-8\r\n" + "content-length: 10\r\n" + "\r\n" @@ -1008,7 +1008,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture byte[] contentB = content.getBytes("utf-16"); os.write(( "POST /echo?charset=utf-8 HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "content-type: text/plain; charset=utf-16\r\n" + "content-length: " + contentB.length + "\r\n" + "connection: close\r\n" + @@ -1030,7 +1030,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture { configureServer(new HelloWorldHandler()); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); InputStream is = client.getInputStream(); @@ -1038,7 +1038,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture // Send a request with chunked input and expect 100 os.write(( "GET / HTTP/1.1\r\n" + - "Host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "Host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "Transfer-Encoding: chunked\r\n" + "Expect: 100-continue\r\n" + "Connection: Keep-Alive\r\n" + @@ -1066,7 +1066,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture CommittedErrorHandler handler = new CommittedErrorHandler(); configureServer(handler); - Socket client = newSocket(HOST, _connector.getLocalPort()); + Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort()); try { ((StdErrLog)Log.getLogger(HttpChannel.class)).setHideStacks(true); @@ -1076,7 +1076,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture // Send a request os.write(("GET / HTTP/1.1\r\n" + - "Host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "Host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "\r\n" ).getBytes()); os.flush(); @@ -1206,14 +1206,14 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture AvailableHandler ah = new AvailableHandler(); configureServer(ah); - try (Socket client = newSocket(HOST, _connector.getLocalPort())) + try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os = client.getOutputStream(); InputStream is = client.getInputStream(); os.write(( "GET /data?writes=1024&block=256 HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "connection: close\r\n" + "content-type: unknown\r\n" + "content-length: 30\r\n" + @@ -1251,7 +1251,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture { configureServer(new HelloWorldHandler()); - try (Socket client1 = newSocket(HOST, _connector.getLocalPort()); Socket client2 = newSocket(HOST, _connector.getLocalPort())) + try (Socket client1 = newSocket(_serverURI.getHost(), _serverURI.getPort()); Socket client2 = newSocket(_serverURI.getHost(), _serverURI.getPort())) { OutputStream os1 = client1.getOutputStream(); OutputStream os2 = client2.getOutputStream(); @@ -1345,7 +1345,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture new String(fill); final byte[] bytes = content.getBytes(); - Socket client = newSocket(HOST, _connector.getLocalPort()); + Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort()); final OutputStream out = client.getOutputStream(); new Thread() @@ -1405,7 +1405,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture configureServer(suspend); long start = System.currentTimeMillis(); - Socket client = newSocket(HOST, _connector.getLocalPort()); + Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort()); client.setSoTimeout(5000); try { @@ -1414,7 +1414,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture // write an initial request os.write(( "GET / HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "\r\n" ).getBytes()); os.flush(); @@ -1424,7 +1424,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture // write an pipelined request os.write(( "GET / HTTP/1.1\r\n" + - "host: " + HOST + ":" + _connector.getLocalPort() + "\r\n" + + "host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "connection: close\r\n" + "\r\n" ).getBytes()); diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestFixture.java b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestFixture.java index beac793b568..de5fbb73132 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestFixture.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestFixture.java @@ -25,6 +25,7 @@ import java.io.OutputStream; import java.io.PrintWriter; import java.io.Writer; import java.net.Socket; +import java.net.URI; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLSession; @@ -42,9 +43,9 @@ public class HttpServerTestFixture { // Useful constants protected static final long PAUSE=10L; protected static final int LOOPS=50; - protected static final String HOST="localhost"; protected Server _server; + protected URI _serverURI; protected NetworkConnector _connector; protected String _scheme="http"; @@ -69,6 +70,7 @@ public class HttpServerTestFixture _server.addConnector(_connector); _server.setHandler(new HandlerWrapper()); _server.start(); + _serverURI = _server.getURI(); } @After diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SelectChannelServerSslTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SelectChannelServerSslTest.java index 12cd596efeb..d886bfbf2d1 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SelectChannelServerSslTest.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SelectChannelServerSslTest.java @@ -24,6 +24,7 @@ import java.io.FileInputStream; import java.io.OutputStream; import java.net.Socket; import java.net.SocketException; +import java.net.URI; import java.security.KeyStore; import java.util.Arrays; @@ -153,7 +154,8 @@ public class SelectChannelServerSslTest extends HttpServerTestBase // Sort the list Arrays.sort(points); - Socket client=newSocket(HOST,_connector.getLocalPort()); + URI uri=_server.getURI(); + Socket client=newSocket(uri.getHost(),uri.getPort()); try { OutputStream os=client.getOutputStream(); diff --git a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/GzipWithPipeliningTest.java b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/GzipWithPipeliningTest.java index 7fff162498f..8ffbda13ff1 100644 --- a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/GzipWithPipeliningTest.java +++ b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/GzipWithPipeliningTest.java @@ -120,15 +120,7 @@ public class GzipWithPipeliningTest // Start Server server.start(); - NetworkConnector conn = (NetworkConnector)server.getConnectors()[0]; - String host = conn.getHost(); - if (host == null) - { - host = "localhost"; - } - int port = conn.getLocalPort(); - serverUri = new URI(String.format("ws://%s:%d/",host,port)); - // System.out.printf("Server URI: %s%n",serverUri); + serverUri = server.getURI(); } @After