org.mule.transport.legstar.tcp
Class LegstarTcpConnector

java.lang.Object
  extended by org.mule.transport.AbstractConnector
      extended by org.mule.transport.tcp.TcpConnector
          extended by org.mule.transport.legstar.tcp.LegstarTcpConnector
All Implemented Interfaces:
EventListener, WorkListener, 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.NameableObject, org.mule.api.NamedObject, org.mule.api.transport.Connectable, org.mule.api.transport.Connector, LegstarConnector

public class LegstarTcpConnector
extends org.mule.transport.tcp.TcpConnector
implements LegstarConnector

LegstarTcpConnector is a mainframe connector over sockets.

This code inherits and borrows from TcpConnector. It allows sockets to be reused with the restriction that each socket is associated with a set of mainframe credentials in addition to the endpoint.


Field Summary
static String LEGSTARTCP
          This constant defines the main transport protocol identifier.
 
Fields inherited from class org.mule.transport.tcp.TcpConnector
CLIENT, DEFAULT_BACKLOG, DEFAULT_BUFFER_SIZE, DEFAULT_SO_LINGER, DEFAULT_SOCKET_TIMEOUT, DEFAULT_WAIT_TIMEOUT, KEEP_SEND_SOCKET_OPEN_PROPERTY, SERVER, TCP
 
Fields inherited from class org.mule.transport.AbstractConnector
createMultipleTransactedReceivers, DEFAULT_NUM_CONCURRENT_TX_RECEIVERS, dispatcherFactory, dispatcherPoolFactory, dispatchers, initialStateStopped, lifecycleManager, logger, muleContext, muleMessageFactory, name, numberOfConcurrentTransactedReceivers, PROPERTY_POLLING_FREQUENCY, receivers, requesterFactory, requesters, serviceDescriptor, serviceOverrides, sessionHandler, startOnConnect
 
Fields inherited from interface org.mule.transport.legstar.LegstarConnector
HOST_CHARSET_PROPERTY, HOST_PASSWORD_PROPERTY, HOST_USERID_PROPERTY
 
Fields inherited from interface org.mule.api.transport.Connector
INT_VALUE_NOT_SET
 
Fields inherited from interface org.mule.api.lifecycle.Disposable
PHASE_NAME
 
Constructor Summary
LegstarTcpConnector(org.mule.api.MuleContext context)
          Overriding the TCP connector in order to substitute the socket factory with our own.
 
Method Summary
 void doDisconnect()
          
 void doDispose()
          
 void doInitialise()
          
 HostCredentials getHostCredentials(org.mule.api.MuleMessage message)
          Credentials can be set at the connector level or passed as properties in incoming messages.
 String getHostPassword()
           
 String getHostUserID()
           
 String getProtocol()
          
protected  Socket getSocket(org.mule.api.MuleEvent event, org.mule.api.endpoint.ImmutableEndpoint endpoint)
          Lookup a socket in the list of dispatcher sockets but don't create a new socket.
 boolean isSyncEnabled(String protocol)
          
protected  void releaseSocket(Socket socket, org.mule.api.MuleEvent event, org.mule.api.endpoint.ImmutableEndpoint endpoint)
          Return the socket to the pool.
 void setHostPassword(String password)
           
 void setHostUserID(String userID)
           
 
Methods inherited from class org.mule.transport.tcp.TcpConnector
configureSocket, doConnect, doStart, doStop, getBacklog, getBufferSize, getClientSoTimeout, getDispatchers, getKeepAliveMonitor, getKeepAliveTimeout, getOutputStream, getReceiveBacklog, getReceiveBufferSize, getSendBufferSize, getServerSocket, getServerSocketFactory, getServerSoTimeout, getSocket, getSocketFactory, getSocketMaxWait, getSocketSoLinger, getSocketsPoolMaxActive, getSocketsPoolMaxIdle, getSocketsPoolMaxWait, getSocketsPoolNumActive, getTcpProtocol, isKeepAlive, isKeepSendSocketOpen, isResponseEnabled, isReuseAddress, isSendTcpNoDelay, setBacklog, setBufferSize, setClientSoTimeout, setDispatcherFactory, setKeepAlive, setKeepAliveTimeout, setKeepSendSocketOpen, setReceiveBacklog, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSendTcpNoDelay, setServerSocketFactory, setServerSoTimeout, setSocketFactory, setSocketMaxWait, setSocketSoLinger, setTcpProtocol, setTimeout
 
Methods inherited from class org.mule.transport.AbstractConnector
clearDispatchers, clearRequesters, configureDispatcherPool, connect, createDefaultRedeliveryPolicy, createDispatcherMessageProcessor, createMuleMessageFactory, createOperationResource, createReceiver, createScheduler, destroyReceiver, disconnect, dispose, disposeReceivers, disposeWorkManagers, doUnregisterListener, fireNotification, getConnectEventId, getConnectionDescription, getDefaultExchangePattern, getDefaultInboundTransformers, getDefaultOutboundTransformers, getDefaultResponseTransformers, getDispatcherFactory, getDispatcherPoolFactory, getDispatcherThreadingProfile, getDispatcherWorkManager, getInboundExchangePatterns, getLifecycleState, getMaxDispatchersActive, getMaxRequestersActive, getMaxTotalDispatchers, getMuleContext, getMuleMessageFactory, getName, getNumberOfConcurrentTransactedReceivers, getOperationResourceFactory, getOutboundExchangePatterns, getOutputStream, getReceiver, getReceiverKey, getReceivers, getReceivers, getReceiverThreadingProfile, getReceiverWorkManager, getReplyToHandler, getRequesterFactory, getRequesterThreadingProfile, getRequesterWorkManager, getRetryPolicyTemplate, getScheduler, getServiceDescriptor, getServiceOverrides, getSessionHandler, getSupportedProtocols, getTransactionalResource, handleWorkException, initFromServiceDescriptor, initialise, initialiseFromUrl, initWorkManagers, isConnected, isConnecting, isCreateMultipleTransactedReceivers, isDisposed, isEnableMessageEvents, isInitialised, isInitialStateStopped, isStarted, isStarting, isStopped, isStopping, isValidateConnections, lookupReceiver, registerListener, registerSupportedMetaProtocol, registerSupportedProtocol, registerSupportedProtocolWithoutPrefix, request, request, setConnected, setConnecting, setCreateMultipleTransactedReceivers, setDispatcherPoolFactory, setDispatcherPoolMaxWait, setDispatcherPoolWhenExhaustedAction, setDispatcherThreadingProfile, setDynamicNotification, setInitialStateStopped, setMaxDispatchersActive, setMaxRequestersActive, setName, setNumberOfConcurrentTransactedReceivers, setReceiverThreadingProfile, setRequesterFactory, setRequesterPoolMaxWait, setRequesterPoolWhenExhaustedAction, setRequesterThreadingProfile, setRetryPolicyTemplate, setServiceOverrides, setSessionHandler, setSupportedProtocols, setupDispatchReturn, setupRequestReturn, setValidateConnections, shutdownScheduler, start, startAfterConnect, stop, supportsProtocol, toString, unregisterListener, unregisterSupportedProtocol, updateCachedNotificationHandler, validateConnection, workAccepted, workCompleted, workRejected, workStarted
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LEGSTARTCP

public static final String LEGSTARTCP
This constant defines the main transport protocol identifier.

See Also:
Constant Field Values
Constructor Detail

LegstarTcpConnector

public LegstarTcpConnector(org.mule.api.MuleContext context)
Overriding the TCP connector in order to substitute the socket factory with our own. We also have our own protocol.

Parameters:
context - the Mule context.
Method Detail

doInitialise

public void doInitialise()
                  throws org.mule.api.lifecycle.InitialisationException

Overrides:
doInitialise in class org.mule.transport.tcp.TcpConnector
Throws:
org.mule.api.lifecycle.InitialisationException

doDisconnect

public void doDisconnect()
                  throws Exception

Overrides:
doDisconnect in class org.mule.transport.tcp.TcpConnector
Throws:
Exception

doDispose

public void doDispose()

Overrides:
doDispose in class org.mule.transport.tcp.TcpConnector

getProtocol

public String getProtocol()

Specified by:
getProtocol in interface org.mule.api.transport.Connector
Overrides:
getProtocol in class org.mule.transport.tcp.TcpConnector

isSyncEnabled

public boolean isSyncEnabled(String protocol)


getSocket

protected Socket getSocket(org.mule.api.MuleEvent event,
                           org.mule.api.endpoint.ImmutableEndpoint endpoint)
                    throws Exception
Lookup a socket in the list of dispatcher sockets but don't create a new socket.

This code is almost identical to TcpConnector#getSocket but there are no other way we can substitute our own socket key.

Parameters:
event - the mule event that triggered the need for a socket
endpoint - the mule endpoint
Returns:
a socket
Throws:
Exception - if socket cannot be retrieved

releaseSocket

protected void releaseSocket(Socket socket,
                             org.mule.api.MuleEvent event,
                             org.mule.api.endpoint.ImmutableEndpoint endpoint)
                      throws Exception
Return the socket to the pool.

Parameters:
socket - socket to return
event - triggering event
Throws:
Exception - if unable to return

getHostCredentials

public HostCredentials getHostCredentials(org.mule.api.MuleMessage message)
Credentials can be set at the connector level or passed as properties in incoming messages.

The dynamic credentials passed in message properties take precedence over any connector property.

Specified by:
getHostCredentials in interface LegstarConnector
Parameters:
message - the incoming mule message
Returns:
a set of host credentials

getHostUserID

public String getHostUserID()
Specified by:
getHostUserID in interface LegstarConnector
Returns:
the host user ID

getHostPassword

public String getHostPassword()
Specified by:
getHostPassword in interface LegstarConnector
Returns:
the host Password

setHostUserID

public void setHostUserID(String userID)
Specified by:
setHostUserID in interface LegstarConnector
Parameters:
userID - the host user ID to set

setHostPassword

public void setHostPassword(String password)
Specified by:
setHostPassword in interface LegstarConnector
Parameters:
password - the host Password to set


Copyright © 2013 LegSem. All Rights Reserved.