java.rmi.activation

Interface ActivationSystem

All Superinterfaces:
Remote
Known Implementing Classes:
ActivationSystemTransient

public interface ActivationSystem
extends Remote

The ActivationSystem registers groups and activatable objects to be activated within those groups. The ActivationSystem cooperates with both the Activator, which activates objects registered via the ActivationSystem, and the ActivationMonitor, which obtains information about active and inactive objects and inactive groups.

The activation system if frequently a remote object. As a security mean, all methods in this interface throw AccessException if called from the client that is not reside on the same host as the activation system.

See Also:
ActivationGroup.getSystem()

Field Summary

static int
SYSTEM_PORT
The port, used by the activation system.

Method Summary

ActivationMonitor
activeGroup(ActivationGroupID id, ActivationInstantiator group, long incarnation)
This method is called from the ActivationGroup to inform the ActivatinSystem that the group is now active and there is the ActivationInstantiator for that group.
ActivationDesc
getActivationDesc(ActivationID id)
Get the activation descriptor for the object with the given activation id.
ActivationGroupDesc
getActivationGroupDesc(ActivationGroupID groupId)
Get the group descriptor for the group with the given id.
ActivationGroupID
registerGroup(ActivationGroupDesc groupDesc)
Register the new activation group.
ActivationID
registerObject(ActivationDesc desc)
Registers the activation descriptor and creates (and returns) its activation identifier.
ActivationDesc
setActivationDesc(ActivationID id, ActivationDesc desc)
Replace the activation descriptor for the object with the given activation id.
ActivationGroupDesc
setActivationGroupDesc(ActivationGroupID groupId, ActivationGroupDesc groupDesc)
Replaces the group descriptor for the group with the given group activation id.
void
shutdown()
Shutdown the activation system and all associated activation groups
void
unregisterGroup(ActivationGroupID id)
Removes the activation group with the given identifier.
void
unregisterObject(ActivationID id)
Removes the stored identifier-description map entry.

Field Details

SYSTEM_PORT

public static final int SYSTEM_PORT
The port, used by the activation system. The value is equal to 1098 by default, but it can be changed by putting the system property .
Field Value:
1098

Method Details

activeGroup

public ActivationMonitor activeGroup(ActivationGroupID id,
                                     ActivationInstantiator group,
                                     long incarnation)
            throws UnknownGroupException,
                   ActivationException,
                   RemoteException
This method is called from the ActivationGroup to inform the ActivatinSystem that the group is now active and there is the ActivationInstantiator for that group. This call is made internally from the ActivationGroup.createGroup(ActivationGroupID,ActivationGroupDesc,long).
Parameters:
id - the group id
group - the group activation instantiator
incarnation - the groups incarnatin number.
Returns:
the activation monitor that should be informed about the group state changes
Throws:
UnknownGroupException - if this group has not been registered
ActivationException - if this group is already active
RemoteException - if the remote call fails

getActivationDesc

public ActivationDesc getActivationDesc(ActivationID id)
            throws ActivationException,
                   UnknownObjectException,
                   RemoteException
Get the activation descriptor for the object with the given activation id.
Parameters:
id - the object activation id
Returns:
the activation descriptor for that object
Throws:
ActivationException - if the database access fails
UnknownObjectException - if this object is not known
RemoteException - if the remote call fails

getActivationGroupDesc

public ActivationGroupDesc getActivationGroupDesc(ActivationGroupID groupId)
            throws ActivationException,
                   UnknownGroupException,
                   RemoteException
Get the group descriptor for the group with the given id.
Parameters:
groupId - the group id
Returns:
the group descriptor
Throws:
ActivationException - if the database access fails
UnknownGroupException - if the group with such id is not known
RemoteException - if the remote call fails

registerGroup

public ActivationGroupID registerGroup(ActivationGroupDesc groupDesc)
            throws ActivationException,
                   RemoteException
Register the new activation group. For instance, it can be one activation group per virtual machine.
Parameters:
groupDesc - the activation group descriptor.
Returns:
the created activation group ID for the activation group
Throws:
ActivationException - if the group registration fails
RemoteException - if the remote call fails

registerObject

public ActivationID registerObject(ActivationDesc desc)
            throws ActivationException,
                   UnknownGroupException,
                   RemoteException
Registers the activation descriptor and creates (and returns) its activation identifier. The map entry (identifier to descriptor) is stored in the stable map and used when the Activator receives the request to activate the object.
Parameters:
desc - the activation descriptor to register.
Returns:
the created activation identifier that is mapped to the passed descriptor.
Throws:
ActivationException - if the registration fails (database update problems, etc).
UnknownGroupException - the if group, specified in decriptor, is unknown.
RemoteException - if the remote call fails.

setActivationDesc

public ActivationDesc setActivationDesc(ActivationID id,
                                        ActivationDesc desc)
            throws ActivationException,
                   UnknownObjectException,
                   UnknownGroupException,
                   RemoteException
Replace the activation descriptor for the object with the given activation id.
Parameters:
id - the activation id
desc - the new activation descriptor
Returns:
the previous activation descriptor for that object.
Throws:
ActivationException - if the database update fails
UnknownObjectException - if the object with such id is not known
UnknownGroupException - if the activation group (in desc) is not known.
RemoteException - if the remote call fails

setActivationGroupDesc

public ActivationGroupDesc setActivationGroupDesc(ActivationGroupID groupId,
                                                  ActivationGroupDesc groupDesc)
            throws ActivationException,
                   UnknownGroupException,
                   RemoteException
Replaces the group descriptor for the group with the given group activation id.
Parameters:
groupId - the group id
groupDesc - the new group descriptor
Returns:
the previous group descriptor
Throws:
ActivationException - if the database update fails
UnknownGroupException - if such group is not known
RemoteException - if the remote call fails

shutdown

public void shutdown()
            throws RemoteException
Shutdown the activation system and all associated activation groups
Throws:
RemoteException - if the remote call fails

unregisterGroup

public void unregisterGroup(ActivationGroupID id)
            throws ActivationException,
                   UnknownGroupException,
                   RemoteException
Removes the activation group with the given identifier. The group calls back, informing the activator about the shutdown.
Parameters:
id - the group activation id.
Throws:
ActivationException - if the database update fails
UnknownGroupException - if such group is not registered
RemoteException - if the remote call fails

unregisterObject

public void unregisterObject(ActivationID id)
            throws ActivationException,
                   UnknownObjectException,
                   RemoteException
Removes the stored identifier-description map entry. The object will no longer be activable using the passed activation id
Parameters:
id - the activation id to remove
Throws:
ActivationException - if the entry removing operation failed (database update problems, etc)
UnknownObjectException - if the passed id is not known to the system
RemoteException - if the remote call fails

ActivationSystem.java -- registers groups and objects to be activated. Copyright (c) 1996, 1997, 1998, 1999, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.