Example usage for org.apache.http.conn ClientConnectionRequest ClientConnectionRequest

List of usage examples for org.apache.http.conn ClientConnectionRequest ClientConnectionRequest

Introduction

In this page you can find the example usage for org.apache.http.conn ClientConnectionRequest ClientConnectionRequest.

Prototype

ClientConnectionRequest

Source Link

Usage

From source file:groovyx.net.http.thirdparty.GAEConnectionManager.java

public ClientConnectionRequest requestConnection(final HttpRoute route, final Object state) {
    return new ClientConnectionRequest() {
        public void abortRequest() {
            // Nothing to do
        }//from   ww  w .j  av  a  2 s .c o  m

        public ManagedClientConnection getConnection(long timeout, TimeUnit tunit) {
            return GAEConnectionManager.this.getConnection(route, state);
        }
    };
}

From source file:com.favalike.http.GAEConnectionManager.java

@Override
public ClientConnectionRequest requestConnection(final HttpRoute route, final Object state) {
    return new ClientConnectionRequest() {
        public void abortRequest() {
            // Nothing to do
        }/*from   w  w  w .ja va2s. c o m*/

        public ManagedClientConnection getConnection(long timeout, TimeUnit tunit) {
            return GAEConnectionManager.this.getConnection(route, state);
        }
    };
}

From source file:com.twilio.sdk.AppEngineClientConnectionManager.java

public ClientConnectionRequest requestConnection(final HttpRoute route, final Object state) {
    return new ClientConnectionRequest() {
        public void abortRequest() {
        }/*  w w w.  j  av  a2  s.  co m*/

        public ManagedClientConnection getConnection(final long idleTime, final TimeUnit timeUnit) {
            return AppEngineClientConnectionManager.this.getConnection(route, state);
        }
    };
}

From source file:org.opendatakit.http.conn.GaeClientConnectionManager.java

public final ClientConnectionRequest requestConnection(final HttpRoute route, final Object state) {

    return new ClientConnectionRequest() {

        public void abortRequest() {
            // Nothing to abort, since requests are immediate.
        }//from www  .  j a v a  2 s.c o  m

        public ManagedClientConnection getConnection(long timeout, TimeUnit tunit) {
            return GaeClientConnectionManager.this.getConnection(route, state);
        }

    };
}

From source file:com.eviware.soapui.impl.wsdl.support.http.SoapUIMultiThreadedHttpConnectionManager.java

public ClientConnectionRequest requestConnection(final HttpRoute route, final Object state) {

    final PoolEntryRequest poolRequest = pool.requestPoolEntry(route, state);

    return new ClientConnectionRequest() {

        public void abortRequest() {
            poolRequest.abortRequest();//from   www  . ja  v a  2 s  . c  o m
        }

        public ManagedClientConnection getConnection(long timeout, TimeUnit tunit)
                throws InterruptedException, ConnectionPoolTimeoutException {
            if (route == null) {
                throw new IllegalArgumentException("Route may not be null.");
            }

            if (log.isDebugEnabled()) {
                log.debug("Get connection: " + route + ", timeout = " + timeout);
            }

            BasicPoolEntry entry = poolRequest.getPoolEntry(timeout, tunit);
            SoapUIBasicPooledConnAdapter connAdapter = new SoapUIBasicPooledConnAdapter(
                    SoapUIMultiThreadedHttpConnectionManager.this, entry);
            return connAdapter;
        }
    };

}

From source file:org.glassfish.jersey.apache.connector.HelloWorldTest.java

/**
 * JERSEY-2157 reproducer./*from  w  w  w.j av  a 2s  . c o m*/
 * <p>
 * The test ensures that entities of the error responses which cause
 * WebApplicationException being thrown by a JAX-RS client are buffered
 * and that the underlying input connections are automatically released
 * in such case.
 */
@Test
public void testConnectionClosingOnExceptionsForErrorResponses() {
    final BasicClientConnectionManager cm = new BasicClientConnectionManager();
    final AtomicInteger connectionCounter = new AtomicInteger(0);

    final ClientConfig config = new ClientConfig().property(ApacheClientProperties.CONNECTION_MANAGER,
            new ClientConnectionManager() {
                @Override
                public SchemeRegistry getSchemeRegistry() {
                    return cm.getSchemeRegistry();
                }

                @Override
                public ClientConnectionRequest requestConnection(final HttpRoute route, final Object state) {
                    connectionCounter.incrementAndGet();

                    final ClientConnectionRequest wrappedRequest = cm.requestConnection(route, state);

                    /**
                     * To explain the following long piece of code:
                     *
                     * All the code does is to just create a wrapper implementations
                     * for the AHC connection management interfaces.
                     *
                     * The only really important piece of code is the
                     * {@link org.apache.http.conn.ManagedClientConnection#releaseConnection()} implementation,
                     * where the connectionCounter is decremented when a managed connection instance
                     * is released by AHC runtime. In our test, this is expected to happen
                     * as soon as the exception is created for an error response
                     * (as the error response entity gets buffered in
                     * {@link org.glassfish.jersey.client.JerseyInvocation#convertToException(javax.ws.rs.core.Response)}).
                     */
                    return new ClientConnectionRequest() {
                        @Override
                        public ManagedClientConnection getConnection(long timeout, TimeUnit tunit)
                                throws InterruptedException, ConnectionPoolTimeoutException {

                            final ManagedClientConnection wrappedConnection = wrappedRequest
                                    .getConnection(timeout, tunit);

                            return new ManagedClientConnection() {
                                @Override
                                public boolean isSecure() {
                                    return wrappedConnection.isSecure();
                                }

                                @Override
                                public HttpRoute getRoute() {
                                    return wrappedConnection.getRoute();
                                }

                                @Override
                                public SSLSession getSSLSession() {
                                    return wrappedConnection.getSSLSession();
                                }

                                @Override
                                public void open(HttpRoute route, HttpContext context, HttpParams params)
                                        throws IOException {
                                    wrappedConnection.open(route, context, params);
                                }

                                @Override
                                public void tunnelTarget(boolean secure, HttpParams params) throws IOException {
                                    wrappedConnection.tunnelTarget(secure, params);
                                }

                                @Override
                                public void tunnelProxy(HttpHost next, boolean secure, HttpParams params)
                                        throws IOException {
                                    wrappedConnection.tunnelProxy(next, secure, params);
                                }

                                @Override
                                public void layerProtocol(HttpContext context, HttpParams params)
                                        throws IOException {
                                    wrappedConnection.layerProtocol(context, params);
                                }

                                @Override
                                public void markReusable() {
                                    wrappedConnection.markReusable();
                                }

                                @Override
                                public void unmarkReusable() {
                                    wrappedConnection.unmarkReusable();
                                }

                                @Override
                                public boolean isMarkedReusable() {
                                    return wrappedConnection.isMarkedReusable();
                                }

                                @Override
                                public void setState(Object state) {
                                    wrappedConnection.setState(state);
                                }

                                @Override
                                public Object getState() {
                                    return wrappedConnection.getState();
                                }

                                @Override
                                public void setIdleDuration(long duration, TimeUnit unit) {
                                    wrappedConnection.setIdleDuration(duration, unit);
                                }

                                @Override
                                public boolean isResponseAvailable(int timeout) throws IOException {
                                    return wrappedConnection.isResponseAvailable(timeout);
                                }

                                @Override
                                public void sendRequestHeader(HttpRequest request)
                                        throws HttpException, IOException {
                                    wrappedConnection.sendRequestHeader(request);
                                }

                                @Override
                                public void sendRequestEntity(HttpEntityEnclosingRequest request)
                                        throws HttpException, IOException {
                                    wrappedConnection.sendRequestEntity(request);
                                }

                                @Override
                                public HttpResponse receiveResponseHeader() throws HttpException, IOException {
                                    return wrappedConnection.receiveResponseHeader();
                                }

                                @Override
                                public void receiveResponseEntity(HttpResponse response)
                                        throws HttpException, IOException {
                                    wrappedConnection.receiveResponseEntity(response);
                                }

                                @Override
                                public void flush() throws IOException {
                                    wrappedConnection.flush();
                                }

                                @Override
                                public void close() throws IOException {
                                    wrappedConnection.close();
                                }

                                @Override
                                public boolean isOpen() {
                                    return wrappedConnection.isOpen();
                                }

                                @Override
                                public boolean isStale() {
                                    return wrappedConnection.isStale();
                                }

                                @Override
                                public void setSocketTimeout(int timeout) {
                                    wrappedConnection.setSocketTimeout(timeout);
                                }

                                @Override
                                public int getSocketTimeout() {
                                    return wrappedConnection.getSocketTimeout();
                                }

                                @Override
                                public void shutdown() throws IOException {
                                    wrappedConnection.shutdown();
                                }

                                @Override
                                public HttpConnectionMetrics getMetrics() {
                                    return wrappedConnection.getMetrics();
                                }

                                @Override
                                public InetAddress getLocalAddress() {
                                    return wrappedConnection.getLocalAddress();
                                }

                                @Override
                                public int getLocalPort() {
                                    return wrappedConnection.getLocalPort();
                                }

                                @Override
                                public InetAddress getRemoteAddress() {
                                    return wrappedConnection.getRemoteAddress();
                                }

                                @Override
                                public int getRemotePort() {
                                    return wrappedConnection.getRemotePort();
                                }

                                @Override
                                public void releaseConnection() throws IOException {
                                    connectionCounter.decrementAndGet();
                                    wrappedConnection.releaseConnection();
                                }

                                @Override
                                public void abortConnection() throws IOException {
                                    wrappedConnection.abortConnection();
                                }

                                @Override
                                public String getId() {
                                    return wrappedConnection.getId();
                                }

                                @Override
                                public void bind(Socket socket) throws IOException {
                                    wrappedConnection.bind(socket);
                                }

                                @Override
                                public Socket getSocket() {
                                    return wrappedConnection.getSocket();
                                }
                            };
                        }

                        @Override
                        public void abortRequest() {
                            wrappedRequest.abortRequest();
                        }
                    };
                }

                @Override
                public void releaseConnection(ManagedClientConnection conn, long keepalive, TimeUnit tunit) {
                    cm.releaseConnection(conn, keepalive, tunit);
                }

                @Override
                public void closeExpiredConnections() {
                    cm.closeExpiredConnections();
                }

                @Override
                public void closeIdleConnections(long idletime, TimeUnit tunit) {
                    cm.closeIdleConnections(idletime, tunit);
                }

                @Override
                public void shutdown() {
                    cm.shutdown();
                }
            });
    config.connectorProvider(new ApacheConnectorProvider());

    final Client client = ClientBuilder.newClient(config);
    final WebTarget rootTarget = client.target(getBaseUri()).path(ROOT_PATH);

    // Test that connection is getting closed properly for error responses.
    try {
        final String response = rootTarget.path("error").request().get(String.class);
        fail("Exception expected. Received: " + response);
    } catch (InternalServerErrorException isee) {
        // do nothing - connection should be closed properly by now
    }

    // Fail if the previous connection has not been closed automatically.
    assertEquals(0, connectionCounter.get());

    try {
        final String response = rootTarget.path("error2").request().get(String.class);
        fail("Exception expected. Received: " + response);
    } catch (InternalServerErrorException isee) {
        assertEquals("Received unexpected data.", "Error2.", isee.getResponse().readEntity(String.class));
        // Test buffering:
        // second read would fail if entity was not buffered
        assertEquals("Unexpected data in the entity buffer.", "Error2.",
                isee.getResponse().readEntity(String.class));
    }

    assertEquals(0, connectionCounter.get());
}

From source file:com.groupon.odo.bmp.http.BrowserMobHttpClient.java

public BrowserMobHttpClient(StreamManager streamManager, AtomicInteger requestCounter) {
    this.requestCounter = requestCounter;
    SchemeRegistry schemeRegistry = new SchemeRegistry();
    hostNameResolver = new BrowserMobHostNameResolver(new Cache(DClass.ANY));

    this.socketFactory = new SimulatedSocketFactory(hostNameResolver, streamManager);
    this.sslSocketFactory = new TrustingSSLSocketFactory(hostNameResolver, streamManager);

    this.sslSocketFactory.setHostnameVerifier(new AllowAllHostnameVerifier());

    schemeRegistry.register(new Scheme("http", 80, socketFactory));
    schemeRegistry.register(new Scheme("https", 443, sslSocketFactory));

    httpClientConnMgr = new ThreadSafeClientConnManager(schemeRegistry) {
        @Override//from   w  w w.  j  a va 2s . co  m
        public ClientConnectionRequest requestConnection(HttpRoute route, Object state) {
            final ClientConnectionRequest wrapped = super.requestConnection(route, state);
            return new ClientConnectionRequest() {
                @Override
                public ManagedClientConnection getConnection(long timeout, TimeUnit tunit)
                        throws InterruptedException, ConnectionPoolTimeoutException {
                    Date start = new Date();
                    try {
                        return wrapped.getConnection(timeout, tunit);
                    } finally {
                        RequestInfo.get().blocked(start, new Date());
                    }
                }

                @Override
                public void abortRequest() {
                    wrapped.abortRequest();
                }
            };
        }
    };

    // MOB-338: 30 total connections and 6 connections per host matches the behavior in Firefox 3
    httpClientConnMgr.setMaxTotal(30);
    httpClientConnMgr.setDefaultMaxPerRoute(6);

    httpClient = new DefaultHttpClient(httpClientConnMgr) {
        @Override
        protected HttpRequestExecutor createRequestExecutor() {
            return new HttpRequestExecutor() {
                @Override
                protected HttpResponse doSendRequest(HttpRequest request, HttpClientConnection conn,
                        HttpContext context) throws IOException, HttpException {
                    long requestHeadersSize = request.getRequestLine().toString().length() + 4;
                    long requestBodySize = 0;
                    for (Header header : request.getAllHeaders()) {
                        requestHeadersSize += header.toString().length() + 2;
                        if (header.getName().equals("Content-Length")) {
                            requestBodySize += Integer.valueOf(header.getValue());
                        }
                    }

                    HarEntry entry = RequestInfo.get().getEntry();
                    if (entry != null) {
                        entry.getRequest().setHeadersSize(requestHeadersSize);
                        entry.getRequest().setBodySize(requestBodySize);
                    }

                    Date start = new Date();
                    HttpResponse response = super.doSendRequest(request, conn, context);
                    RequestInfo.get().send(start, new Date());
                    return response;
                }

                @Override
                protected HttpResponse doReceiveResponse(HttpRequest request, HttpClientConnection conn,
                        HttpContext context) throws HttpException, IOException {
                    Date start = new Date();
                    HttpResponse response = super.doReceiveResponse(request, conn, context);
                    long responseHeadersSize = response.getStatusLine().toString().length() + 4;
                    for (Header header : response.getAllHeaders()) {
                        responseHeadersSize += header.toString().length() + 2;
                    }

                    HarEntry entry = RequestInfo.get().getEntry();
                    if (entry != null) {
                        entry.getResponse().setHeadersSize(responseHeadersSize);
                    }

                    RequestInfo.get().wait(start, new Date());
                    return response;
                }
            };
        }
    };
    credsProvider = new WildcardMatchingCredentialsProvider();
    httpClient.setCredentialsProvider(credsProvider);
    httpClient.addRequestInterceptor(new PreemptiveAuth(), 0);
    httpClient.getParams().setParameter(ClientPNames.HANDLE_REDIRECTS, true);
    httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
    httpClient.getParams().setParameter(CookieSpecPNames.SINGLE_COOKIE_HEADER, Boolean.TRUE);
    setRetryCount(0);

    // we always set this to false so it can be handled manually:
    httpClient.getParams().setParameter(ClientPNames.HANDLE_REDIRECTS, false);

    HttpClientInterrupter.watch(this);
    setConnectionTimeout(60000);
    setSocketOperationTimeout(60000);
    setRequestTimeout(-1);
}

From source file:org.apache.http.impl.conn.BasicClientConnectionManager.java

public final ClientConnectionRequest requestConnection(final HttpRoute route, final Object state) {

    return new ClientConnectionRequest() {

        public void abortRequest() {
            // Nothing to abort, since requests are immediate.
        }//from  w  w w. ja  v  a  2 s . co m

        public ManagedClientConnection getConnection(final long timeout, final TimeUnit tunit) {
            return BasicClientConnectionManager.this.getConnection(route, state);
        }

    };
}

From source file:org.apache.http.impl.conn.FixedPoolingClientConnectionManager.java

public ClientConnectionRequest requestConnection(final HttpRoute route, final Object state) {
    if (route == null) {
        throw new IllegalArgumentException("HTTP route may not be null");
    }//  w  w w .  j  a  va  2  s.  co m
    if (this.log.isDebugEnabled()) {
        this.log.debug("Connection request: " + format(route, state) + formatStats(route));
    }
    final Future<HttpPoolEntry> future = this.pool.lease(route, state);

    return new ClientConnectionRequest() {

        public void abortRequest() {
            future.cancel(true);
        }

        public ManagedClientConnection getConnection(final long timeout, final TimeUnit tunit)
                throws InterruptedException, ConnectionPoolTimeoutException {
            return leaseConnection(future, timeout, tunit);
        }

    };

}

From source file:org.apache.http.impl.conn.JMeterPoolingClientConnectionManager.java

@Override
public ClientConnectionRequest requestConnection(final HttpRoute route, final Object state) {
    Args.notNull(route, "HTTP route");
    if (this.log.isDebugEnabled()) {
        this.log.debug("Connection request: " + format(route, state) + formatStats(route));
    }// w w w .j  a  v  a 2 s .  co m
    final Future<HttpPoolEntry> future = this.pool.lease(route, state);

    return new ClientConnectionRequest() {
        @Override
        public void abortRequest() {
            future.cancel(true);
        }

        @Override
        public ManagedClientConnection getConnection(final long timeout, final TimeUnit tunit)
                throws InterruptedException, ConnectionPoolTimeoutException {
            return leaseConnection(future, timeout, tunit);
        }

    };

}