Top Description Methods
javax.management.relation

public Interface RelationServiceMBean

Known Direct Implementers
javax.management.relation.RelationService
Imports
javax.management.ObjectName, .InstanceNotFoundException, java.util.List, .Map

The Relation Service is in charge of creating and deleting relation types and relations, of handling the consistency and of providing query mechanisms.
Since
1.5

Method Summary

Modifier and TypeMethod and Description
public void
addRelation(ObjectName
ObjectName of the relation MBean to be added.
relationObjectName
)

Adds an MBean created by the user (and registered by him in the MBean Server) as a relation in the Relation Service.

public void
addRelationType(RelationType
relation type object (implementing the RelationType interface)
relationTypeObj
)

Adds given object as a relation type.

public Integer

Returns:

an Integer wrapping an integer corresponding to possible problems represented as constants in RoleUnresolved:

- 0 if role can be read

- integer corresponding to RoleStatus.NO_ROLE_WITH_NAME

- integer corresponding to RoleStatus.ROLE_NOT_READABLE

checkRoleReading
(String
name of role to be checked
roleName
,
String
name of the relation type
relationTypeName
)

Checks if given Role can be read in a relation of the given type.

public Integer

Returns:

an Integer wrapping an integer corresponding to possible problems represented as constants in RoleUnresolved:

- 0 if role can be set

- integer corresponding to RoleStatus.NO_ROLE_WITH_NAME

- integer for RoleStatus.ROLE_NOT_WRITABLE

- integer for RoleStatus.LESS_THAN_MIN_ROLE_DEGREE

- integer for RoleStatus.MORE_THAN_MAX_ROLE_DEGREE

- integer for RoleStatus.REF_MBEAN_OF_INCORRECT_CLASS

- integer for RoleStatus.REF_MBEAN_NOT_REGISTERED

checkRoleWriting
(Role
role to be checked
role
,
String
name of relation type
relationTypeName
,
Boolean
flag to specify that the checking is done for the initialization of a role, write access shall not be verified.
initFlag
)

Checks if given Role can be set in a relation of given type.

public void
createRelation(String
relation identifier, to identify uniquely the relation inside the Relation Service
relationId
,
String
name of the relation type (has to be created in the Relation Service)
relationTypeName
,
RoleList
role list to initialize roles of the relation (can be null).
roleList
)

Creates a simple relation (represented by a RelationSupport object) of given relation type, and adds it in the Relation Service.

public void
createRelationType(String
name of the relation type
relationTypeName
,
RoleInfo[]
array of role infos
roleInfoArray
)

Creates a relation type (RelationTypeSupport object) with given role infos (provided by the RoleInfo objects), and adds it in the Relation Service.

public Map<ObjectName, List<String>>

Returns:

an HashMap, where the keys are the ObjectNames of the MBeans associated to given MBean, and the value is, for each key, an ArrayList of the relation ids of the relations where the key MBean is associated to given one (as they can be associated in several different relations).
findAssociatedMBeans
(ObjectName
ObjectName of MBean
mbeanName
,
String
can be null; if specified, only the relations of that type will be considered in the search. Else all relation types are considered.
relationTypeName
,
String
can be null; if specified, only the relations where the MBean is referenced in that role will be considered. Else all roles are considered.
roleName
)

Retrieves the MBeans associated to given one in a relation.

public Map<String, List<String>>

Returns:

an HashMap, where the keys are the relation ids of the relations where the MBean is referenced, and the value is, for each key, an ArrayList of role names (as an MBean can be referenced in several roles in the same relation).
findReferencingRelations
(ObjectName
ObjectName of MBean
mbeanName
,
String
can be null; if specified, only the relations of that type will be considered in the search. Else all relation types are considered.
relationTypeName
,
String
can be null; if specified, only the relations where the MBean is referenced in that role will be returned. Else all roles are considered.
roleName
)

Retrieves the relations where a given MBean is referenced.

public List<String>

Returns:

an ArrayList of relation ids.
findRelationsOfType
(String
relation type name
relationTypeName
)

Returns the relation ids for relations of the given type.

public List<String>

Returns:

ArrayList of String
getAllRelationIds
()

Returns all the relation ids for all the relations handled by the Relation Service.

public List<String>

Returns:

ArrayList of relation type names (Strings)
getAllRelationTypeNames
()

Retrieves names of all known relation types.

public RoleResult

Returns:

a RoleResult object, including a RoleList (for roles successfully retrieved) and a RoleUnresolvedList (for roles not readable).
getAllRoles
(String
relation id
relationId
)

Returns all roles present in the relation.

public boolean

Returns:

true if purges are immediate.
getPurgeFlag
()

Returns the flag to indicate if when a notification is received for the unregistration of an MBean referenced in a relation, if an immediate "purge" of the relations (look for the relations no longer valid) has to be performed, or if that will be performed only when the purgeRelations method is explicitly called.

public Map<ObjectName, List<String>>

Returns:

a HashMap mapping:

ObjectName -> ArrayList of String (role names)

getReferencedMBeans
(String
relation id
relationId
)

Retrieves MBeans referenced in the various roles of the relation.

public String

Returns:

the name of the associated relation type.
getRelationTypeName
(String
relation id
relationId
)

Returns name of associated relation type for given relation.

public List<ObjectName>

Returns:

the ArrayList of ObjectName objects being the role value
getRole
(String
relation id
relationId
,
String
name of role
roleName
)

Retrieves role value for given role name in given relation.

public Integer

Returns:

the number of currently referenced MBeans in that role
getRoleCardinality
(String
relation id
relationId
,
String
name of role
roleName
)

Retrieves the number of MBeans currently referenced in the given role.

public RoleInfo

Returns:

RoleInfo object.
getRoleInfo
(String
name of relation type
relationTypeName
,
String
name of role
roleInfoName
)

Retrieves role info for given role of a given relation type.

public List<RoleInfo>

Returns:

ArrayList of RoleInfo.
getRoleInfos
(String
name of relation type
relationTypeName
)

Retrieves list of role infos (RoleInfo objects) of a given relation type.

public RoleResult

Returns:

a RoleResult object, including a RoleList (for roles successfully retrieved) and a RoleUnresolvedList (for roles not retrieved).
getRoles
(String
relation id
relationId
,
String[]
array of names of roles to be retrieved
roleNameArray
)

Retrieves values of roles with given names in given relation.

public Boolean

Returns:

boolean: true if there is a relation, false else
hasRelation
(String
relation id identifying the relation
relationId
)

Checks if there is a relation identified in Relation Service with given relation id.

public void
isActive()

Checks if the Relation Service is active.

public String

Returns:

relation id (String) or null (if the ObjectName is not a relation handled by the Relation Service)
isRelation
(ObjectName
ObjectName of supposed relation
objectName
)

Returns the relation id associated to the given ObjectName if the MBean has been added as a relation in the Relation Service.

public ObjectName

Returns:

ObjectName of the corresponding relation MBean, or null if the relation is not an MBean.
isRelationMBean
(String
relation id identifying the relation
relationId
)

If the relation is represented by an MBean (created by the user and added as a relation in the Relation Service), returns the ObjectName of the MBean.

public void
purgeRelations()

Purges the relations.

public void
removeRelation(String
relation id of the relation to be removed
relationId
)

Removes given relation from the Relation Service.

public void
removeRelationType(String
name of the relation type to be removed
relationTypeName
)

Removes given relation type from Relation Service.

public void
sendRelationCreationNotification(String
relation identifier of the updated relation
relationId
)

Sends a notification (RelationNotification) for a relation creation.

public void
sendRelationRemovalNotification(String
relation identifier of the updated relation
relationId
,
List<ObjectName>
List of ObjectNames of MBeans expected to be unregistered due to relation removal (can be null)
unregMBeanList
)

Sends a notification (RelationNotification) for a relation removal.

public void
sendRoleUpdateNotification(String
relation identifier of the updated relation
relationId
,
Role
new role (name and new value)
newRole
,
List<ObjectName>
old role value (List of ObjectName objects)
oldRoleValue
)

Sends a notification (RelationNotification) for a role update in the given relation.

public void
setPurgeFlag(boolean
flag
purgeFlag
)

Sets the flag to indicate if when a notification is received for the unregistration of an MBean referenced in a relation, if an immediate "purge" of the relations (look for the relations no longer valid) has to be performed, or if that will be performed only when the purgeRelations method is explicitly called.

public void
setRole(String
relation id
relationId
,
Role
role to be set (name and new value)
role
)

Sets the given role in given relation.

public RoleResult

Returns:

a RoleResult object, including a RoleList (for roles successfully set) and a RoleUnresolvedList (for roles not set).
setRoles
(String
relation id
relationId
,
RoleList
list of roles to be set
roleList
)

Sets the given roles in given relation.

public void
updateRoleMap(String
relation identifier of the updated relation
relationId
,
Role
new role (name and new value)
newRole
,
List<ObjectName>
old role value (List of ObjectName objects)
oldRoleValue
)

Handles update of the Relation Service role map for the update of given role in given relation.

Method Detail

addRelationback to summary
public void addRelation(ObjectName relationObjectName) throws IllegalArgumentException, RelationServiceNotRegisteredException, NoSuchMethodException, InvalidRelationIdException, InstanceNotFoundException, InvalidRelationServiceException, RelationTypeNotFoundException, RoleNotFoundException, InvalidRoleValueException

Adds an MBean created by the user (and registered by him in the MBean Server) as a relation in the Relation Service.

To be added as a relation, the MBean must conform to the following:

- implement the Relation interface

- have for RelationService ObjectName the ObjectName of current Relation Service

- have a relation id that is unique and unused in current Relation Service

- have for relation type a relation type created in the Relation Service

- have roles conforming to the role info provided in the relation type.

Parameters
relationObjectName:ObjectName

ObjectName of the relation MBean to be added.

Exceptions
IllegalArgumentException:
if null parameter
RelationServiceNotRegisteredException:
if the Relation Service is not registered in the MBean Server
NoSuchMethodException:
If the MBean does not implement the Relation interface
InvalidRelationIdException:
if:

- no relation identifier in MBean

- the relation identifier is already used in the Relation Service

InstanceNotFoundException:
if the MBean for given ObjectName has not been registered
InvalidRelationServiceException:
if:

- no Relation Service name in MBean

- the Relation Service name in the MBean is not the one of the current Relation Service

RelationTypeNotFoundException:
if:

- no relation type name in MBean

- the relation type name in MBean does not correspond to a relation type created in the Relation Service

RoleNotFoundException:
if a value is provided for a role that does not exist in the relation type
InvalidRoleValueException:
if:

- the number of referenced MBeans in a role is less than expected minimum degree

- the number of referenced MBeans in a role exceeds expected maximum degree

- one referenced MBean in the value is not an Object of the MBean class expected for that role

- an MBean provided for a role does not exist

addRelationTypeback to summary
public void addRelationType(RelationType relationTypeObj) throws IllegalArgumentException, InvalidRelationTypeException

Adds given object as a relation type. The object is expected to implement the RelationType interface.

Parameters
relationTypeObj:RelationType

relation type object (implementing the RelationType interface)

Exceptions
IllegalArgumentException:
if null parameter or if relationTypeObj.getRelationTypeName() returns null.
InvalidRelationTypeException:
if there is already a relation type with that name
checkRoleReadingback to summary
public Integer checkRoleReading(String roleName, String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException

Checks if given Role can be read in a relation of the given type.

Parameters
roleName:String

name of role to be checked

relationTypeName:String

name of the relation type

Returns:Integer

an Integer wrapping an integer corresponding to possible problems represented as constants in RoleUnresolved:

- 0 if role can be read

- integer corresponding to RoleStatus.NO_ROLE_WITH_NAME

- integer corresponding to RoleStatus.ROLE_NOT_READABLE

Exceptions
IllegalArgumentException:
if null parameter
RelationTypeNotFoundException:
if the relation type is not known in the Relation Service
checkRoleWritingback to summary
public Integer checkRoleWriting(Role role, String relationTypeName, Boolean initFlag) throws IllegalArgumentException, RelationTypeNotFoundException

Checks if given Role can be set in a relation of given type.

Parameters
role:Role

role to be checked

relationTypeName:String

name of relation type

initFlag:Boolean

flag to specify that the checking is done for the initialization of a role, write access shall not be verified.

Returns:Integer

an Integer wrapping an integer corresponding to possible problems represented as constants in RoleUnresolved:

- 0 if role can be set

- integer corresponding to RoleStatus.NO_ROLE_WITH_NAME

- integer for RoleStatus.ROLE_NOT_WRITABLE

- integer for RoleStatus.LESS_THAN_MIN_ROLE_DEGREE

- integer for RoleStatus.MORE_THAN_MAX_ROLE_DEGREE

- integer for RoleStatus.REF_MBEAN_OF_INCORRECT_CLASS

- integer for RoleStatus.REF_MBEAN_NOT_REGISTERED

Exceptions
IllegalArgumentException:
if null parameter
RelationTypeNotFoundException:
if unknown relation type
createRelationback to summary
public void createRelation(String relationId, String relationTypeName, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RoleNotFoundException, InvalidRelationIdException, RelationTypeNotFoundException, InvalidRoleValueException

Creates a simple relation (represented by a RelationSupport object) of given relation type, and adds it in the Relation Service.

Roles are initialized according to the role list provided in parameter. The ones not initialized in this way are set to an empty ArrayList of ObjectNames.

A RelationNotification, with type RELATION_BASIC_CREATION, is sent.

Parameters
relationId:String

relation identifier, to identify uniquely the relation inside the Relation Service

relationTypeName:String

name of the relation type (has to be created in the Relation Service)

roleList:RoleList

role list to initialize roles of the relation (can be null).

Exceptions
RelationServiceNotRegisteredException:
if the Relation Service is not registered in the MBean Server
IllegalArgumentException:
if null parameter
RoleNotFoundException:
if a value is provided for a role that does not exist in the relation type
InvalidRelationIdException:
if relation id already used
RelationTypeNotFoundException:
if relation type not known in Relation Service
InvalidRoleValueException:
if:

- the same role name is used for two different roles

- the number of referenced MBeans in given value is less than expected minimum degree

- the number of referenced MBeans in provided value exceeds expected maximum degree

- one referenced MBean in the value is not an Object of the MBean class expected for that role

- an MBean provided for that role does not exist

createRelationTypeback to summary
public void createRelationType(String relationTypeName, RoleInfo[] roleInfoArray) throws IllegalArgumentException, InvalidRelationTypeException

Creates a relation type (RelationTypeSupport object) with given role infos (provided by the RoleInfo objects), and adds it in the Relation Service.

Parameters
relationTypeName:String

name of the relation type

roleInfoArray:RoleInfo[]

array of role infos

Exceptions
IllegalArgumentException:
if null parameter
InvalidRelationTypeException:
If:

- there is already a relation type with that name

- the same name has been used for two different role infos

- no role info provided

- one null role info provided

findAssociatedMBeansback to summary
public Map<ObjectName, List<String>> findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException

Retrieves the MBeans associated to given one in a relation.

This corresponds to CIM Associators and AssociatorNames operations.

Parameters
mbeanName:ObjectName

ObjectName of MBean

relationTypeName:String

can be null; if specified, only the relations of that type will be considered in the search. Else all relation types are considered.

roleName:String

can be null; if specified, only the relations where the MBean is referenced in that role will be considered. Else all roles are considered.

Returns:Map<ObjectName, List<String>>

an HashMap, where the keys are the ObjectNames of the MBeans associated to given MBean, and the value is, for each key, an ArrayList of the relation ids of the relations where the key MBean is associated to given one (as they can be associated in several different relations).

Exceptions
IllegalArgumentException:
if null parameter
findReferencingRelationsback to summary
public Map<String, List<String>> findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException

Retrieves the relations where a given MBean is referenced.

This corresponds to the CIM "References" and "ReferenceNames" operations.

Parameters
mbeanName:ObjectName

ObjectName of MBean

relationTypeName:String

can be null; if specified, only the relations of that type will be considered in the search. Else all relation types are considered.

roleName:String

can be null; if specified, only the relations where the MBean is referenced in that role will be returned. Else all roles are considered.

Returns:Map<String, List<String>>

an HashMap, where the keys are the relation ids of the relations where the MBean is referenced, and the value is, for each key, an ArrayList of role names (as an MBean can be referenced in several roles in the same relation).

Exceptions
IllegalArgumentException:
if null parameter
findRelationsOfTypeback to summary
public List<String> findRelationsOfType(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException

Returns the relation ids for relations of the given type.

Parameters
relationTypeName:String

relation type name

Returns:List<String>

an ArrayList of relation ids.

Exceptions
IllegalArgumentException:
if null parameter
RelationTypeNotFoundException:
if there is no relation type with that name.
getAllRelationIdsback to summary
public List<String> getAllRelationIds()

Returns all the relation ids for all the relations handled by the Relation Service.

Returns:List<String>

ArrayList of String

getAllRelationTypeNamesback to summary
public List<String> getAllRelationTypeNames()

Retrieves names of all known relation types.

Returns:List<String>

ArrayList of relation type names (Strings)

getAllRolesback to summary
public RoleResult getAllRoles(String relationId) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException

Returns all roles present in the relation.

Parameters
relationId:String

relation id

Returns:RoleResult

a RoleResult object, including a RoleList (for roles successfully retrieved) and a RoleUnresolvedList (for roles not readable).

Exceptions
IllegalArgumentException:
if null parameter
RelationNotFoundException:
if no relation for given id
RelationServiceNotRegisteredException:
if the Relation Service is not registered in the MBean Server
getPurgeFlagback to summary
public boolean getPurgeFlag()

Returns the flag to indicate if when a notification is received for the unregistration of an MBean referenced in a relation, if an immediate "purge" of the relations (look for the relations no longer valid) has to be performed, or if that will be performed only when the purgeRelations method is explicitly called.

true is immediate purge.

Returns:boolean

true if purges are immediate.

See Also
setPurgeFlag
getReferencedMBeansback to summary
public Map<ObjectName, List<String>> getReferencedMBeans(String relationId) throws IllegalArgumentException, RelationNotFoundException

Retrieves MBeans referenced in the various roles of the relation.

Parameters
relationId:String

relation id

Returns:Map<ObjectName, List<String>>

a HashMap mapping:

ObjectName -> ArrayList of String (role names)

Exceptions
IllegalArgumentException:
if null parameter
RelationNotFoundException:
if no relation for given relation id
getRelationTypeNameback to summary
public String getRelationTypeName(String relationId) throws IllegalArgumentException, RelationNotFoundException

Returns name of associated relation type for given relation.

Parameters
relationId:String

relation id

Returns:String

the name of the associated relation type.

Exceptions
IllegalArgumentException:
if null parameter
RelationNotFoundException:
if no relation for given relation id
getRoleback to summary
public List<ObjectName> getRole(String relationId, String roleName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException

Retrieves role value for given role name in given relation.

Parameters
relationId:String

relation id

roleName:String

name of role

Returns:List<ObjectName>

the ArrayList of ObjectName objects being the role value

Exceptions
RelationServiceNotRegisteredException:
if the Relation Service is not registered
IllegalArgumentException:
if null parameter
RelationNotFoundException:
if no relation with given id
RoleNotFoundException:
if:

- there is no role with given name

or

- the role is not readable.

See Also
setRole
getRoleCardinalityback to summary
public Integer getRoleCardinality(String relationId, String roleName) throws IllegalArgumentException, RelationNotFoundException, RoleNotFoundException

Retrieves the number of MBeans currently referenced in the given role.

Parameters
relationId:String

relation id

roleName:String

name of role

Returns:Integer

the number of currently referenced MBeans in that role

Exceptions
IllegalArgumentException:
if null parameter
RelationNotFoundException:
if no relation with given id
RoleNotFoundException:
if there is no role with given name
getRoleInfoback to summary
public RoleInfo getRoleInfo(String relationTypeName, String roleInfoName) throws IllegalArgumentException, RelationTypeNotFoundException, RoleInfoNotFoundException

Retrieves role info for given role of a given relation type.

Parameters
relationTypeName:String

name of relation type

roleInfoName:String

name of role

Returns:RoleInfo

RoleInfo object.

Exceptions
IllegalArgumentException:
if null parameter
RelationTypeNotFoundException:
if the relation type is not known in the Relation Service
RoleInfoNotFoundException:
if the role is not part of the relation type.
getRoleInfosback to summary
public List<RoleInfo> getRoleInfos(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException

Retrieves list of role infos (RoleInfo objects) of a given relation type.

Parameters
relationTypeName:String

name of relation type

Returns:List<RoleInfo>

ArrayList of RoleInfo.

Exceptions
IllegalArgumentException:
if null parameter
RelationTypeNotFoundException:
if there is no relation type with that name.
getRolesback to summary
public RoleResult getRoles(String relationId, String[] roleNameArray) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException

Retrieves values of roles with given names in given relation.

Parameters
relationId:String

relation id

roleNameArray:String[]

array of names of roles to be retrieved

Returns:RoleResult

a RoleResult object, including a RoleList (for roles successfully retrieved) and a RoleUnresolvedList (for roles not retrieved).

Exceptions
RelationServiceNotRegisteredException:
if the Relation Service is not registered in the MBean Server
IllegalArgumentException:
if null parameter
RelationNotFoundException:
if no relation with given id
See Also
setRoles
hasRelationback to summary
public Boolean hasRelation(String relationId) throws IllegalArgumentException

Checks if there is a relation identified in Relation Service with given relation id.

Parameters
relationId:String

relation id identifying the relation

Returns:Boolean

boolean: true if there is a relation, false else

Exceptions
IllegalArgumentException:
if null parameter
isActiveback to summary
public void isActive() throws RelationServiceNotRegisteredException

Checks if the Relation Service is active. Current condition is that the Relation Service must be registered in the MBean Server

Exceptions
RelationServiceNotRegisteredException:
if it is not registered
isRelationback to summary
public String isRelation(ObjectName objectName) throws IllegalArgumentException

Returns the relation id associated to the given ObjectName if the MBean has been added as a relation in the Relation Service.

Parameters
objectName:ObjectName

ObjectName of supposed relation

Returns:String

relation id (String) or null (if the ObjectName is not a relation handled by the Relation Service)

Exceptions
IllegalArgumentException:
if null parameter
isRelationMBeanback to summary
public ObjectName isRelationMBean(String relationId) throws IllegalArgumentException, RelationNotFoundException

If the relation is represented by an MBean (created by the user and added as a relation in the Relation Service), returns the ObjectName of the MBean.

Parameters
relationId:String

relation id identifying the relation

Returns:ObjectName

ObjectName of the corresponding relation MBean, or null if the relation is not an MBean.

Exceptions
IllegalArgumentException:
if null parameter
RelationNotFoundException:
there is no relation associated to that id
purgeRelationsback to summary
public void purgeRelations() throws RelationServiceNotRegisteredException

Purges the relations.

Depending on the purgeFlag value, this method is either called automatically when a notification is received for the unregistration of an MBean referenced in a relation (if the flag is set to true), or not (if the flag is set to false).

In that case it is up to the user to call it to maintain the consistency of the relations. To be kept in mind that if an MBean is unregistered and the purge not done immediately, if the ObjectName is reused and assigned to another MBean referenced in a relation, calling manually this purgeRelations() method will cause trouble, as will consider the ObjectName as corresponding to the unregistered MBean, not seeing the new one.

The behavior depends on the cardinality of the role where the unregistered MBean is referenced:

- if removing one MBean reference in the role makes its number of references less than the minimum degree, the relation has to be removed.

- if the remaining number of references after removing the MBean reference is still in the cardinality range, keep the relation and update it calling its handleMBeanUnregistration() callback.

Exceptions
RelationServiceNotRegisteredException:
if the Relation Service is not registered in the MBean Server.
removeRelationback to summary
public void removeRelation(String relationId) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException

Removes given relation from the Relation Service.

A RelationNotification notification is sent, its type being:

- RelationNotification.RELATION_BASIC_REMOVAL if the relation was only internal to the Relation Service

- RelationNotification.RELATION_MBEAN_REMOVAL if the relation is registered as an MBean.

For MBeans referenced in such relation, nothing will be done,

Parameters
relationId:String

relation id of the relation to be removed

Exceptions
RelationServiceNotRegisteredException:
if the Relation Service is not registered in the MBean Server
IllegalArgumentException:
if null parameter
RelationNotFoundException:
if no relation corresponding to given relation id
removeRelationTypeback to summary
public void removeRelationType(String relationTypeName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationTypeNotFoundException

Removes given relation type from Relation Service.

The relation objects of that type will be removed from the Relation Service.

Parameters
relationTypeName:String

name of the relation type to be removed

Exceptions
RelationServiceNotRegisteredException:
if the Relation Service is not registered in the MBean Server
IllegalArgumentException:
if null parameter
RelationTypeNotFoundException:
If there is no relation type with that name
sendRelationCreationNotificationback to summary
public void sendRelationCreationNotification(String relationId) throws IllegalArgumentException, RelationNotFoundException

Sends a notification (RelationNotification) for a relation creation. The notification type is:

- RelationNotification.RELATION_BASIC_CREATION if the relation is an object internal to the Relation Service

- RelationNotification.RELATION_MBEAN_CREATION if the relation is a MBean added as a relation.

The source object is the Relation Service itself.

It is called in Relation Service createRelation() and addRelation() methods.

Parameters
relationId:String

relation identifier of the updated relation

Exceptions
IllegalArgumentException:
if null parameter
RelationNotFoundException:
if there is no relation for given relation id
sendRelationRemovalNotificationback to summary
public void sendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList) throws IllegalArgumentException, RelationNotFoundException

Sends a notification (RelationNotification) for a relation removal. The notification type is:

- RelationNotification.RELATION_BASIC_REMOVAL if the relation is an object internal to the Relation Service

- RelationNotification.RELATION_MBEAN_REMOVAL if the relation is a MBean added as a relation.

The source object is the Relation Service itself.

It is called in Relation Service removeRelation() method.

Parameters
relationId:String

relation identifier of the updated relation

unregMBeanList:List<ObjectName>

List of ObjectNames of MBeans expected to be unregistered due to relation removal (can be null)

Exceptions
IllegalArgumentException:
if null parameter
RelationNotFoundException:
if there is no relation for given relation id
sendRoleUpdateNotificationback to summary
public void sendRoleUpdateNotification(String relationId, Role newRole, List<ObjectName> oldRoleValue) throws IllegalArgumentException, RelationNotFoundException

Sends a notification (RelationNotification) for a role update in the given relation. The notification type is:

- RelationNotification.RELATION_BASIC_UPDATE if the relation is an object internal to the Relation Service

- RelationNotification.RELATION_MBEAN_UPDATE if the relation is a MBean added as a relation.

The source object is the Relation Service itself.

It is called in relation MBean setRole() (for given role) and setRoles() (for each role) methods (implementation provided in RelationSupport class).

It is also called in Relation Service setRole() (for given role) and setRoles() (for each role) methods.

Parameters
relationId:String

relation identifier of the updated relation

newRole:Role

new role (name and new value)

oldRoleValue:List<ObjectName>

old role value (List of ObjectName objects)

Exceptions
IllegalArgumentException:
if null parameter
RelationNotFoundException:
if there is no relation for given relation id
setPurgeFlagback to summary
public void setPurgeFlag(boolean purgeFlag)

Sets the flag to indicate if when a notification is received for the unregistration of an MBean referenced in a relation, if an immediate "purge" of the relations (look for the relations no longer valid) has to be performed, or if that will be performed only when the purgeRelations method is explicitly called.

true is immediate purge.

Parameters
purgeFlag:boolean

flag

See Also
getPurgeFlag
setRoleback to summary
public void setRole(String relationId, Role role) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException, InvalidRoleValueException, RelationTypeNotFoundException

Sets the given role in given relation.

Will check the role according to its corresponding role definition provided in relation's relation type

The Relation Service will keep track of the change to keep the consistency of relations by handling referenced MBean deregistrations.

Parameters
relationId:String

relation id

role:Role

role to be set (name and new value)

Exceptions
RelationServiceNotRegisteredException:
if the Relation Service is not registered in the MBean Server
IllegalArgumentException:
if null parameter
RelationNotFoundException:
if no relation with given id
RoleNotFoundException:
if:

- internal relation

and

- the role does not exist or is not writable

InvalidRoleValueException:
if internal relation and value provided for role is not valid:

- the number of referenced MBeans in given value is less than expected minimum degree

or

- the number of referenced MBeans in provided value exceeds expected maximum degree

or

- one referenced MBean in the value is not an Object of the MBean class expected for that role

or

- an MBean provided for that role does not exist

RelationTypeNotFoundException:
if unknown relation type
See Also
getRole
setRolesback to summary
public RoleResult setRoles(String relationId, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException

Sets the given roles in given relation.

Will check the role according to its corresponding role definition provided in relation's relation type

The Relation Service keeps track of the changes to keep the consistency of relations by handling referenced MBean deregistrations.

Parameters
relationId:String

relation id

roleList:RoleList

list of roles to be set

Returns:RoleResult

a RoleResult object, including a RoleList (for roles successfully set) and a RoleUnresolvedList (for roles not set).

Exceptions
RelationServiceNotRegisteredException:
if the Relation Service is not registered in the MBean Server
IllegalArgumentException:
if null parameter
RelationNotFoundException:
if no relation with given id
See Also
getRoles
updateRoleMapback to summary
public void updateRoleMap(String relationId, Role newRole, List<ObjectName> oldRoleValue) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException

Handles update of the Relation Service role map for the update of given role in given relation.

It is called in relation MBean setRole() (for given role) and setRoles() (for each role) methods (implementation provided in RelationSupport class).

It is also called in Relation Service setRole() (for given role) and setRoles() (for each role) methods.

To allow the Relation Service to maintain the consistency (in case of MBean unregistration) and to be able to perform queries, this method must be called when a role is updated.

Parameters
relationId:String

relation identifier of the updated relation

newRole:Role

new role (name and new value)

oldRoleValue:List<ObjectName>

old role value (List of ObjectName objects)

Exceptions
IllegalArgumentException:
if null parameter
RelationServiceNotRegisteredException:
if the Relation Service is not registered in the MBean Server
RelationNotFoundException:
if no relation for given id.