org.jboss.remoting.transport.multiplex
Class MultiplexClientInvoker

java.lang.Object
  extended byorg.jboss.remoting.AbstractInvoker
      extended byorg.jboss.remoting.MicroRemoteClientInvoker
          extended byorg.jboss.remoting.RemoteClientInvoker
              extended byorg.jboss.remoting.transport.socket.MicroSocketClientInvoker
                  extended byorg.jboss.remoting.transport.socket.SocketClientInvoker
                      extended byorg.jboss.remoting.transport.multiplex.MultiplexClientInvoker
All Implemented Interfaces:
BidirectionalClientInvoker, ClientInvoker, Invoker
Direct Known Subclasses:
SSLMultiplexClientInvoker

public class MultiplexClientInvoker
extends SocketClientInvoker
implements BidirectionalClientInvoker

MultiplexClientInvoker is the client side of the Multiplex transport. For more information, see Remoting documentation on labs.jboss.org.

Author:
Tom Elrod, Ron Sigal

Field Summary
protected  java.lang.String clientSocketClassName
           
 
Fields inherited from class org.jboss.remoting.transport.socket.SocketClientInvoker
SO_TIMEOUT_DEFAULT, SO_TIMEOUT_FLAG, timeout
 
Fields inherited from class org.jboss.remoting.transport.socket.MicroSocketClientInvoker
addr, address, CLIENT_SOCKET_CLASS_FLAG, clientSocketClass, connectionPools, deserializeTime, enableTcpNoDelay, getSocketTime, MAX_CALL_RETRIES, MAX_POOL_SIZE, MAX_POOL_SIZE_FLAG, MAX_RETRIES, maxPoolSize, numberOfCallRetries, numberOfRetries, pool, port, readTime, serializeTime, shouldCheckConnection, TCP_NODELAY_DEFAULT, TCP_NODELAY_FLAG, usedPooled, usedPoolLock, writeTime
 
Fields inherited from class org.jboss.remoting.MicroRemoteClientInvoker
connected
 
Fields inherited from class org.jboss.remoting.AbstractInvoker
classbyteloader, configuration, localServerLocators, locator, log, serializationType, socketFactory, socketFactoryCreatedFromSSLParameters
 
Constructor Summary
MultiplexClientInvoker(InvokerLocator locator)
          Create a new MultiplexClientInvoker.
MultiplexClientInvoker(InvokerLocator locator, java.util.Map configuration)
          Create a new MultiplexClientInvoker.
 
Method Summary
protected  void configureSocketGroupParameters(java.util.Map parameters)
           
protected  java.net.Socket createSocket(java.lang.String address, int port)
           
 void finishStart()
          Finishes the start up process, once adequate bind and connect information is made available.
protected  java.net.InetSocketAddress getBindSocketAddress()
           
 InvokerLocator getCallbackLocator(java.util.Map metadata)
          Gets the locator to be used for callbacks when want do not want to establish a new physical connectiong from the server to the client.
protected  java.net.InetSocketAddress getConnectSocketAddress()
           
protected  java.lang.String getDefaultDataType()
          Each implementation of the remote client invoker should have a default data type that is uses in the case it is not specified in the invoker locator uri.
protected  void handleConnect()
          subclasses must implement this method to provide a hook to connect to the remote server, if this applies to the specific transport.
protected  void handleDisconnect()
          subclasses must implement this method to provide a hook to disconnect from the remote server, if this applies to the specific transport.
protected  java.lang.Object transport(java.lang.String sessionId, java.lang.Object invocation, java.util.Map metadata, Marshaller marshaller, UnMarshaller unmarshaller)
           
 
Methods inherited from class org.jboss.remoting.transport.socket.SocketClientInvoker
configureParameters, createClientSocket, createServerAddress, getPooledConnection, getTimeout, handleException
 
Methods inherited from class org.jboss.remoting.transport.socket.MicroSocketClientInvoker
checkingConnection, clearPool, clearPools, finalize, flushConnectionPool, getConnection, getNumberOfCallRetries, getNumberOfRetries, getReuseAddress, getServerHostName, initPool, setNumberOfCallRetries, setNumberOfRetries, setReuseAddress, setup
 
Methods inherited from class org.jboss.remoting.MicroRemoteClientInvoker
connect, disconnect, getMarshaller, getUnMarshaller, invoke, isConnected, postProcess, preProcess, setMarshaller, setUnMarshaller
 
Methods inherited from class org.jboss.remoting.AbstractInvoker
addClientLocator, createSocketFactory, getClassLoader, getClientLocator, getLocator, getSerializationType, getSocketFactory, isSocketFactoryCreatedFromSSLParameters, needsCustomSSLConfiguration, setClassLoader, setSerializationType, setSocketFactory
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jboss.remoting.transport.ClientInvoker
addClientLocator, connect, disconnect, getClientLocator, getMarshaller, getSocketFactory, getUnMarshaller, invoke, isConnected, setMarshaller, setSocketFactory, setUnMarshaller
 
Methods inherited from interface org.jboss.remoting.Invoker
getLocator
 

Field Detail

clientSocketClassName

protected java.lang.String clientSocketClassName
Constructor Detail

MultiplexClientInvoker

public MultiplexClientInvoker(InvokerLocator locator)
                       throws java.io.IOException
Create a new MultiplexClientInvoker.

Parameters:
locator -

MultiplexClientInvoker

public MultiplexClientInvoker(InvokerLocator locator,
                              java.util.Map configuration)
                       throws java.io.IOException
Create a new MultiplexClientInvoker.

Parameters:
locator -
Method Detail

handleConnect

protected void handleConnect()
                      throws ConnectionFailedException
Description copied from class: MicroRemoteClientInvoker
subclasses must implement this method to provide a hook to connect to the remote server, if this applies to the specific transport. However, in some transport implementations, this may not make must difference since the connection is not persistent among invocations, such as SOAP. In these cases, the method should silently return without any processing.

Overrides:
handleConnect in class MicroSocketClientInvoker
Throws:
ConnectionFailedException

finishStart

public void finishStart()
                 throws java.io.IOException
Finishes the start up process, once adequate bind and connect information is made available. For more information, see the Multiplex subsystem documentation at labs.jboss.org.

Throws:
java.io.IOException

getCallbackLocator

public InvokerLocator getCallbackLocator(java.util.Map metadata)
Description copied from interface: BidirectionalClientInvoker
Gets the locator to be used for callbacks when want do not want to establish a new physical connectiong from the server to the client.

Specified by:
getCallbackLocator in interface BidirectionalClientInvoker
Parameters:
metadata -
Returns:

configureSocketGroupParameters

protected void configureSocketGroupParameters(java.util.Map parameters)
                                       throws java.io.IOException
Parameters:
parameters -
Throws:
java.io.IOException

transport

protected java.lang.Object transport(java.lang.String sessionId,
                                     java.lang.Object invocation,
                                     java.util.Map metadata,
                                     Marshaller marshaller,
                                     UnMarshaller unmarshaller)
                              throws java.io.IOException,
                                     ConnectionFailedException,
                                     java.lang.ClassNotFoundException
Overrides:
transport in class MicroSocketClientInvoker
Parameters:
sessionId -
invocation -
marshaller -
Returns:
Throws:
java.io.IOException
ConnectionFailedException
java.lang.ClassNotFoundException

handleDisconnect

protected void handleDisconnect()
subclasses must implement this method to provide a hook to disconnect from the remote server, if this applies to the specific transport. However, in some transport implementations, this may not make must difference since the connection is not persistent among invocations, such as SOAP. In these cases, the method should silently return without any processing.

Overrides:
handleDisconnect in class MicroSocketClientInvoker

getBindSocketAddress

protected java.net.InetSocketAddress getBindSocketAddress()
Returns:

getConnectSocketAddress

protected java.net.InetSocketAddress getConnectSocketAddress()
Returns:

getDefaultDataType

protected java.lang.String getDefaultDataType()
Each implementation of the remote client invoker should have a default data type that is uses in the case it is not specified in the invoker locator uri.

Overrides:
getDefaultDataType in class MicroSocketClientInvoker
Returns:

createSocket

protected java.net.Socket createSocket(java.lang.String address,
                                       int port)
                                throws java.io.IOException
Overrides:
createSocket in class SocketClientInvoker
Throws:
java.io.IOException


Copyright © 1998-2005 JBoss Inc . All Rights Reserved.