org.eclipse.ecf.provider.generic
Class SOContainer

java.lang.Object
  extended by org.eclipse.ecf.core.AbstractContainer
      extended by org.eclipse.ecf.provider.generic.SOContainer
All Implemented Interfaces:
org.eclipse.core.runtime.IAdaptable, IContainer, IIdentifiable, IReliableContainer, ISharedObjectContainer
Direct Known Subclasses:
ClientSOContainer, ServerSOContainer

public abstract class SOContainer
extends AbstractContainer
implements ISharedObjectContainer


Field Summary
protected  ISharedObjectContainerConfig config
           
static java.lang.String DEFAULT_OBJECT_ARG_KEY
           
static java.lang.String DEFAULT_OBJECT_ARGTYPES_KEY
           
protected  org.eclipse.ecf.provider.generic.SOContainerGMM groupManager
           
protected  boolean isClosing
           
protected  java.lang.ThreadGroup loadingThreadGroup
           
protected  ISharedObjectPolicy policy
           
protected  ISynchAsynchEventHandler receiver
           
protected  SOManager sharedObjectManager
           
protected  ISharedObjectMessageSerializer sharedObjectMessageSerializer
           
protected  java.lang.ThreadGroup sharedObjectThreadGroup
           
 
Constructor Summary
SOContainer(ISharedObjectContainerConfig config)
           
 
Method Summary
protected  boolean addNewRemoteMember(ID memberID, java.lang.Object data)
           
protected  ISharedObjectContainerTransaction addSharedObject0(ID id, ISharedObject s, java.util.Map props)
           
protected  void addSharedObjectAndWait(ID id, ISharedObject s, java.util.Map properties)
           
protected  ISharedObjectContainerTransaction addSharedObjectWrapper(SOWrapper wrapper)
           
protected  boolean addToLoading(org.eclipse.ecf.provider.generic.SOContainer.LoadingSharedObject lso)
           
protected  java.lang.Object checkRemoteCreate(ID fromID, ID toID, ReplicaSharedObjectDescription desc)
          Check remote creation of shared objects.
abstract  void connect(ID groupID, IConnectContext connectContext)
          Connect to a target remote process or process group.
protected  java.util.Map createContainerPropertiesForSharedObject(ID sharedObjectID)
           
protected  SOConfig createRemoteSharedObjectConfig(ID fromID, ReplicaSharedObjectDescription sd, ISharedObject obj)
           
protected  SOContext createRemoteSharedObjectContext(SOConfig soconfig, IQueueEnqueue queue)
           
protected  SOWrapper createRemoteSharedObjectWrapper(ID fromID, ReplicaSharedObjectDescription sd, ISharedObject s)
           
protected  SOConfig createSharedObjectConfig(ID id, ISharedObject obj, java.util.Map props)
           
protected  SOContext createSharedObjectContext(SOConfig soconfig, IQueueEnqueue queue)
           
protected  SOWrapper createSharedObjectWrapper(ID id, ISharedObject s, java.util.Map props)
           
protected  void debug(java.lang.String msg)
           
protected  java.lang.Object defaultDeserializeSharedObjectMessage(byte[] bytes)
           
protected  byte[] defaultSerializeSharedObjectMessage(ID sharedObjectID, java.lang.Object message)
           
static ContainerMessage deserializeContainerMessage(byte[] bytes)
           
protected  java.lang.Object deserializeSharedObjectMessage(byte[] bytes)
           
protected  boolean destroySharedObject(ID sharedObjectID)
           
abstract  void disconnect()
          Disconnect.
protected  void disconnect(IConnection conn)
           
 void dispose()
          Dispose this IContainer instance.
protected  void fireDelegateContainerEvent(IContainerEvent containerEvent)
           
protected  void forward(ID fromID, ID toID, ContainerMessage data)
           
protected abstract  void forwardExcluding(ID from, ID excluding, ContainerMessage data)
           
protected abstract  void forwardToRemote(ID from, ID to, ContainerMessage data)
           
 java.lang.Object getAdapter(java.lang.Class adapter)
          This specialization of IAdaptable.getAdapter() returns additional services supported by this container.
protected  java.lang.Object[] getArgsFromProperties(SharedObjectDescription sd)
           
protected  java.lang.String[] getArgTypesFromProperties(SharedObjectDescription sd)
           
protected  java.lang.ClassLoader getClassLoaderForContainer()
           
protected  java.lang.ClassLoader getClassLoaderForSharedObject(SharedObjectDescription sd)
           
 ISharedObjectContainerConfig getConfig()
           
abstract  ID getConnectedID()
          Get the target ID that this container instance has connected to.
 Namespace getConnectNamespace()
          Get the Namespace for creating a targetID suitable for use as the first parameter in subsequent calls to IContainer.connect(ID, IConnectContext).
 ID[] getGroupMemberIDs()
          Get the current membership of the joined group.
protected  java.lang.Object getGroupMembershipLock()
           
 ID getID()
          Return the ID for this 'identifiable' object.
protected abstract  ID getIDForConnection(IAsynchConnection connection)
           
protected  int getMaxGroupMembers()
           
protected  java.lang.Thread getNewSharedObjectThread(ID sharedObjectID, java.lang.Runnable runnable)
           
protected  long getNextSequenceNumber()
           
protected  ID[] getOtherMemberIDs()
           
protected  ISynchAsynchEventHandler getReceiver()
           
protected  ISharedObject getSharedObject(ID id)
           
protected  ID[] getSharedObjectIDs()
           
 ISharedObjectManager getSharedObjectManager()
          Get SharedObjectManager for this container
protected  ISharedObjectMessageSerializer getSharedObjectMessageSerializer()
           
protected  SOWrapper getSharedObjectWrapper(ID id)
           
protected  void handleAsynchIOException(java.io.IOException except, AsynchEvent e)
           
protected  void handleCreateMessage(ContainerMessage mess)
           
protected  void handleCreateResponseMessage(ContainerMessage mess)
           
protected  void handleLeave(ID leftID, IConnection conn)
           
protected abstract  void handleLeaveGroupMessage(ContainerMessage mess)
           
protected  void handleSharedObjectDisposeMessage(ContainerMessage mess)
           
protected  void handleSharedObjectMessage(ContainerMessage mess)
           
protected  void handleUndeliveredSharedObjectMessage(ContainerMessage.SharedObjectMessage resp)
           
protected  void handleUnidentifiedMessage(ContainerMessage mess)
           
protected abstract  void handleViewChangeMessage(ContainerMessage mess)
           
protected  boolean isClosing()
           
abstract  boolean isGroupManager()
           
protected  ISharedObject load(SharedObjectDescription sd)
           
protected  void moveFromLoadingToActive(SOWrapper wrap)
           
protected  void notifySharedObjectActivated(ID sharedObjectID)
           
protected  void notifySharedObjectDeactivated(ID sharedObjectID)
           
protected static void printToSystemError(java.lang.String message, java.lang.Throwable t)
           
protected  void processAsynch(AsynchEvent event)
           
protected abstract  void processDisconnect(DisconnectEvent event)
           
protected  java.io.Serializable processSynch(SynchEvent e)
           
protected abstract  void queueContainerMessage(ContainerMessage mess)
           
protected  void removeFromLoading(ID id)
           
protected  boolean removeRemoteMember(ID remoteMember)
           
protected  ISharedObject removeSharedObject(ID id)
           
protected  void sendCreate(ID sharedObjectID, ID toContainerID, SharedObjectDescription sd)
           
protected  void sendCreateResponse(ID homeID, ID sharedObjectID, java.lang.Throwable t, long identifier)
           
protected  void sendCreateResponseSharedObjectMessage(ID toContainerID, ID fromSharedObject, java.lang.Throwable t, long ident)
           
protected  ID[] sendCreateSharedObjectMessage(ID toContainerID, SharedObjectDescription sd)
           
protected  void sendDispose(ID toContainerID, ID sharedObjectID)
           
protected  void sendDisposeSharedObjectMessage(ID toContainerID, ID fromSharedObject)
           
protected  void sendMessage(ContainerMessage data)
           
protected  void sendMessage(ID toContainerID, ID sharedObjectID, java.lang.Object message)
           
protected  void sendSharedObjectMessage(ID toContainerID, ID fromSharedObject, java.io.Serializable data)
           
static byte[] serialize(java.io.Serializable obj)
           
protected  byte[] serializeSharedObjectMessage(ID sharedObjectID, java.lang.Object message)
           
protected  void setMaxGroupMembers(int max)
           
protected  void setRemoteAddPolicy(ISharedObjectPolicy policy)
           
 void setSharedObjectMessageSerializer(ISharedObjectMessageSerializer serializer)
           Set the shared object message serializer.
protected  void traceStack(java.lang.String msg, java.lang.Throwable e)
           
protected  ContainerMessage validateContainerMessage(java.lang.Object mess)
           
protected  boolean verifySharedObjectMessageTarget(ID containerID)
           
protected  boolean verifyToIDForSharedObjectMessage(ID toID)
           
 
Methods inherited from class org.eclipse.ecf.core.AbstractContainer
addListener, fireContainerEvent, getPasswordFromConnectContext, removeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.ecf.core.IContainer
addListener, removeListener
 

Field Detail

DEFAULT_OBJECT_ARG_KEY

public static final java.lang.String DEFAULT_OBJECT_ARG_KEY

DEFAULT_OBJECT_ARGTYPES_KEY

public static final java.lang.String DEFAULT_OBJECT_ARGTYPES_KEY

config

protected ISharedObjectContainerConfig config

groupManager

protected org.eclipse.ecf.provider.generic.SOContainerGMM groupManager

isClosing

protected boolean isClosing

loadingThreadGroup

protected java.lang.ThreadGroup loadingThreadGroup

sharedObjectManager

protected SOManager sharedObjectManager

policy

protected ISharedObjectPolicy policy

sharedObjectThreadGroup

protected java.lang.ThreadGroup sharedObjectThreadGroup

sharedObjectMessageSerializer

protected ISharedObjectMessageSerializer sharedObjectMessageSerializer
Since:
2.0

receiver

protected ISynchAsynchEventHandler receiver
Constructor Detail

SOContainer

public SOContainer(ISharedObjectContainerConfig config)
Method Detail

setSharedObjectMessageSerializer

public void setSharedObjectMessageSerializer(ISharedObjectMessageSerializer serializer)
Description copied from interface: ISharedObjectContainer

Set the shared object message serializer. The serializer should not be null.

Note that users of this method should guarantee that their are not pending messages to be sent/received...typically by only calling this method prior to connecting/being connected to from remote containers.

Note also that the serializer must perform well when it's methods are called, to prevent negatively impacting overall container messaging performance.

Specified by:
setSharedObjectMessageSerializer in interface ISharedObjectContainer
Since:
2.0

getSharedObjectMessageSerializer

protected ISharedObjectMessageSerializer getSharedObjectMessageSerializer()
Since:
2.0

getID

public ID getID()
Description copied from interface: IIdentifiable
Return the ID for this 'identifiable' object. The returned ID should be unique within its namespace. May return null.

Specified by:
getID in interface IIdentifiable
Returns:
the ID for this identifiable object. May return null.

connect

public abstract void connect(ID groupID,
                             IConnectContext connectContext)
                      throws ContainerConnectException
Description copied from interface: IContainer
Connect to a target remote process or process group. The target identified by the first parameter (targetID) is connected the implementation class. If authentication information is required, the required information is given via via the second parameter (connectContext). Callers note that depending upon the provider implementation this method may block. It is suggested that callers use a separate thread to call this method. This method provides an implementation independent way for container implementations to connect, authenticate, and communicate with a remote service or group of services. Providers are responsible for implementing this operation in a way appropriate to the given remote service (or group) via expected protocol.

Specified by:
connect in interface IContainer
Parameters:
groupID - the ID of the remote server or group to connect to. See IContainer.getConnectNamespace() for a explanation of the constraints upon this parameter.
connectContext - any required context to allow this container to authenticate. May be null if underlying provider does not have any authentication requirements for connection.
Throws:
ContainerConnectException - thrown if communication cannot be established with remote service. Causes can include network connection failure, authentication failure, server error, or if container is already connected.

getConnectedID

public abstract ID getConnectedID()
Description copied from interface: IContainer
Get the target ID that this container instance has connected to. Returns null if not connected.

Specified by:
getConnectedID in interface IContainer
Returns:
ID of the target we are connected to. Returns null if container not connected.

disconnect

public abstract void disconnect()
Description copied from interface: IContainer
Disconnect. This operation will disconnect the local container instance from any previously joined target or group. Subsequent calls to getConnectedID() will return null.

Specified by:
disconnect in interface IContainer

getConnectNamespace

public Namespace getConnectNamespace()
Description copied from interface: IContainer
Get the Namespace for creating a targetID suitable for use as the first parameter in subsequent calls to IContainer.connect(ID, IConnectContext). If this method returns null, then it means that null is expected as a valid parameter in subsequent calls to IContainer.connect(ID, IConnectContext). If this method returns a non-null Namespace, then the targetID parameter in IContainer.connect(ID, IConnectContext) must be non-null instance created of the returned Namespace.

Specified by:
getConnectNamespace in interface IContainer
Returns:
Namespace the namespace associated with subsequent calls to IContainer.connect(ID, IConnectContext). If null, then the targetID instances passed to IContainer.connect(ID, IConnectContext) may be null. If not null, then targetID instances passed to IContainer.connect(ID, IConnectContext) must be instances of the returned Namespace.

dispose

public void dispose()
Description copied from interface: IContainer
Dispose this IContainer instance. The container instance will be made inactive after the completion of this method and will be unavailable for subsequent usage.

Specified by:
dispose in interface IContainer
Overrides:
dispose in class AbstractContainer

getAdapter

public java.lang.Object getAdapter(java.lang.Class adapter)
Description copied from interface: IContainer
This specialization of IAdaptable.getAdapter() returns additional services supported by this container. A container that supports additional services over and above the methods on IContainer should return them using this method. It is recommended that clients use this method rather than instanceof checks and downcasts to find out about the capabilities of a specific container.

Typically, after obtaining an IContainer, a client would use this method as a means to obtain a more meaningful interface to the container. This interface may or may not extend IContainer. For example, a client could use the following code to obtain an instance of ISharedObjectContainer:

 IContainer newContainer = ContainerFactory.createContainer(type);
 ISharedObjectContainer soContainer = (ISharedObjectContainer) newContainer
                .getAdapter(ISharedObjectContainer.class);
 if (soContainer == null)
        throw new ContainerCreateException(message);
 

Implementations of this method should delegate to IAdapterManager.loadAdapter() if the service cannot be provided directly to ensure extensibility by third-party plug-ins.

Specified by:
getAdapter in interface org.eclipse.core.runtime.IAdaptable
Specified by:
getAdapter in interface IContainer
Overrides:
getAdapter in class AbstractContainer
Parameters:
adapter - the service type to look up
Returns:
the service instance castable to the given class, or null if this container does not support the given service

getSharedObjectManager

public ISharedObjectManager getSharedObjectManager()
Description copied from interface: ISharedObjectContainer
Get SharedObjectManager for this container

Specified by:
getSharedObjectManager in interface ISharedObjectContainer
Returns:
ISharedObjectManager for this container instance

getGroupMemberIDs

public ID[] getGroupMemberIDs()
Description copied from interface: IReliableContainer
Get the current membership of the joined group. This method will accurately report the current group membership of the connected group.

Specified by:
getGroupMemberIDs in interface IReliableContainer
Returns:
ID[] the IDs of the current group membership

getConfig

public ISharedObjectContainerConfig getConfig()

isGroupManager

public abstract boolean isGroupManager()
Specified by:
isGroupManager in interface IReliableContainer
Returns:
true if this IReliableContainer instance is in the 'manager' role for the group, false otherwise.

setRemoteAddPolicy

protected void setRemoteAddPolicy(ISharedObjectPolicy policy)

addNewRemoteMember

protected boolean addNewRemoteMember(ID memberID,
                                     java.lang.Object data)

addSharedObject0

protected ISharedObjectContainerTransaction addSharedObject0(ID id,
                                                             ISharedObject s,
                                                             java.util.Map props)
                                                      throws java.lang.Exception
Throws:
java.lang.Exception

addSharedObjectAndWait

protected void addSharedObjectAndWait(ID id,
                                      ISharedObject s,
                                      java.util.Map properties)
                               throws java.lang.Exception
Throws:
java.lang.Exception

addSharedObjectWrapper

protected ISharedObjectContainerTransaction addSharedObjectWrapper(SOWrapper wrapper)
                                                            throws java.lang.Exception
Throws:
java.lang.Exception

addToLoading

protected boolean addToLoading(org.eclipse.ecf.provider.generic.SOContainer.LoadingSharedObject lso)

checkRemoteCreate

protected java.lang.Object checkRemoteCreate(ID fromID,
                                             ID toID,
                                             ReplicaSharedObjectDescription desc)
                                      throws java.lang.Exception
Check remote creation of shared objects. This method is called by the remote shared object creation message handler, to verify that the shared object from container 'fromID' to container 'toID' with description 'desc' is to be allowed to be created within the current container. If this method throws, a failure (and exception will be sent back to caller If this method returns null, the create message is ignored. If this method returns a non-null object, the creation is allowed to proceed. The default implementation is to return a non-null object

Parameters:
fromID - the ID of the container sending us this create request
toID - the ID (or null) of the container intended to receive this request
desc - the SharedObjectDescription that describes the shared object to be created
Returns:
Object null if the create message is to be ignored, non-null if the creation should continue
Throws:
java.lang.Exception - may throw any Exception to communicate back (via sendCreateResponse) to the sender that the creation has failed

debug

protected void debug(java.lang.String msg)

traceStack

protected void traceStack(java.lang.String msg,
                          java.lang.Throwable e)

destroySharedObject

protected boolean destroySharedObject(ID sharedObjectID)

forward

protected final void forward(ID fromID,
                             ID toID,
                             ContainerMessage data)
                      throws java.io.IOException
Throws:
java.io.IOException

forwardExcluding

protected abstract void forwardExcluding(ID from,
                                         ID excluding,
                                         ContainerMessage data)
                                  throws java.io.IOException
Throws:
java.io.IOException

forwardToRemote

protected abstract void forwardToRemote(ID from,
                                        ID to,
                                        ContainerMessage data)
                                 throws java.io.IOException
Throws:
java.io.IOException

getArgsFromProperties

protected java.lang.Object[] getArgsFromProperties(SharedObjectDescription sd)
Parameters:
sd -
Returns:
Object []

getArgTypesFromProperties

protected java.lang.String[] getArgTypesFromProperties(SharedObjectDescription sd)
Parameters:
sd -
Returns:
String []

serialize

public static byte[] serialize(java.io.Serializable obj)
                        throws java.io.IOException
Throws:
java.io.IOException

getClassLoaderForContainer

protected java.lang.ClassLoader getClassLoaderForContainer()

getClassLoaderForSharedObject

protected java.lang.ClassLoader getClassLoaderForSharedObject(SharedObjectDescription sd)
Parameters:
sd -
Returns:
ClassLoader

getGroupMembershipLock

protected java.lang.Object getGroupMembershipLock()

getMaxGroupMembers

protected int getMaxGroupMembers()

getNewSharedObjectThread

protected java.lang.Thread getNewSharedObjectThread(ID sharedObjectID,
                                                    java.lang.Runnable runnable)

getNextSequenceNumber

protected long getNextSequenceNumber()

deserializeContainerMessage

public static ContainerMessage deserializeContainerMessage(byte[] bytes)
                                                    throws java.io.IOException
Throws:
java.io.IOException

printToSystemError

protected static void printToSystemError(java.lang.String message,
                                         java.lang.Throwable t)
Since:
2.0

getOtherMemberIDs

protected ID[] getOtherMemberIDs()

getReceiver

protected ISynchAsynchEventHandler getReceiver()

getSharedObject

protected ISharedObject getSharedObject(ID id)

getSharedObjectIDs

protected ID[] getSharedObjectIDs()

getSharedObjectWrapper

protected SOWrapper getSharedObjectWrapper(ID id)

handleAsynchIOException

protected void handleAsynchIOException(java.io.IOException except,
                                       AsynchEvent e)

handleCreateMessage

protected void handleCreateMessage(ContainerMessage mess)
                            throws java.io.IOException
Throws:
java.io.IOException

handleCreateResponseMessage

protected void handleCreateResponseMessage(ContainerMessage mess)
                                    throws java.io.IOException
Throws:
java.io.IOException

handleLeaveGroupMessage

protected abstract void handleLeaveGroupMessage(ContainerMessage mess)
Parameters:
mess -

verifySharedObjectMessageTarget

protected boolean verifySharedObjectMessageTarget(ID containerID)
Since:
4.0

handleSharedObjectDisposeMessage

protected void handleSharedObjectDisposeMessage(ContainerMessage mess)
                                         throws java.io.IOException
Throws:
java.io.IOException

verifyToIDForSharedObjectMessage

protected boolean verifyToIDForSharedObjectMessage(ID toID)

handleSharedObjectMessage

protected void handleSharedObjectMessage(ContainerMessage mess)
                                  throws java.io.IOException
Throws:
java.io.IOException

handleUndeliveredSharedObjectMessage

protected void handleUndeliveredSharedObjectMessage(ContainerMessage.SharedObjectMessage resp)
Since:
4.0

handleUnidentifiedMessage

protected void handleUnidentifiedMessage(ContainerMessage mess)
                                  throws java.io.IOException
Parameters:
mess -
Throws:
java.io.IOException - not thrown by this implementation.

handleViewChangeMessage

protected abstract void handleViewChangeMessage(ContainerMessage mess)
                                         throws java.io.IOException
Throws:
java.io.IOException

isClosing

protected boolean isClosing()

disconnect

protected void disconnect(IConnection conn)

load

protected ISharedObject load(SharedObjectDescription sd)
                      throws java.lang.Exception
Throws:
java.lang.Exception

createSharedObjectConfig

protected SOConfig createSharedObjectConfig(ID id,
                                            ISharedObject obj,
                                            java.util.Map props)
                                     throws ECFException
Parameters:
id -
obj -
props -
Returns:
SOConfig a non-null instance.
Throws:
ECFException - not thrown by this implementation.

createRemoteSharedObjectConfig

protected SOConfig createRemoteSharedObjectConfig(ID fromID,
                                                  ReplicaSharedObjectDescription sd,
                                                  ISharedObject obj)

createSharedObjectContext

protected SOContext createSharedObjectContext(SOConfig soconfig,
                                              IQueueEnqueue queue)

createRemoteSharedObjectContext

protected SOContext createRemoteSharedObjectContext(SOConfig soconfig,
                                                    IQueueEnqueue queue)

createSharedObjectWrapper

protected SOWrapper createSharedObjectWrapper(ID id,
                                              ISharedObject s,
                                              java.util.Map props)
                                       throws ECFException
Throws:
ECFException

createRemoteSharedObjectWrapper

protected SOWrapper createRemoteSharedObjectWrapper(ID fromID,
                                                    ReplicaSharedObjectDescription sd,
                                                    ISharedObject s)

handleLeave

protected void handleLeave(ID leftID,
                           IConnection conn)

moveFromLoadingToActive

protected void moveFromLoadingToActive(SOWrapper wrap)

notifySharedObjectActivated

protected void notifySharedObjectActivated(ID sharedObjectID)

notifySharedObjectDeactivated

protected void notifySharedObjectDeactivated(ID sharedObjectID)

validateContainerMessage

protected ContainerMessage validateContainerMessage(java.lang.Object mess)

processAsynch

protected void processAsynch(AsynchEvent event)
                      throws java.io.IOException
Parameters:
event -
Throws:
java.io.IOException - not thrown by this implementation.

getIDForConnection

protected abstract ID getIDForConnection(IAsynchConnection connection)

processDisconnect

protected abstract void processDisconnect(DisconnectEvent event)

processSynch

protected java.io.Serializable processSynch(SynchEvent e)
                                     throws java.io.IOException
Throws:
java.io.IOException

queueContainerMessage

protected abstract void queueContainerMessage(ContainerMessage mess)
                                       throws java.io.IOException
Throws:
java.io.IOException

removeFromLoading

protected void removeFromLoading(ID id)

removeRemoteMember

protected boolean removeRemoteMember(ID remoteMember)

removeSharedObject

protected ISharedObject removeSharedObject(ID id)

sendCreate

protected void sendCreate(ID sharedObjectID,
                          ID toContainerID,
                          SharedObjectDescription sd)
                   throws java.io.IOException
Throws:
java.io.IOException

sendCreateResponse

protected void sendCreateResponse(ID homeID,
                                  ID sharedObjectID,
                                  java.lang.Throwable t,
                                  long identifier)
                           throws java.io.IOException
Throws:
java.io.IOException

sendCreateResponseSharedObjectMessage

protected void sendCreateResponseSharedObjectMessage(ID toContainerID,
                                                     ID fromSharedObject,
                                                     java.lang.Throwable t,
                                                     long ident)
                                              throws java.io.IOException
Throws:
java.io.IOException

sendCreateSharedObjectMessage

protected ID[] sendCreateSharedObjectMessage(ID toContainerID,
                                             SharedObjectDescription sd)
                                      throws java.io.IOException
Throws:
java.io.IOException

createContainerPropertiesForSharedObject

protected java.util.Map createContainerPropertiesForSharedObject(ID sharedObjectID)

sendDispose

protected void sendDispose(ID toContainerID,
                           ID sharedObjectID)
                    throws java.io.IOException
Throws:
java.io.IOException

sendDisposeSharedObjectMessage

protected void sendDisposeSharedObjectMessage(ID toContainerID,
                                              ID fromSharedObject)
                                       throws java.io.IOException
Throws:
java.io.IOException

sendMessage

protected void sendMessage(ContainerMessage data)
                    throws java.io.IOException
Throws:
java.io.IOException

serializeSharedObjectMessage

protected byte[] serializeSharedObjectMessage(ID sharedObjectID,
                                              java.lang.Object message)
                                       throws java.io.IOException
Throws:
java.io.IOException

defaultSerializeSharedObjectMessage

protected byte[] defaultSerializeSharedObjectMessage(ID sharedObjectID,
                                                     java.lang.Object message)
                                              throws java.io.IOException
Throws:
java.io.IOException
Since:
2.0

defaultDeserializeSharedObjectMessage

protected java.lang.Object defaultDeserializeSharedObjectMessage(byte[] bytes)
                                                          throws java.io.IOException,
                                                                 java.lang.ClassNotFoundException
Throws:
java.io.IOException
java.lang.ClassNotFoundException
Since:
2.0

deserializeSharedObjectMessage

protected java.lang.Object deserializeSharedObjectMessage(byte[] bytes)
                                                   throws java.io.IOException,
                                                          java.lang.ClassNotFoundException
Throws:
java.io.IOException
java.lang.ClassNotFoundException

sendMessage

protected void sendMessage(ID toContainerID,
                           ID sharedObjectID,
                           java.lang.Object message)
                    throws java.io.IOException
Throws:
java.io.IOException

sendSharedObjectMessage

protected void sendSharedObjectMessage(ID toContainerID,
                                       ID fromSharedObject,
                                       java.io.Serializable data)
                                throws java.io.IOException
Throws:
java.io.IOException

setMaxGroupMembers

protected void setMaxGroupMembers(int max)

fireDelegateContainerEvent

protected void fireDelegateContainerEvent(IContainerEvent containerEvent)
Parameters:
containerEvent -