Java 类org.apache.http.conn.ManagedHttpClientConnection 实例源码

项目:remote-files-sync    文件:HttpClientConnectionOperator.java   
public void upgrade(
        final ManagedHttpClientConnection conn,
        final HttpHost host,
        final HttpContext context) throws IOException {
    final HttpClientContext clientContext = HttpClientContext.adapt(context);
    final Lookup<ConnectionSocketFactory> registry = getSocketFactoryRegistry(clientContext);
    final ConnectionSocketFactory sf = registry.lookup(host.getSchemeName());
    if (sf == null) {
        throw new UnsupportedSchemeException(host.getSchemeName() +
                " protocol is not supported");
    }
    if (!(sf instanceof LayeredConnectionSocketFactory)) {
        throw new UnsupportedSchemeException(host.getSchemeName() +
                " protocol does not support connection upgrade");
    }
    final LayeredConnectionSocketFactory lsf = (LayeredConnectionSocketFactory) sf;
    Socket sock = conn.getSocket();
    final int port = this.schemePortResolver.resolve(host);
    sock = lsf.createLayeredSocket(sock, host.getHostName(), port, context);
    conn.bind(sock);
}
项目:remote-files-sync    文件:ProxyClient.java   
/**
 * @since 4.3
 */
public ProxyClient(
        final HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory,
        final ConnectionConfig connectionConfig,
        final RequestConfig requestConfig) {
    super();
    this.connFactory = connFactory != null ? connFactory : ManagedHttpClientConnectionFactory.INSTANCE;
    this.connectionConfig = connectionConfig != null ? connectionConfig : ConnectionConfig.DEFAULT;
    this.requestConfig = requestConfig != null ? requestConfig : RequestConfig.DEFAULT;
    this.httpProcessor = new ImmutableHttpProcessor(
            new RequestTargetHostHC4(), new RequestClientConnControl(), new RequestUserAgentHC4());
    this.requestExec = new HttpRequestExecutor();
    this.proxyAuthStrategy = new ProxyAuthenticationStrategy();
    this.authenticator = new HttpAuthenticator();
    this.proxyAuthState = new AuthStateHC4();
    this.authSchemeRegistry = new AuthSchemeRegistry();
    this.authSchemeRegistry.register(AuthSchemes.BASIC, new BasicSchemeFactoryHC4());
    this.authSchemeRegistry.register(AuthSchemes.DIGEST, new DigestSchemeFactoryHC4());
    this.authSchemeRegistry.register(AuthSchemes.NTLM, new NTLMSchemeFactory());
    this.reuseStrategy = new DefaultConnectionReuseStrategyHC4();
}
项目:remote-files-sync    文件:DefaultUserTokenHandlerHC4.java   
public Object getUserToken(final HttpContext context) {

        final HttpClientContext clientContext = HttpClientContext.adapt(context);

        Principal userPrincipal = null;

        final AuthStateHC4 targetAuthState = clientContext.getTargetAuthState();
        if (targetAuthState != null) {
            userPrincipal = getAuthPrincipal(targetAuthState);
            if (userPrincipal == null) {
                final AuthStateHC4 proxyAuthState = clientContext.getProxyAuthState();
                userPrincipal = getAuthPrincipal(proxyAuthState);
            }
        }

        if (userPrincipal == null) {
            final HttpConnection conn = clientContext.getConnection();
            if (conn.isOpen() && conn instanceof ManagedHttpClientConnection) {
                final SSLSession sslsession = ((ManagedHttpClientConnection) conn).getSSLSession();
                if (sslsession != null) {
                    userPrincipal = sslsession.getLocalPrincipal();
                }
            }
        }

        return userPrincipal;
    }
项目:remote-files-sync    文件:PoolingHttpClientConnectionManager.java   
public ManagedHttpClientConnection create(final HttpRoute route) throws IOException {
    ConnectionConfig config = null;
    if (route.getProxyHost() != null) {
        config = this.configData.getConnectionConfig(route.getProxyHost());
    }
    if (config == null) {
        config = this.configData.getConnectionConfig(route.getTargetHost());
    }
    if (config == null) {
        config = this.configData.getDefaultConnectionConfig();
    }
    if (config == null) {
        config = ConnectionConfig.DEFAULT;
    }
    return this.connFactory.create(route, config);
}
项目:purecloud-iot    文件:ProxyClient.java   
/**
 * @since 4.3
 */
public ProxyClient(
        final HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory,
        final ConnectionConfig connectionConfig,
        final RequestConfig requestConfig) {
    super();
    this.connFactory = connFactory != null ? connFactory : ManagedHttpClientConnectionFactory.INSTANCE;
    this.connectionConfig = connectionConfig != null ? connectionConfig : ConnectionConfig.DEFAULT;
    this.requestConfig = requestConfig != null ? requestConfig : RequestConfig.DEFAULT;
    this.httpProcessor = new ImmutableHttpProcessor(
            new RequestTargetHost(), new RequestClientConnControl(), new RequestUserAgent());
    this.requestExec = new HttpRequestExecutor();
    this.proxyAuthStrategy = new ProxyAuthenticationStrategy();
    this.authenticator = new HttpAuthenticator();
    this.proxyAuthState = new AuthState();
    this.authSchemeRegistry = new AuthSchemeRegistry();
    this.authSchemeRegistry.register(AuthSchemes.BASIC, new BasicSchemeFactory());
    this.authSchemeRegistry.register(AuthSchemes.DIGEST, new DigestSchemeFactory());
    this.authSchemeRegistry.register(AuthSchemes.NTLM, new NTLMSchemeFactory());
    this.authSchemeRegistry.register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory());
    this.authSchemeRegistry.register(AuthSchemes.KERBEROS, new KerberosSchemeFactory());
    this.reuseStrategy = new DefaultConnectionReuseStrategy();
}
项目:purecloud-iot    文件:DefaultUserTokenHandler.java   
@Override
public Object getUserToken(final HttpContext context) {

    final HttpClientContext clientContext = HttpClientContext.adapt(context);

    Principal userPrincipal = null;

    final AuthState targetAuthState = clientContext.getTargetAuthState();
    if (targetAuthState != null) {
        userPrincipal = getAuthPrincipal(targetAuthState);
        if (userPrincipal == null) {
            final AuthState proxyAuthState = clientContext.getProxyAuthState();
            userPrincipal = getAuthPrincipal(proxyAuthState);
        }
    }

    if (userPrincipal == null) {
        final HttpConnection conn = clientContext.getConnection();
        if (conn.isOpen() && conn instanceof ManagedHttpClientConnection) {
            final SSLSession sslsession = ((ManagedHttpClientConnection) conn).getSSLSession();
            if (sslsession != null) {
                userPrincipal = sslsession.getLocalPrincipal();
            }
        }
    }

    return userPrincipal;
}
项目:purecloud-iot    文件:PoolingHttpClientConnectionManager.java   
@Override
public ManagedHttpClientConnection create(final HttpRoute route) throws IOException {
    ConnectionConfig config = null;
    if (route.getProxyHost() != null) {
        config = this.configData.getConnectionConfig(route.getProxyHost());
    }
    if (config == null) {
        config = this.configData.getConnectionConfig(route.getTargetHost());
    }
    if (config == null) {
        config = this.configData.getDefaultConnectionConfig();
    }
    if (config == null) {
        config = ConnectionConfig.DEFAULT;
    }
    return this.connFactory.create(route, config);
}
项目:purecloud-iot    文件:DefaultHttpClientConnectionOperator.java   
@Override
public void upgrade(
        final ManagedHttpClientConnection conn,
        final HttpHost host,
        final HttpContext context) throws IOException {
    final HttpClientContext clientContext = HttpClientContext.adapt(context);
    final Lookup<ConnectionSocketFactory> registry = getSocketFactoryRegistry(clientContext);
    final ConnectionSocketFactory sf = registry.lookup(host.getSchemeName());
    if (sf == null) {
        throw new UnsupportedSchemeException(host.getSchemeName() +
                " protocol is not supported");
    }
    if (!(sf instanceof LayeredConnectionSocketFactory)) {
        throw new UnsupportedSchemeException(host.getSchemeName() +
                " protocol does not support connection upgrade");
    }
    final LayeredConnectionSocketFactory lsf = (LayeredConnectionSocketFactory) sf;
    Socket sock = conn.getSocket();
    final int port = this.schemePortResolver.resolve(host);
    sock = lsf.createLayeredSocket(sock, host.getHostName(), port, context);
    conn.bind(sock);
}
项目:Visit    文件:ProxyClient.java   
/**
 * @since 4.3
 */
public ProxyClient(
        final HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory,
        final ConnectionConfig connectionConfig,
        final RequestConfig requestConfig) {
    super();
    this.connFactory = connFactory != null ? connFactory : ManagedHttpClientConnectionFactory.INSTANCE;
    this.connectionConfig = connectionConfig != null ? connectionConfig : ConnectionConfig.DEFAULT;
    this.requestConfig = requestConfig != null ? requestConfig : RequestConfig.DEFAULT;
    this.httpProcessor = new ImmutableHttpProcessor(
            new RequestTargetHostHC4(), new RequestClientConnControl(), new RequestUserAgentHC4());
    this.requestExec = new HttpRequestExecutor();
    this.proxyAuthStrategy = new ProxyAuthenticationStrategy();
    this.authenticator = new HttpAuthenticator();
    this.proxyAuthState = new AuthStateHC4();
    this.authSchemeRegistry = new AuthSchemeRegistry();
    this.authSchemeRegistry.register(AuthSchemes.BASIC, new BasicSchemeFactoryHC4());
    this.authSchemeRegistry.register(AuthSchemes.DIGEST, new DigestSchemeFactoryHC4());
    this.authSchemeRegistry.register(AuthSchemes.NTLM, new NTLMSchemeFactory());
    this.reuseStrategy = new DefaultConnectionReuseStrategyHC4();
}
项目:Visit    文件:HttpClientConnectionOperator.java   
public void upgrade(
        final ManagedHttpClientConnection conn,
        final HttpHost host,
        final HttpContext context) throws IOException {
    final HttpClientContext clientContext = HttpClientContext.adapt(context);
    final Lookup<ConnectionSocketFactory> registry = getSocketFactoryRegistry(clientContext);
    final ConnectionSocketFactory sf = registry.lookup(host.getSchemeName());
    if (sf == null) {
        throw new UnsupportedSchemeException(host.getSchemeName() +
                " protocol is not supported");
    }
    if (!(sf instanceof LayeredConnectionSocketFactory)) {
        throw new UnsupportedSchemeException(host.getSchemeName() +
                " protocol does not support connection upgrade");
    }
    final LayeredConnectionSocketFactory lsf = (LayeredConnectionSocketFactory) sf;
    Socket sock = conn.getSocket();
    final int port = this.schemePortResolver.resolve(host);
    sock = lsf.createLayeredSocket(sock, host.getHostName(), port, context);
    conn.bind(sock);
}
项目:Visit    文件:PoolingHttpClientConnectionManager.java   
public ManagedHttpClientConnection create(final HttpRoute route) throws IOException {
    ConnectionConfig config = null;
    if (route.getProxyHost() != null) {
        config = this.configData.getConnectionConfig(route.getProxyHost());
    }
    if (config == null) {
        config = this.configData.getConnectionConfig(route.getTargetHost());
    }
    if (config == null) {
        config = this.configData.getDefaultConnectionConfig();
    }
    if (config == null) {
        config = ConnectionConfig.DEFAULT;
    }
    return this.connFactory.create(route, config);
}
项目:artifactory    文件:HttpUtils.java   
public static String resolveResponseRemoteAddress(CloseableHttpResponse response) {
    try {
        Field connHolderField = response.getClass().getDeclaredField("connHolder");
        connHolderField.setAccessible(true);
        Object connHolder = connHolderField.get(response);

        Field managedConnField = connHolder.getClass().getDeclaredField("managedConn");
        managedConnField.setAccessible(true);
        ManagedHttpClientConnection managedConn = (ManagedHttpClientConnection) managedConnField.get(
                connHolder);
        String hostAddress = managedConn.getSocket().getInetAddress().getHostAddress();
        return hostAddress == null ? StringUtils.EMPTY : hostAddress;
    } catch (Throwable throwable) {
        return StringUtils.EMPTY;
    }
}
项目:Lucee4    文件:DefaultHttpClientConnectionOperatorImpl.java   
@Override
public void connect(
        final ManagedHttpClientConnection conn,
        final HttpHost host,
        final InetSocketAddress localAddress,
        final int connectTimeout,
        final SocketConfig socketConfig,
        final HttpContext context) throws IOException {
    try {
        super.connect(conn, host, localAddress, connectTimeout, socketConfig, context);
    }
    catch (SSLProtocolException e) {
        Boolean enableSniValue = (Boolean) context.getAttribute(SSLConnectionSocketFactoryImpl.ENABLE_SNI);
        boolean enableSni = enableSniValue == null || enableSniValue;
        if (enableSni && e.getMessage() != null && e.getMessage().equals("handshake alert:  unrecognized_name")) {
            //print.e("Server received saw wrong SNI host, retrying without SNI");
            context.setAttribute(SSLConnectionSocketFactoryImpl.ENABLE_SNI, false);
            super.connect(conn, host, localAddress, connectTimeout, socketConfig, context);
        } 
        else throw e;
    }
}
项目:Lucee    文件:DefaultHttpClientConnectionOperatorImpl.java   
@Override
public void connect(
        final ManagedHttpClientConnection conn,
        final HttpHost host,
        final InetSocketAddress localAddress,
        final int connectTimeout,
        final SocketConfig socketConfig,
        final HttpContext context) throws IOException {
    try {
        super.connect(conn, host, localAddress, connectTimeout, socketConfig, context);
    }
    catch (SSLProtocolException e) {
        Boolean enableSniValue = (Boolean) context.getAttribute(SSLConnectionSocketFactoryImpl.ENABLE_SNI);
        boolean enableSni = enableSniValue == null || enableSniValue;
        if (enableSni && e.getMessage() != null && e.getMessage().equals("handshake alert:  unrecognized_name")) {
            //print.e("Server received saw wrong SNI host, retrying without SNI");
            context.setAttribute(SSLConnectionSocketFactoryImpl.ENABLE_SNI, false);
            super.connect(conn, host, localAddress, connectTimeout, socketConfig, context);
        } 
        else throw e;
    }
}
项目:ZTLib    文件:ProxyClient.java   
/**
 * @since 4.3
 */
public ProxyClient(
        final HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory,
        final ConnectionConfig connectionConfig,
        final RequestConfig requestConfig) {
    super();
    this.connFactory = connFactory != null ? connFactory : ManagedHttpClientConnectionFactory.INSTANCE;
    this.connectionConfig = connectionConfig != null ? connectionConfig : ConnectionConfig.DEFAULT;
    this.requestConfig = requestConfig != null ? requestConfig : RequestConfig.DEFAULT;
    this.httpProcessor = new ImmutableHttpProcessor(
            new RequestTargetHostHC4(), new RequestClientConnControl(), new RequestUserAgentHC4());
    this.requestExec = new HttpRequestExecutor();
    this.proxyAuthStrategy = new ProxyAuthenticationStrategy();
    this.authenticator = new HttpAuthenticator();
    this.proxyAuthState = new AuthStateHC4();
    this.authSchemeRegistry = new AuthSchemeRegistry();
    this.authSchemeRegistry.register(AuthSchemes.BASIC, new BasicSchemeFactoryHC4());
    this.authSchemeRegistry.register(AuthSchemes.DIGEST, new DigestSchemeFactoryHC4());
    this.authSchemeRegistry.register(AuthSchemes.NTLM, new NTLMSchemeFactory());
    this.reuseStrategy = new DefaultConnectionReuseStrategyHC4();
}
项目:ZTLib    文件:HttpClientConnectionOperator.java   
public void upgrade(
        final ManagedHttpClientConnection conn,
        final HttpHost host,
        final HttpContext context) throws IOException {
    final HttpClientContext clientContext = HttpClientContext.adapt(context);
    final Lookup<ConnectionSocketFactory> registry = getSocketFactoryRegistry(clientContext);
    final ConnectionSocketFactory sf = registry.lookup(host.getSchemeName());
    if (sf == null) {
        throw new UnsupportedSchemeException(host.getSchemeName() +
                " protocol is not supported");
    }
    if (!(sf instanceof LayeredConnectionSocketFactory)) {
        throw new UnsupportedSchemeException(host.getSchemeName() +
                " protocol does not support connection upgrade");
    }
    final LayeredConnectionSocketFactory lsf = (LayeredConnectionSocketFactory) sf;
    Socket sock = conn.getSocket();
    final int port = this.schemePortResolver.resolve(host);
    sock = lsf.createLayeredSocket(sock, host.getHostName(), port, context);
    conn.bind(sock);
}
项目:ZTLib    文件:PoolingHttpClientConnectionManager.java   
public ManagedHttpClientConnection create(final HttpRoute route) throws IOException {
    ConnectionConfig config = null;
    if (route.getProxyHost() != null) {
        config = this.configData.getConnectionConfig(route.getProxyHost());
    }
    if (config == null) {
        config = this.configData.getConnectionConfig(route.getTargetHost());
    }
    if (config == null) {
        config = this.configData.getDefaultConnectionConfig();
    }
    if (config == null) {
        config = ConnectionConfig.DEFAULT;
    }
    return this.connFactory.create(route, config);
}
项目:ibm-cos-sdk-java    文件:SdkHttpRequestExecutor.java   
@Override
protected HttpResponse doSendRequest(
        final HttpRequest request,
        final HttpClientConnection conn,
        final HttpContext context)
            throws IOException, HttpException {
    AWSRequestMetrics awsRequestMetrics = (AWSRequestMetrics) context
            .getAttribute(AWSRequestMetrics.class.getSimpleName());

    if (awsRequestMetrics == null) {
        return super.doSendRequest(request, conn, context);
    }
    if (conn instanceof ManagedHttpClientConnection) {
        ManagedHttpClientConnection managedConn = (ManagedHttpClientConnection)conn;
        Socket sock = managedConn.getSocket();
        if (sock instanceof SdkMetricsSocket) {
            SdkMetricsSocket sdkMetricsSocket = (SdkMetricsSocket)sock;
            sdkMetricsSocket.setMetrics(awsRequestMetrics);
        } else if (sock instanceof SdkSSLMetricsSocket) {
            SdkSSLMetricsSocket sdkSSLMetricsSocket = (SdkSSLMetricsSocket)sock;
            sdkSSLMetricsSocket.setMetrics(awsRequestMetrics);
        }
    }
    awsRequestMetrics.startEvent(Field.HttpClientSendRequestTime);
    try {
        return super.doSendRequest(request, conn, context);
    } finally {
        awsRequestMetrics.endEvent(Field.HttpClientSendRequestTime);
    }
}
项目:netcrusher-java    文件:HttpClientTest.java   
@Before
public void setUp() throws Exception {
    reactor = new NioReactor();

    crusher = TcpCrusherBuilder.builder()
            .withReactor(reactor)
            .withBindAddress("127.0.0.1", CRUSHER_PORT)
            .withConnectAddress(REMOTE_HOST, REMOTE_PORT)
            .buildAndOpen();

    DnsResolver dnsResolver = new SystemDefaultDnsResolver() {
        @Override
        public InetAddress[] resolve(final String host) throws UnknownHostException {
            if (host.equalsIgnoreCase(REMOTE_HOST)) {
                return new InetAddress[] { InetAddress.getByAddress(new byte[] {127, 0, 0, 1}) };
            } else {
                return super.resolve(host);
            }
        }
    };

    HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> httpConnectionFactory =
            new ManagedHttpClientConnectionFactory();

    Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
            .register("http", PlainConnectionSocketFactory.INSTANCE)
            .build();

    PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(
            socketFactoryRegistry, httpConnectionFactory, dnsResolver);

    http = HttpClients.createMinimal(connectionManager);
}
项目:remote-files-sync    文件:CPoolEntry.java   
public CPoolEntry(
        final String id,
        final HttpRoute route,
        final ManagedHttpClientConnection conn,
        final long timeToLive, final TimeUnit tunit) {
    super(id, route, conn, timeToLive, tunit);
}
项目:remote-files-sync    文件:ManagedHttpClientConnectionFactory.java   
public ManagedHttpClientConnection create(final HttpRoute route, final ConnectionConfig config) {
    final ConnectionConfig cconfig = config != null ? config : ConnectionConfig.DEFAULT;
    CharsetDecoder chardecoder = null;
    CharsetEncoder charencoder = null;
    final Charset charset = cconfig.getCharset();
    final CodingErrorAction malformedInputAction = cconfig.getMalformedInputAction() != null ?
            cconfig.getMalformedInputAction() : CodingErrorAction.REPORT;
    final CodingErrorAction unmappableInputAction = cconfig.getUnmappableInputAction() != null ?
            cconfig.getUnmappableInputAction() : CodingErrorAction.REPORT;
    if (charset != null) {
        chardecoder = charset.newDecoder();
        chardecoder.onMalformedInput(malformedInputAction);
        chardecoder.onUnmappableCharacter(unmappableInputAction);
        charencoder = charset.newEncoder();
        charencoder.onMalformedInput(malformedInputAction);
        charencoder.onUnmappableCharacter(unmappableInputAction);
    }
    final String id = "http-outgoing-" + Long.toString(COUNTER.getAndIncrement());
    return new LoggingManagedHttpClientConnection(
            id,
            cconfig.getBufferSize(),
            cconfig.getFragmentSizeHint(),
            chardecoder,
            charencoder,
            cconfig.getMessageConstraints(),
            null,
            null,
            requestWriterFactory,
            responseParserFactory);
}
项目:remote-files-sync    文件:CPoolProxy.java   
ManagedHttpClientConnection getConnection() {
    final CPoolEntry local = this.poolEntry;
    if (local == null) {
        return null;
    }
    return local.getConnection();
}
项目:remote-files-sync    文件:CPoolProxy.java   
ManagedHttpClientConnection getValidConnection() {
    final ManagedHttpClientConnection conn = getConnection();
    if (conn == null) {
        throw new ConnectionShutdownException();
    }
    return conn;
}
项目:remote-files-sync    文件:CPoolProxy.java   
public Object getAttribute(final String id) {
    final ManagedHttpClientConnection conn = getValidConnection();
    if (conn instanceof HttpContext) {
        return ((HttpContext) conn).getAttribute(id);
    } else {
        return null;
    }
}
项目:remote-files-sync    文件:CPoolProxy.java   
public Object removeAttribute(final String id) {
    final ManagedHttpClientConnection conn = getValidConnection();
    if (conn instanceof HttpContext) {
        return ((HttpContext) conn).removeAttribute(id);
    } else {
        return null;
    }
}
项目:remote-files-sync    文件:CPoolProxy.java   
@Override
public String toString() {
    final StringBuilder sb = new StringBuilder("CPoolProxy{");
    final ManagedHttpClientConnection conn = getConnection();
    if (conn != null) {
        sb.append(conn);
    } else {
        sb.append("detached");
    }
    sb.append('}');
    return sb.toString();
}
项目:remote-files-sync    文件:BasicHttpClientConnectionManager.java   
public BasicHttpClientConnectionManager(
        final Lookup<ConnectionSocketFactory> socketFactoryRegistry,
        final HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory,
        final SchemePortResolver schemePortResolver,
        final DnsResolver dnsResolver) {
    super();
    this.connectionOperator = new HttpClientConnectionOperator(
            socketFactoryRegistry, schemePortResolver, dnsResolver);
    this.connFactory = connFactory != null ? connFactory : ManagedHttpClientConnectionFactory.INSTANCE;
    this.expiry = Long.MAX_VALUE;
    this.socketConfig = SocketConfig.DEFAULT;
    this.connConfig = ConnectionConfig.DEFAULT;
    this.isShutdown = new AtomicBoolean(false);
}
项目:remote-files-sync    文件:CPool.java   
public CPool(
        final ConnFactory<HttpRoute, ManagedHttpClientConnection> connFactory,
        final int defaultMaxPerRoute, final int maxTotal,
        final long timeToLive, final TimeUnit tunit) {
    super(connFactory, defaultMaxPerRoute, maxTotal);
    this.timeToLive = timeToLive;
    this.tunit = tunit;
}
项目:remote-files-sync    文件:PoolingHttpClientConnectionManager.java   
public PoolingHttpClientConnectionManager(
        final Registry<ConnectionSocketFactory> socketFactoryRegistry,
        final HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory,
        final SchemePortResolver schemePortResolver,
        final DnsResolver dnsResolver,
        final long timeToLive, final TimeUnit tunit) {
    super();
    this.configData = new ConfigData();
    this.pool = new CPool(
            new InternalConnectionFactory(this.configData, connFactory), 2, 20, timeToLive, tunit);
    this.connectionOperator = new HttpClientConnectionOperator(
            socketFactoryRegistry, schemePortResolver, dnsResolver);
    this.isShutDown = new AtomicBoolean(false);
}
项目:remote-files-sync    文件:PoolingHttpClientConnectionManager.java   
public void releaseConnection(
        final HttpClientConnection managedConn,
        final Object state,
        final long keepalive, final TimeUnit tunit) {
    Args.notNull(managedConn, "Managed connection");
    synchronized (managedConn) {
        final CPoolEntry entry = CPoolProxy.detach(managedConn);
        if (entry == null) {
            return;
        }
        final ManagedHttpClientConnection conn = entry.getConnection();
        try {
            if (conn.isOpen()) {
                entry.setState(state);
                entry.updateExpiry(keepalive, tunit != null ? tunit : TimeUnit.MILLISECONDS);
                if (Log.isLoggable(TAG, Log.DEBUG)) {
                    final String s;
                    if (keepalive > 0) {
                        s = "for " + (double) keepalive / 1000 + " seconds";
                    } else {
                        s = "indefinitely";
                    }
                    Log.d(TAG, "Connection " + format(entry) + " can be kept alive " + s);
                }
            }
        } finally {
            this.pool.release(entry, conn.isOpen() && entry.isRouteComplete());
            if (Log.isLoggable(TAG, Log.DEBUG)) {
                Log.d(TAG, "Connection released: " + format(entry) + formatStats(entry.getRoute()));
            }
        }
    }
}
项目:remote-files-sync    文件:PoolingHttpClientConnectionManager.java   
public void connect(
        final HttpClientConnection managedConn,
        final HttpRoute route,
        final int connectTimeout,
        final HttpContext context) throws IOException {
    Args.notNull(managedConn, "Managed Connection");
    Args.notNull(route, "HTTP route");
    final ManagedHttpClientConnection conn;
    synchronized (managedConn) {
        final CPoolEntry entry = CPoolProxy.getPoolEntry(managedConn);
        conn = entry.getConnection();
    }
    final HttpHost host;
    if (route.getProxyHost() != null) {
        host = route.getProxyHost();
    } else {
        host = route.getTargetHost();
    }
    final InetSocketAddress localAddress = route.getLocalAddress() != null ? new InetSocketAddress(route.getLocalAddress(), 0) : null;;
    SocketConfig socketConfig = this.configData.getSocketConfig(host);
    if (socketConfig == null) {
        socketConfig = this.configData.getDefaultSocketConfig();
    }
    if (socketConfig == null) {
        socketConfig = SocketConfig.DEFAULT;
    }
    this.connectionOperator.connect(
            conn, host, localAddress, connectTimeout, socketConfig, context);
}
项目:remote-files-sync    文件:PoolingHttpClientConnectionManager.java   
public void upgrade(
        final HttpClientConnection managedConn,
        final HttpRoute route,
        final HttpContext context) throws IOException {
    Args.notNull(managedConn, "Managed Connection");
    Args.notNull(route, "HTTP route");
    final ManagedHttpClientConnection conn;
    synchronized (managedConn) {
        final CPoolEntry entry = CPoolProxy.getPoolEntry(managedConn);
        conn = entry.getConnection();
    }
    this.connectionOperator.upgrade(conn, route.getTargetHost(), context);
}
项目:remote-files-sync    文件:PoolingHttpClientConnectionManager.java   
InternalConnectionFactory(
        final ConfigData configData,
        final HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory) {
    super();
    this.configData = configData != null ? configData : new ConfigData();
    this.connFactory = connFactory != null ? connFactory :
        ManagedHttpClientConnectionFactory.INSTANCE;
}
项目:purecloud-iot    文件:CPoolEntry.java   
public CPoolEntry(
        final Log log,
        final String id,
        final HttpRoute route,
        final ManagedHttpClientConnection conn,
        final long timeToLive, final TimeUnit tunit) {
    super(id, route, conn, timeToLive, tunit);
    this.log = log;
}
项目:purecloud-iot    文件:ManagedHttpClientConnectionFactory.java   
@Override
public ManagedHttpClientConnection create(final HttpRoute route, final ConnectionConfig config) {
    final ConnectionConfig cconfig = config != null ? config : ConnectionConfig.DEFAULT;
    CharsetDecoder chardecoder = null;
    CharsetEncoder charencoder = null;
    final Charset charset = cconfig.getCharset();
    final CodingErrorAction malformedInputAction = cconfig.getMalformedInputAction() != null ?
            cconfig.getMalformedInputAction() : CodingErrorAction.REPORT;
    final CodingErrorAction unmappableInputAction = cconfig.getUnmappableInputAction() != null ?
            cconfig.getUnmappableInputAction() : CodingErrorAction.REPORT;
    if (charset != null) {
        chardecoder = charset.newDecoder();
        chardecoder.onMalformedInput(malformedInputAction);
        chardecoder.onUnmappableCharacter(unmappableInputAction);
        charencoder = charset.newEncoder();
        charencoder.onMalformedInput(malformedInputAction);
        charencoder.onUnmappableCharacter(unmappableInputAction);
    }
    final String id = "http-outgoing-" + Long.toString(COUNTER.getAndIncrement());
    return new LoggingManagedHttpClientConnection(
            id,
            log,
            headerlog,
            wirelog,
            cconfig.getBufferSize(),
            cconfig.getFragmentSizeHint(),
            chardecoder,
            charencoder,
            cconfig.getMessageConstraints(),
            incomingContentStrategy,
            outgoingContentStrategy,
            requestWriterFactory,
            responseParserFactory);
}
项目:purecloud-iot    文件:CPoolProxy.java   
ManagedHttpClientConnection getConnection() {
    final CPoolEntry local = this.poolEntry;
    if (local == null) {
        return null;
    }
    return local.getConnection();
}
项目:purecloud-iot    文件:CPoolProxy.java   
ManagedHttpClientConnection getValidConnection() {
    final ManagedHttpClientConnection conn = getConnection();
    if (conn == null) {
        throw new ConnectionShutdownException();
    }
    return conn;
}
项目:purecloud-iot    文件:CPoolProxy.java   
@Override
public Object getAttribute(final String id) {
    final ManagedHttpClientConnection conn = getValidConnection();
    if (conn instanceof HttpContext) {
        return ((HttpContext) conn).getAttribute(id);
    } else {
        return null;
    }
}
项目:purecloud-iot    文件:CPoolProxy.java   
@Override
public void setAttribute(final String id, final Object obj) {
    final ManagedHttpClientConnection conn = getValidConnection();
    if (conn instanceof HttpContext) {
        ((HttpContext) conn).setAttribute(id, obj);
    }
}
项目:purecloud-iot    文件:CPoolProxy.java   
@Override
public Object removeAttribute(final String id) {
    final ManagedHttpClientConnection conn = getValidConnection();
    if (conn instanceof HttpContext) {
        return ((HttpContext) conn).removeAttribute(id);
    } else {
        return null;
    }
}