Search in sources :

Example 86 with QueuedThreadPool

use of org.eclipse.jetty.util.thread.QueuedThreadPool in project jetty.project by eclipse.

the class HttpClientCustomProxyTest method prepare.

public void prepare(Handler handler) throws Exception {
    server = new Server();
    connector = new ServerConnector(server, new CAFEBABEServerConnectionFactory(new HttpConnectionFactory()));
    server.addConnector(connector);
    server.setHandler(handler);
    server.start();
    QueuedThreadPool executor = new QueuedThreadPool();
    executor.setName(executor.getName() + "-client");
    client = new HttpClient();
    client.setExecutor(executor);
    client.start();
}
Also used : ServerConnector(org.eclipse.jetty.server.ServerConnector) Server(org.eclipse.jetty.server.Server) HttpConnectionFactory(org.eclipse.jetty.server.HttpConnectionFactory) QueuedThreadPool(org.eclipse.jetty.util.thread.QueuedThreadPool)

Example 87 with QueuedThreadPool

use of org.eclipse.jetty.util.thread.QueuedThreadPool in project jetty.project by eclipse.

the class HttpClientFailureTest method startServer.

private void startServer(Handler handler) throws Exception {
    QueuedThreadPool serverThreads = new QueuedThreadPool();
    serverThreads.setName("server");
    server = new Server(serverThreads);
    connector = new ServerConnector(server);
    server.addConnector(connector);
    server.setHandler(handler);
    server.start();
}
Also used : ServerConnector(org.eclipse.jetty.server.ServerConnector) Server(org.eclipse.jetty.server.Server) QueuedThreadPool(org.eclipse.jetty.util.thread.QueuedThreadPool)

Example 88 with QueuedThreadPool

use of org.eclipse.jetty.util.thread.QueuedThreadPool in project jetty.project by eclipse.

the class HttpClientUploadDuringServerShutdown method testUploadDuringServerShutdown.

@Test
public void testUploadDuringServerShutdown() throws Exception {
    final AtomicReference<EndPoint> endPointRef = new AtomicReference<>();
    final CountDownLatch serverLatch = new CountDownLatch(1);
    QueuedThreadPool serverThreads = new QueuedThreadPool();
    serverThreads.setName("server");
    Server server = new Server(serverThreads);
    ServerConnector connector = new ServerConnector(server);
    server.addConnector(connector);
    server.setHandler(new AbstractHandler() {

        @Override
        public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
            baseRequest.setHandled(true);
            endPointRef.set(baseRequest.getHttpChannel().getEndPoint());
            serverLatch.countDown();
        }
    });
    server.start();
    final AtomicBoolean afterSetup = new AtomicBoolean();
    final CountDownLatch sendLatch = new CountDownLatch(1);
    final CountDownLatch beginLatch = new CountDownLatch(1);
    final CountDownLatch associateLatch = new CountDownLatch(1);
    QueuedThreadPool clientThreads = new QueuedThreadPool();
    clientThreads.setName("client");
    HttpClient client = new HttpClient(new HttpClientTransportOverHTTP(1) {

        @Override
        protected HttpConnectionOverHTTP newHttpConnection(EndPoint endPoint, HttpDestination destination, Promise<Connection> promise) {
            return new HttpConnectionOverHTTP(endPoint, destination, promise) {

                @Override
                protected HttpChannelOverHTTP newHttpChannel() {
                    return new HttpChannelOverHTTP(this) {

                        @Override
                        public void send() {
                            if (afterSetup.get()) {
                                associateLatch.countDown();
                            }
                            super.send();
                        }
                    };
                }

                @Override
                protected void close(Throwable failure) {
                    try {
                        sendLatch.countDown();
                        beginLatch.await(5, TimeUnit.SECONDS);
                        super.close(failure);
                    } catch (InterruptedException x) {
                        x.printStackTrace();
                    }
                }

                @Override
                protected boolean abort(Throwable failure) {
                    try {
                        associateLatch.await(5, TimeUnit.SECONDS);
                        return super.abort(failure);
                    } catch (InterruptedException x) {
                        x.printStackTrace();
                        return false;
                    }
                }
            };
        }
    }, null);
    client.setIdleTimeout(10000);
    client.setExecutor(clientThreads);
    client.start();
    // Create one connection.
    client.newRequest("localhost", connector.getLocalPort()).send();
    Assert.assertTrue(serverLatch.await(5, TimeUnit.SECONDS));
    afterSetup.set(true);
    Thread.sleep(1000);
    // Close the connection, so that the receiver is woken
    // up and will call HttpConnectionOverHTTP.close().
    EndPoint endPoint = endPointRef.get();
    endPoint.close();
    // Wait for close() so that the connection that
    // is being closed is used to send the request.
    Assert.assertTrue(sendLatch.await(5, TimeUnit.SECONDS));
    final CountDownLatch completeLatch = new CountDownLatch(1);
    client.newRequest("localhost", connector.getLocalPort()).timeout(10, TimeUnit.SECONDS).onRequestBegin(request -> {
        try {
            beginLatch.countDown();
            completeLatch.await(5, TimeUnit.SECONDS);
        } catch (InterruptedException x) {
            x.printStackTrace();
        }
    }).send(result -> completeLatch.countDown());
    Assert.assertTrue(completeLatch.await(5, TimeUnit.SECONDS));
    HttpDestinationOverHTTP destination = (HttpDestinationOverHTTP) client.getDestination("http", "localhost", connector.getLocalPort());
    DuplexConnectionPool pool = (DuplexConnectionPool) destination.getConnectionPool();
    Assert.assertEquals(0, pool.getConnectionCount());
    Assert.assertEquals(0, pool.getIdleConnections().size());
    Assert.assertEquals(0, pool.getActiveConnections().size());
}
Also used : Request(org.eclipse.jetty.server.Request) Connection(org.eclipse.jetty.client.api.Connection) EndPoint(org.eclipse.jetty.io.EndPoint) ServletException(javax.servlet.ServletException) AbstractHandler(org.eclipse.jetty.server.handler.AbstractHandler) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Random(java.util.Random) AtomicReference(java.util.concurrent.atomic.AtomicReference) BytesContentProvider(org.eclipse.jetty.client.util.BytesContentProvider) HttpChannelOverHTTP(org.eclipse.jetty.client.http.HttpChannelOverHTTP) HttpClientTransportOverHTTP(org.eclipse.jetty.client.http.HttpClientTransportOverHTTP) HttpServletRequest(javax.servlet.http.HttpServletRequest) QueuedThreadPool(org.eclipse.jetty.util.thread.QueuedThreadPool) Server(org.eclipse.jetty.server.Server) HttpServletResponse(javax.servlet.http.HttpServletResponse) Promise(org.eclipse.jetty.util.Promise) IOException(java.io.IOException) Test(org.junit.Test) TimeUnit(java.util.concurrent.TimeUnit) HttpDestinationOverHTTP(org.eclipse.jetty.client.http.HttpDestinationOverHTTP) CountDownLatch(java.util.concurrent.CountDownLatch) ServerConnector(org.eclipse.jetty.server.ServerConnector) Assert(org.junit.Assert) HttpConnectionOverHTTP(org.eclipse.jetty.client.http.HttpConnectionOverHTTP) InputStream(java.io.InputStream) Server(org.eclipse.jetty.server.Server) HttpClientTransportOverHTTP(org.eclipse.jetty.client.http.HttpClientTransportOverHTTP) EndPoint(org.eclipse.jetty.io.EndPoint) AbstractHandler(org.eclipse.jetty.server.handler.AbstractHandler) HttpConnectionOverHTTP(org.eclipse.jetty.client.http.HttpConnectionOverHTTP) ServerConnector(org.eclipse.jetty.server.ServerConnector) HttpServletRequest(javax.servlet.http.HttpServletRequest) ServletException(javax.servlet.ServletException) QueuedThreadPool(org.eclipse.jetty.util.thread.QueuedThreadPool) Request(org.eclipse.jetty.server.Request) HttpServletRequest(javax.servlet.http.HttpServletRequest) Connection(org.eclipse.jetty.client.api.Connection) HttpServletResponse(javax.servlet.http.HttpServletResponse) AtomicReference(java.util.concurrent.atomic.AtomicReference) IOException(java.io.IOException) CountDownLatch(java.util.concurrent.CountDownLatch) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) HttpDestinationOverHTTP(org.eclipse.jetty.client.http.HttpDestinationOverHTTP) HttpChannelOverHTTP(org.eclipse.jetty.client.http.HttpChannelOverHTTP) Test(org.junit.Test)

Example 89 with QueuedThreadPool

use of org.eclipse.jetty.util.thread.QueuedThreadPool in project jetty.project by eclipse.

the class HttpClientTLSTest method startClient.

private void startClient(SslContextFactory sslContextFactory) throws Exception {
    QueuedThreadPool clientThreads = new QueuedThreadPool();
    clientThreads.setName("client");
    client = new HttpClient(sslContextFactory);
    client.setExecutor(clientThreads);
    client.start();
}
Also used : QueuedThreadPool(org.eclipse.jetty.util.thread.QueuedThreadPool)

Example 90 with QueuedThreadPool

use of org.eclipse.jetty.util.thread.QueuedThreadPool in project jetty.project by eclipse.

the class HttpClientTLSTest method startServer.

private void startServer(SslContextFactory sslContextFactory, Handler handler) throws Exception {
    QueuedThreadPool serverThreads = new QueuedThreadPool();
    serverThreads.setName("server");
    server = new Server(serverThreads);
    connector = new ServerConnector(server, sslContextFactory);
    server.addConnector(connector);
    server.setHandler(handler);
    server.start();
}
Also used : ServerConnector(org.eclipse.jetty.server.ServerConnector) Server(org.eclipse.jetty.server.Server) QueuedThreadPool(org.eclipse.jetty.util.thread.QueuedThreadPool)

Aggregations

QueuedThreadPool (org.eclipse.jetty.util.thread.QueuedThreadPool)126 Server (org.eclipse.jetty.server.Server)65 ServerConnector (org.eclipse.jetty.server.ServerConnector)51 Test (org.junit.Test)30 HttpConfiguration (org.eclipse.jetty.server.HttpConfiguration)26 ServletContextHandler (org.eclipse.jetty.servlet.ServletContextHandler)23 SslContextFactory (org.eclipse.jetty.util.ssl.SslContextFactory)22 HttpClient (org.eclipse.jetty.client.HttpClient)18 HttpConnectionFactory (org.eclipse.jetty.server.HttpConnectionFactory)18 ServletHolder (org.eclipse.jetty.servlet.ServletHolder)18 IOException (java.io.IOException)17 SslConnectionFactory (org.eclipse.jetty.server.SslConnectionFactory)11 ContextHandlerCollection (org.eclipse.jetty.server.handler.ContextHandlerCollection)11 DefaultHandler (org.eclipse.jetty.server.handler.DefaultHandler)10 File (java.io.File)9 CountDownLatch (java.util.concurrent.CountDownLatch)9 HttpServletRequest (javax.servlet.http.HttpServletRequest)9 InputStream (java.io.InputStream)8 HttpServletResponse (javax.servlet.http.HttpServletResponse)8 SecureRequestCustomizer (org.eclipse.jetty.server.SecureRequestCustomizer)8