|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.management.NotificationBroadcasterSupport javax.management.relation.RelationService
Implements the management interface for a relation service.
Revisions:
20020311 Adrian Brock:
20020312 Adrian Brock:
RelationServiceMBean
Constructor Summary | |
RelationService(boolean purgeFlag)
Construct a new relation service |
Method Summary | |
void |
addRelation(ObjectName relation)
Add a manually created relation to the relation service. |
void |
addRelationType(RelationType relationType)
Add a relation type to the relation service. |
Integer |
checkRoleReading(String roleName,
String relationTypeName)
Checks whether the passed role can be read in the given relation type. |
Integer |
checkRoleWriting(Role role,
String relationTypeName,
Boolean initFlag)
Checks whether the passed role can be written in the given relation type. |
void |
createRelation(String relationId,
String relationTypeName,
RoleList roleList)
Create a simple relation using RelationSupport for a relation
type within the relation service. |
void |
createRelationType(String relationTypeName,
RoleInfo[] roleInfos)
Create a relation type within the relation service. |
Map |
findAssociatedMBeans(ObjectName mbeanName,
String relationTypeName,
String roleName)
Retrieves MBeans associated with the passed MBean in the passed relation type and role. |
Map |
findReferencingRelations(ObjectName mbeanName,
String relationTypeName,
String roleName)
Retrieves MBeans referencing the passed MBean in the passed relation type and role. |
List |
findRelationsOfType(String relationTypeName)
Retrieves the relation ids for relations of the passed type. |
List |
getAllRelationIds()
Retrieves all the relation ids. |
List |
getAllRelationTypeNames()
Retrieves all the relation type names. |
RoleResult |
getAllRoles(String relationId)
Retrieves all the roles for a given relation id. |
MBeanNotificationInfo[] |
getNotificationInfo()
Returns the notification metadata associated with the MBean. |
boolean |
getPurgeFlag()
Retrieves the purge flag. |
Map |
getReferencedMBeans(String relationId)
Retrieves all the MBeans referenced in all the roles of a relation. |
String |
getRelationTypeName(String relationId)
Retrieves the relation type name for the passed relation. |
List |
getRole(String relationId,
String roleName)
Retrieves MBeans in a role for a given relation id. |
Integer |
getRoleCardinality(String relationId,
String roleName)
Retrieves the number of MBeans in a role for a given relation id. |
RoleInfo |
getRoleInfo(String relationTypeName,
String roleInfoName)
Retrieves the role information for a given relation type. |
List |
getRoleInfos(String relationTypeName)
Retrieves all the role information for a given relation type. |
RoleResult |
getRoles(String relationId,
String[] roleNames)
Retrieves selected roles for a relation. |
void |
handleNotification(Notification notification,
Object handback)
Callback method from the broadcaster MBean this listener implementation is registered to. |
Boolean |
hasRelation(String relationId)
Checks whether the relation service has the passed relation id. |
void |
isActive()
Checks whether the relation service is active, i.e. |
String |
isRelation(ObjectName objectName)
Checks whether the passed object name is a relation in this relation service. |
ObjectName |
isRelationMBean(String relationId)
Checks whether the passed relation id is an MBean created by a user or has been internally created by the relation service. |
void |
postDeregister()
This method is called by the MBeanServer after deregistration takes place. |
void |
postRegister(Boolean registered)
This method is called by the MBeanServer after registration takes place or when registration fails. |
void |
preDeregister()
This method is called by the MBeanServer before deregistration takes place. |
ObjectName |
preRegister(MBeanServer server,
ObjectName objectName)
This method is called by the MBeanServer before registration takes place. |
void |
purgeRelations()
Purge relations. |
void |
removeRelation(String relationId)
Removes a relation from the relation service. |
void |
removeRelationType(String relationTypeName)
Removes a relation type from the relation service. |
void |
sendRelationCreationNotification(String relationId)
Sends a relation creation notification For internally created relations, a RELATION_BASIC_CREATION notification is sent. |
void |
sendRelationRemovalNotification(String relationId,
List unregMBeans)
Sends a relation removal notification For internally created relations, a RELATION_BASIC_REMOVAL notification is sent. |
void |
sendRoleUpdateNotification(String relationId,
Role newRole,
List oldRoleValue)
Sends a relation update notification For internally created relations, a RELATION_BASIC_UPDATE notification is sent. |
void |
setPurgeFlag(boolean value)
Sets the purge flag. |
void |
setRole(String relationId,
Role role)
Sets the role in the passed relation. |
RoleResult |
setRoles(String relationId,
RoleList roles)
Sets the roles in the passed relation. |
void |
updateRoleMap(String relationId,
Role newRole,
List oldRoleValue)
Handles the update of the relation service role map when a role is changed. |
Methods inherited from class javax.management.NotificationBroadcasterSupport |
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public RelationService(boolean purgeFlag)
purgeFlag
- whether immediate purges should be performed,
pass true for immediate, false otherwiseMethod Detail |
public void addRelation(ObjectName relation) throws IllegalArgumentException, NoSuchMethodException, RelationServiceNotRegisteredException, InvalidRelationIdException, InvalidRelationServiceException, RelationTypeNotFoundException, InvalidRoleValueException, RoleNotFoundException, InstanceNotFoundException
RelationServiceMBean
addRelation
in interface RelationServiceMBean
relation
- the object name of the relation
InvalidRelationServiceException
- if the relation service in
the relation is null or is not the relation service to which
it is being added.
NoSuchMethodException
- if the mbean does not implement the
Relation interface.
IllegalArgumentException
- for a null object name.
RelationTypeNotFoundException
- if there is no relation type in
the relation or the relation type has not been registered
with the relation service.
InvalidRelationIdException
- if the relation id
is already used by another relation.
RelationServiceNotRegisteredException
- when the relation
service is not registered with the MBeanServer.
InstanceNotFoundException
- when the relation is not
registered in the MBeanServer.
RoleNotFoundException
- if a role in the relation is not
in the relation type.
InvalidRoleValueException
- if the number of MBeans in a
role is outside the bounds of the RoleInfo defined in the
relation type, one of the MBeans is not of the correct
class or an MBean does not exist.public void addRelationType(RelationType relationType) throws IllegalArgumentException, InvalidRelationTypeException
RelationServiceMBean
addRelationType
in interface RelationServiceMBean
relationType
- the relation type.
InvalidRelationTypeException
- if a relation type already
exists in the relation service with the given name.
IllegalArgumentException
- for a null relation type.public Integer checkRoleReading(String roleName, String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
RelationServiceMBean
The return value is either zero when readable or a value from
RoleStatus
.
checkRoleReading
in interface RelationServiceMBean
roleName
- the name of the role to check.relationTypeName
- the relation type to check.
IllegalArgumentException
- for a null parameters.
RelationTypeNotFoundException
- if the relation type does
exist in the relation service.public Integer checkRoleWriting(Role role, String relationTypeName, Boolean initFlag) throws IllegalArgumentException, RelationTypeNotFoundException
RelationServiceMBean
The return value is either zero when writable or a value from
RoleStatus
.
checkRoleWriting
in interface RelationServiceMBean
role
- the role to check.relationTypeName
- the relation type to check.initFlag
- write access is not check when this flag is true.
RelationTypeNotFoundException
- if the relation type does
exist in the relation service.
IllegalArgumentException
- for a null parameters.public void createRelation(String relationId, String relationTypeName, RoleList roleList) throws IllegalArgumentException, RelationServiceNotRegisteredException, InvalidRelationIdException, RelationTypeNotFoundException, InvalidRoleValueException, RoleNotFoundException
RelationServiceMBean
RelationSupport
for a relation
type within the relation service.Roles not initialised are set to an empty ArrayList.
A RELATION_BASIC_CREATION notification is sent.
createRelation
in interface RelationServiceMBean
relationId
- the relation id of the relationrelationTypeName
- the relation type of the relationroleList
- the roles to initialise in the relation (can be null)
InvalidRoleValueException
- if the number of MBeans in a
role is outside the bounds of the RoleInfo defined in the
relation type, one of the MBeans is not of the correct
class, an MBean does not exist, the same role name is
used in two different relations.
RoleNotFoundException
- if a role in the relation is not
in the relation type.
InvalidRelationIdException
- if the relation id
is already used by another relation.
RelationTypeNotFoundException
- if there is no relation type in
the relation or the relation type has not been registered
with the relation service.
IllegalArgumentException
- for a null parameter.
RelationServiceNotRegisteredException
- when the relation
service is not registered with the MBeanServer.public void createRelationType(String relationTypeName, RoleInfo[] roleInfos) throws IllegalArgumentException, InvalidRelationTypeException
RelationServiceMBean
createRelationType
in interface RelationServiceMBean
relationTypeName
- the relation type name.roleInfos
- an array of role infos.
IllegalArgumentException
- for a null relation type.
InvalidRelationTypeException
- if a relation type already
exists in the relation service with the given name, there
are problems with the role infos.public Map findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
RelationServiceMBean
findAssociatedMBeans
in interface RelationServiceMBean
mbeanName
- the name of the reference MBeanrelationTypeName
- the relation type, null means check all
relation types.roleName
- the role, null means check all roles.
IllegalArgumentException
- for a null object name.public Map findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
RelationServiceMBean
findReferencingRelations
in interface RelationServiceMBean
mbeanName
- the name of the referenced MBeanrelationTypeName
- the relation type, null means check all
relation types.roleName
- the role, null means check all roles.
IllegalArgumentException
- for a null object name.public List findRelationsOfType(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
RelationServiceMBean
findRelationsOfType
in interface RelationServiceMBean
relationTypeName
- the relation type.
IllegalArgumentException
- for a null relation type name.
RelationTypeNotFoundException
- if there is no relation type
with the passed name.public List getAllRelationIds()
RelationServiceMBean
getAllRelationIds
in interface RelationServiceMBean
public List getAllRelationTypeNames()
RelationServiceMBean
getAllRelationTypeNames
in interface RelationServiceMBean
public RoleResult getAllRoles(String relationId) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException
RelationServiceMBean
getAllRoles
in interface RelationServiceMBean
relationId
- the relation id
RelationNotFoundException
- when the relation id does not
exist.
RelationServiceNotRegisteredException
- when the relation
service is not registered with an MBeanServer.
IllegalArgumentException
- for a null relation id.public boolean getPurgeFlag()
RelationServiceMBean
getPurgeFlag
in interface RelationServiceMBean
public Map getReferencedMBeans(String relationId) throws IllegalArgumentException, RelationNotFoundException
RelationServiceMBean
getReferencedMBeans
in interface RelationServiceMBean
relationId
- the relation id
IllegalArgumentException
- for a null relation id.
RelationNotFoundException
- when the relation id does not
exist.public String getRelationTypeName(String relationId) throws IllegalArgumentException, RelationNotFoundException
RelationServiceMBean
getRelationTypeName
in interface RelationServiceMBean
relationId
- the relation id
RelationNotFoundException
- when the relation id does not
exist.
IllegalArgumentException
- for a null relation id.public List getRole(String relationId, String roleName) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException, RoleNotFoundException
RelationServiceMBean
getRole
in interface RelationServiceMBean
relationId
- the relation idroleName
- the role name
RelationNotFoundException
- when the relation id does not
exist.
RoleNotFoundException
- when the role does not exist or
is not readable.
IllegalArgumentException
- for a null parameter.
RelationServiceNotRegisteredException
- when the relation
service is not registered with an MBeanServer.public Integer getRoleCardinality(String relationId, String roleName) throws IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
RelationServiceMBean
getRoleCardinality
in interface RelationServiceMBean
relationId
- the relation idroleName
- the role name
RelationNotFoundException
- when the relation id does not
exist.
RoleNotFoundException
- when the role does not exist or
is not readable.
IllegalArgumentException
- for a null parameter.public RoleInfo getRoleInfo(String relationTypeName, String roleInfoName) throws IllegalArgumentException, RelationTypeNotFoundException, RoleInfoNotFoundException
RelationServiceMBean
getRoleInfo
in interface RelationServiceMBean
relationTypeName
- the relation type nameroleInfoName
- the role information name
RoleInfoNotFoundException
- when the role information does not
exist for the relation type.
IllegalArgumentException
- for a null parameter.
RelationTypeNotFoundException
- when the relation type does not
exist.public List getRoleInfos(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
RelationServiceMBean
getRoleInfos
in interface RelationServiceMBean
relationTypeName
- the relation type name
RelationTypeNotFoundException
- when the relation id does not
exist.
IllegalArgumentException
- for a null parameter.public RoleResult getRoles(String relationId, String[] roleNames) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException
RelationServiceMBean
getRoles
in interface RelationServiceMBean
relationId
- the relation idroleNames
- an array of role name
RelationNotFoundException
- when the relation id does not
exist.
IllegalArgumentException
- for a null parameter.
RelationServiceNotRegisteredException
- when the relation
service is not registered with an MBeanServer.public Boolean hasRelation(String relationId) throws IllegalArgumentException
RelationServiceMBean
hasRelation
in interface RelationServiceMBean
relationId
- the relation id
IllegalArgumentException
- for a null parameter.public void isActive() throws RelationServiceNotRegisteredException
RelationServiceMBean
isActive
in interface RelationServiceMBean
RelationServiceNotRegisteredException
- when the relation
service is not registered with an MBeanServer.public String isRelation(ObjectName objectName) throws IllegalArgumentException
RelationServiceMBean
isRelation
in interface RelationServiceMBean
objectName
- the name of the MBean to check
IllegalArgumentException
- for a null object name.public ObjectName isRelationMBean(String relationId) throws IllegalArgumentException, RelationNotFoundException
RelationServiceMBean
isRelationMBean
in interface RelationServiceMBean
relationId
- the relation id to check
IllegalArgumentException
- for a null object name.
RelationNotFoundException
- when the relation id does not
exist.public void purgeRelations() throws RelationServiceNotRegisteredException
RelationServiceMBean
Not purging relations automatically can lead to problems when the same object name is reused.
If the unregistration causes a role to go below its minimal cardinality, the relation is removed. Otherwise the relation's handleMBeanUnregistration() is called.
purgeRelations
in interface RelationServiceMBean
RelationServiceNotRegisteredException
- when the relation
service is not registered with an MBeanServer.public void removeRelation(String relationId) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException
RelationServiceMBean
For internally created relations, a RELATION_BASIC_REMOVAL notification is sent.
For externally created relations, a RELATION_MBEAN_REMOVAL notification is sent.
The MBeans referenced in the relation are unaffected.
removeRelation
in interface RelationServiceMBean
relationId
- the relation id
RelationServiceNotRegisteredException
- when the relation
service is not registered with an MBeanServer.
RelationNotFoundException
- when the relation id does not
exist.
IllegalArgumentException
- for a null parameter.public void removeRelationType(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException, RelationServiceNotRegisteredException
RelationServiceMBean
Any relations using this relation type are also removed.
removeRelationType
in interface RelationServiceMBean
relationTypeName
- the relation type name
RelationTypeNotFoundException
- when the relation type does not
exist.
IllegalArgumentException
- for a null parameter.
RelationServiceNotRegisteredException
- when the relation
service is not registered with an MBeanServer.public void sendRelationCreationNotification(String relationId) throws IllegalArgumentException, RelationNotFoundException
RelationServiceMBean
For externally created relations, a RELATION_MBEAN_CREATION notification is sent.
The source is this relation service.
This method is called by addRelation() and createRelation()
sendRelationCreationNotification
in interface RelationServiceMBean
relationId
- the relation id
RelationNotFoundException
- when the relation id does not
exist.
IllegalArgumentException
- for a null parameter.public void sendRelationRemovalNotification(String relationId, List unregMBeans) throws IllegalArgumentException, RelationNotFoundException
RelationServiceMBean
For externally created relations, a RELATION_MBEAN_REMOVAL notification is sent.
The source is this relation service.
This method is called by removeRelation()
sendRelationRemovalNotification
in interface RelationServiceMBean
relationId
- the relation idunregMBeans
- a list of MBeans to be unregistered due to this
removal (can be null)
IllegalArgumentException
- for a null parameter.
RelationNotFoundException
- when the relation id does not
exist.public void sendRoleUpdateNotification(String relationId, Role newRole, List oldRoleValue) throws IllegalArgumentException, RelationNotFoundException
RelationServiceMBean
For externally created relations, a RELATION_MBEAN_UPDATE notification is sent.
The source is this relation service.
This method is called from the RelationSupport setRole() and setRoles() methods.
sendRoleUpdateNotification
in interface RelationServiceMBean
relationId
- the relation idnewRole
- the new roleoldRoleValue
- a list of MBeans in the old role
RelationNotFoundException
- when the relation id does not
exist.
IllegalArgumentException
- for a null parameter.public void setPurgeFlag(boolean value)
RelationServiceMBean
setPurgeFlag
in interface RelationServiceMBean
value
- true for an immediate purge on unregistration, false
otherwise.public void setRole(String relationId, Role role) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException, InvalidRoleValueException
RelationServiceMBean
The role will be validated according to information in the relation type.
The relation service will keep track the MBeans unregistration to maintain the consistency of the relation.
setRole
in interface RelationServiceMBean
relationId
- the relation to change the role for.role
- the new role
RoleNotFoundException
- when this is an internal relation or
the role does not exist or it is not writable.
IllegalArgumentException
- for null parameters
RelationNotFoundException
- when the relation does not exist in
the relation service.
RelationServiceNotRegisteredException
- when the relation service
has not been registered with an MBeanServer
InvalidRoleValueException
- when the role is not valid according
to information in the relation type.public RoleResult setRoles(String relationId, RoleList roles) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException
RelationServiceMBean
The roles will be validated according to information in the relation type.
The relation service will keep track the MBeans unregistration to maintain the consistency of the relation.
setRoles
in interface RelationServiceMBean
relationId
- the relation to change the role for.roles
- the list of roles
IllegalArgumentException
- for null parameters
RelationServiceNotRegisteredException
- when the relation service
has not been registered with an MBeanServer
RelationNotFoundException
- when the relation does not exist in
the relation service.public void updateRoleMap(String relationId, Role newRole, List oldRoleValue) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException
RelationServiceMBean
It is called from RelationSupport setRole() and setRoles() and the relation service's setRole() and setRoles() methods.
The relation service will keep track the MBeans unregistration to maintain the consistency of the relation.
updateRoleMap
in interface RelationServiceMBean
relationId
- the relation idnewRole
- the new roleoldRoleValue
- a list of MBeans in the old role
RelationServiceNotRegisteredException
- when the relation
service has not been registered with an MBeanServer
RelationNotFoundException
- when the relation id does not
exist.
IllegalArgumentException
- for a null parameter.public ObjectName preRegister(MBeanServer server, ObjectName objectName) throws Exception
MBeanRegistration
The MBean can stop the registration by throwing an exception.The exception is forwarded to the invoker wrapped in an MBeanRegistrationException.
preRegister
in interface MBeanRegistration
Exception
- for any error, the MBean is not registered.public void postRegister(Boolean registered)
MBeanRegistration
postRegister
in interface MBeanRegistration
registered
- the MBeanServer passes true when the
MBean was registered, false otherwise.public void preDeregister() throws Exception
MBeanRegistration
The MBean can throw an exception, this will stop the deregistration. The exception is forwarded to the invoker wrapped in an MBeanRegistrationException.
preDeregister
in interface MBeanRegistration
Exception
public void postDeregister()
MBeanRegistration
postDeregister
in interface MBeanRegistration
public void handleNotification(Notification notification, Object handback)
NotificationListener
handleNotification
in interface NotificationListener
notification
- the notification objecthandback
- the handback object given to the broadcaster
upon listener registrationpublic MBeanNotificationInfo[] getNotificationInfo()
NotificationBroadcaster
getNotificationInfo
in interface NotificationBroadcaster
getNotificationInfo
in class NotificationBroadcasterSupport
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |