com.atlassian.httpclient.apache.httpcomponents
Class ProxySelectorAsyncRoutePlanner

java.lang.Object
  extended by com.atlassian.httpclient.apache.httpcomponents.ProxySelectorAsyncRoutePlanner
All Implemented Interfaces:
org.apache.http.conn.routing.HttpRoutePlanner

@NotThreadSafe
public class ProxySelectorAsyncRoutePlanner
extends java.lang.Object
implements org.apache.http.conn.routing.HttpRoutePlanner

Default implementation of an HttpRoutePlanner. This implementation is based on ProxySelector. By default, it will pick up the proxy settings of the JVM, either from system properties or from the browser running the application. Additionally, it interprets some parameters, though not the DEFAULT_PROXY.

The following parameters can be used to customize the behavior of this class:

This was brought over from ProxySelectorRoutePlanner and converted to work with the async classes.

Since:
4.0

Field Summary
protected  java.net.ProxySelector proxySelector
          The proxy selector to use, or null for system default.
protected  org.apache.http.nio.conn.scheme.AsyncSchemeRegistry schemeRegistry
          The scheme registry.
 
Constructor Summary
ProxySelectorAsyncRoutePlanner(org.apache.http.nio.conn.scheme.AsyncSchemeRegistry schreg, java.net.ProxySelector prosel)
          Creates a new proxy selector route planner.
 
Method Summary
protected  java.net.Proxy chooseProxy(java.util.List<java.net.Proxy> proxies, org.apache.http.HttpHost target, org.apache.http.HttpRequest request, org.apache.http.protocol.HttpContext context)
          Chooses a proxy from a list of available proxies.
protected  org.apache.http.HttpHost determineProxy(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, org.apache.http.protocol.HttpContext context)
          Determines a proxy for the given target.
 org.apache.http.conn.routing.HttpRoute determineRoute(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, org.apache.http.protocol.HttpContext context)
           
protected  java.lang.String getHost(java.net.InetSocketAddress isa)
          Obtains a host from an InetSocketAddress.
 java.net.ProxySelector getProxySelector()
          Obtains the proxy selector to use.
 void setProxySelector(java.net.ProxySelector prosel)
          Sets the proxy selector to use.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

schemeRegistry

protected final org.apache.http.nio.conn.scheme.AsyncSchemeRegistry schemeRegistry
The scheme registry.


proxySelector

protected java.net.ProxySelector proxySelector
The proxy selector to use, or null for system default.

Constructor Detail

ProxySelectorAsyncRoutePlanner

public ProxySelectorAsyncRoutePlanner(org.apache.http.nio.conn.scheme.AsyncSchemeRegistry schreg,
                                      java.net.ProxySelector prosel)
Creates a new proxy selector route planner.

Parameters:
schreg - the scheme registry
prosel - the proxy selector, or null for the system default
Method Detail

getProxySelector

public java.net.ProxySelector getProxySelector()
Obtains the proxy selector to use.

Returns:
the proxy selector, or null for the system default

setProxySelector

public void setProxySelector(java.net.ProxySelector prosel)
Sets the proxy selector to use.

Parameters:
prosel - the proxy selector, or null to use the system default

determineRoute

public org.apache.http.conn.routing.HttpRoute determineRoute(org.apache.http.HttpHost target,
                                                             org.apache.http.HttpRequest request,
                                                             org.apache.http.protocol.HttpContext context)
                                                      throws org.apache.http.HttpException
Specified by:
determineRoute in interface org.apache.http.conn.routing.HttpRoutePlanner
Throws:
org.apache.http.HttpException

determineProxy

protected org.apache.http.HttpHost determineProxy(org.apache.http.HttpHost target,
                                                  org.apache.http.HttpRequest request,
                                                  org.apache.http.protocol.HttpContext context)
                                           throws org.apache.http.HttpException
Determines a proxy for the given target.

Parameters:
target - the planned target, never null
request - the request to be sent, never null
context - the context, or null
Returns:
the proxy to use, or null for a direct route
Throws:
org.apache.http.HttpException - in case of system proxy settings that cannot be handled

getHost

protected java.lang.String getHost(java.net.InetSocketAddress isa)
Obtains a host from an InetSocketAddress.

Parameters:
isa - the socket address
Returns:
a host string, either as a symbolic name or as a literal IP address string
(TODO: determine format for IPv6 addresses, with or without [brackets])

chooseProxy

protected java.net.Proxy chooseProxy(java.util.List<java.net.Proxy> proxies,
                                     org.apache.http.HttpHost target,
                                     org.apache.http.HttpRequest request,
                                     org.apache.http.protocol.HttpContext context)
Chooses a proxy from a list of available proxies. The default implementation just picks the first non-SOCKS proxy from the list. If there are only SOCKS proxies, Proxy.NO_PROXY is returned. Derived classes may implement more advanced strategies, such as proxy rotation if there are multiple options.

Parameters:
proxies - the list of proxies to choose from, never null or empty
target - the planned target, never null
request - the request to be sent, never null
context - the context, or null
Returns:
a proxy type


Copyright © 2012-2013 Atlassian. All Rights Reserved.