Class ApacheHTTPSender

java.lang.Object
org.igniterealtime.jbosh.ApacheHTTPSender
All Implemented Interfaces:
HTTPSender

final class ApacheHTTPSender extends Object implements HTTPSender
Implementation of the HTTPSender interface which uses the Apache HttpClient API to send messages to the connection manager.
  • Field Details

    • lock

      private final Lock lock
      Lock used for internal synchronization.
    • cfg

      private BOSHClientConfig cfg
      Session configuration.
    • httpClient

      private org.apache.http.client.HttpClient httpClient
      HttpClient instance to use to communicate.
  • Constructor Details

    • ApacheHTTPSender

      ApacheHTTPSender()
      Prevent construction apart from our package.
  • Method Details

    • init

      public void init(BOSHClientConfig session)
      Initialize the HTTP sender instance for use with the session provided. This method will be called once before use of the service instance.
      Specified by:
      init in interface HTTPSender
      Parameters:
      session - session configuration
    • destroy

      public void destroy()
      Dispose of all resources used to provide the required services. This method will be called once when the service instance is no longer required.
      Specified by:
      destroy in interface HTTPSender
    • send

      public HTTPResponse send(CMSessionParams params, AbstractBody body)
      Create a Callable instance which can be used to send the request specified to the connection manager. This method should return immediately, prior to doing any real work. The invocation of the returned Callable should send the request (if it has not already been sent by the time of the call), block while waiting for the response, and then return the response body.
      Specified by:
      send in interface HTTPSender
      Parameters:
      params - CM session creation resopnse params
      body - request body to send
      Returns:
      callable used to access the response
    • initHttpClient

      private org.apache.http.client.HttpClient initHttpClient(BOSHClientConfig config)