org.apache.synapse.transport.nhttp
Class HttpCoreNIOSender

java.lang.Object
  extended by org.apache.axis2.handlers.AbstractHandler
      extended by org.apache.synapse.transport.nhttp.HttpCoreNIOSender
All Implemented Interfaces:
Handler, org.apache.axis2.transport.base.ManagementSupport, TransportSender
Direct Known Subclasses:
HttpCoreNIOSSLSender

public class HttpCoreNIOSender
extends AbstractHandler
implements TransportSender, org.apache.axis2.transport.base.ManagementSupport

NIO transport sender for Axis2 based on HttpCore and NIO extensions


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.axis2.engine.Handler
Handler.InvocationResponse
 
Field Summary
 
Fields inherited from class org.apache.axis2.handlers.AbstractHandler
handlerDesc
 
Constructor Summary
HttpCoreNIOSender()
           
 
Method Summary
 void cleanup(MessageContext msgContext)
           
 int getActiveThreadCount()
          Returns the number of active threads processing messages
 double getAvgSizeReceived()
           
 double getAvgSizeSent()
           
 long getBytesReceived()
           
 long getBytesSent()
           
protected  org.apache.http.nio.reactor.IOEventDispatch getEventDispatch(org.apache.http.nio.NHttpClientHandler handler, SSLContext sslContext, org.apache.http.impl.nio.reactor.SSLIOSessionHandler sslIOSessionHandler, org.apache.http.params.HttpParams params, TransportOutDescription trpOut)
          Return the IOEventDispatch implementation to be used.
 long getFaultsReceiving()
           
 long getFaultsSending()
           
 long getLastResetTime()
           
 long getMaxSizeReceived()
           
 long getMaxSizeSent()
           
 long getMessagesReceived()
           
 long getMessagesSent()
           
 long getMetricsWindow()
           
 long getMinSizeReceived()
           
 long getMinSizeSent()
           
 int getQueueSize()
          Returns the number of requestes queued in the thread pool
 Map getResponseCodeTable()
           
protected  SSLContext getSSLContext(TransportOutDescription transportOut)
          Always return null, as this implementation does not support outgoing SSL
protected  org.apache.http.impl.nio.reactor.SSLIOSessionHandler getSSLIOSessionHandler(TransportOutDescription transportOut)
          Create the SSL IO Session handler to be used by this listener
 long getTimeoutsReceiving()
           
 long getTimeoutsSending()
           
 void init(ConfigurationContext cfgCtx, TransportOutDescription transportOut)
          Initialize the transport sender, and execute reactor in new seperate thread
 Handler.InvocationResponse invoke(MessageContext msgContext)
          transport sender invocation from Axis2 core
 void maintenenceShutdown(long millis)
           
 void pause()
           
 void resetStatistics()
           
 void resume()
           
 void stop()
           
 
Methods inherited from class org.apache.axis2.handlers.AbstractHandler
cleanup, flowComplete, getHandlerDesc, getName, getParameter, init, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.axis2.engine.Handler
cleanup, flowComplete, getHandlerDesc, getName, getParameter, init
 

Constructor Detail

HttpCoreNIOSender

public HttpCoreNIOSender()
Method Detail

init

public void init(ConfigurationContext cfgCtx,
                 TransportOutDescription transportOut)
          throws AxisFault
Initialize the transport sender, and execute reactor in new seperate thread

Specified by:
init in interface TransportSender
Parameters:
cfgCtx - the Axis2 configuration context
transportOut - the description of the http/s transport from Axis2 configuration
Throws:
AxisFault - thrown on an error

getEventDispatch

protected org.apache.http.nio.reactor.IOEventDispatch getEventDispatch(org.apache.http.nio.NHttpClientHandler handler,
                                                                       SSLContext sslContext,
                                                                       org.apache.http.impl.nio.reactor.SSLIOSessionHandler sslIOSessionHandler,
                                                                       org.apache.http.params.HttpParams params,
                                                                       TransportOutDescription trpOut)
                                                                throws AxisFault
Return the IOEventDispatch implementation to be used. This is overridden by the SSL sender

Parameters:
handler - The NHTTP client handler instance
sslContext - SSL context used by the sender or null
sslIOSessionHandler - SSL session handler or null
params - HTTP parameters
trpOut - Transport out description
Returns:
an IOEventDispatch instance
Throws:
AxisFault - on error

getSSLContext

protected SSLContext getSSLContext(TransportOutDescription transportOut)
                            throws AxisFault
Always return null, as this implementation does not support outgoing SSL

Parameters:
transportOut - The transport out description
Returns:
null
Throws:
AxisFault - on error

getSSLIOSessionHandler

protected org.apache.http.impl.nio.reactor.SSLIOSessionHandler getSSLIOSessionHandler(TransportOutDescription transportOut)
                                                                               throws AxisFault
Create the SSL IO Session handler to be used by this listener

Parameters:
transportOut - Transport out description
Returns:
always null
Throws:
AxisFault - on error

invoke

public Handler.InvocationResponse invoke(MessageContext msgContext)
                                  throws AxisFault
transport sender invocation from Axis2 core

Specified by:
invoke in interface Handler
Parameters:
msgContext - message to be sent
Returns:
the invocation response (always InvocationResponse.CONTINUE)
Throws:
AxisFault - on error

cleanup

public void cleanup(MessageContext msgContext)
             throws AxisFault
Specified by:
cleanup in interface TransportSender
Throws:
AxisFault

stop

public void stop()
Specified by:
stop in interface TransportSender

pause

public void pause()
           throws AxisFault
Specified by:
pause in interface org.apache.axis2.transport.base.ManagementSupport
Throws:
AxisFault

resume

public void resume()
            throws AxisFault
Specified by:
resume in interface org.apache.axis2.transport.base.ManagementSupport
Throws:
AxisFault

maintenenceShutdown

public void maintenenceShutdown(long millis)
                         throws AxisFault
Specified by:
maintenenceShutdown in interface org.apache.axis2.transport.base.ManagementSupport
Throws:
AxisFault

getActiveThreadCount

public int getActiveThreadCount()
Returns the number of active threads processing messages

Specified by:
getActiveThreadCount in interface org.apache.axis2.transport.base.ManagementSupport
Returns:
number of active threads processing messages

getQueueSize

public int getQueueSize()
Returns the number of requestes queued in the thread pool

Specified by:
getQueueSize in interface org.apache.axis2.transport.base.ManagementSupport
Returns:
queue size

getMessagesReceived

public long getMessagesReceived()
Specified by:
getMessagesReceived in interface org.apache.axis2.transport.base.ManagementSupport

getFaultsReceiving

public long getFaultsReceiving()
Specified by:
getFaultsReceiving in interface org.apache.axis2.transport.base.ManagementSupport

getBytesReceived

public long getBytesReceived()
Specified by:
getBytesReceived in interface org.apache.axis2.transport.base.ManagementSupport

getMessagesSent

public long getMessagesSent()
Specified by:
getMessagesSent in interface org.apache.axis2.transport.base.ManagementSupport

getFaultsSending

public long getFaultsSending()
Specified by:
getFaultsSending in interface org.apache.axis2.transport.base.ManagementSupport

getBytesSent

public long getBytesSent()
Specified by:
getBytesSent in interface org.apache.axis2.transport.base.ManagementSupport

getTimeoutsReceiving

public long getTimeoutsReceiving()
Specified by:
getTimeoutsReceiving in interface org.apache.axis2.transport.base.ManagementSupport

getTimeoutsSending

public long getTimeoutsSending()
Specified by:
getTimeoutsSending in interface org.apache.axis2.transport.base.ManagementSupport

getMinSizeReceived

public long getMinSizeReceived()
Specified by:
getMinSizeReceived in interface org.apache.axis2.transport.base.ManagementSupport

getMaxSizeReceived

public long getMaxSizeReceived()
Specified by:
getMaxSizeReceived in interface org.apache.axis2.transport.base.ManagementSupport

getAvgSizeReceived

public double getAvgSizeReceived()
Specified by:
getAvgSizeReceived in interface org.apache.axis2.transport.base.ManagementSupport

getMinSizeSent

public long getMinSizeSent()
Specified by:
getMinSizeSent in interface org.apache.axis2.transport.base.ManagementSupport

getMaxSizeSent

public long getMaxSizeSent()
Specified by:
getMaxSizeSent in interface org.apache.axis2.transport.base.ManagementSupport

getAvgSizeSent

public double getAvgSizeSent()
Specified by:
getAvgSizeSent in interface org.apache.axis2.transport.base.ManagementSupport

getResponseCodeTable

public Map getResponseCodeTable()
Specified by:
getResponseCodeTable in interface org.apache.axis2.transport.base.ManagementSupport

resetStatistics

public void resetStatistics()
Specified by:
resetStatistics in interface org.apache.axis2.transport.base.ManagementSupport

getLastResetTime

public long getLastResetTime()
Specified by:
getLastResetTime in interface org.apache.axis2.transport.base.ManagementSupport

getMetricsWindow

public long getMetricsWindow()
Specified by:
getMetricsWindow in interface org.apache.axis2.transport.base.ManagementSupport


Copyright © 2005-2012 Apache Software Foundation. All Rights Reserved.