103928aee4356845252ac6b662d5c72c29903813eJake Slack// 203928aee4356845252ac6b662d5c72c29903813eJake Slack// ======================================================================== 303928aee4356845252ac6b662d5c72c29903813eJake Slack// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. 403928aee4356845252ac6b662d5c72c29903813eJake Slack// ------------------------------------------------------------------------ 503928aee4356845252ac6b662d5c72c29903813eJake Slack// All rights reserved. This program and the accompanying materials 603928aee4356845252ac6b662d5c72c29903813eJake Slack// are made available under the terms of the Eclipse Public License v1.0 703928aee4356845252ac6b662d5c72c29903813eJake Slack// and Apache License v2.0 which accompanies this distribution. 803928aee4356845252ac6b662d5c72c29903813eJake Slack// 903928aee4356845252ac6b662d5c72c29903813eJake Slack// The Eclipse Public License is available at 1003928aee4356845252ac6b662d5c72c29903813eJake Slack// http://www.eclipse.org/legal/epl-v10.html 1103928aee4356845252ac6b662d5c72c29903813eJake Slack// 1203928aee4356845252ac6b662d5c72c29903813eJake Slack// The Apache License v2.0 is available at 1303928aee4356845252ac6b662d5c72c29903813eJake Slack// http://www.opensource.org/licenses/apache2.0.php 1403928aee4356845252ac6b662d5c72c29903813eJake Slack// 1503928aee4356845252ac6b662d5c72c29903813eJake Slack// You may elect to redistribute this code under either of these licenses. 1603928aee4356845252ac6b662d5c72c29903813eJake Slack// ======================================================================== 1703928aee4356845252ac6b662d5c72c29903813eJake Slack// 1803928aee4356845252ac6b662d5c72c29903813eJake Slack 1903928aee4356845252ac6b662d5c72c29903813eJake Slackpackage org.eclipse.jetty.client; 2003928aee4356845252ac6b662d5c72c29903813eJake Slack 2103928aee4356845252ac6b662d5c72c29903813eJake Slackimport java.io.IOException; 2203928aee4356845252ac6b662d5c72c29903813eJake Slackimport java.io.InputStream; 2303928aee4356845252ac6b662d5c72c29903813eJake Slackimport java.net.UnknownHostException; 2403928aee4356845252ac6b662d5c72c29903813eJake Slackimport java.util.Enumeration; 2503928aee4356845252ac6b662d5c72c29903813eJake Slackimport java.util.LinkedList; 2603928aee4356845252ac6b662d5c72c29903813eJake Slackimport java.util.Set; 2703928aee4356845252ac6b662d5c72c29903813eJake Slackimport java.util.concurrent.ConcurrentHashMap; 2803928aee4356845252ac6b662d5c72c29903813eJake Slackimport java.util.concurrent.ConcurrentMap; 2903928aee4356845252ac6b662d5c72c29903813eJake Slackimport javax.net.ssl.SSLContext; 3003928aee4356845252ac6b662d5c72c29903813eJake Slack 3103928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.client.security.Authentication; 3203928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.client.security.RealmResolver; 3303928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.client.security.SecurityListener; 3403928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.http.HttpBuffers; 3503928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.http.HttpBuffersImpl; 3603928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.http.HttpSchemes; 3703928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.io.Buffers; 3803928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.io.Buffers.Type; 3903928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.util.Attributes; 4003928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.util.AttributesMap; 4103928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.util.component.AggregateLifeCycle; 4203928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.util.component.Dumpable; 4303928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.util.component.LifeCycle; 4403928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.util.ssl.SslContextFactory; 4503928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.util.thread.QueuedThreadPool; 4603928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.util.thread.ThreadPool; 4703928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.util.thread.Timeout; 4803928aee4356845252ac6b662d5c72c29903813eJake Slack 4903928aee4356845252ac6b662d5c72c29903813eJake Slack/** 5003928aee4356845252ac6b662d5c72c29903813eJake Slack * Http Client. 5103928aee4356845252ac6b662d5c72c29903813eJake Slack * <p/> 5203928aee4356845252ac6b662d5c72c29903813eJake Slack * HttpClient is the main active component of the client API implementation. 5303928aee4356845252ac6b662d5c72c29903813eJake Slack * It is the opposite of the Connectors in standard Jetty, in that it listens 5403928aee4356845252ac6b662d5c72c29903813eJake Slack * for responses rather than requests. Just like the connectors, there is a 5503928aee4356845252ac6b662d5c72c29903813eJake Slack * blocking socket version and a non-blocking NIO version (implemented as nested classes 5603928aee4356845252ac6b662d5c72c29903813eJake Slack * selected by {@link #setConnectorType(int)}). 5703928aee4356845252ac6b662d5c72c29903813eJake Slack * <p/> 5803928aee4356845252ac6b662d5c72c29903813eJake Slack * The an instance of {@link HttpExchange} is passed to the {@link #send(HttpExchange)} method 5903928aee4356845252ac6b662d5c72c29903813eJake Slack * to send a request. The exchange contains both the headers and content (source) of the request 6003928aee4356845252ac6b662d5c72c29903813eJake Slack * plus the callbacks to handle responses. A HttpClient can have many exchanges outstanding 6103928aee4356845252ac6b662d5c72c29903813eJake Slack * and they may be queued on the {@link HttpDestination} waiting for a {@link AbstractHttpConnection}, 6203928aee4356845252ac6b662d5c72c29903813eJake Slack * queued in the {@link AbstractHttpConnection} waiting to be transmitted or pipelined on the actual 6303928aee4356845252ac6b662d5c72c29903813eJake Slack * TCP/IP connection waiting for a response. 6403928aee4356845252ac6b662d5c72c29903813eJake Slack * <p/> 6503928aee4356845252ac6b662d5c72c29903813eJake Slack * The {@link HttpDestination} class is an aggregation of {@link AbstractHttpConnection}s for the 6603928aee4356845252ac6b662d5c72c29903813eJake Slack * same host, port and protocol. A destination may limit the number of connections 6703928aee4356845252ac6b662d5c72c29903813eJake Slack * open and they provide a pool of open connections that may be reused. Connections may also 6803928aee4356845252ac6b662d5c72c29903813eJake Slack * be allocated from a destination, so that multiple request sources are not multiplexed 6903928aee4356845252ac6b662d5c72c29903813eJake Slack * over the same connection. 7003928aee4356845252ac6b662d5c72c29903813eJake Slack * 7103928aee4356845252ac6b662d5c72c29903813eJake Slack * @see HttpExchange 7203928aee4356845252ac6b662d5c72c29903813eJake Slack * @see HttpDestination 7303928aee4356845252ac6b662d5c72c29903813eJake Slack */ 7403928aee4356845252ac6b662d5c72c29903813eJake Slackpublic class HttpClient extends AggregateLifeCycle implements HttpBuffers, Attributes, Dumpable 7503928aee4356845252ac6b662d5c72c29903813eJake Slack{ 7603928aee4356845252ac6b662d5c72c29903813eJake Slack public static final int CONNECTOR_SOCKET = 0; 7703928aee4356845252ac6b662d5c72c29903813eJake Slack public static final int CONNECTOR_SELECT_CHANNEL = 2; 7803928aee4356845252ac6b662d5c72c29903813eJake Slack 7903928aee4356845252ac6b662d5c72c29903813eJake Slack private int _connectorType = CONNECTOR_SELECT_CHANNEL; 8003928aee4356845252ac6b662d5c72c29903813eJake Slack private boolean _useDirectBuffers = true; 8103928aee4356845252ac6b662d5c72c29903813eJake Slack private boolean _connectBlocking = true; 8203928aee4356845252ac6b662d5c72c29903813eJake Slack private int _maxConnectionsPerAddress = Integer.MAX_VALUE; 8303928aee4356845252ac6b662d5c72c29903813eJake Slack private int _maxQueueSizePerAddress = Integer.MAX_VALUE; 8403928aee4356845252ac6b662d5c72c29903813eJake Slack private ConcurrentMap<Address, HttpDestination> _destinations = new ConcurrentHashMap<Address, HttpDestination>(); 8503928aee4356845252ac6b662d5c72c29903813eJake Slack ThreadPool _threadPool; 8603928aee4356845252ac6b662d5c72c29903813eJake Slack Connector _connector; 8703928aee4356845252ac6b662d5c72c29903813eJake Slack private long _idleTimeout = 20000; 8803928aee4356845252ac6b662d5c72c29903813eJake Slack private long _timeout = 320000; 8903928aee4356845252ac6b662d5c72c29903813eJake Slack private int _connectTimeout = 75000; 9003928aee4356845252ac6b662d5c72c29903813eJake Slack private Timeout _timeoutQ = new Timeout(); 9103928aee4356845252ac6b662d5c72c29903813eJake Slack private Timeout _idleTimeoutQ = new Timeout(); 9203928aee4356845252ac6b662d5c72c29903813eJake Slack private Address _proxy; 9303928aee4356845252ac6b662d5c72c29903813eJake Slack private Authentication _proxyAuthentication; 9403928aee4356845252ac6b662d5c72c29903813eJake Slack private Set<String> _noProxy; 9503928aee4356845252ac6b662d5c72c29903813eJake Slack private int _maxRetries = 3; 9603928aee4356845252ac6b662d5c72c29903813eJake Slack private int _maxRedirects = 20; 9703928aee4356845252ac6b662d5c72c29903813eJake Slack private LinkedList<String> _registeredListeners; 9803928aee4356845252ac6b662d5c72c29903813eJake Slack 9903928aee4356845252ac6b662d5c72c29903813eJake Slack private final SslContextFactory _sslContextFactory; 10003928aee4356845252ac6b662d5c72c29903813eJake Slack 10103928aee4356845252ac6b662d5c72c29903813eJake Slack private RealmResolver _realmResolver; 10203928aee4356845252ac6b662d5c72c29903813eJake Slack 10303928aee4356845252ac6b662d5c72c29903813eJake Slack private AttributesMap _attributes=new AttributesMap(); 10403928aee4356845252ac6b662d5c72c29903813eJake Slack 10503928aee4356845252ac6b662d5c72c29903813eJake Slack private final HttpBuffersImpl _buffers= new HttpBuffersImpl(); 10603928aee4356845252ac6b662d5c72c29903813eJake Slack 10703928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------------------------- */ 10803928aee4356845252ac6b662d5c72c29903813eJake Slack private void setBufferTypes() 10903928aee4356845252ac6b662d5c72c29903813eJake Slack { 11003928aee4356845252ac6b662d5c72c29903813eJake Slack if (_connectorType==CONNECTOR_SOCKET) 11103928aee4356845252ac6b662d5c72c29903813eJake Slack { 11203928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setRequestBufferType(Type.BYTE_ARRAY); 11303928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setRequestHeaderType(Type.BYTE_ARRAY); 11403928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setResponseBufferType(Type.BYTE_ARRAY); 11503928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setResponseHeaderType(Type.BYTE_ARRAY); 11603928aee4356845252ac6b662d5c72c29903813eJake Slack } 11703928aee4356845252ac6b662d5c72c29903813eJake Slack else 11803928aee4356845252ac6b662d5c72c29903813eJake Slack { 11903928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setRequestBufferType(Type.DIRECT); 12003928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setRequestHeaderType(_useDirectBuffers?Type.DIRECT:Type.INDIRECT); 12103928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setResponseBufferType(Type.DIRECT); 12203928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setResponseHeaderType(_useDirectBuffers?Type.DIRECT:Type.INDIRECT); 12303928aee4356845252ac6b662d5c72c29903813eJake Slack } 12403928aee4356845252ac6b662d5c72c29903813eJake Slack 12503928aee4356845252ac6b662d5c72c29903813eJake Slack } 12603928aee4356845252ac6b662d5c72c29903813eJake Slack 12703928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------------------------- */ 12803928aee4356845252ac6b662d5c72c29903813eJake Slack public HttpClient() 12903928aee4356845252ac6b662d5c72c29903813eJake Slack { 13003928aee4356845252ac6b662d5c72c29903813eJake Slack this(new SslContextFactory()); 13103928aee4356845252ac6b662d5c72c29903813eJake Slack } 13203928aee4356845252ac6b662d5c72c29903813eJake Slack 13303928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------------------------- */ 13403928aee4356845252ac6b662d5c72c29903813eJake Slack public HttpClient(SslContextFactory sslContextFactory) 13503928aee4356845252ac6b662d5c72c29903813eJake Slack { 13603928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory = sslContextFactory; 13703928aee4356845252ac6b662d5c72c29903813eJake Slack addBean(_sslContextFactory); 13803928aee4356845252ac6b662d5c72c29903813eJake Slack addBean(_buffers); 13903928aee4356845252ac6b662d5c72c29903813eJake Slack } 14003928aee4356845252ac6b662d5c72c29903813eJake Slack 14103928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------------------------- */ 14203928aee4356845252ac6b662d5c72c29903813eJake Slack /** 14303928aee4356845252ac6b662d5c72c29903813eJake Slack * @return True if connects will be in blocking mode. 14403928aee4356845252ac6b662d5c72c29903813eJake Slack */ 14503928aee4356845252ac6b662d5c72c29903813eJake Slack public boolean isConnectBlocking() 14603928aee4356845252ac6b662d5c72c29903813eJake Slack { 14703928aee4356845252ac6b662d5c72c29903813eJake Slack return _connectBlocking; 14803928aee4356845252ac6b662d5c72c29903813eJake Slack } 14903928aee4356845252ac6b662d5c72c29903813eJake Slack 15003928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------------------------- */ 15103928aee4356845252ac6b662d5c72c29903813eJake Slack /** 15203928aee4356845252ac6b662d5c72c29903813eJake Slack * @param connectBlocking True if connects will be in blocking mode. 15303928aee4356845252ac6b662d5c72c29903813eJake Slack */ 15403928aee4356845252ac6b662d5c72c29903813eJake Slack public void setConnectBlocking(boolean connectBlocking) 15503928aee4356845252ac6b662d5c72c29903813eJake Slack { 15603928aee4356845252ac6b662d5c72c29903813eJake Slack _connectBlocking = connectBlocking; 15703928aee4356845252ac6b662d5c72c29903813eJake Slack } 15803928aee4356845252ac6b662d5c72c29903813eJake Slack 15903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------------------------- */ 16003928aee4356845252ac6b662d5c72c29903813eJake Slack public void send(HttpExchange exchange) throws IOException 16103928aee4356845252ac6b662d5c72c29903813eJake Slack { 16203928aee4356845252ac6b662d5c72c29903813eJake Slack boolean ssl = HttpSchemes.HTTPS_BUFFER.equalsIgnoreCase(exchange.getScheme()); 16303928aee4356845252ac6b662d5c72c29903813eJake Slack HttpDestination destination = getDestination(exchange.getAddress(), ssl); 16403928aee4356845252ac6b662d5c72c29903813eJake Slack destination.send(exchange); 16503928aee4356845252ac6b662d5c72c29903813eJake Slack } 16603928aee4356845252ac6b662d5c72c29903813eJake Slack 16703928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 16803928aee4356845252ac6b662d5c72c29903813eJake Slack /** 16903928aee4356845252ac6b662d5c72c29903813eJake Slack * @return the threadpool 17003928aee4356845252ac6b662d5c72c29903813eJake Slack */ 17103928aee4356845252ac6b662d5c72c29903813eJake Slack public ThreadPool getThreadPool() 17203928aee4356845252ac6b662d5c72c29903813eJake Slack { 17303928aee4356845252ac6b662d5c72c29903813eJake Slack return _threadPool; 17403928aee4356845252ac6b662d5c72c29903813eJake Slack } 17503928aee4356845252ac6b662d5c72c29903813eJake Slack 17603928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 17703928aee4356845252ac6b662d5c72c29903813eJake Slack /** Set the ThreadPool. 17803928aee4356845252ac6b662d5c72c29903813eJake Slack * The threadpool passed is added via {@link #addBean(Object)} so that 17903928aee4356845252ac6b662d5c72c29903813eJake Slack * it's lifecycle may be managed as a {@link AggregateLifeCycle}. 18003928aee4356845252ac6b662d5c72c29903813eJake Slack * @param threadPool the threadPool to set 18103928aee4356845252ac6b662d5c72c29903813eJake Slack */ 18203928aee4356845252ac6b662d5c72c29903813eJake Slack public void setThreadPool(ThreadPool threadPool) 18303928aee4356845252ac6b662d5c72c29903813eJake Slack { 18403928aee4356845252ac6b662d5c72c29903813eJake Slack removeBean(_threadPool); 18503928aee4356845252ac6b662d5c72c29903813eJake Slack _threadPool = threadPool; 18603928aee4356845252ac6b662d5c72c29903813eJake Slack addBean(_threadPool); 18703928aee4356845252ac6b662d5c72c29903813eJake Slack } 18803928aee4356845252ac6b662d5c72c29903813eJake Slack 18903928aee4356845252ac6b662d5c72c29903813eJake Slack 19003928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 19103928aee4356845252ac6b662d5c72c29903813eJake Slack /** 19203928aee4356845252ac6b662d5c72c29903813eJake Slack * @param name 19303928aee4356845252ac6b662d5c72c29903813eJake Slack * @return Attribute associated with client 19403928aee4356845252ac6b662d5c72c29903813eJake Slack */ 19503928aee4356845252ac6b662d5c72c29903813eJake Slack public Object getAttribute(String name) 19603928aee4356845252ac6b662d5c72c29903813eJake Slack { 19703928aee4356845252ac6b662d5c72c29903813eJake Slack return _attributes.getAttribute(name); 19803928aee4356845252ac6b662d5c72c29903813eJake Slack } 19903928aee4356845252ac6b662d5c72c29903813eJake Slack 20003928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 20103928aee4356845252ac6b662d5c72c29903813eJake Slack /** 20203928aee4356845252ac6b662d5c72c29903813eJake Slack * @return names of attributes associated with client 20303928aee4356845252ac6b662d5c72c29903813eJake Slack */ 20403928aee4356845252ac6b662d5c72c29903813eJake Slack public Enumeration getAttributeNames() 20503928aee4356845252ac6b662d5c72c29903813eJake Slack { 20603928aee4356845252ac6b662d5c72c29903813eJake Slack return _attributes.getAttributeNames(); 20703928aee4356845252ac6b662d5c72c29903813eJake Slack } 20803928aee4356845252ac6b662d5c72c29903813eJake Slack 20903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 21003928aee4356845252ac6b662d5c72c29903813eJake Slack /** 21103928aee4356845252ac6b662d5c72c29903813eJake Slack * @param name 21203928aee4356845252ac6b662d5c72c29903813eJake Slack */ 21303928aee4356845252ac6b662d5c72c29903813eJake Slack public void removeAttribute(String name) 21403928aee4356845252ac6b662d5c72c29903813eJake Slack { 21503928aee4356845252ac6b662d5c72c29903813eJake Slack _attributes.removeAttribute(name); 21603928aee4356845252ac6b662d5c72c29903813eJake Slack } 21703928aee4356845252ac6b662d5c72c29903813eJake Slack 21803928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 21903928aee4356845252ac6b662d5c72c29903813eJake Slack /** 22003928aee4356845252ac6b662d5c72c29903813eJake Slack * Set an attribute on the HttpClient. 22103928aee4356845252ac6b662d5c72c29903813eJake Slack * Attributes are not used by the client, but are provided for 22203928aee4356845252ac6b662d5c72c29903813eJake Slack * so that users of a shared HttpClient may share other structures. 22303928aee4356845252ac6b662d5c72c29903813eJake Slack * @param name 22403928aee4356845252ac6b662d5c72c29903813eJake Slack * @param attribute 22503928aee4356845252ac6b662d5c72c29903813eJake Slack */ 22603928aee4356845252ac6b662d5c72c29903813eJake Slack public void setAttribute(String name, Object attribute) 22703928aee4356845252ac6b662d5c72c29903813eJake Slack { 22803928aee4356845252ac6b662d5c72c29903813eJake Slack _attributes.setAttribute(name,attribute); 22903928aee4356845252ac6b662d5c72c29903813eJake Slack } 23003928aee4356845252ac6b662d5c72c29903813eJake Slack 23103928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 23203928aee4356845252ac6b662d5c72c29903813eJake Slack public void clearAttributes() 23303928aee4356845252ac6b662d5c72c29903813eJake Slack { 23403928aee4356845252ac6b662d5c72c29903813eJake Slack _attributes.clearAttributes(); 23503928aee4356845252ac6b662d5c72c29903813eJake Slack } 23603928aee4356845252ac6b662d5c72c29903813eJake Slack 23703928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------------------------- */ 23803928aee4356845252ac6b662d5c72c29903813eJake Slack public HttpDestination getDestination(Address remote, boolean ssl) throws IOException 23903928aee4356845252ac6b662d5c72c29903813eJake Slack { 24003928aee4356845252ac6b662d5c72c29903813eJake Slack return getDestination(remote, ssl, getSslContextFactory()); 24103928aee4356845252ac6b662d5c72c29903813eJake Slack } 24203928aee4356845252ac6b662d5c72c29903813eJake Slack 24303928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------------------------- */ 24403928aee4356845252ac6b662d5c72c29903813eJake Slack public HttpDestination getDestination(Address remote, boolean ssl, SslContextFactory sslContextFactory) throws IOException 24503928aee4356845252ac6b662d5c72c29903813eJake Slack { 24603928aee4356845252ac6b662d5c72c29903813eJake Slack if (remote == null) 24703928aee4356845252ac6b662d5c72c29903813eJake Slack throw new UnknownHostException("Remote socket address cannot be null."); 24803928aee4356845252ac6b662d5c72c29903813eJake Slack 24903928aee4356845252ac6b662d5c72c29903813eJake Slack HttpDestination destination = _destinations.get(remote); 25003928aee4356845252ac6b662d5c72c29903813eJake Slack if (destination == null) 25103928aee4356845252ac6b662d5c72c29903813eJake Slack { 25203928aee4356845252ac6b662d5c72c29903813eJake Slack destination = new HttpDestination(this, remote, ssl, sslContextFactory); 25303928aee4356845252ac6b662d5c72c29903813eJake Slack if (_proxy != null && (_noProxy == null || !_noProxy.contains(remote.getHost()))) 25403928aee4356845252ac6b662d5c72c29903813eJake Slack { 25503928aee4356845252ac6b662d5c72c29903813eJake Slack destination.setProxy(_proxy); 25603928aee4356845252ac6b662d5c72c29903813eJake Slack if (_proxyAuthentication != null) 25703928aee4356845252ac6b662d5c72c29903813eJake Slack destination.setProxyAuthentication(_proxyAuthentication); 25803928aee4356845252ac6b662d5c72c29903813eJake Slack } 25903928aee4356845252ac6b662d5c72c29903813eJake Slack HttpDestination other =_destinations.putIfAbsent(remote, destination); 26003928aee4356845252ac6b662d5c72c29903813eJake Slack if (other!=null) 26103928aee4356845252ac6b662d5c72c29903813eJake Slack destination=other; 26203928aee4356845252ac6b662d5c72c29903813eJake Slack } 26303928aee4356845252ac6b662d5c72c29903813eJake Slack return destination; 26403928aee4356845252ac6b662d5c72c29903813eJake Slack } 26503928aee4356845252ac6b662d5c72c29903813eJake Slack 26603928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 26703928aee4356845252ac6b662d5c72c29903813eJake Slack public void schedule(Timeout.Task task) 26803928aee4356845252ac6b662d5c72c29903813eJake Slack { 26903928aee4356845252ac6b662d5c72c29903813eJake Slack _timeoutQ.schedule(task); 27003928aee4356845252ac6b662d5c72c29903813eJake Slack } 27103928aee4356845252ac6b662d5c72c29903813eJake Slack 27203928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 27303928aee4356845252ac6b662d5c72c29903813eJake Slack public void schedule(Timeout.Task task, long timeout) 27403928aee4356845252ac6b662d5c72c29903813eJake Slack { 27503928aee4356845252ac6b662d5c72c29903813eJake Slack _timeoutQ.schedule(task, timeout - _timeoutQ.getDuration()); 27603928aee4356845252ac6b662d5c72c29903813eJake Slack } 27703928aee4356845252ac6b662d5c72c29903813eJake Slack 27803928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 27903928aee4356845252ac6b662d5c72c29903813eJake Slack public void scheduleIdle(Timeout.Task task) 28003928aee4356845252ac6b662d5c72c29903813eJake Slack { 28103928aee4356845252ac6b662d5c72c29903813eJake Slack _idleTimeoutQ.schedule(task); 28203928aee4356845252ac6b662d5c72c29903813eJake Slack } 28303928aee4356845252ac6b662d5c72c29903813eJake Slack 28403928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 28503928aee4356845252ac6b662d5c72c29903813eJake Slack public void cancel(Timeout.Task task) 28603928aee4356845252ac6b662d5c72c29903813eJake Slack { 28703928aee4356845252ac6b662d5c72c29903813eJake Slack task.cancel(); 28803928aee4356845252ac6b662d5c72c29903813eJake Slack } 28903928aee4356845252ac6b662d5c72c29903813eJake Slack 29003928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 29103928aee4356845252ac6b662d5c72c29903813eJake Slack /** 29203928aee4356845252ac6b662d5c72c29903813eJake Slack * Get whether the connector can use direct NIO buffers. 29303928aee4356845252ac6b662d5c72c29903813eJake Slack */ 29403928aee4356845252ac6b662d5c72c29903813eJake Slack public boolean getUseDirectBuffers() 29503928aee4356845252ac6b662d5c72c29903813eJake Slack { 29603928aee4356845252ac6b662d5c72c29903813eJake Slack return _useDirectBuffers; 29703928aee4356845252ac6b662d5c72c29903813eJake Slack } 29803928aee4356845252ac6b662d5c72c29903813eJake Slack 29903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 30003928aee4356845252ac6b662d5c72c29903813eJake Slack /** Set a RealmResolver for client Authentication. 30103928aee4356845252ac6b662d5c72c29903813eJake Slack * If a realmResolver is set, then the HttpDestinations created by 30203928aee4356845252ac6b662d5c72c29903813eJake Slack * this client will instantiate a {@link SecurityListener} so that 30303928aee4356845252ac6b662d5c72c29903813eJake Slack * BASIC and DIGEST authentication can be performed. 30403928aee4356845252ac6b662d5c72c29903813eJake Slack * @param resolver 30503928aee4356845252ac6b662d5c72c29903813eJake Slack */ 30603928aee4356845252ac6b662d5c72c29903813eJake Slack public void setRealmResolver(RealmResolver resolver) 30703928aee4356845252ac6b662d5c72c29903813eJake Slack { 30803928aee4356845252ac6b662d5c72c29903813eJake Slack _realmResolver = resolver; 30903928aee4356845252ac6b662d5c72c29903813eJake Slack } 31003928aee4356845252ac6b662d5c72c29903813eJake Slack 31103928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 31203928aee4356845252ac6b662d5c72c29903813eJake Slack /** 31303928aee4356845252ac6b662d5c72c29903813eJake Slack * returns the SecurityRealmResolver reg_realmResolveristered with the HttpClient or null 31403928aee4356845252ac6b662d5c72c29903813eJake Slack * 31503928aee4356845252ac6b662d5c72c29903813eJake Slack * @return the SecurityRealmResolver reg_realmResolveristered with the HttpClient or null 31603928aee4356845252ac6b662d5c72c29903813eJake Slack */ 31703928aee4356845252ac6b662d5c72c29903813eJake Slack public RealmResolver getRealmResolver() 31803928aee4356845252ac6b662d5c72c29903813eJake Slack { 31903928aee4356845252ac6b662d5c72c29903813eJake Slack return _realmResolver; 32003928aee4356845252ac6b662d5c72c29903813eJake Slack } 32103928aee4356845252ac6b662d5c72c29903813eJake Slack 32203928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 32303928aee4356845252ac6b662d5c72c29903813eJake Slack public boolean hasRealms() 32403928aee4356845252ac6b662d5c72c29903813eJake Slack { 32503928aee4356845252ac6b662d5c72c29903813eJake Slack return _realmResolver == null ? false : true; 32603928aee4356845252ac6b662d5c72c29903813eJake Slack } 32703928aee4356845252ac6b662d5c72c29903813eJake Slack 32803928aee4356845252ac6b662d5c72c29903813eJake Slack 32903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 33003928aee4356845252ac6b662d5c72c29903813eJake Slack /** 33103928aee4356845252ac6b662d5c72c29903813eJake Slack * Registers a listener that can listen to the stream of execution between the client and the 33203928aee4356845252ac6b662d5c72c29903813eJake Slack * server and influence events. Sequential calls to the method wrapper sequentially wrap the preceding 33303928aee4356845252ac6b662d5c72c29903813eJake Slack * listener in a delegation model. 33403928aee4356845252ac6b662d5c72c29903813eJake Slack * <p/> 33503928aee4356845252ac6b662d5c72c29903813eJake Slack * NOTE: the SecurityListener is a special listener which doesn't need to be added via this 33603928aee4356845252ac6b662d5c72c29903813eJake Slack * mechanic, if you register security realms then it will automatically be added as the top listener of the 33703928aee4356845252ac6b662d5c72c29903813eJake Slack * delegation stack. 33803928aee4356845252ac6b662d5c72c29903813eJake Slack * 33903928aee4356845252ac6b662d5c72c29903813eJake Slack * @param listenerClass 34003928aee4356845252ac6b662d5c72c29903813eJake Slack */ 34103928aee4356845252ac6b662d5c72c29903813eJake Slack public void registerListener(String listenerClass) 34203928aee4356845252ac6b662d5c72c29903813eJake Slack { 34303928aee4356845252ac6b662d5c72c29903813eJake Slack if (_registeredListeners == null) 34403928aee4356845252ac6b662d5c72c29903813eJake Slack { 34503928aee4356845252ac6b662d5c72c29903813eJake Slack _registeredListeners = new LinkedList<String>(); 34603928aee4356845252ac6b662d5c72c29903813eJake Slack } 34703928aee4356845252ac6b662d5c72c29903813eJake Slack _registeredListeners.add(listenerClass); 34803928aee4356845252ac6b662d5c72c29903813eJake Slack } 34903928aee4356845252ac6b662d5c72c29903813eJake Slack 35003928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 35103928aee4356845252ac6b662d5c72c29903813eJake Slack public LinkedList<String> getRegisteredListeners() 35203928aee4356845252ac6b662d5c72c29903813eJake Slack { 35303928aee4356845252ac6b662d5c72c29903813eJake Slack return _registeredListeners; 35403928aee4356845252ac6b662d5c72c29903813eJake Slack } 35503928aee4356845252ac6b662d5c72c29903813eJake Slack 35603928aee4356845252ac6b662d5c72c29903813eJake Slack 35703928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 35803928aee4356845252ac6b662d5c72c29903813eJake Slack /** 35903928aee4356845252ac6b662d5c72c29903813eJake Slack * Set to use NIO direct buffers. 36003928aee4356845252ac6b662d5c72c29903813eJake Slack * 36103928aee4356845252ac6b662d5c72c29903813eJake Slack * @param direct If True (the default), the connector can use NIO direct 36203928aee4356845252ac6b662d5c72c29903813eJake Slack * buffers. Some JVMs have memory management issues (bugs) with 36303928aee4356845252ac6b662d5c72c29903813eJake Slack * direct buffers. 36403928aee4356845252ac6b662d5c72c29903813eJake Slack */ 36503928aee4356845252ac6b662d5c72c29903813eJake Slack public void setUseDirectBuffers(boolean direct) 36603928aee4356845252ac6b662d5c72c29903813eJake Slack { 36703928aee4356845252ac6b662d5c72c29903813eJake Slack _useDirectBuffers = direct; 36803928aee4356845252ac6b662d5c72c29903813eJake Slack setBufferTypes(); 36903928aee4356845252ac6b662d5c72c29903813eJake Slack } 37003928aee4356845252ac6b662d5c72c29903813eJake Slack 37103928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 37203928aee4356845252ac6b662d5c72c29903813eJake Slack /** 37303928aee4356845252ac6b662d5c72c29903813eJake Slack * Get the type of connector (socket, blocking or select) in use. 37403928aee4356845252ac6b662d5c72c29903813eJake Slack */ 37503928aee4356845252ac6b662d5c72c29903813eJake Slack public int getConnectorType() 37603928aee4356845252ac6b662d5c72c29903813eJake Slack { 37703928aee4356845252ac6b662d5c72c29903813eJake Slack return _connectorType; 37803928aee4356845252ac6b662d5c72c29903813eJake Slack } 37903928aee4356845252ac6b662d5c72c29903813eJake Slack 38003928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 38103928aee4356845252ac6b662d5c72c29903813eJake Slack public void setConnectorType(int connectorType) 38203928aee4356845252ac6b662d5c72c29903813eJake Slack { 38303928aee4356845252ac6b662d5c72c29903813eJake Slack this._connectorType = connectorType; 38403928aee4356845252ac6b662d5c72c29903813eJake Slack setBufferTypes(); 38503928aee4356845252ac6b662d5c72c29903813eJake Slack } 38603928aee4356845252ac6b662d5c72c29903813eJake Slack 38703928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 38803928aee4356845252ac6b662d5c72c29903813eJake Slack public int getMaxConnectionsPerAddress() 38903928aee4356845252ac6b662d5c72c29903813eJake Slack { 39003928aee4356845252ac6b662d5c72c29903813eJake Slack return _maxConnectionsPerAddress; 39103928aee4356845252ac6b662d5c72c29903813eJake Slack } 39203928aee4356845252ac6b662d5c72c29903813eJake Slack 39303928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 39403928aee4356845252ac6b662d5c72c29903813eJake Slack public void setMaxConnectionsPerAddress(int maxConnectionsPerAddress) 39503928aee4356845252ac6b662d5c72c29903813eJake Slack { 39603928aee4356845252ac6b662d5c72c29903813eJake Slack _maxConnectionsPerAddress = maxConnectionsPerAddress; 39703928aee4356845252ac6b662d5c72c29903813eJake Slack } 39803928aee4356845252ac6b662d5c72c29903813eJake Slack 39903928aee4356845252ac6b662d5c72c29903813eJake Slack public int getMaxQueueSizePerAddress() 40003928aee4356845252ac6b662d5c72c29903813eJake Slack { 40103928aee4356845252ac6b662d5c72c29903813eJake Slack return _maxQueueSizePerAddress; 40203928aee4356845252ac6b662d5c72c29903813eJake Slack } 40303928aee4356845252ac6b662d5c72c29903813eJake Slack 40403928aee4356845252ac6b662d5c72c29903813eJake Slack public void setMaxQueueSizePerAddress(int maxQueueSizePerAddress) 40503928aee4356845252ac6b662d5c72c29903813eJake Slack { 40603928aee4356845252ac6b662d5c72c29903813eJake Slack this._maxQueueSizePerAddress = maxQueueSizePerAddress; 40703928aee4356845252ac6b662d5c72c29903813eJake Slack } 40803928aee4356845252ac6b662d5c72c29903813eJake Slack 40903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 41003928aee4356845252ac6b662d5c72c29903813eJake Slack @Override 41103928aee4356845252ac6b662d5c72c29903813eJake Slack protected void doStart() throws Exception 41203928aee4356845252ac6b662d5c72c29903813eJake Slack { 41303928aee4356845252ac6b662d5c72c29903813eJake Slack setBufferTypes(); 41403928aee4356845252ac6b662d5c72c29903813eJake Slack 41503928aee4356845252ac6b662d5c72c29903813eJake Slack _timeoutQ.setDuration(_timeout); 41603928aee4356845252ac6b662d5c72c29903813eJake Slack _timeoutQ.setNow(); 41703928aee4356845252ac6b662d5c72c29903813eJake Slack _idleTimeoutQ.setDuration(_idleTimeout); 41803928aee4356845252ac6b662d5c72c29903813eJake Slack _idleTimeoutQ.setNow(); 41903928aee4356845252ac6b662d5c72c29903813eJake Slack 42003928aee4356845252ac6b662d5c72c29903813eJake Slack if (_threadPool==null) 42103928aee4356845252ac6b662d5c72c29903813eJake Slack { 42203928aee4356845252ac6b662d5c72c29903813eJake Slack QueuedThreadPool pool = new LocalQueuedThreadPool(); 42303928aee4356845252ac6b662d5c72c29903813eJake Slack pool.setMaxThreads(16); 42403928aee4356845252ac6b662d5c72c29903813eJake Slack pool.setDaemon(true); 42503928aee4356845252ac6b662d5c72c29903813eJake Slack pool.setName("HttpClient"); 42603928aee4356845252ac6b662d5c72c29903813eJake Slack _threadPool = pool; 42703928aee4356845252ac6b662d5c72c29903813eJake Slack addBean(_threadPool,true); 42803928aee4356845252ac6b662d5c72c29903813eJake Slack } 42903928aee4356845252ac6b662d5c72c29903813eJake Slack 43003928aee4356845252ac6b662d5c72c29903813eJake Slack _connector=(_connectorType == CONNECTOR_SELECT_CHANNEL)?new SelectConnector(this):new SocketConnector(this); 43103928aee4356845252ac6b662d5c72c29903813eJake Slack addBean(_connector,true); 43203928aee4356845252ac6b662d5c72c29903813eJake Slack 43303928aee4356845252ac6b662d5c72c29903813eJake Slack super.doStart(); 43403928aee4356845252ac6b662d5c72c29903813eJake Slack 43503928aee4356845252ac6b662d5c72c29903813eJake Slack _threadPool.dispatch(new Runnable() 43603928aee4356845252ac6b662d5c72c29903813eJake Slack { 43703928aee4356845252ac6b662d5c72c29903813eJake Slack public void run() 43803928aee4356845252ac6b662d5c72c29903813eJake Slack { 43903928aee4356845252ac6b662d5c72c29903813eJake Slack while (isRunning()) 44003928aee4356845252ac6b662d5c72c29903813eJake Slack { 44103928aee4356845252ac6b662d5c72c29903813eJake Slack _timeoutQ.tick(System.currentTimeMillis()); 44203928aee4356845252ac6b662d5c72c29903813eJake Slack _idleTimeoutQ.tick(_timeoutQ.getNow()); 44303928aee4356845252ac6b662d5c72c29903813eJake Slack try 44403928aee4356845252ac6b662d5c72c29903813eJake Slack { 44503928aee4356845252ac6b662d5c72c29903813eJake Slack Thread.sleep(200); 44603928aee4356845252ac6b662d5c72c29903813eJake Slack } 44703928aee4356845252ac6b662d5c72c29903813eJake Slack catch (InterruptedException ignored) 44803928aee4356845252ac6b662d5c72c29903813eJake Slack { 44903928aee4356845252ac6b662d5c72c29903813eJake Slack } 45003928aee4356845252ac6b662d5c72c29903813eJake Slack } 45103928aee4356845252ac6b662d5c72c29903813eJake Slack } 45203928aee4356845252ac6b662d5c72c29903813eJake Slack }); 45303928aee4356845252ac6b662d5c72c29903813eJake Slack } 45403928aee4356845252ac6b662d5c72c29903813eJake Slack 45503928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 45603928aee4356845252ac6b662d5c72c29903813eJake Slack @Override 45703928aee4356845252ac6b662d5c72c29903813eJake Slack protected void doStop() throws Exception 45803928aee4356845252ac6b662d5c72c29903813eJake Slack { 45903928aee4356845252ac6b662d5c72c29903813eJake Slack for (HttpDestination destination : _destinations.values()) 46003928aee4356845252ac6b662d5c72c29903813eJake Slack destination.close(); 46103928aee4356845252ac6b662d5c72c29903813eJake Slack 46203928aee4356845252ac6b662d5c72c29903813eJake Slack _timeoutQ.cancelAll(); 46303928aee4356845252ac6b662d5c72c29903813eJake Slack _idleTimeoutQ.cancelAll(); 46403928aee4356845252ac6b662d5c72c29903813eJake Slack 46503928aee4356845252ac6b662d5c72c29903813eJake Slack super.doStop(); 46603928aee4356845252ac6b662d5c72c29903813eJake Slack 46703928aee4356845252ac6b662d5c72c29903813eJake Slack if (_threadPool instanceof LocalQueuedThreadPool) 46803928aee4356845252ac6b662d5c72c29903813eJake Slack { 46903928aee4356845252ac6b662d5c72c29903813eJake Slack removeBean(_threadPool); 47003928aee4356845252ac6b662d5c72c29903813eJake Slack _threadPool = null; 47103928aee4356845252ac6b662d5c72c29903813eJake Slack } 47203928aee4356845252ac6b662d5c72c29903813eJake Slack 47303928aee4356845252ac6b662d5c72c29903813eJake Slack removeBean(_connector); 47403928aee4356845252ac6b662d5c72c29903813eJake Slack } 47503928aee4356845252ac6b662d5c72c29903813eJake Slack 47603928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 47703928aee4356845252ac6b662d5c72c29903813eJake Slack interface Connector extends LifeCycle 47803928aee4356845252ac6b662d5c72c29903813eJake Slack { 47903928aee4356845252ac6b662d5c72c29903813eJake Slack public void startConnection(HttpDestination destination) throws IOException; 48003928aee4356845252ac6b662d5c72c29903813eJake Slack } 48103928aee4356845252ac6b662d5c72c29903813eJake Slack 48203928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 48303928aee4356845252ac6b662d5c72c29903813eJake Slack /** 48403928aee4356845252ac6b662d5c72c29903813eJake Slack * if a keystore location has been provided then client will attempt to use it as the keystore, 48503928aee4356845252ac6b662d5c72c29903813eJake Slack * otherwise we simply ignore certificates and run with a loose ssl context. 48603928aee4356845252ac6b662d5c72c29903813eJake Slack * 48703928aee4356845252ac6b662d5c72c29903813eJake Slack * @return the SSL context 48803928aee4356845252ac6b662d5c72c29903813eJake Slack */ 48903928aee4356845252ac6b662d5c72c29903813eJake Slack protected SSLContext getSSLContext() 49003928aee4356845252ac6b662d5c72c29903813eJake Slack { 49103928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory.getSslContext(); 49203928aee4356845252ac6b662d5c72c29903813eJake Slack } 49303928aee4356845252ac6b662d5c72c29903813eJake Slack 49403928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 49503928aee4356845252ac6b662d5c72c29903813eJake Slack /** 49603928aee4356845252ac6b662d5c72c29903813eJake Slack * @return the instance of SslContextFactory associated with the client 49703928aee4356845252ac6b662d5c72c29903813eJake Slack */ 49803928aee4356845252ac6b662d5c72c29903813eJake Slack public SslContextFactory getSslContextFactory() 49903928aee4356845252ac6b662d5c72c29903813eJake Slack { 50003928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory; 50103928aee4356845252ac6b662d5c72c29903813eJake Slack } 50203928aee4356845252ac6b662d5c72c29903813eJake Slack 50303928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 50403928aee4356845252ac6b662d5c72c29903813eJake Slack /** 50503928aee4356845252ac6b662d5c72c29903813eJake Slack * @return the period in milliseconds a {@link AbstractHttpConnection} can be idle for before it is closed. 50603928aee4356845252ac6b662d5c72c29903813eJake Slack */ 50703928aee4356845252ac6b662d5c72c29903813eJake Slack public long getIdleTimeout() 50803928aee4356845252ac6b662d5c72c29903813eJake Slack { 50903928aee4356845252ac6b662d5c72c29903813eJake Slack return _idleTimeout; 51003928aee4356845252ac6b662d5c72c29903813eJake Slack } 51103928aee4356845252ac6b662d5c72c29903813eJake Slack 51203928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 51303928aee4356845252ac6b662d5c72c29903813eJake Slack /** 51403928aee4356845252ac6b662d5c72c29903813eJake Slack * @param ms the period in milliseconds a {@link AbstractHttpConnection} can be idle for before it is closed. 51503928aee4356845252ac6b662d5c72c29903813eJake Slack */ 51603928aee4356845252ac6b662d5c72c29903813eJake Slack public void setIdleTimeout(long ms) 51703928aee4356845252ac6b662d5c72c29903813eJake Slack { 51803928aee4356845252ac6b662d5c72c29903813eJake Slack _idleTimeout = ms; 51903928aee4356845252ac6b662d5c72c29903813eJake Slack } 52003928aee4356845252ac6b662d5c72c29903813eJake Slack 52103928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 52203928aee4356845252ac6b662d5c72c29903813eJake Slack /** 52303928aee4356845252ac6b662d5c72c29903813eJake Slack * @return the period in ms that an exchange will wait for a response from the server. 52403928aee4356845252ac6b662d5c72c29903813eJake Slack * @deprecated use {@link #getTimeout()} instead. 52503928aee4356845252ac6b662d5c72c29903813eJake Slack */ 52603928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 52703928aee4356845252ac6b662d5c72c29903813eJake Slack public int getSoTimeout() 52803928aee4356845252ac6b662d5c72c29903813eJake Slack { 52903928aee4356845252ac6b662d5c72c29903813eJake Slack return Long.valueOf(getTimeout()).intValue(); 53003928aee4356845252ac6b662d5c72c29903813eJake Slack } 53103928aee4356845252ac6b662d5c72c29903813eJake Slack 53203928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 53303928aee4356845252ac6b662d5c72c29903813eJake Slack /** 53403928aee4356845252ac6b662d5c72c29903813eJake Slack * @deprecated use {@link #setTimeout(long)} instead. 53503928aee4356845252ac6b662d5c72c29903813eJake Slack * @param timeout the period in ms that an exchange will wait for a response from the server. 53603928aee4356845252ac6b662d5c72c29903813eJake Slack */ 53703928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 53803928aee4356845252ac6b662d5c72c29903813eJake Slack public void setSoTimeout(int timeout) 53903928aee4356845252ac6b662d5c72c29903813eJake Slack { 54003928aee4356845252ac6b662d5c72c29903813eJake Slack setTimeout(timeout); 54103928aee4356845252ac6b662d5c72c29903813eJake Slack } 54203928aee4356845252ac6b662d5c72c29903813eJake Slack 54303928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 54403928aee4356845252ac6b662d5c72c29903813eJake Slack /** 54503928aee4356845252ac6b662d5c72c29903813eJake Slack * @return the period in ms that an exchange will wait for a response from the server. 54603928aee4356845252ac6b662d5c72c29903813eJake Slack */ 54703928aee4356845252ac6b662d5c72c29903813eJake Slack public long getTimeout() 54803928aee4356845252ac6b662d5c72c29903813eJake Slack { 54903928aee4356845252ac6b662d5c72c29903813eJake Slack return _timeout; 55003928aee4356845252ac6b662d5c72c29903813eJake Slack } 55103928aee4356845252ac6b662d5c72c29903813eJake Slack 55203928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 55303928aee4356845252ac6b662d5c72c29903813eJake Slack /** 55403928aee4356845252ac6b662d5c72c29903813eJake Slack * @param timeout the period in ms that an exchange will wait for a response from the server. 55503928aee4356845252ac6b662d5c72c29903813eJake Slack */ 55603928aee4356845252ac6b662d5c72c29903813eJake Slack public void setTimeout(long timeout) 55703928aee4356845252ac6b662d5c72c29903813eJake Slack { 55803928aee4356845252ac6b662d5c72c29903813eJake Slack _timeout = timeout; 55903928aee4356845252ac6b662d5c72c29903813eJake Slack } 56003928aee4356845252ac6b662d5c72c29903813eJake Slack 56103928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 56203928aee4356845252ac6b662d5c72c29903813eJake Slack /** 56303928aee4356845252ac6b662d5c72c29903813eJake Slack * @return the period in ms before timing out an attempt to connect 56403928aee4356845252ac6b662d5c72c29903813eJake Slack */ 56503928aee4356845252ac6b662d5c72c29903813eJake Slack public int getConnectTimeout() 56603928aee4356845252ac6b662d5c72c29903813eJake Slack { 56703928aee4356845252ac6b662d5c72c29903813eJake Slack return _connectTimeout; 56803928aee4356845252ac6b662d5c72c29903813eJake Slack } 56903928aee4356845252ac6b662d5c72c29903813eJake Slack 57003928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 57103928aee4356845252ac6b662d5c72c29903813eJake Slack /** 57203928aee4356845252ac6b662d5c72c29903813eJake Slack * @param connectTimeout the period in ms before timing out an attempt to connect 57303928aee4356845252ac6b662d5c72c29903813eJake Slack */ 57403928aee4356845252ac6b662d5c72c29903813eJake Slack public void setConnectTimeout(int connectTimeout) 57503928aee4356845252ac6b662d5c72c29903813eJake Slack { 57603928aee4356845252ac6b662d5c72c29903813eJake Slack this._connectTimeout = connectTimeout; 57703928aee4356845252ac6b662d5c72c29903813eJake Slack } 57803928aee4356845252ac6b662d5c72c29903813eJake Slack 57903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 58003928aee4356845252ac6b662d5c72c29903813eJake Slack public Address getProxy() 58103928aee4356845252ac6b662d5c72c29903813eJake Slack { 58203928aee4356845252ac6b662d5c72c29903813eJake Slack return _proxy; 58303928aee4356845252ac6b662d5c72c29903813eJake Slack } 58403928aee4356845252ac6b662d5c72c29903813eJake Slack 58503928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 58603928aee4356845252ac6b662d5c72c29903813eJake Slack public void setProxy(Address proxy) 58703928aee4356845252ac6b662d5c72c29903813eJake Slack { 58803928aee4356845252ac6b662d5c72c29903813eJake Slack this._proxy = proxy; 58903928aee4356845252ac6b662d5c72c29903813eJake Slack } 59003928aee4356845252ac6b662d5c72c29903813eJake Slack 59103928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 59203928aee4356845252ac6b662d5c72c29903813eJake Slack public Authentication getProxyAuthentication() 59303928aee4356845252ac6b662d5c72c29903813eJake Slack { 59403928aee4356845252ac6b662d5c72c29903813eJake Slack return _proxyAuthentication; 59503928aee4356845252ac6b662d5c72c29903813eJake Slack } 59603928aee4356845252ac6b662d5c72c29903813eJake Slack 59703928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 59803928aee4356845252ac6b662d5c72c29903813eJake Slack public void setProxyAuthentication(Authentication authentication) 59903928aee4356845252ac6b662d5c72c29903813eJake Slack { 60003928aee4356845252ac6b662d5c72c29903813eJake Slack _proxyAuthentication = authentication; 60103928aee4356845252ac6b662d5c72c29903813eJake Slack } 60203928aee4356845252ac6b662d5c72c29903813eJake Slack 60303928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 60403928aee4356845252ac6b662d5c72c29903813eJake Slack public boolean isProxied() 60503928aee4356845252ac6b662d5c72c29903813eJake Slack { 60603928aee4356845252ac6b662d5c72c29903813eJake Slack return this._proxy != null; 60703928aee4356845252ac6b662d5c72c29903813eJake Slack } 60803928aee4356845252ac6b662d5c72c29903813eJake Slack 60903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 61003928aee4356845252ac6b662d5c72c29903813eJake Slack public Set<String> getNoProxy() 61103928aee4356845252ac6b662d5c72c29903813eJake Slack { 61203928aee4356845252ac6b662d5c72c29903813eJake Slack return _noProxy; 61303928aee4356845252ac6b662d5c72c29903813eJake Slack } 61403928aee4356845252ac6b662d5c72c29903813eJake Slack 61503928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 61603928aee4356845252ac6b662d5c72c29903813eJake Slack public void setNoProxy(Set<String> noProxyAddresses) 61703928aee4356845252ac6b662d5c72c29903813eJake Slack { 61803928aee4356845252ac6b662d5c72c29903813eJake Slack _noProxy = noProxyAddresses; 61903928aee4356845252ac6b662d5c72c29903813eJake Slack } 62003928aee4356845252ac6b662d5c72c29903813eJake Slack 62103928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 62203928aee4356845252ac6b662d5c72c29903813eJake Slack public int maxRetries() 62303928aee4356845252ac6b662d5c72c29903813eJake Slack { 62403928aee4356845252ac6b662d5c72c29903813eJake Slack return _maxRetries; 62503928aee4356845252ac6b662d5c72c29903813eJake Slack } 62603928aee4356845252ac6b662d5c72c29903813eJake Slack 62703928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 62803928aee4356845252ac6b662d5c72c29903813eJake Slack public void setMaxRetries(int retries) 62903928aee4356845252ac6b662d5c72c29903813eJake Slack { 63003928aee4356845252ac6b662d5c72c29903813eJake Slack _maxRetries = retries; 63103928aee4356845252ac6b662d5c72c29903813eJake Slack } 63203928aee4356845252ac6b662d5c72c29903813eJake Slack 63303928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 63403928aee4356845252ac6b662d5c72c29903813eJake Slack public int maxRedirects() 63503928aee4356845252ac6b662d5c72c29903813eJake Slack { 63603928aee4356845252ac6b662d5c72c29903813eJake Slack return _maxRedirects; 63703928aee4356845252ac6b662d5c72c29903813eJake Slack } 63803928aee4356845252ac6b662d5c72c29903813eJake Slack 63903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 64003928aee4356845252ac6b662d5c72c29903813eJake Slack public void setMaxRedirects(int redirects) 64103928aee4356845252ac6b662d5c72c29903813eJake Slack { 64203928aee4356845252ac6b662d5c72c29903813eJake Slack _maxRedirects = redirects; 64303928aee4356845252ac6b662d5c72c29903813eJake Slack } 64403928aee4356845252ac6b662d5c72c29903813eJake Slack 64503928aee4356845252ac6b662d5c72c29903813eJake Slack public int getRequestBufferSize() 64603928aee4356845252ac6b662d5c72c29903813eJake Slack { 64703928aee4356845252ac6b662d5c72c29903813eJake Slack return _buffers.getRequestBufferSize(); 64803928aee4356845252ac6b662d5c72c29903813eJake Slack } 64903928aee4356845252ac6b662d5c72c29903813eJake Slack 65003928aee4356845252ac6b662d5c72c29903813eJake Slack public void setRequestBufferSize(int requestBufferSize) 65103928aee4356845252ac6b662d5c72c29903813eJake Slack { 65203928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setRequestBufferSize(requestBufferSize); 65303928aee4356845252ac6b662d5c72c29903813eJake Slack } 65403928aee4356845252ac6b662d5c72c29903813eJake Slack 65503928aee4356845252ac6b662d5c72c29903813eJake Slack public int getRequestHeaderSize() 65603928aee4356845252ac6b662d5c72c29903813eJake Slack { 65703928aee4356845252ac6b662d5c72c29903813eJake Slack return _buffers.getRequestHeaderSize(); 65803928aee4356845252ac6b662d5c72c29903813eJake Slack } 65903928aee4356845252ac6b662d5c72c29903813eJake Slack 66003928aee4356845252ac6b662d5c72c29903813eJake Slack public void setRequestHeaderSize(int requestHeaderSize) 66103928aee4356845252ac6b662d5c72c29903813eJake Slack { 66203928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setRequestHeaderSize(requestHeaderSize); 66303928aee4356845252ac6b662d5c72c29903813eJake Slack } 66403928aee4356845252ac6b662d5c72c29903813eJake Slack 66503928aee4356845252ac6b662d5c72c29903813eJake Slack public int getResponseBufferSize() 66603928aee4356845252ac6b662d5c72c29903813eJake Slack { 66703928aee4356845252ac6b662d5c72c29903813eJake Slack return _buffers.getResponseBufferSize(); 66803928aee4356845252ac6b662d5c72c29903813eJake Slack } 66903928aee4356845252ac6b662d5c72c29903813eJake Slack 67003928aee4356845252ac6b662d5c72c29903813eJake Slack public void setResponseBufferSize(int responseBufferSize) 67103928aee4356845252ac6b662d5c72c29903813eJake Slack { 67203928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setResponseBufferSize(responseBufferSize); 67303928aee4356845252ac6b662d5c72c29903813eJake Slack } 67403928aee4356845252ac6b662d5c72c29903813eJake Slack 67503928aee4356845252ac6b662d5c72c29903813eJake Slack public int getResponseHeaderSize() 67603928aee4356845252ac6b662d5c72c29903813eJake Slack { 67703928aee4356845252ac6b662d5c72c29903813eJake Slack return _buffers.getResponseHeaderSize(); 67803928aee4356845252ac6b662d5c72c29903813eJake Slack } 67903928aee4356845252ac6b662d5c72c29903813eJake Slack 68003928aee4356845252ac6b662d5c72c29903813eJake Slack public void setResponseHeaderSize(int responseHeaderSize) 68103928aee4356845252ac6b662d5c72c29903813eJake Slack { 68203928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setResponseHeaderSize(responseHeaderSize); 68303928aee4356845252ac6b662d5c72c29903813eJake Slack } 68403928aee4356845252ac6b662d5c72c29903813eJake Slack 68503928aee4356845252ac6b662d5c72c29903813eJake Slack public Type getRequestBufferType() 68603928aee4356845252ac6b662d5c72c29903813eJake Slack { 68703928aee4356845252ac6b662d5c72c29903813eJake Slack return _buffers.getRequestBufferType(); 68803928aee4356845252ac6b662d5c72c29903813eJake Slack } 68903928aee4356845252ac6b662d5c72c29903813eJake Slack 69003928aee4356845252ac6b662d5c72c29903813eJake Slack public Type getRequestHeaderType() 69103928aee4356845252ac6b662d5c72c29903813eJake Slack { 69203928aee4356845252ac6b662d5c72c29903813eJake Slack return _buffers.getRequestHeaderType(); 69303928aee4356845252ac6b662d5c72c29903813eJake Slack } 69403928aee4356845252ac6b662d5c72c29903813eJake Slack 69503928aee4356845252ac6b662d5c72c29903813eJake Slack public Type getResponseBufferType() 69603928aee4356845252ac6b662d5c72c29903813eJake Slack { 69703928aee4356845252ac6b662d5c72c29903813eJake Slack return _buffers.getResponseBufferType(); 69803928aee4356845252ac6b662d5c72c29903813eJake Slack } 69903928aee4356845252ac6b662d5c72c29903813eJake Slack 70003928aee4356845252ac6b662d5c72c29903813eJake Slack public Type getResponseHeaderType() 70103928aee4356845252ac6b662d5c72c29903813eJake Slack { 70203928aee4356845252ac6b662d5c72c29903813eJake Slack return _buffers.getResponseHeaderType(); 70303928aee4356845252ac6b662d5c72c29903813eJake Slack } 70403928aee4356845252ac6b662d5c72c29903813eJake Slack 70503928aee4356845252ac6b662d5c72c29903813eJake Slack public void setRequestBuffers(Buffers requestBuffers) 70603928aee4356845252ac6b662d5c72c29903813eJake Slack { 70703928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setRequestBuffers(requestBuffers); 70803928aee4356845252ac6b662d5c72c29903813eJake Slack } 70903928aee4356845252ac6b662d5c72c29903813eJake Slack 71003928aee4356845252ac6b662d5c72c29903813eJake Slack public void setResponseBuffers(Buffers responseBuffers) 71103928aee4356845252ac6b662d5c72c29903813eJake Slack { 71203928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setResponseBuffers(responseBuffers); 71303928aee4356845252ac6b662d5c72c29903813eJake Slack } 71403928aee4356845252ac6b662d5c72c29903813eJake Slack 71503928aee4356845252ac6b662d5c72c29903813eJake Slack public Buffers getRequestBuffers() 71603928aee4356845252ac6b662d5c72c29903813eJake Slack { 71703928aee4356845252ac6b662d5c72c29903813eJake Slack return _buffers.getRequestBuffers(); 71803928aee4356845252ac6b662d5c72c29903813eJake Slack } 71903928aee4356845252ac6b662d5c72c29903813eJake Slack 72003928aee4356845252ac6b662d5c72c29903813eJake Slack public Buffers getResponseBuffers() 72103928aee4356845252ac6b662d5c72c29903813eJake Slack { 72203928aee4356845252ac6b662d5c72c29903813eJake Slack return _buffers.getResponseBuffers(); 72303928aee4356845252ac6b662d5c72c29903813eJake Slack } 72403928aee4356845252ac6b662d5c72c29903813eJake Slack 72503928aee4356845252ac6b662d5c72c29903813eJake Slack public void setMaxBuffers(int maxBuffers) 72603928aee4356845252ac6b662d5c72c29903813eJake Slack { 72703928aee4356845252ac6b662d5c72c29903813eJake Slack _buffers.setMaxBuffers(maxBuffers); 72803928aee4356845252ac6b662d5c72c29903813eJake Slack } 72903928aee4356845252ac6b662d5c72c29903813eJake Slack 73003928aee4356845252ac6b662d5c72c29903813eJake Slack public int getMaxBuffers() 73103928aee4356845252ac6b662d5c72c29903813eJake Slack { 73203928aee4356845252ac6b662d5c72c29903813eJake Slack return _buffers.getMaxBuffers(); 73303928aee4356845252ac6b662d5c72c29903813eJake Slack } 73403928aee4356845252ac6b662d5c72c29903813eJake Slack 73503928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 73603928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 73703928aee4356845252ac6b662d5c72c29903813eJake Slack public String getTrustStoreLocation() 73803928aee4356845252ac6b662d5c72c29903813eJake Slack { 73903928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory.getTrustStore(); 74003928aee4356845252ac6b662d5c72c29903813eJake Slack } 74103928aee4356845252ac6b662d5c72c29903813eJake Slack 74203928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 74303928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 74403928aee4356845252ac6b662d5c72c29903813eJake Slack public void setTrustStoreLocation(String trustStoreLocation) 74503928aee4356845252ac6b662d5c72c29903813eJake Slack { 74603928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setTrustStore(trustStoreLocation); 74703928aee4356845252ac6b662d5c72c29903813eJake Slack } 74803928aee4356845252ac6b662d5c72c29903813eJake Slack 74903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 75003928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 75103928aee4356845252ac6b662d5c72c29903813eJake Slack public InputStream getTrustStoreInputStream() 75203928aee4356845252ac6b662d5c72c29903813eJake Slack { 75303928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory.getTrustStoreInputStream(); 75403928aee4356845252ac6b662d5c72c29903813eJake Slack } 75503928aee4356845252ac6b662d5c72c29903813eJake Slack 75603928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 75703928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 75803928aee4356845252ac6b662d5c72c29903813eJake Slack public void setTrustStoreInputStream(InputStream trustStoreInputStream) 75903928aee4356845252ac6b662d5c72c29903813eJake Slack { 76003928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setTrustStoreInputStream(trustStoreInputStream); 76103928aee4356845252ac6b662d5c72c29903813eJake Slack } 76203928aee4356845252ac6b662d5c72c29903813eJake Slack 76303928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 76403928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 76503928aee4356845252ac6b662d5c72c29903813eJake Slack public String getKeyStoreLocation() 76603928aee4356845252ac6b662d5c72c29903813eJake Slack { 76703928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory.getKeyStorePath(); 76803928aee4356845252ac6b662d5c72c29903813eJake Slack } 76903928aee4356845252ac6b662d5c72c29903813eJake Slack 77003928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 77103928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 77203928aee4356845252ac6b662d5c72c29903813eJake Slack public void setKeyStoreLocation(String keyStoreLocation) 77303928aee4356845252ac6b662d5c72c29903813eJake Slack { 77403928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setKeyStorePath(keyStoreLocation); 77503928aee4356845252ac6b662d5c72c29903813eJake Slack } 77603928aee4356845252ac6b662d5c72c29903813eJake Slack 77703928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 77803928aee4356845252ac6b662d5c72c29903813eJake Slack public InputStream getKeyStoreInputStream() 77903928aee4356845252ac6b662d5c72c29903813eJake Slack { 78003928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory.getKeyStoreInputStream(); 78103928aee4356845252ac6b662d5c72c29903813eJake Slack } 78203928aee4356845252ac6b662d5c72c29903813eJake Slack 78303928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 78403928aee4356845252ac6b662d5c72c29903813eJake Slack public void setKeyStoreInputStream(InputStream keyStoreInputStream) 78503928aee4356845252ac6b662d5c72c29903813eJake Slack { 78603928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setKeyStoreInputStream(keyStoreInputStream); 78703928aee4356845252ac6b662d5c72c29903813eJake Slack } 78803928aee4356845252ac6b662d5c72c29903813eJake Slack 78903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 79003928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 79103928aee4356845252ac6b662d5c72c29903813eJake Slack public void setKeyStorePassword(String keyStorePassword) 79203928aee4356845252ac6b662d5c72c29903813eJake Slack { 79303928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setKeyStorePassword(keyStorePassword); 79403928aee4356845252ac6b662d5c72c29903813eJake Slack } 79503928aee4356845252ac6b662d5c72c29903813eJake Slack 79603928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 79703928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 79803928aee4356845252ac6b662d5c72c29903813eJake Slack public void setKeyManagerPassword(String keyManagerPassword) 79903928aee4356845252ac6b662d5c72c29903813eJake Slack { 80003928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setKeyManagerPassword(keyManagerPassword); 80103928aee4356845252ac6b662d5c72c29903813eJake Slack } 80203928aee4356845252ac6b662d5c72c29903813eJake Slack 80303928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 80403928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 80503928aee4356845252ac6b662d5c72c29903813eJake Slack public void setTrustStorePassword(String trustStorePassword) 80603928aee4356845252ac6b662d5c72c29903813eJake Slack { 80703928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setTrustStorePassword(trustStorePassword); 80803928aee4356845252ac6b662d5c72c29903813eJake Slack } 80903928aee4356845252ac6b662d5c72c29903813eJake Slack 81003928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 81103928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 81203928aee4356845252ac6b662d5c72c29903813eJake Slack public String getKeyStoreType() 81303928aee4356845252ac6b662d5c72c29903813eJake Slack { 81403928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory.getKeyStoreType(); 81503928aee4356845252ac6b662d5c72c29903813eJake Slack } 81603928aee4356845252ac6b662d5c72c29903813eJake Slack 81703928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 81803928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 81903928aee4356845252ac6b662d5c72c29903813eJake Slack public void setKeyStoreType(String keyStoreType) 82003928aee4356845252ac6b662d5c72c29903813eJake Slack { 82103928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setKeyStoreType(keyStoreType); 82203928aee4356845252ac6b662d5c72c29903813eJake Slack } 82303928aee4356845252ac6b662d5c72c29903813eJake Slack 82403928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 82503928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 82603928aee4356845252ac6b662d5c72c29903813eJake Slack public String getTrustStoreType() 82703928aee4356845252ac6b662d5c72c29903813eJake Slack { 82803928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory.getTrustStoreType(); 82903928aee4356845252ac6b662d5c72c29903813eJake Slack } 83003928aee4356845252ac6b662d5c72c29903813eJake Slack 83103928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 83203928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 83303928aee4356845252ac6b662d5c72c29903813eJake Slack public void setTrustStoreType(String trustStoreType) 83403928aee4356845252ac6b662d5c72c29903813eJake Slack { 83503928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setTrustStoreType(trustStoreType); 83603928aee4356845252ac6b662d5c72c29903813eJake Slack } 83703928aee4356845252ac6b662d5c72c29903813eJake Slack 83803928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 83903928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 84003928aee4356845252ac6b662d5c72c29903813eJake Slack public String getKeyManagerAlgorithm() 84103928aee4356845252ac6b662d5c72c29903813eJake Slack { 84203928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory.getSslKeyManagerFactoryAlgorithm(); 84303928aee4356845252ac6b662d5c72c29903813eJake Slack } 84403928aee4356845252ac6b662d5c72c29903813eJake Slack 84503928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 84603928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 84703928aee4356845252ac6b662d5c72c29903813eJake Slack public void setKeyManagerAlgorithm(String keyManagerAlgorithm) 84803928aee4356845252ac6b662d5c72c29903813eJake Slack { 84903928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setSslKeyManagerFactoryAlgorithm(keyManagerAlgorithm); 85003928aee4356845252ac6b662d5c72c29903813eJake Slack } 85103928aee4356845252ac6b662d5c72c29903813eJake Slack 85203928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 85303928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 85403928aee4356845252ac6b662d5c72c29903813eJake Slack public String getTrustManagerAlgorithm() 85503928aee4356845252ac6b662d5c72c29903813eJake Slack { 85603928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory.getTrustManagerFactoryAlgorithm(); 85703928aee4356845252ac6b662d5c72c29903813eJake Slack } 85803928aee4356845252ac6b662d5c72c29903813eJake Slack 85903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 86003928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 86103928aee4356845252ac6b662d5c72c29903813eJake Slack public void setTrustManagerAlgorithm(String trustManagerAlgorithm) 86203928aee4356845252ac6b662d5c72c29903813eJake Slack { 86303928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setTrustManagerFactoryAlgorithm(trustManagerAlgorithm); 86403928aee4356845252ac6b662d5c72c29903813eJake Slack } 86503928aee4356845252ac6b662d5c72c29903813eJake Slack 86603928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 86703928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 86803928aee4356845252ac6b662d5c72c29903813eJake Slack public String getProtocol() 86903928aee4356845252ac6b662d5c72c29903813eJake Slack { 87003928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory.getProtocol(); 87103928aee4356845252ac6b662d5c72c29903813eJake Slack } 87203928aee4356845252ac6b662d5c72c29903813eJake Slack 87303928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 87403928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 87503928aee4356845252ac6b662d5c72c29903813eJake Slack public void setProtocol(String protocol) 87603928aee4356845252ac6b662d5c72c29903813eJake Slack { 87703928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setProtocol(protocol); 87803928aee4356845252ac6b662d5c72c29903813eJake Slack } 87903928aee4356845252ac6b662d5c72c29903813eJake Slack 88003928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 88103928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 88203928aee4356845252ac6b662d5c72c29903813eJake Slack public String getProvider() 88303928aee4356845252ac6b662d5c72c29903813eJake Slack { 88403928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory.getProvider(); 88503928aee4356845252ac6b662d5c72c29903813eJake Slack } 88603928aee4356845252ac6b662d5c72c29903813eJake Slack 88703928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 88803928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 88903928aee4356845252ac6b662d5c72c29903813eJake Slack public void setProvider(String provider) 89003928aee4356845252ac6b662d5c72c29903813eJake Slack { 89103928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setProvider(provider); 89203928aee4356845252ac6b662d5c72c29903813eJake Slack } 89303928aee4356845252ac6b662d5c72c29903813eJake Slack 89403928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 89503928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 89603928aee4356845252ac6b662d5c72c29903813eJake Slack public String getSecureRandomAlgorithm() 89703928aee4356845252ac6b662d5c72c29903813eJake Slack { 89803928aee4356845252ac6b662d5c72c29903813eJake Slack return _sslContextFactory.getSecureRandomAlgorithm(); 89903928aee4356845252ac6b662d5c72c29903813eJake Slack } 90003928aee4356845252ac6b662d5c72c29903813eJake Slack 90103928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 90203928aee4356845252ac6b662d5c72c29903813eJake Slack @Deprecated 90303928aee4356845252ac6b662d5c72c29903813eJake Slack public void setSecureRandomAlgorithm(String secureRandomAlgorithm) 90403928aee4356845252ac6b662d5c72c29903813eJake Slack { 90503928aee4356845252ac6b662d5c72c29903813eJake Slack _sslContextFactory.setSecureRandomAlgorithm(secureRandomAlgorithm); 90603928aee4356845252ac6b662d5c72c29903813eJake Slack } 90703928aee4356845252ac6b662d5c72c29903813eJake Slack 90803928aee4356845252ac6b662d5c72c29903813eJake Slack private static class LocalQueuedThreadPool extends QueuedThreadPool 90903928aee4356845252ac6b662d5c72c29903813eJake Slack { 91003928aee4356845252ac6b662d5c72c29903813eJake Slack } 91103928aee4356845252ac6b662d5c72c29903813eJake Slack} 912