org.jboss.resteasy.client.jaxrs.engines

## Class ApacheHttpClient4Engine

- java.lang.Object
- - org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine

- All Implemented Interfaces:
    ClientHttpEngine

      public class ApacheHttpClient4Engine
      extends Object
      implements ClientHttpEngine

  Version:
    $Revision: 1 $
  Author:
    Bill Burke

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ApacheHttpClient4Engine.MemoryUnit` Enumeration to represent memory units.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `closed`
    `protected boolean` | `createdHttpClient`
    `protected int` | `fileUploadInMemoryThresholdLimit` For uploading File's over JAX-RS framework, this property, together with `fileUploadMemoryUnit`, defines the maximum File size allowed in memory.
    `protected ApacheHttpClient4Engine.MemoryUnit` | `fileUploadMemoryUnit` The unit for `fileUploadInMemoryThresholdLimit`.
    `protected File` | `fileUploadTempFileDir` Temp directory to write output request stream to.
    `protected HostnameVerifier` | `hostnameVerifier`
    `protected org.apache.http.client.HttpClient` | `httpClient`
    `protected org.apache.http.protocol.HttpContext` | `httpContext`
    `protected int` | `responseBufferSize`
    `protected SSLContext` | `sslContext`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ApacheHttpClient4Engine()`
    `ApacheHttpClient4Engine(org.apache.http.client.HttpClient httpClient)`
    `ApacheHttpClient4Engine(org.apache.http.client.HttpClient httpClient, boolean closeHttpClient)`
    `ApacheHttpClient4Engine(org.apache.http.client.HttpClient httpClient, org.apache.http.protocol.HttpContext httpContext)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected org.apache.http.HttpEntity` | `buildEntity(ClientInvocation request)` Build the HttpEntity to be sent to the Service as part of (POST) request.
    `protected void` | `cleanUpAfterExecute(org.apache.http.client.methods.HttpRequestBase httpMethod)` If passed httpMethod is of type HttpPost then obtain its entity.
    `void` | `close()`
    `protected void` | `commitHeaders(ClientInvocation request, org.apache.http.client.methods.HttpRequestBase httpMethod)`
    `protected InputStream` | `createBufferedStream(InputStream is)`
    `protected org.apache.http.client.methods.HttpRequestBase` | `createHttpMethod(String url, String restVerb)`
    `static CaseInsensitiveMap<String>` | `extractHeaders(org.apache.http.HttpResponse response)`
    `void` | `finalize()`
    `org.apache.http.HttpHost` | `getDefaultProxy()`
    `int` | `getFileUploadInMemoryThresholdLimit()` Based on memory unit
    `ApacheHttpClient4Engine.MemoryUnit` | `getFileUploadMemoryUnit()`
    `File` | `getFileUploadTempFileDir()`
    `HostnameVerifier` | `getHostnameVerifier()` Needed for Client.getHostnameVerifier()
    `org.apache.http.client.HttpClient` | `getHttpClient()`
    `org.apache.http.protocol.HttpContext` | `getHttpContext()`
    `int` | `getResponseBufferSize()` Response stream is wrapped in a BufferedInputStream.
    `SSLContext` | `getSslContext()` Needed for Client.getSslContext();
    `protected String` | `getTempfilePrefix()` Use context information, which will include node name, to avoid conflicts in case of multiple VMS using same temp directory location.
    `ClientResponse` | `invoke(ClientInvocation request)`
    `boolean` | `isClosed()`
    `protected void` | `loadHttpMethod(ClientInvocation request, org.apache.http.client.methods.HttpRequestBase httpMethod)`
    `void` | `setDefaultProxy(org.apache.http.HttpHost defaultProxy)`
    `void` | `setFileUploadInMemoryThresholdLimit(int fileUploadInMemoryThresholdLimit)`
    `void` | `setFileUploadMemoryUnit(ApacheHttpClient4Engine.MemoryUnit fileUploadMemoryUnit)`
    `void` | `setFileUploadTempFileDir(File fileUploadTempFileDir)`
    `void` | `setHostnameVerifier(HostnameVerifier hostnameVerifier)`
    `void` | `setHttpContext(org.apache.http.protocol.HttpContext httpContext)`
    `void` | `setResponseBufferSize(int responseBufferSize)` Response stream is wrapped in a BufferedInputStream.
    `void` | `setSslContext(SSLContext sslContext)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### httpClient

          protected org.apache.http.client.HttpClient httpClient

    - #### createdHttpClient

          protected boolean createdHttpClient

    - #### httpContext

          protected org.apache.http.protocol.HttpContext httpContext

    - #### closed

          protected boolean closed

    - #### sslContext

          protected SSLContext sslContext

    - #### hostnameVerifier

          protected HostnameVerifier hostnameVerifier

    - #### responseBufferSize

          protected int responseBufferSize

    - #### fileUploadInMemoryThresholdLimit

          protected int fileUploadInMemoryThresholdLimit

      For uploading File's over JAX-RS framework, this property, together with `fileUploadMemoryUnit`, defines the maximum File size allowed in memory. If fileSize exceeds this size, it will be stored to `fileUploadTempFileDir`.
      Defaults to 1 MB

    - #### fileUploadMemoryUnit

          protected ApacheHttpClient4Engine.MemoryUnit fileUploadMemoryUnit

      The unit for `fileUploadInMemoryThresholdLimit`.
      Defaults to MB.
      See Also:
        `ApacheHttpClient4Engine.MemoryUnit`

    - #### fileUploadTempFileDir

          protected File fileUploadTempFileDir

      Temp directory to write output request stream to. Any file to be uploaded has to be written out to the output request stream to be sent to the service and when the File is too huge the output request stream is written out to the disk rather than to memory.
      Defaults to JVM temp directory.

  - ### Constructor Detail

    - #### ApacheHttpClient4Engine

          public ApacheHttpClient4Engine()

    - #### ApacheHttpClient4Engine

          public ApacheHttpClient4Engine(org.apache.http.client.HttpClient httpClient)

    - #### ApacheHttpClient4Engine

          public ApacheHttpClient4Engine(org.apache.http.client.HttpClient httpClient,
                                 boolean closeHttpClient)

    - #### ApacheHttpClient4Engine

          public ApacheHttpClient4Engine(org.apache.http.client.HttpClient httpClient,
                                 org.apache.http.protocol.HttpContext httpContext)

  - ### Method Detail

    - #### getResponseBufferSize

          public int getResponseBufferSize()

      Response stream is wrapped in a BufferedInputStream. Default is 8192. Value of 0 will not wrap it. Value of -1 will use a SelfExpandingBufferedInputStream
      Returns:

    - #### setResponseBufferSize

          public void setResponseBufferSize(int responseBufferSize)

      Response stream is wrapped in a BufferedInputStream. Default is 8192. Value of 0 will not wrap it. Value of -1 will use a SelfExpandingBufferedInputStream
      Parameters:
        `responseBufferSize` -

    - #### getFileUploadInMemoryThresholdLimit

          public int getFileUploadInMemoryThresholdLimit()

      Based on memory unit
      Returns:

    - #### setFileUploadInMemoryThresholdLimit

          public void setFileUploadInMemoryThresholdLimit(int fileUploadInMemoryThresholdLimit)

    - #### getFileUploadMemoryUnit

          public ApacheHttpClient4Engine.MemoryUnit getFileUploadMemoryUnit()

    - #### setFileUploadMemoryUnit

          public void setFileUploadMemoryUnit(ApacheHttpClient4Engine.MemoryUnit fileUploadMemoryUnit)

    - #### getFileUploadTempFileDir

          public File getFileUploadTempFileDir()

    - #### setFileUploadTempFileDir

          public void setFileUploadTempFileDir(File fileUploadTempFileDir)

    - #### getHttpClient

          public org.apache.http.client.HttpClient getHttpClient()

    - #### getHttpContext

          public org.apache.http.protocol.HttpContext getHttpContext()

    - #### setHttpContext

          public void setHttpContext(org.apache.http.protocol.HttpContext httpContext)

    - #### getSslContext

          public SSLContext getSslContext()

      Description copied from interface: `ClientHttpEngine`
      Needed for Client.getSslContext();
      Specified by:
        `getSslContext` in interface `ClientHttpEngine`
      Returns:

    - #### setSslContext

          public void setSslContext(SSLContext sslContext)

    - #### getHostnameVerifier

          public HostnameVerifier getHostnameVerifier()

      Description copied from interface: `ClientHttpEngine`
      Needed for Client.getHostnameVerifier()
      Specified by:
        `getHostnameVerifier` in interface `ClientHttpEngine`
      Returns:

    - #### setHostnameVerifier

          public void setHostnameVerifier(HostnameVerifier hostnameVerifier)

    - #### getDefaultProxy

          public org.apache.http.HttpHost getDefaultProxy()

    - #### setDefaultProxy

          public void setDefaultProxy(org.apache.http.HttpHost defaultProxy)

    - #### extractHeaders

          public static CaseInsensitiveMap<String> extractHeaders(org.apache.http.HttpResponse response)

    - #### createBufferedStream

          protected InputStream createBufferedStream(InputStream is)

    - #### invoke

          public ClientResponse invoke(ClientInvocation request)

      Specified by:
        `invoke` in interface `ClientHttpEngine`

    - #### createHttpMethod

          protected org.apache.http.client.methods.HttpRequestBase createHttpMethod(String url,
                                                                        String restVerb)

    - #### loadHttpMethod

          protected void loadHttpMethod(ClientInvocation request,
                            org.apache.http.client.methods.HttpRequestBase httpMethod)
                                 throws Exception

      Throws:
        `Exception`

    - #### commitHeaders

          protected void commitHeaders(ClientInvocation request,
                           org.apache.http.client.methods.HttpRequestBase httpMethod)

    - #### close

          public void close()

      Specified by:
        `close` in interface `ClientHttpEngine`

    - #### isClosed

          public boolean isClosed()

    - #### finalize

          public void finalize()
                        throws Throwable

      Overrides:
        `finalize` in class `Object`
      Throws:
        `Throwable`

    - #### cleanUpAfterExecute

          protected void cleanUpAfterExecute(org.apache.http.client.methods.HttpRequestBase httpMethod)

      If passed httpMethod is of type HttpPost then obtain its entity. If the entity has an enclosing File then delete it by invoking this method after the request has completed. The entity will have an enclosing File only if it was too huge to fit into memory.
      Parameters:
        `httpMethod` - - the httpMethod to clean up.

    - #### buildEntity

          protected org.apache.http.HttpEntity buildEntity(ClientInvocation request)
                                                    throws IOException

      Build the HttpEntity to be sent to the Service as part of (POST) request. Creates a off-memory `FileExposingFileEntity` or a regular in-memory `ByteArrayEntity` depending on if the request OutputStream fit into memory when built by calling.
      Parameters:
        `request` - -
      Returns:
        - the built HttpEntity
      Throws:
        `IOException` - -

    - #### getTempfilePrefix

          protected String getTempfilePrefix()

      Use context information, which will include node name, to avoid conflicts in case of multiple VMS using same temp directory location.
      Returns:
        -

Copyright © 2014. All Rights Reserved.