org.mule.transport.legstar.tcp
Class LegstarTcpMessageDispatcher

java.lang.Object
  extended by org.mule.transport.AbstractTransportMessageHandler
      extended by org.mule.transport.AbstractMessageDispatcher
          extended by org.mule.transport.tcp.TcpMessageDispatcher
              extended by org.mule.transport.legstar.tcp.LegstarTcpMessageDispatcher
All Implemented Interfaces:
org.mule.api.lifecycle.Disposable, org.mule.api.lifecycle.Initialisable, org.mule.api.lifecycle.Lifecycle, org.mule.api.lifecycle.LifecycleStateEnabled, org.mule.api.lifecycle.Startable, org.mule.api.lifecycle.Stoppable, org.mule.api.processor.MessageProcessor, org.mule.api.transport.Connectable, org.mule.api.transport.MessageDispatcher

public class LegstarTcpMessageDispatcher
extends org.mule.transport.tcp.TcpMessageDispatcher

LegstarTcpMessageDispatcher sends requests to the mainframe over sockets.


Field Summary
 
Fields inherited from class org.mule.transport.AbstractMessageDispatcher
defaultOutboundTransformers, defaultResponseTransformers
 
Fields inherited from class org.mule.transport.AbstractTransportMessageHandler
connected, endpoint, lifecycleManager, logger, muleMessageFactory, retryTemplate
 
Fields inherited from interface org.mule.api.transport.MessageDispatcher
RECEIVE_NO_WAIT, RECEIVE_WAIT_INDEFINITELY
 
Fields inherited from interface org.mule.api.lifecycle.Initialisable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Startable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Stoppable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Disposable
PHASE_NAME
 
Constructor Summary
LegstarTcpMessageDispatcher(org.mule.api.endpoint.OutboundEndpoint endpoint)
          Constructor.
 
Method Summary
 void doDispatch(org.mule.api.MuleEvent event)
           We don't support asynchronous calls.
 org.mule.api.MuleMessage doSend(org.mule.api.MuleEvent event)
           We duplicate parts of TcpDispatcher#doSend because the socket pool key must contain the host credentials.
 LegstarTcpConnector getConnector()
           
protected  Object receiveFromSocket(Socket socket, org.mule.api.MuleEvent event)
          Borrowed from TcpMessageDispatcher.receiveFromSocket(Socket, int, ImmutableEndpoint).
 org.mule.api.retry.RetryContext validateConnection(org.mule.api.retry.RetryContext retryContext)
           Overriding TcpMessageDispatcher.validateConnection(RetryContext) because we can't connect to the mainframe without an actual Mule event.
 
Methods inherited from class org.mule.transport.tcp.TcpMessageDispatcher
doConnect, doDisconnect, doDispose, receiveFromSocket
 
Methods inherited from class org.mule.transport.AbstractMessageDispatcher
applyOutboundTransformers, applyResponseTransformers, createLifecycleManager, getDispatcherName, getEndpoint, getWorkManager, process, returnResponse, returnResponse
 
Methods inherited from class org.mule.transport.AbstractTransportMessageHandler
activate, connect, connectHandler, createMuleMessage, createMuleMessage, createMuleMessage, createMuleMessageFactory, createNullMuleMessage, disconnect, dispose, disposeAndLogException, doInitialise, doStart, doStartHandler, doStop, getConnectEventId, getConnectionDescription, getLifecycleState, initialise, initializeMessageFactory, initializeRetryPolicy, isConnected, isDoThreading, isStarted, isStarting, isStopped, isStopping, passivate, setEndpoint, start, stop, toString, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.mule.api.transport.MessageDispatcher
activate, createMuleMessage, createMuleMessage, passivate, validate
 
Methods inherited from interface org.mule.api.transport.Connectable
connect, disconnect, getConnectionDescription, isConnected
 
Methods inherited from interface org.mule.api.lifecycle.Initialisable
initialise
 
Methods inherited from interface org.mule.api.lifecycle.Startable
start
 
Methods inherited from interface org.mule.api.lifecycle.Stoppable
stop
 
Methods inherited from interface org.mule.api.lifecycle.Disposable
dispose
 
Methods inherited from interface org.mule.api.lifecycle.LifecycleStateEnabled
getLifecycleState
 

Constructor Detail

LegstarTcpMessageDispatcher

public LegstarTcpMessageDispatcher(org.mule.api.endpoint.OutboundEndpoint endpoint)
Constructor.

Parameters:
endpoint - the endpoint to dispatch to
Method Detail

doDispatch

public void doDispatch(org.mule.api.MuleEvent event)
                throws Exception
We don't support asynchronous calls.

Overrides:
doDispatch in class org.mule.transport.tcp.TcpMessageDispatcher
Throws:
Exception

doSend

public org.mule.api.MuleMessage doSend(org.mule.api.MuleEvent event)
                                throws Exception
We duplicate parts of TcpDispatcher#doSend because the socket pool key must contain the host credentials.

Overrides:
doSend in class org.mule.transport.tcp.TcpMessageDispatcher
Throws:
Exception

receiveFromSocket

protected Object receiveFromSocket(Socket socket,
                                   org.mule.api.MuleEvent event)
                            throws IOException
Borrowed from TcpMessageDispatcher.receiveFromSocket(Socket, int, ImmutableEndpoint). We need to call our own implementation of connector.releaseSocket which takes the event as parameter because credentials might be dynamic.

Parameters:
socket - the opened socket
event - the triggering event
Returns:
the data received from the mainframe
Throws:
IOException - if receiving fails

validateConnection

public org.mule.api.retry.RetryContext validateConnection(org.mule.api.retry.RetryContext retryContext)
Overriding TcpMessageDispatcher.validateConnection(RetryContext) because we can't connect to the mainframe without an actual Mule event.

Specified by:
validateConnection in interface org.mule.api.transport.Connectable
Overrides:
validateConnection in class org.mule.transport.tcp.TcpMessageDispatcher

getConnector

public LegstarTcpConnector getConnector()
Specified by:
getConnector in interface org.mule.api.transport.MessageDispatcher
Overrides:
getConnector in class org.mule.transport.AbstractTransportMessageHandler
Returns:
the legstar TCP connector


Copyright © 2013 LegSem. All Rights Reserved.