org.jboss.remoting
Class ServerInvoker

java.lang.Object
  extended by org.jboss.remoting.AbstractInvoker
      extended by org.jboss.remoting.ServerInvoker
All Implemented Interfaces:
Invoker, ServerInvokerMBean
Direct Known Subclasses:
LocalServerInvoker, RMIServerInvoker, SocketServerInvoker, WebServerInvoker

public abstract class ServerInvoker
extends AbstractInvoker
implements ServerInvokerMBean

ServerInvoker is the server-side part of a remote Invoker. The ServerInvoker implementation is responsible for calling transport, depending on how the protocol receives the incoming data.

Version:
$Revision: 5261 $
Author:
Jeff Haynie, Tom Elrod, Ovidiu Feodorov

Nested Class Summary
static class ServerInvoker.InvalidStateException
           
 
Nested classes/interfaces inherited from class org.jboss.remoting.AbstractInvoker
AbstractInvoker.CallbackLocatorHolder
 
Field Summary
static java.lang.String BLOCKING
          The value associated with BLOCKING_MODE that indicates that pull callbacks should be obtained in blocking mode;
static java.lang.String BLOCKING_MODE
          The key to be used to determine if pull callbacks should be obtained in blocking or nonblocking mode
static java.lang.String BLOCKING_TIMEOUT
          The key value to use to specify timeout for getting callbacks in blocking mode
protected  java.util.Map callbackHandlers
           
static java.lang.String CLIENT_CONNECT_ADDRESS_KEY
          Key for setting the addres the client invoker should connecto to.
static java.lang.String CLIENT_CONNECT_PORT_KEY
          key for setting the port the client invoker should connect to.
static java.lang.String CLIENT_LEASE_PERIOD
          Key used for setting the amount of time (in milliseconds) that a client should renew its lease.
protected  java.util.Map clientCallbackListener
           
static java.lang.String CONNECTION_LISTENER
           
protected  ConnectionNotifier connectionNotifier
           
static int DEFAULT_BLOCKING_TIMEOUT
          Default timeout for getting callbacks in blocking mode.
static int DEFAULT_CLIENT_LEASE_PERIOD
          The default lease period for clients.
static int DEFAULT_TIMEOUT_PERIOD
          The default timeout period for socket connections.
protected  java.util.Map handlers
           
static java.lang.String INVOKER_SESSION_ID
           
static int MAX_NUM_ONEWAY_THREADS
          The max number of worker threads to be used in the pool for processing one way calls on the server side.
static java.lang.String MAX_NUM_ONEWAY_THREADS_KEY
          Key for the the maximum number of threads to be used in the thread pool for one way invocations (server side).
static java.lang.String MAX_ONEWAY_THREAD_POOL_QUEUE_SIZE
          Key for the configuration map that determines the queue size for waiting asynchronous invocations.
static java.lang.String NONBLOCKING
          The value associated with BLOCKING_MODE that indicates that pull callbacks should be obtained in nonblocking mode;
static java.lang.String ONEWAY_THREAD_POOL_CLASS_KEY
          Key for setting the setting the oneway thread pool to use.
static java.lang.String REGISTER_CALLBACK_LISTENER
          The key to use to specify if ServerInvokerCallbackHandlers should be registered as ConnectionListeners.
protected  boolean registerCallbackListeners
           
static java.lang.String SERVER_BIND_ADDRESS_KEY
          Key for setting the address the server invoker should bind to.
static java.lang.String SERVER_BIND_PORT_KEY
          Key for setting the port the server invoker should bind to.
static java.lang.String SERVER_SOCKET_FACTORY
          Key for setting the value for the server socket factory to be used by the server invoker.
protected  javax.net.ServerSocketFactory serverSocketFactory
           
protected  org.jboss.remoting.ServerInvoker.CallbackContainer singleCallbackContainer
           
protected  ServerInvocationHandler singleHandler
           
protected  boolean started
           
static java.lang.String TIMEOUT
          Key for setting the timeout value (in milliseconds) for socket connections.
protected  boolean useClientConnectionIdentity
           
 
Fields inherited from class org.jboss.remoting.AbstractInvoker
classbyteloader, configuration, localServerLocators, locator, passConfigMapToMarshalFactory, serializationType, socketFactory, socketFactoryCreatedFromSSLParameters
 
Constructor Summary
ServerInvoker(InvokerLocator locator)
           
ServerInvoker(InvokerLocator locator, java.util.Map configuration)
           
 
Method Summary
 void addConnectionListener(ConnectionListener listener)
           
 ServerInvocationHandler addInvocationHandler(java.lang.String subsystem, ServerInvocationHandler handler)
          Add a server invocation handler for a particular subsystem.
protected  int assignPort()
           
 void create()
           
protected  javax.net.ServerSocketFactory createServerSocketFactory()
           
 void destroy()
          Destory the invoker permanently.
protected  ServerInvocationHandler findInvocationHandler(java.lang.String subsystem)
           
 java.lang.String getClientConnectAddress()
           
 int getClientConnectPort()
           
 java.util.Map getConfiguration()
          Gets the server invoker's transport specific configuration.
 ConnectionNotifier getConnectionNotifier()
           
 java.lang.String getDataType()
          Will get the data type for the marshaller factory so know which marshaller to get to marshal the data.
protected abstract  java.lang.String getDefaultDataType()
           
protected  javax.net.ServerSocketFactory getDefaultServerSocketFactory()
          Gets the default server socket factory to use for the server invoker.
 ServerInvocationHandler getInvocationHandler(java.lang.String subsystem)
          Get a ServerInvocationHandler for a given subsystem type.
 ServerInvocationHandler[] getInvocationHandlers()
           
 Lease getLease(java.lang.String sessionId)
           
 long getLeasePeriod()
          Gets the amount of time (in milliseconds) that a client should renew its lease.
 int getMaxNumberOfOnewayThreads()
          Gets the maximum number of thread to be used in the thread pool for one way invocations (server side).
 java.lang.String getMBeanObjectName()
           
 javax.management.MBeanServer getMBeanServer()
           
 org.jboss.util.threadpool.ThreadPool getOnewayThreadPool()
          Gets the oneway thread pool to use.
 java.lang.String getServerBindAddress()
           
 int getServerBindPort()
           
 javax.net.ServerSocketFactory getServerSocketFactory()
           
 java.lang.String[] getSupportedSubsystems()
           
 int getTimeout()
          The timeout (in milliseconds) used for the socket connection.
protected  java.lang.Object handleInternalInvocation(InternalInvocation param, InvocationRequest invocation, ServerInvocationHandler handler)
          Handles both internal and external invocations (internal meaning only to be used within remoting and external for ones that go to handlers.
 boolean hasInvocationHandler(java.lang.String subsystem)
           
 java.lang.Object invoke(InvocationRequest invocation)
          Processes invocation request depending on the invocation type (internal, name based, oneway, etc).
 java.lang.Object invoke(java.lang.Object invoke)
           
 boolean isLeaseActivated()
           
 boolean isRegisterCallbackListeners()
           
 boolean isStarted()
          return true if the server invoker is started, false if not
protected  boolean isUseClientConnectionIdentity()
           
protected  boolean justNeedsSSLClientMode(java.util.Map configuration)
           
protected  void postProcess(java.lang.String sessionId, java.lang.Object param, java.util.Map payload, InvokerLocator locator)
          Called after an invocation.
protected  void preProcess(java.lang.String sessionId, ClassBytes arg, java.util.Map payload, InvokerLocator locator)
          Called prior to an invocation.
 ServerInvokerCallbackHandler removeCallbackHandler(InvocationRequest invocation)
           
 void removeCallbackListener(java.lang.String subsystem, InvokerCallbackHandler callbackHandler)
           
 void removeConnectionListener(ConnectionListener listener)
           
 ServerInvocationHandler removeInvocationHandler(java.lang.String subsystem)
          Remove a subsystem invocation handler.
 void setClientConnectAddress(java.lang.String clientConnectAddress)
          This method should only be called by the service controller when this invoker is specified within the Connector configuration of a service xml.
 void setClientConnectPort(int clientConnectPort)
           
 void setConfiguration(java.util.Map configuration)
          Sets the server invoker's transport specific configuration.
 void setConnectionListener(java.lang.Object listener)
           
 void setLeasePeriod(long leasePeriodValue)
          Sets the amount of time (in milliseconds) that a client should renew its lease.
 void setMaxNumberOfOnewayThreads(int numOfThreads)
          Sets the maximum number of thread to be used in the thread pool for one way invocations (server side).
 void setMBeanServer(javax.management.MBeanServer server)
           
 void setOnewayThreadPool(org.jboss.util.threadpool.ThreadPool pool)
          Sets the oneway thread pool to use.
 void setRegisterCallbackListeners(boolean registerCallbackListeners)
           
 void setServerSocketFactory(javax.net.ServerSocketFactory serverSocketFactory)
           
 void setTimeout(int timeout)
          Sets timeout (in millseconds) to be used for the socket connection.
protected  void setup()
           
protected  void setUseClientConnectionIdentity(boolean useClientConnectionIdentity)
           
 void shutdownCallbackHandler(ServerInvokerCallbackHandler callbackHandler, InvocationRequest invocation)
           
 void start()
          Subclasses should override to provide any specific start logic.
 void stop()
          Subclasses should override to provide any specific stop logic.
protected  javax.net.ServerSocketFactory wrapServerSocketFactory(javax.net.ServerSocketFactory ssf, java.util.Map config)
           
 
Methods inherited from class org.jboss.remoting.AbstractInvoker
addClientLocator, createSocketFactory, getClassLoader, getClientLocator, getClientLocators, getLocator, getSerializationType, getSocketFactory, isCompleteSocketFactory, isSocketFactoryCreatedFromSSLParameters, needsCustomSSLConfiguration, setClassLoader, setSerializationType, setSocketFactory, wrapSocketFactory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jboss.remoting.ServerInvokerMBean
isTransportBiDirectional
 

Field Detail

MAX_NUM_ONEWAY_THREADS_KEY

public static final java.lang.String MAX_NUM_ONEWAY_THREADS_KEY
Key for the the maximum number of threads to be used in the thread pool for one way invocations (server side). This property is only used when the default oneway thread pool is used.

See Also:
Constant Field Values

ONEWAY_THREAD_POOL_CLASS_KEY

public static final java.lang.String ONEWAY_THREAD_POOL_CLASS_KEY
Key for setting the setting the oneway thread pool to use. The value used with this key will first be checked to see if is a JMX ObjectName and if so, try to look up associated mbean for the ObjectName given and cast to type org.jboss.util.threadpool.ThreadPoolMBean (via MBeanServerInvocationHandler.newProxyInstance()). If the value is not a JMX ObjectName, will assume is a fully qualified classname and load the coresponding class and create a new instance of it (which will require it to have a void constructor). The newly created instance will then be cast to type of org.jboss.util.threadpool.ThreadPool.

See Also:
Constant Field Values

SERVER_BIND_ADDRESS_KEY

public static final java.lang.String SERVER_BIND_ADDRESS_KEY
Key for setting the address the server invoker should bind to. The value can be either host name or IP.

See Also:
Constant Field Values

CLIENT_CONNECT_ADDRESS_KEY

public static final java.lang.String CLIENT_CONNECT_ADDRESS_KEY
Key for setting the addres the client invoker should connecto to. This should be used when client will be connecting to server from outside the server's network and the external address is different from that of the internal address the server invoker will bind to (e.g. using NAT to expose different external address). This will mostly be useful when client uses remoting detection to discover remoting servers. The value can be either host name or IP.

See Also:
Constant Field Values

SERVER_BIND_PORT_KEY

public static final java.lang.String SERVER_BIND_PORT_KEY
Key for setting the port the server invoker should bind to. If the value supplied is less than or equal to zero, the server invoker will randomly choose a free port to use.

See Also:
Constant Field Values

CLIENT_CONNECT_PORT_KEY

public static final java.lang.String CLIENT_CONNECT_PORT_KEY
key for setting the port the client invoker should connect to. This should be used when client will be connecting to server from outside the server's network and the external port is different from that of the internal port the server invoker will bind to (e.g. using NAT to expose different port routing). This will be mostly useful when client uses remoting detection to discover remoting servers.

See Also:
Constant Field Values

CLIENT_LEASE_PERIOD

public static final java.lang.String CLIENT_LEASE_PERIOD
Key used for setting the amount of time (in milliseconds) that a client should renew its lease. If this value is not set, the default of five seconds (see DEFAULT_CLIENT_LEASE_PERIOD), will be used. This value will also be what is given to the client when it initially querys server for leasing information.

See Also:
Constant Field Values

TIMEOUT

public static final java.lang.String TIMEOUT
Key for setting the timeout value (in milliseconds) for socket connections.

See Also:
Constant Field Values

SERVER_SOCKET_FACTORY

public static final java.lang.String SERVER_SOCKET_FACTORY
Key for setting the value for the server socket factory to be used by the server invoker. The value can be either a JMX Object name, in which case will lookup the mbean and create a proxy to it with type of org.jboss.remoting.security.ServerSocketFactoryMBean (via MBeanServerInvocationHandler.newProxyInstance()). If not a JMX ObjectName, will assume is the fully qualified classname to the implementation to be used and will load the class, create a new instance of it (which requires it to have a void constructor). The instance will then be cast to type javax.net.ServerSocketFactory.

See Also:
Constant Field Values

MAX_NUM_ONEWAY_THREADS

public static final int MAX_NUM_ONEWAY_THREADS
The max number of worker threads to be used in the pool for processing one way calls on the server side. Value is is 100.

See Also:
Constant Field Values

MAX_ONEWAY_THREAD_POOL_QUEUE_SIZE

public static final java.lang.String MAX_ONEWAY_THREAD_POOL_QUEUE_SIZE
Key for the configuration map that determines the queue size for waiting asynchronous invocations.

See Also:
Constant Field Values

DEFAULT_CLIENT_LEASE_PERIOD

public static final int DEFAULT_CLIENT_LEASE_PERIOD
The default lease period for clients. This is the number of milliseconds that a client will be required to renew their lease with the server. The default value is 5 seconds.

See Also:
Constant Field Values

DEFAULT_TIMEOUT_PERIOD

public static final int DEFAULT_TIMEOUT_PERIOD
The default timeout period for socket connections. The default value is 60000 milliseconds.

See Also:
Constant Field Values

BLOCKING_MODE

public static final java.lang.String BLOCKING_MODE
The key to be used to determine if pull callbacks should be obtained in blocking or nonblocking mode

See Also:
Constant Field Values

BLOCKING_TIMEOUT

public static final java.lang.String BLOCKING_TIMEOUT
The key value to use to specify timeout for getting callbacks in blocking mode

See Also:
Constant Field Values

BLOCKING

public static final java.lang.String BLOCKING
The value associated with BLOCKING_MODE that indicates that pull callbacks should be obtained in blocking mode;

See Also:
Constant Field Values

NONBLOCKING

public static final java.lang.String NONBLOCKING
The value associated with BLOCKING_MODE that indicates that pull callbacks should be obtained in nonblocking mode;

See Also:
Constant Field Values

DEFAULT_BLOCKING_TIMEOUT

public static final int DEFAULT_BLOCKING_TIMEOUT
Default timeout for getting callbacks in blocking mode. Default is 5000 milliseconds.

See Also:
Constant Field Values

REGISTER_CALLBACK_LISTENER

public static final java.lang.String REGISTER_CALLBACK_LISTENER
The key to use to specify if ServerInvokerCallbackHandlers should be registered as ConnectionListeners.

See Also:
Constant Field Values

INVOKER_SESSION_ID

public static final java.lang.String INVOKER_SESSION_ID
See Also:
Constant Field Values

CONNECTION_LISTENER

public static final java.lang.String CONNECTION_LISTENER
See Also:
Constant Field Values

handlers

protected java.util.Map handlers

singleHandler

protected volatile ServerInvocationHandler singleHandler

singleCallbackContainer

protected volatile org.jboss.remoting.ServerInvoker.CallbackContainer singleCallbackContainer

callbackHandlers

protected java.util.Map callbackHandlers

clientCallbackListener

protected java.util.Map clientCallbackListener

started

protected boolean started

connectionNotifier

protected ConnectionNotifier connectionNotifier

serverSocketFactory

protected javax.net.ServerSocketFactory serverSocketFactory

registerCallbackListeners

protected boolean registerCallbackListeners

useClientConnectionIdentity

protected boolean useClientConnectionIdentity
Constructor Detail

ServerInvoker

public ServerInvoker(InvokerLocator locator)

ServerInvoker

public ServerInvoker(InvokerLocator locator,
                     java.util.Map configuration)
Method Detail

setServerSocketFactory

public void setServerSocketFactory(javax.net.ServerSocketFactory serverSocketFactory)

getServerSocketFactory

public javax.net.ServerSocketFactory getServerSocketFactory()

setTimeout

public void setTimeout(int timeout)
Sets timeout (in millseconds) to be used for the socket connection.

Specified by:
setTimeout in interface ServerInvokerMBean

getTimeout

public int getTimeout()
The timeout (in milliseconds) used for the socket connection.

Specified by:
getTimeout in interface ServerInvokerMBean

getConnectionNotifier

public ConnectionNotifier getConnectionNotifier()

isLeaseActivated

public boolean isLeaseActivated()

addConnectionListener

public void addConnectionListener(ConnectionListener listener)

setConnectionListener

public void setConnectionListener(java.lang.Object listener)

removeConnectionListener

public void removeConnectionListener(ConnectionListener listener)

setLeasePeriod

public void setLeasePeriod(long leasePeriodValue)
Sets the amount of time (in milliseconds) that a client should renew its lease. If this value is not set, the default of five seconds (see DEFAULT_CLIENT_LEASE_PERIOD), will be used. This value will also be what is given to the client when it initially querys server for leasing information. If set after create() method called, this value will override value set by CLIENT_LEASE_PERIOD key.


getLease

public Lease getLease(java.lang.String sessionId)

getLeasePeriod

public long getLeasePeriod()
Gets the amount of time (in milliseconds) that a client should renew its lease.


getClientConnectAddress

public java.lang.String getClientConnectAddress()
Specified by:
getClientConnectAddress in interface ServerInvokerMBean

getClientConnectPort

public int getClientConnectPort()
Specified by:
getClientConnectPort in interface ServerInvokerMBean

setClientConnectPort

public void setClientConnectPort(int clientConnectPort)
Specified by:
setClientConnectPort in interface ServerInvokerMBean

setClientConnectAddress

public void setClientConnectAddress(java.lang.String clientConnectAddress)
This method should only be called by the service controller when this invoker is specified within the Connector configuration of a service xml. Calling this directly will have no effect, as will be used in building the locator uri that is published for detection and this happens when the invoker is first created and started (after that, no one will be aware of a change).

Specified by:
setClientConnectAddress in interface ServerInvokerMBean

getServerBindAddress

public java.lang.String getServerBindAddress()
Specified by:
getServerBindAddress in interface ServerInvokerMBean

getServerBindPort

public int getServerBindPort()
Specified by:
getServerBindPort in interface ServerInvokerMBean

setMaxNumberOfOnewayThreads

public void setMaxNumberOfOnewayThreads(int numOfThreads)
Sets the maximum number of thread to be used in the thread pool for one way invocations (server side). This property is only used when the default oneway thread pool is used. If set after create() method called, this value will override value set by MAX_NUM_ONEWAY_THREADS_KEY key.


getMaxNumberOfOnewayThreads

public int getMaxNumberOfOnewayThreads()
Gets the maximum number of thread to be used in the thread pool for one way invocations (server side).


getOnewayThreadPool

public org.jboss.util.threadpool.ThreadPool getOnewayThreadPool()
Gets the oneway thread pool to use.


setOnewayThreadPool

public void setOnewayThreadPool(org.jboss.util.threadpool.ThreadPool pool)
Sets the oneway thread pool to use.


getMBeanServer

public javax.management.MBeanServer getMBeanServer()

setMBeanServer

public void setMBeanServer(javax.management.MBeanServer server)

isRegisterCallbackListeners

public boolean isRegisterCallbackListeners()

setRegisterCallbackListeners

public void setRegisterCallbackListeners(boolean registerCallbackListeners)

hasInvocationHandler

public boolean hasInvocationHandler(java.lang.String subsystem)
Returns:
true if a server invocation handler has been registered for this subsystem.

getSupportedSubsystems

public java.lang.String[] getSupportedSubsystems()
Returns:
an array of keys for each subsystem this invoker can handle.

getInvocationHandlers

public ServerInvocationHandler[] getInvocationHandlers()
Returns:
an array of the server invocation handlers.

addInvocationHandler

public ServerInvocationHandler addInvocationHandler(java.lang.String subsystem,
                                                    ServerInvocationHandler handler)
Add a server invocation handler for a particular subsystem. Typically, subsystems are defined in org.jboss.remoting.Subsystem, however, this can be any string that the caller knows about.

Returns:
previous ServerInvocationHandler with the same sybsystem value (case insensitive) or null if a previous one did not exist.

removeInvocationHandler

public ServerInvocationHandler removeInvocationHandler(java.lang.String subsystem)
Remove a subsystem invocation handler.


getInvocationHandler

public ServerInvocationHandler getInvocationHandler(java.lang.String subsystem)
Get a ServerInvocationHandler for a given subsystem type.


isUseClientConnectionIdentity

protected boolean isUseClientConnectionIdentity()

setUseClientConnectionIdentity

protected void setUseClientConnectionIdentity(boolean useClientConnectionIdentity)

invoke

public java.lang.Object invoke(java.lang.Object invoke)
                        throws java.io.IOException
Throws:
java.io.IOException

invoke

public java.lang.Object invoke(InvocationRequest invocation)
                        throws java.lang.Throwable
Processes invocation request depending on the invocation type (internal, name based, oneway, etc). Can be called on directly when client and server are local to one another (by-passing serialization).

Throws:
java.lang.Throwable

getDataType

public java.lang.String getDataType()
Will get the data type for the marshaller factory so know which marshaller to get to marshal the data. Will first check the locator uri for a 'datatype' parameter and take that value if it exists. Otherwise, will use the default datatype for the client invoker, based on transport.

Specified by:
getDataType in interface ServerInvokerMBean
Returns:

create

public void create()
Specified by:
create in interface ServerInvokerMBean

start

public void start()
           throws java.io.IOException
Subclasses should override to provide any specific start logic.

Specified by:
start in interface ServerInvokerMBean
Throws:
java.io.IOException

isStarted

public boolean isStarted()
Description copied from interface: ServerInvokerMBean
return true if the server invoker is started, false if not

Specified by:
isStarted in interface ServerInvokerMBean
Returns:
true if the server invoker is started, false if not.

stop

public void stop()
Subclasses should override to provide any specific stop logic.

Specified by:
stop in interface ServerInvokerMBean

destroy

public void destroy()
Destory the invoker permanently.

Specified by:
destroy in interface ServerInvokerMBean

setConfiguration

public void setConfiguration(java.util.Map configuration)
Sets the server invoker's transport specific configuration. Will need to set before calling start() method (or at least stop() and start() again) before configurations will take affect.

Specified by:
setConfiguration in interface ServerInvokerMBean

getConfiguration

public java.util.Map getConfiguration()
Gets the server invoker's transport specific configuration.

Specified by:
getConfiguration in interface ServerInvokerMBean
Overrides:
getConfiguration in class AbstractInvoker
Returns:

removeCallbackListener

public void removeCallbackListener(java.lang.String subsystem,
                                   InvokerCallbackHandler callbackHandler)

getMBeanObjectName

public java.lang.String getMBeanObjectName()
Returns:
the String for the object name to be used for the invoker.

getDefaultDataType

protected abstract java.lang.String getDefaultDataType()

setup

protected void setup()
              throws java.lang.Exception
Throws:
java.lang.Exception

assignPort

protected int assignPort()
                  throws java.io.IOException
Throws:
java.io.IOException

createServerSocketFactory

protected javax.net.ServerSocketFactory createServerSocketFactory()
                                                           throws java.io.IOException
Throws:
java.io.IOException

justNeedsSSLClientMode

protected boolean justNeedsSSLClientMode(java.util.Map configuration)

getDefaultServerSocketFactory

protected javax.net.ServerSocketFactory getDefaultServerSocketFactory()
                                                               throws java.io.IOException
Gets the default server socket factory to use for the server invoker. The intention is this method will be overridden by sub-classes for their specific defaults.

Throws:
java.io.IOException

wrapServerSocketFactory

protected javax.net.ServerSocketFactory wrapServerSocketFactory(javax.net.ServerSocketFactory ssf,
                                                                java.util.Map config)

handleInternalInvocation

protected java.lang.Object handleInternalInvocation(InternalInvocation param,
                                                    InvocationRequest invocation,
                                                    ServerInvocationHandler handler)
                                             throws java.lang.Throwable
Handles both internal and external invocations (internal meaning only to be used within remoting and external for ones that go to handlers.

Throws:
java.lang.Throwable

findInvocationHandler

protected ServerInvocationHandler findInvocationHandler(java.lang.String subsystem)

preProcess

protected void preProcess(java.lang.String sessionId,
                          ClassBytes arg,
                          java.util.Map payload,
                          InvokerLocator locator)
Called prior to an invocation. TODO is sending in the arg appropriate?


postProcess

protected void postProcess(java.lang.String sessionId,
                           java.lang.Object param,
                           java.util.Map payload,
                           InvokerLocator locator)
Called after an invocation. TODO is sending in the arg appropriate?


removeCallbackHandler

public ServerInvokerCallbackHandler removeCallbackHandler(InvocationRequest invocation)

shutdownCallbackHandler

public void shutdownCallbackHandler(ServerInvokerCallbackHandler callbackHandler,
                                    InvocationRequest invocation)


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