org.apache.lucene.replicator.http
Class HttpClientBase

java.lang.Object
  extended by org.apache.lucene.replicator.http.HttpClientBase
All Implemented Interfaces:
Closeable
Direct Known Subclasses:
HttpReplicator

public abstract class HttpClientBase
extends Object
implements Closeable

Base class for Http clients.

WARNING: This API is experimental and might change in incompatible ways in the next release.

Field Summary
static int DEFAULT_CONNECTION_TIMEOUT
          Default connection timeout for this client, in milliseconds.
static int DEFAULT_SO_TIMEOUT
          Default socket timeout for this client, in milliseconds.
protected  String url
          The URL stting to execute requests against.
 
Constructor Summary
protected HttpClientBase(String host, int port, String path, org.apache.http.conn.ClientConnectionManager conMgr)
           
 
Method Summary
 void close()
           
protected
<T> T
doAction(org.apache.http.HttpResponse response, boolean consume, Callable<T> call)
          Do a specific action and validate after the action that the status is still OK, and if not, attempt to extract the actual server side exception.
protected
<T> T
doAction(org.apache.http.HttpResponse response, Callable<T> call)
          Same as doAction(HttpResponse, boolean, Callable) but always do consume at the end.
protected  void ensureOpen()
          Throws AlreadyClosedException if this client is already closed.
protected  org.apache.http.HttpResponse executeGET(String request, String... params)
          internal: execute a request and return its result The params argument is treated as: name1,value1,name2,value2,...
protected  org.apache.http.HttpResponse executePOST(String request, org.apache.http.HttpEntity entity, String... params)
          internal: execute a request and return its result The params argument is treated as: name1,value1,name2,value2,...
protected  boolean isClosed()
          Returns true iff this instance was closed, otherwise returns false.
 InputStream responseInputStream(org.apache.http.HttpResponse response)
          Internal utility: input stream of the provided response
 InputStream responseInputStream(org.apache.http.HttpResponse response, boolean consume)
          Internal utility: input stream of the provided response, which optionally consumes the response's resources when the input stream is exhausted.
 void setConnectionTimeout(int timeout)
          Set the connection timeout for this client, in milliseconds.
 void setSoTimeout(int timeout)
          Set the socket timeout for this client, in milliseconds.
protected  void throwKnownError(org.apache.http.HttpResponse response, org.apache.http.StatusLine statusLine)
           
protected  void verifyStatus(org.apache.http.HttpResponse response)
          Internal: response status after invocation, and in case or error attempt to read the exception sent by the server.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_CONNECTION_TIMEOUT

public static final int DEFAULT_CONNECTION_TIMEOUT
Default connection timeout for this client, in milliseconds.

See Also:
setConnectionTimeout(int), Constant Field Values

DEFAULT_SO_TIMEOUT

public static final int DEFAULT_SO_TIMEOUT
Default socket timeout for this client, in milliseconds.

See Also:
setSoTimeout(int), Constant Field Values

url

protected final String url
The URL stting to execute requests against.

Constructor Detail

HttpClientBase

protected HttpClientBase(String host,
                         int port,
                         String path,
                         org.apache.http.conn.ClientConnectionManager conMgr)
Parameters:
conMgr - connection manager to use for this http client. NOTE:The provided ClientConnectionManager will not be ClientConnectionManager.shutdown() by this class.
Method Detail

setConnectionTimeout

public void setConnectionTimeout(int timeout)
Set the connection timeout for this client, in milliseconds. This setting is used to modify HttpConnectionParams.setConnectionTimeout(org.apache.http.params.HttpParams, int).

Parameters:
timeout - timeout to set, in millisecopnds

setSoTimeout

public void setSoTimeout(int timeout)
Set the socket timeout for this client, in milliseconds. This setting is used to modify HttpConnectionParams.setSoTimeout(org.apache.http.params.HttpParams, int).

Parameters:
timeout - timeout to set, in millisecopnds

ensureOpen

protected final void ensureOpen()
                         throws AlreadyClosedException
Throws AlreadyClosedException if this client is already closed.

Throws:
AlreadyClosedException

verifyStatus

protected void verifyStatus(org.apache.http.HttpResponse response)
                     throws IOException
Internal: response status after invocation, and in case or error attempt to read the exception sent by the server.

Throws:
IOException

throwKnownError

protected void throwKnownError(org.apache.http.HttpResponse response,
                               org.apache.http.StatusLine statusLine)
                        throws IOException
Throws:
IOException

executePOST

protected org.apache.http.HttpResponse executePOST(String request,
                                                   org.apache.http.HttpEntity entity,
                                                   String... params)
                                            throws IOException
internal: execute a request and return its result The params argument is treated as: name1,value1,name2,value2,...

Throws:
IOException

executeGET

protected org.apache.http.HttpResponse executeGET(String request,
                                                  String... params)
                                           throws IOException
internal: execute a request and return its result The params argument is treated as: name1,value1,name2,value2,...

Throws:
IOException

responseInputStream

public InputStream responseInputStream(org.apache.http.HttpResponse response)
                                throws IOException
Internal utility: input stream of the provided response

Throws:
IOException

responseInputStream

public InputStream responseInputStream(org.apache.http.HttpResponse response,
                                       boolean consume)
                                throws IOException
Internal utility: input stream of the provided response, which optionally consumes the response's resources when the input stream is exhausted.

Throws:
IOException

isClosed

protected final boolean isClosed()
Returns true iff this instance was closed, otherwise returns false. Note that if you override close(), you must call super.close(), in order for this instance to be properly closed.


doAction

protected <T> T doAction(org.apache.http.HttpResponse response,
                         Callable<T> call)
              throws IOException
Same as doAction(HttpResponse, boolean, Callable) but always do consume at the end.

Throws:
IOException

doAction

protected <T> T doAction(org.apache.http.HttpResponse response,
                         boolean consume,
                         Callable<T> call)
              throws IOException
Do a specific action and validate after the action that the status is still OK, and if not, attempt to extract the actual server side exception. Optionally release the response at exit, depending on consume parameter.

Throws:
IOException

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Throws:
IOException


Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.