org.jboss.remoting.transport.multiplex
Class MultiplexClientInvoker

java.lang.Object
  extended by org.jboss.remoting.AbstractInvoker
      extended by org.jboss.remoting.MicroRemoteClientInvoker
          extended by org.jboss.remoting.RemoteClientInvoker
              extended by org.jboss.remoting.transport.socket.MicroSocketClientInvoker
                  extended by org.jboss.remoting.transport.socket.SocketClientInvoker
                      extended by org.jboss.remoting.transport.multiplex.MultiplexClientInvoker
All Implemented Interfaces:
Invoker, BidirectionalClientInvoker, ClientInvoker
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

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jboss.remoting.AbstractInvoker
AbstractInvoker.CallbackLocatorHolder
 
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, maxPoolSize, numberOfCallRetries, pool, port, readTime, semaphore, semaphores, serializeTime, shouldCheckConnection, TCP_NODELAY_DEFAULT, TCP_NODELAY_FLAG, usedPoolLock, WRAP_INTERRUPTED_EXCEPTION, wrapInterruptedException, writeTime
 
Fields inherited from class org.jboss.remoting.MicroRemoteClientInvoker
connected
 
Fields inherited from class org.jboss.remoting.AbstractInvoker
classbyteloader, configuration, localServerLocators, locator, passConfigMapToMarshalFactory, 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, int timeout)
           
 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, toString
 
Methods inherited from class org.jboss.remoting.transport.socket.MicroSocketClientInvoker
checkingConnection, clearPool, clearPools, disconnect, finalize, flushConnectionPool, getConnection, getNumberOfAvailableConnections, getNumberOfCallRetries, getNumberOfUsedConnections, getReuseAddress, getServerHostName, initPool, isWrapInterruptedException, setNumberOfCallRetries, setReuseAddress, setup, setWrapInterruptedException
 
Methods inherited from class org.jboss.remoting.RemoteClientInvoker
useAllParams
 
Methods inherited from class org.jboss.remoting.MicroRemoteClientInvoker
connect, establishLease, getLeasePeriod, getLeasePinger, getMarshaller, getSessionId, getUnMarshaller, init, invoke, isConnected, postProcess, preProcess, setMarshaller, setUnMarshaller, terminateLease, terminateLease
 
Methods inherited from class org.jboss.remoting.AbstractInvoker
addClientLocator, createSocketFactory, getClassLoader, getClientLocator, getClientLocators, getConfiguration, getLocator, getSerializationType, getSocketFactory, isCompleteSocketFactory, isSocketFactoryCreatedFromSSLParameters, needsCustomSSLConfiguration, setClassLoader, setSerializationType, setSocketFactory, wrapSocketFactory
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jboss.remoting.transport.ClientInvoker
addClientLocator, connect, disconnect, establishLease, getClientLocator, getClientLocators, getLeasePeriod, getMarshaller, getSocketFactory, getUnMarshaller, invoke, isConnected, setMarshaller, setSocketFactory, setUnMarshaller, terminateLease
 
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 -
Throws:
java.io.IOException

MultiplexClientInvoker

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

Parameters:
locator -
Throws:
java.io.IOException
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
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,
                                       int timeout)
                                throws java.io.IOException
Overrides:
createSocket in class SocketClientInvoker
Throws:
java.io.IOException


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