org.apache.synapse.transport.base
Class AbstractTransportListener

java.lang.Object
  extended by org.apache.synapse.transport.base.AbstractTransportListener
All Implemented Interfaces:
TransportListener
Direct Known Subclasses:
AbstractDatagramTransportListener, AbstractPollingTransportListener, AMQPListener, FIXTransportListener, JMSListener

public abstract class AbstractTransportListener
extends Object
implements TransportListener


Field Summary
protected  ConfigurationContext cfgCtx
          the axis2 configuration context
protected  AxisEngine engine
          an axis2 engine over the above configuration context to process messages
protected  boolean isNonBlocking
          is this transport non-blocking?
protected  org.apache.commons.logging.Log log
          the reference to the actual commons logger to be used for log messages
protected  MetricsCollector metrics
          Metrics collector for this transport
protected  int state
          state of the listener
protected  String transportName
          the name of the transport
protected  boolean useAxis2ThreadPool
          use the thread pool available in the axis2 configuration context
protected  WorkerPool workerPool
          the thread pool to execute actual poll invocations
 
Fields inherited from interface org.apache.axis2.transport.TransportListener
HOST_ADDRESS, PARAM_PORT
 
Constructor Summary
protected AbstractTransportListener()
          A constructor that makes subclasses pick up the correct logger
 
Method Summary
 MessageContext createMessageContext()
          Create a new axis MessageContext for an incoming message through this transport
 void destroy()
           
 void disableTransportForService(AxisService service)
           
 int getActiveThreadCount()
          Returns the number of active threads processing messages
 long getBytesReceived()
           
 long getBytesSent()
           
 EndpointReference getEPRForService(String serviceName, String ip)
          This is a deprecated method in Axis2 and this default implementation returns the first result from the getEPRsForService() method
 long getFaultsReceiving()
           
 long getFaultsSending()
           
 long getMessagesReceived()
           
 long getMessagesSent()
           
 MetricsCollector getMetricsCollector()
           
 int getQueueSize()
          Return the number of requests queued in the thread pool
 SessionContext getSessionContext(MessageContext messageContext)
           
 String getTransportName()
           
protected  void handleException(String msg, Exception e)
           
 void handleIncomingMessage(MessageContext msgCtx, Map trpHeaders, String soapAction, String contentType)
          Process a new incoming message through the axis engine
 void init(ConfigurationContext cfgCtx, TransportInDescription transportIn)
          Initialize the generic transport.
protected  void logException(String msg, Exception e)
           
 void maintenenceShutdown(long millis)
          Stop processing new messages, and wait the specified maximum time for in-flight requests to complete before a controlled shutdown for maintenence
 void pause()
          Pause the listener - Stop accepting/processing new messages, but continues processing existing messages until they complete.
 void resume()
          Resume the lister - Brings the lister into active mode back from a paused state
 void setTransportName(String transportName)
           
 void start()
           
protected abstract  void startListeningForService(AxisService service)
           
 void stop()
           
protected abstract  void stopListeningForService(AxisService service)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.axis2.transport.TransportListener
getEPRsForService
 

Field Detail

log

protected org.apache.commons.logging.Log log
the reference to the actual commons logger to be used for log messages


transportName

protected String transportName
the name of the transport


cfgCtx

protected ConfigurationContext cfgCtx
the axis2 configuration context


engine

protected AxisEngine engine
an axis2 engine over the above configuration context to process messages


state

protected int state
state of the listener


isNonBlocking

protected boolean isNonBlocking
is this transport non-blocking?


workerPool

protected WorkerPool workerPool
the thread pool to execute actual poll invocations


useAxis2ThreadPool

protected boolean useAxis2ThreadPool
use the thread pool available in the axis2 configuration context


metrics

protected MetricsCollector metrics
Metrics collector for this transport

Constructor Detail

AbstractTransportListener

protected AbstractTransportListener()
A constructor that makes subclasses pick up the correct logger

Method Detail

init

public void init(ConfigurationContext cfgCtx,
                 TransportInDescription transportIn)
          throws AxisFault
Initialize the generic transport. Sets up the transport and the thread pool to be used for message processing. Also creates an AxisObserver that gets notified of service life cycle events for the transport to act on

Specified by:
init in interface TransportListener
Parameters:
cfgCtx - the axis configuration context
transportIn - the transport-in description
Throws:
AxisFault - on error

destroy

public void destroy()
Specified by:
destroy in interface TransportListener

stop

public void stop()
          throws AxisFault
Specified by:
stop in interface TransportListener
Throws:
AxisFault

start

public void start()
           throws AxisFault
Specified by:
start in interface TransportListener
Throws:
AxisFault

disableTransportForService

public void disableTransportForService(AxisService service)

startListeningForService

protected abstract void startListeningForService(AxisService service)

stopListeningForService

protected abstract void stopListeningForService(AxisService service)

getEPRForService

public EndpointReference getEPRForService(String serviceName,
                                          String ip)
                                   throws AxisFault
This is a deprecated method in Axis2 and this default implementation returns the first result from the getEPRsForService() method

Specified by:
getEPRForService in interface TransportListener
Throws:
AxisFault

getSessionContext

public SessionContext getSessionContext(MessageContext messageContext)
Specified by:
getSessionContext in interface TransportListener

createMessageContext

public MessageContext createMessageContext()
Create a new axis MessageContext for an incoming message through this transport

Returns:
the newly created message context

handleIncomingMessage

public void handleIncomingMessage(MessageContext msgCtx,
                                  Map trpHeaders,
                                  String soapAction,
                                  String contentType)
                           throws AxisFault
Process a new incoming message through the axis engine

Parameters:
msgCtx - the axis MessageContext
trpHeaders - the map containing transport level message headers
soapAction - the optional soap action or null
contentType - the optional content-type for the message
Throws:
AxisFault

handleException

protected void handleException(String msg,
                               Exception e)
                        throws AxisFault
Throws:
AxisFault

logException

protected void logException(String msg,
                            Exception e)

getTransportName

public String getTransportName()

setTransportName

public void setTransportName(String transportName)

getMetricsCollector

public MetricsCollector getMetricsCollector()

pause

public void pause()
           throws AxisFault
Pause the listener - Stop accepting/processing new messages, but continues processing existing messages until they complete. This helps bring an instance into a maintenence mode

Throws:
AxisFault - on error

resume

public void resume()
            throws AxisFault
Resume the lister - Brings the lister into active mode back from a paused state

Throws:
AxisFault - on error

maintenenceShutdown

public void maintenenceShutdown(long millis)
                         throws AxisFault
Stop processing new messages, and wait the specified maximum time for in-flight requests to complete before a controlled shutdown for maintenence

Parameters:
millis - a number of milliseconds to wait until pending requests are allowed to complete
Throws:
AxisFault - on error

getActiveThreadCount

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

Returns:
number of active threads processing messages

getQueueSize

public int getQueueSize()
Return the number of requests queued in the thread pool

Returns:
queue size

getMessagesReceived

public long getMessagesReceived()

getFaultsReceiving

public long getFaultsReceiving()

getBytesReceived

public long getBytesReceived()

getMessagesSent

public long getMessagesSent()

getFaultsSending

public long getFaultsSending()

getBytesSent

public long getBytesSent()


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