diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-06-21 18:03:19 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-06-21 18:09:02 +0200 |
commit | 8b20cc61954953cb72ede6742ce15e78db3cc8c9 (patch) | |
tree | 70a87eadc516667990739d951a8908c0bcde177f /container-core | |
parent | aa956ba9d7c682603d06d5ab24335be79a0d9f9b (diff) |
Reuse HTTP client and executor. Replace 'ClientProxy' with listen port.
Diffstat (limited to 'container-core')
-rw-r--r-- | container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java index 9817b9f57e2..4c45319daf6 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java @@ -12,11 +12,11 @@ import com.yahoo.jdisc.http.server.jetty.testutils.ConnectorFactoryRegistryModul import com.yahoo.jdisc.test.ServerProviderConformanceTest; import org.apache.http.HttpResponse; import org.apache.http.HttpVersion; -import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import org.hamcrest.Description; @@ -26,6 +26,7 @@ import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; +import java.io.IOException; import java.net.URI; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; @@ -33,6 +34,7 @@ import java.util.Collections; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; @@ -63,6 +65,8 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest { @SuppressWarnings("LoggerInitializedWithForeignClass") private static Logger httpRequestDispatchLogger = Logger.getLogger(HttpRequestDispatch.class.getName()); private static Level httpRequestDispatchLoggerOriginalLevel; + private static CloseableHttpClient httpClient; + private static ExecutorService executorService; /* * Reduce logging of every stack trace for {@link ServerProviderConformanceTest.ConformanceException} thrown. @@ -72,11 +76,16 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest { public static void reduceExcessiveLogging() { httpRequestDispatchLoggerOriginalLevel = httpRequestDispatchLogger.getLevel(); httpRequestDispatchLogger.setLevel(Level.SEVERE); + httpClient = HttpClientBuilder.create().build(); + executorService = Executors.newSingleThreadExecutor(); } @AfterClass - public static void restoreExcessiveLogging() { + public static void restoreExcessiveLogging() throws IOException, InterruptedException { httpRequestDispatchLogger.setLevel(httpRequestDispatchLoggerOriginalLevel); + httpClient.close(); + executorService.shutdownNow(); + executorService.awaitTermination(30, TimeUnit.SECONDS); } @AfterClass @@ -741,15 +750,12 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest { } } - private class TestRunner implements Adapter<JettyHttpServer, ClientProxy, Future<HttpResponse>> { + private class TestRunner implements Adapter<JettyHttpServer, Integer, Future<HttpResponse>> { private Matcher<ResponseGist> expectedResponse = null; - private final ExecutorService executorService = Executors.newSingleThreadExecutor(); void execute() throws Throwable { runTest(this); - - executorService.shutdown(); } TestRunner expect(final Matcher<ResponseGist> matcher) { @@ -784,16 +790,16 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest { } @Override - public ClientProxy newClient(final JettyHttpServer server) throws Throwable { - return new ClientProxy(server.getListenPort()); + public Integer newClient(final JettyHttpServer server) throws Throwable { + return server.getListenPort(); } @Override public Future<HttpResponse> executeRequest( - final ClientProxy client, + final Integer listenPort, final boolean withRequestContent) throws Throwable { final HttpUriRequest request; - final URI requestUri = URI.create("http://localhost:" + client.listenPort + "/status.html"); + final URI requestUri = URI.create("http://localhost:" + listenPort + "/status.html"); if (!withRequestContent) { HttpGet httpGet = new HttpGet(requestUri); httpGet.setProtocolVersion(HttpVersion.HTTP_1_1); @@ -804,10 +810,7 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest { post.setProtocolVersion(HttpVersion.HTTP_1_1); request = post; } - log.fine(() -> "executorService:" - + " .isShutDown()=" + executorService.isShutdown() - + " .isTerminated()=" + executorService.isTerminated()); - return executorService.submit(() -> client.delegate.execute(request)); + return executorService.submit(() -> httpClient.execute(request)); } @Override @@ -825,15 +828,4 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest { assertThat(responseGist, expectedResponse); } } - - private static class ClientProxy { - - final HttpClient delegate; - final int listenPort; - - ClientProxy(final int listenPort) { - this.delegate = HttpClientBuilder.create().build(); - this.listenPort = listenPort; - } - } } |