Class ClientHandler

  • All Implemented Interfaces:
    org.apache.http.nio.NHttpClientEventHandler

    public class ClientHandler
    extends Object
    implements org.apache.http.nio.NHttpClientEventHandler
    The client connection handler. An instance of this class is used by each IOReactor, to process every connection. Hence this class should not store any data related to a single connection - as this is being shared.
    • Constructor Detail

      • ClientHandler

        public ClientHandler​(ConnectionPool connpool,
                             ClientConnFactory connFactory,
                             ProxyConfig proxyConfig,
                             org.apache.axis2.context.ConfigurationContext cfgCtx,
                             org.apache.http.params.HttpParams params,
                             NhttpMetricsCollector metrics)
                      throws org.apache.axis2.AxisFault
        Create an instance of this client connection handler using the Axis2 configuration context and Http protocol parameters given
        Parameters:
        cfgCtx - the Axis2 configuration context
        params - the Http protocol parameters to adhere to
        metrics - statistics collection metrics
        Throws:
        org.apache.axis2.AxisFault
    • Method Detail

      • requestReady

        public void requestReady​(org.apache.http.nio.NHttpClientConnection conn)
                          throws IOException,
                                 org.apache.http.HttpException
        Specified by:
        requestReady in interface org.apache.http.nio.NHttpClientEventHandler
        Throws:
        IOException
        org.apache.http.HttpException
      • submitRequest

        public void submitRequest​(org.apache.http.nio.NHttpClientConnection conn,
                                  Axis2HttpRequest axis2Req)
                           throws org.apache.http.ConnectionClosedException
        Submit a new request over an already established connection, which has been 'kept alive'
        Parameters:
        conn - the connection to use to send the request, which has been kept open
        axis2Req - the new request
        Throws:
        org.apache.http.ConnectionClosedException - if the connection is closed by the other party
      • connected

        public void connected​(org.apache.http.nio.NHttpClientConnection conn,
                              Object attachment)
        Invoked when the destination is connected
        Specified by:
        connected in interface org.apache.http.nio.NHttpClientEventHandler
        Parameters:
        conn - the connection being processed
        attachment - the attachment set previously
      • closed

        public void closed​(org.apache.http.nio.NHttpClientConnection conn)
        Handle connection close events
        Specified by:
        closed in interface org.apache.http.nio.NHttpClientEventHandler
        Parameters:
        conn - HTTP connection to be closed
      • timeout

        public void timeout​(org.apache.http.nio.NHttpClientConnection conn)
        Handle connection timeouts by shutting down the connections. These are established that have reached the SO_TIMEOUT of the socket
        Specified by:
        timeout in interface org.apache.http.nio.NHttpClientEventHandler
        Parameters:
        conn - the connection being processed
      • exception

        public void exception​(org.apache.http.nio.NHttpClientConnection conn,
                              org.apache.http.HttpException e)
        Handle Http protocol violations encountered while reading from underlying channels
        Parameters:
        conn - the connection being processed
        e - the exception encountered
      • exception

        public void exception​(org.apache.http.nio.NHttpClientConnection conn,
                              Exception ex)
        Handle IO errors while reading or writing to underlying channels
        Specified by:
        exception in interface org.apache.http.nio.NHttpClientEventHandler
        Parameters:
        conn - the connection being processed
        ex - the exception encountered
      • endOfInput

        public void endOfInput​(org.apache.http.nio.NHttpClientConnection conn)
                        throws IOException
        Specified by:
        endOfInput in interface org.apache.http.nio.NHttpClientEventHandler
        Throws:
        IOException
      • markRequestCompletedWithError

        protected void markRequestCompletedWithError​(Axis2HttpRequest axis2Request,
                                                     int errorCode,
                                                     String errorMessage,
                                                     Exception exceptionToRaise)
        Mark request to send failed with error
        Parameters:
        axis2Request - the Axis2HttpRequest to be marked as completed with an error
        errorCode - the error code to raise
        errorMessage - the text for an error message to be returned to the MR on failure
        exceptionToRaise - an Exception to be returned to the MR on failure
      • inputReady

        public void inputReady​(org.apache.http.nio.NHttpClientConnection conn,
                               org.apache.http.nio.ContentDecoder decoder)
        Process ready input (i.e. response from remote server)
        Specified by:
        inputReady in interface org.apache.http.nio.NHttpClientEventHandler
        Parameters:
        conn - connection being processed
        decoder - the content decoder in use
      • outputReady

        public void outputReady​(org.apache.http.nio.NHttpClientConnection conn,
                                org.apache.http.nio.ContentEncoder encoder)
        Process ready output (i.e. write request to remote server)
        Specified by:
        outputReady in interface org.apache.http.nio.NHttpClientEventHandler
        Parameters:
        conn - the connection being processed
        encoder - the encoder in use
      • responseReceived

        public void responseReceived​(org.apache.http.nio.NHttpClientConnection conn)
        Process a response received for the request sent out
        Specified by:
        responseReceived in interface org.apache.http.nio.NHttpClientEventHandler
        Parameters:
        conn - the connection being processed
      • execute

        public void execute​(Runnable task)
      • getActiveCount

        public int getActiveCount()
      • getQueueSize

        public int getQueueSize()
      • stop

        public void stop()
      • setConnFactory

        public void setConnFactory​(ClientConnFactory connFactory)
        Set the given Client Connection Factory.
        Parameters:
        connFactory - ClientConnectionFactory instance
      • resetConnectionPool

        public void resetConnectionPool​(Set<String> hostList)
        Shutdown the connections of the given host:port list. This will allow to create new connection at the next request happens.
        Parameters:
        hostList - Set of String which contains entries in hots:port format