public class RelationService extends NotificationBroadcasterSupport implements RelationServiceMBean, MBeanRegistration, NotificationListener
它通过扩展NotificationBroadcasterSupport来实现NotificationBroadcaster,以便在从中删除关系时发送通知。
它实现NotificationListener接口以能够接收关于在关系角色和关系MBeans中引用的MBean的注销的通知。
它实现MBeanRegistration界面,以便能够检索其ObjectName和MBean Server。
Constructor and Description |
---|
RelationService(boolean immediatePurgeFlag)
构造函数
|
Modifier and Type | Method and Description |
---|---|
void |
addRelation(ObjectName relationObjectName)
将由用户创建的一个MBean(并由他注册在MBean服务器中)添加为关系服务中的关系。
|
void |
addRelationType(RelationType relationTypeObj)
将给定对象添加为关系类型。
|
Integer |
checkRoleReading(String roleName, String relationTypeName)
检查给定角色是否可以以给定类型的关系读取。
|
Integer |
checkRoleWriting(Role role, String relationTypeName, Boolean initFlag)
检查给定的角色是否可以按给定类型的关系进行设置。
|
void |
createRelation(String relationId, String relationTypeName, RoleList roleList)
创建给定关系类型的简单关系(由RelationSupport对象表示),并将其添加到关系服务中。
|
void |
createRelationType(String relationTypeName, RoleInfo[] roleInfoArray)
使用给定的角色信息(由RoleInfo对象提供)创建关系类型(RelationTypeSupport对象),并将其添加到关系服务中。
|
Map<ObjectName,List<String>> |
findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName)
检索与某个关系中的给定关联的MBean。
|
Map<String,List<String>> |
findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName)
检索给定MBean引用的关系。
|
List<String> |
findRelationsOfType(String relationTypeName)
返回给定类型的关系的关系id。
|
List<String> |
getAllRelationIds()
返回由关系服务处理的所有关系的所有关系ID。
|
List<String> |
getAllRelationTypeNames()
检索所有已知关系类型的名称。
|
RoleResult |
getAllRoles(String relationId)
返回关系中存在的所有角色。
|
MBeanNotificationInfo[] |
getNotificationInfo()
返回一个NotificationInfo对象,该对象包含通知的Java类的名称以及发送的通知类型。
|
boolean |
getPurgeFlag()
返回标志,以指示是否在关系中引用的MBean的注销收到通知,如果必须立即执行关系的“清除”(查找关系不再有效),或者如果将只有当purgeRelations方法被显式调用时才执行。
|
Map<ObjectName,List<String>> |
getReferencedMBeans(String relationId)
检索在关系的各种角色中引用的MBean。
|
String |
getRelationTypeName(String relationId)
返回给定关系的关联关系类型的名称。
|
List<ObjectName> |
getRole(String relationId, String roleName)
在给定关系中为给定的角色名称检索角色值。
|
Integer |
getRoleCardinality(String relationId, String roleName)
检索当前在给定角色中引用的MBeans数。
|
RoleInfo |
getRoleInfo(String relationTypeName, String roleInfoName)
检索给定关系类型的给定角色名称的角色信息。
|
List<RoleInfo> |
getRoleInfos(String relationTypeName)
检索给定关系类型的角色信息(RoleInfo对象)的列表。
|
RoleResult |
getRoles(String relationId, String[] roleNameArray)
以给定的关系取得给定名称的角色值。
|
void |
handleNotification(Notification notif, Object handback)
JMX通知发生时调用。
|
Boolean |
hasRelation(String relationId)
检查在关系服务中是否存在与给定关系id相关联的关系。
|
void |
isActive()
检查关系服务是否处于活动状态。
|
String |
isRelation(ObjectName objectName)
如果MBean作为关系服务中的关系添加,则返回与给定ObjectName关联的关系id。
|
ObjectName |
isRelationMBean(String relationId)
如果关系由MBean(由用户创建并在关系服务中添加为关系)表示,则返回MBean的ObjectName。
|
void |
postDeregister()
允许MBean在MBean服务器中取消注册后执行所需的任何操作。
|
void |
postRegister(Boolean registrationDone)
允许MBean在MBean服务器中注册或注册失败后执行所需的操作。
|
void |
preDeregister()
允许MBean在MBean服务器取消注册之前执行所需的任何操作。
|
ObjectName |
preRegister(MBeanServer server, ObjectName name)
允许MBean在MBean服务器注册之前执行所需的任何操作。
|
void |
purgeRelations()
清除关系。
|
void |
removeRelation(String relationId)
从关系服务中删除给定的关系。
|
void |
removeRelationType(String relationTypeName)
从关系服务中删除给定的关系类型。
|
void |
sendRelationCreationNotification(String relationId)
发送关系创建的通知(RelationNotification)。
|
void |
sendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList)
发送通知(RelationNotification)用于删除关系。
|
void |
sendRoleUpdateNotification(String relationId, Role newRole, List<ObjectName> oldValue)
发送给定关系中角色更新的通知(RelationNotification)。
|
void |
setPurgeFlag(boolean purgeFlag)
设置标志以指示是否在关系中引用的MBean注销的通知被接收,如果必须立即执行关系的“清除”(寻找关系不再有效),或者如果将只有当purgeRelations方法被显式调用时才执行。
|
void |
setRole(String relationId, Role role)
在给定的关系中设定给定的角色。
|
RoleResult |
setRoles(String relationId, RoleList roleList)
在给定的关系中设定给定的角色。
|
void |
updateRoleMap(String relationId, Role newRole, List<ObjectName> oldValue)
处理关系服务角色图更新给定关系中给定角色的更新。
|
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
public RelationService(boolean immediatePurgeFlag)
immediatePurgeFlag
- 用于指示何时接收关于在关系中引用的MBean的注销的通知的时间,如果必须执行关系的立即“清除”(寻找关系不再有效),或者将执行该关系只有当purgeRelations方法被显式调用时。
真的是立即清除。
public void isActive() throws RelationServiceNotRegisteredException
isActive
在界面
RelationServiceMBean
RelationServiceNotRegisteredException
- 如果没有注册
public ObjectName preRegister(MBeanServer server, ObjectName name) throws 异常
MBeanRegistration
preRegister
在接口
MBeanRegistration
server
- MBean将在其中
server
的MBean服务器。
name
- MBean的对象名称。
此名称为null如果名称参数的一个createMBean
或registerMBean
方法在MBeanServer
接口为空。
在这种情况下,此方法必须为新的MBean返回非空的ObjectName。
name
参数不为空,则通常不一定是返回值。
异常
- 这个异常将被MBean服务器捕获,并重新抛出为MBeanRegistrationException
。
public void postRegister(Boolean registrationDone)
MBeanRegistration
复制
如果该方法的实现引发了一个RuntimeException
或Error
,则MBean服务器将分别推出RuntimeMBeanException
或RuntimeErrorException
内的那些。 但是,在postRegister中postRegister
将不会更改MBean的状态:如果MBean已经注册( registrationDone
是true
),则MBean将保持注册。
这可能会导致调用createMBean()
或registerMBean()
的代码createMBean()
registerMBean()
,因为这样的代码可能会假设在引发异常时MBean注册失败。 因此,建议的实现postRegister
不抛出运行时异常或错误,如果能够避免它。
postRegister
在界面
MBeanRegistration
registrationDone
- 指示MBean是否已在MBean服务器中成功注册。
值false表示注册阶段失败。
public void preDeregister() throws 异常
MBeanRegistration
preDeregister
在接口
MBeanRegistration
异常
- 这个异常将被MBean服务器捕获,并重新抛出为MBeanRegistrationException
。
public void postDeregister()
MBeanRegistration
复制
如果此方法的实现抛出一个RuntimeException
或Error
,则MBean服务器的重新抛出那些内部RuntimeMBeanException
或RuntimeErrorException
分别。 然而,在postDeregister中postDeregister
将不会改变MBean的状态:MBean已经成功注销,并将保持不变。
这可能会使代码调用unregisterMBean()
,因为它可能会假设MBean注销失败。 因此,建议的实现postDeregister
不抛出运行时异常或错误,如果能够避免它。
postDeregister
在接口
MBeanRegistration
public boolean getPurgeFlag()
真的是立即清除。
getPurgeFlag
在接口
RelationServiceMBean
setPurgeFlag(boolean)
public void setPurgeFlag(boolean purgeFlag)
真的是立即清除。
setPurgeFlag
在接口
RelationServiceMBean
purgeFlag
- 国旗
getPurgeFlag()
public void createRelationType(String relationTypeName, RoleInfo[] roleInfoArray) throws IllegalArgumentException, InvalidRelationTypeException
createRelationType
在接口
RelationServiceMBean
relationTypeName
- 关系类型的名称
roleInfoArray
- 角色信息数组
IllegalArgumentException
- 如果为空参数
InvalidRelationTypeException
- 如果:
- 已经有一个关系类型与该名称
- 相同的名称已被用于两个不同的角色信息
- 没有提供角色信息
- 提供一个空的角色信息
public void addRelationType(RelationType relationTypeObj) throws IllegalArgumentException, InvalidRelationTypeException
addRelationType
在接口
RelationServiceMBean
relationTypeObj
- 关系类型对象(实现RelationType接口)
IllegalArgumentException
- 如果null参数或者如果
relationTypeObj.getRelationTypeName()
返回null。
InvalidRelationTypeException
- 如果:
- 相同的名称已被用于两个不同的角色
- 没有提供角色信息
- 提供一个空的角色信息
- 已经有一个关系类型与该名称
public List<String> getAllRelationTypeNames()
getAllRelationTypeNames
在接口
RelationServiceMBean
public List<RoleInfo> getRoleInfos(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
getRoleInfos
在界面
RelationServiceMBean
relationTypeName
- 关系类型的名称
IllegalArgumentException
- 如果为空参数
RelationTypeNotFoundException
- 如果与该名称没有关系类型。
public RoleInfo getRoleInfo(String relationTypeName, String roleInfoName) throws IllegalArgumentException, RelationTypeNotFoundException, RoleInfoNotFoundException
getRoleInfo
在界面
RelationServiceMBean
relationTypeName
- 关系类型的名称
roleInfoName
- 角色名称
IllegalArgumentException
- 如果为空参数
RelationTypeNotFoundException
- 如果关系类型在关系服务中未知
RoleInfoNotFoundException
- 如果角色不是关系类型的一部分。
public void removeRelationType(String relationTypeName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationTypeNotFoundException
该类型的关系对象将从关系服务中删除。
removeRelationType
在界面
RelationServiceMBean
relationTypeName
- 要删除的关系类型的名称
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
IllegalArgumentException
- 如果为空参数
RelationTypeNotFoundException
- 如果该名称没有关系类型
public void createRelation(String relationId, String relationTypeName, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RoleNotFoundException, InvalidRelationIdException, RelationTypeNotFoundException, InvalidRoleValueException
角色根据参数中提供的角色列表进行初始化。 没有以这种方式初始化的那些设置为ObjectName的空ArrayList。
发送一个类型为RELATION_BASIC_CREATION的关系通知。
createRelation
在接口
RelationServiceMBean
relationId
- 关系标识符,用于唯一标识关系服务内的关系
relationTypeName
- 关系类型的名称(必须在关系服务中创建)
roleList
- 用于初始化关系角色的角色列表(可以为null)。
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
IllegalArgumentException
- 如果为空参数,除角色列表之外,如果没有角色初始化,则可以为null
RoleNotFoundException
- 如果为关系类型中不存在的角色提供值
InvalidRelationIdException
- 如果关系id已经使用
RelationTypeNotFoundException
- 如果关系类型在关系服务中未知
InvalidRoleValueException
- 如果:
- 相同的角色名称用于两个不同的角色
- 给定值中引用的MBean的数量小于预期的最小度
- 提供的值中引用的MBean的数量超过预期的最大度
- 值中的一个引用的MBean不是该角色的MBean类的对象
- 为该角色提供的MBean不存在
public void addRelation(ObjectName relationObjectName) throws IllegalArgumentException, RelationServiceNotRegisteredException, NoSuchMethodException, InvalidRelationIdException, InstanceNotFoundException, InvalidRelationServiceException, RelationTypeNotFoundException, RoleNotFoundException, InvalidRoleValueException
要作为关系添加,MBean必须符合以下条件:
- 实现Relation界面
- 为RelationService ObjectName提供当前关系服务的ObjectName
- 在当前的关系服务中具有唯一且不使用的关系ID
- 在关系服务中创建关系类型
- 具有符合关系类型中提供的角色信息的角色。
addRelation
在接口
RelationServiceMBean
relationObjectName
- 要添加的关系MBean的ObjectName。
IllegalArgumentException
- 如果为空参数
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
NoSuchMethodException
- 如果MBean不实现Relation接口
InvalidRelationIdException
- if:
- 在MBean中没有关系标识符
- 关系标识符已经在关系服务中使用
InstanceNotFoundException
- 如果给定的ObjectName的MBean尚未注册
InvalidRelationServiceException
- if:
- 在MBean中没有关系服务名称
- MBean中的关系服务名称不是当前的关系服务
RelationTypeNotFoundException
- 如果:
- 在MBean中没有关系类型名称
- MBean中的关系类型名称与关系服务中创建的关系类型不对应
InvalidRoleValueException
- 如果:
- 一个角色中引用的MBean的数量小于预期的最小度
- 角色中引用的MBean的数量超过预期的最大度
- 值中的一个引用的MBean不是该角色的MBean类的对象
- 为一个角色提供的MBean不存在
RoleNotFoundException
- 如果为关系类型中不存在的角色提供值
public ObjectName isRelationMBean(String relationId) throws IllegalArgumentException, RelationNotFoundException
isRelationMBean
在接口
RelationServiceMBean
relationId
-
relationId
关系的关系id
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 与该ID无关系
public String isRelation(ObjectName objectName) throws IllegalArgumentException
isRelation
在界面
RelationServiceMBean
objectName
- 假定关系的ObjectName
IllegalArgumentException
- 如果为空参数
public Boolean hasRelation(String relationId) throws IllegalArgumentException
hasRelation
在接口
RelationServiceMBean
relationId
-
relationId
关系的关系id
IllegalArgumentException
- 如果为空参数
public List<String> getAllRelationIds()
getAllRelationIds
在接口
RelationServiceMBean
public Integer checkRoleReading(String roleName, String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
checkRoleReading
在界面
RelationServiceMBean
roleName
- 要检查的角色的名称
relationTypeName
- 关系类型的名称
- 如果角色可以读取,则为0
- 对应于RoleStatus.NO_ROLE_WITH_NAME的整数
- 对应于RoleStatus.ROLE_NOT_READABLE的整数
IllegalArgumentException
- 如果为空参数
RelationTypeNotFoundException
- 如果关系类型在关系服务中未知
public Integer checkRoleWriting(Role role, String relationTypeName, Boolean initFlag) throws IllegalArgumentException, RelationTypeNotFoundException
checkRoleWriting
在界面
RelationServiceMBean
role
- 要检查的角色
relationTypeName
- 关系类型的名称
initFlag
- 用于指定对角色初始化进行检查的标志,不能验证写访问权限。
- 如果角色可以设置为0
- 对应于RoleStatus.NO_ROLE_WITH_NAME的整数
- 为RoleStatus.ROLE_NOT_WRITABLE的整数
- 为RoleStatus.LESS_THAN_MIN_ROLE_DEGREE的整数
- 为RoleStatus.MORE_THAN_MAX_ROLE_DEGREE的整数
- 为RoleStatus.REF_MBEAN_OF_INCORRECT_CLASS的整数
- 为RoleStatus.REF_MBEAN_NOT_REGISTERED的整数
IllegalArgumentException
- 如果为空参数
RelationTypeNotFoundException
- 如果未知的关系类型
public void sendRelationCreationNotification(String relationId) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_CREATION,如果关系是关系服务内部的一个对象
- RelationNotification.RELATION_MBEAN_CREATION如果关系是作为关系添加的MBean。
源对象是Relation Service本身。
它在Relation Service中创建createRelation()和addRelation()方法。
sendRelationCreationNotification
在接口
RelationServiceMBean
relationId
- 更新关系的关系标识符
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果给定的关系id没有关系
public void sendRoleUpdateNotification(String relationId, Role newRole, List<ObjectName> oldValue) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_UPDATE如果关系是关系服务内部的一个对象
- RelationNotification.RELATION_MBEAN_UPDATE如果关系是作为关系添加的MBean。
源对象是Relation Service本身。
它被称为关于MBean setRole()(用于给定角色)和setRoles()(对于每个角色)方法(RelationSupport类中提供的实现)。
它也在Relation Service中调用setRole()(用于给定的角色)和setRoles()(对于每个角色)的方法。
sendRoleUpdateNotification
在接口
RelationServiceMBean
relationId
- 更新关系的关系标识符
newRole
- 新角色(名称和新值)
oldValue
- 旧角色值(ObjectName对象列表)
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果给定的关系id没有关系
public void sendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_REMOVAL,如果关系是关系服务内部的一个对象
- RelationNotification.RELATION_MBEAN_REMOVAL,如果关系是作为关系添加的MBean。
源对象是Relation Service本身。
它在Relation Service中调用removeRelation()方法。
sendRelationRemovalNotification
在接口
RelationServiceMBean
relationId
- 更新关系的关系标识符
unregMBeanList
- 由于关系删除而预期未注册的MBean的
unregMBeanList
列表(可以为null)
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果给定的关系id没有关系
public void updateRoleMap(String relationId, Role newRole, List<ObjectName> oldValue) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException
它被称为关于MBean setRole()(用于给定角色)和setRoles()(对于每个角色)方法(RelationSupport类中提供的实现)。
它也在Relation Service中调用setRole()(用于给定的角色)和setRoles()(对于每个角色)的方法。
为了使关系服务保持一致性(在MBean注销的情况下)并且能够执行查询,当更新角色时,必须调用此方法。
updateRoleMap
在接口
RelationServiceMBean
relationId
- 更新关系的关系标识符
newRole
- 新角色(名称和新值)
oldValue
- 旧角色值(ObjectName对象列表)
IllegalArgumentException
- 如果为空参数
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
RelationNotFoundException
- 如果没有给定id的关系。
public void removeRelation(String relationId) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
发送关系通知通知,其类型为:
- RelationNotification.RELATION_BASIC_REMOVAL,如果关系仅在关系服务内部
- RelationNotification.RELATION_MBEAN_REMOVAL,如果关系被注册为MBean。
对于在这种关系中引用的MBean,将不会做任何事情,
removeRelation
在界面
RelationServiceMBean
relationId
- 要删除的关系的关系id
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果与给定关系id相对应的关系不存在
public void purgeRelations() throws RelationServiceNotRegisteredException
根据purgeFlag值,当接收到关联中引用的MBean的注销的通知(如果该标志设置为true),或者(如果该标志设置为false),则该方法被自动调用。
在这种情况下,用户可以调用它来保持关系的一致性。 要记住,如果MBean未注册,并且清除不立即完成,如果ObjectName被重用并分配给关系中引用的另一个MBean,则手动调用此purgeRelations()方法将导致麻烦,因为将ObjectName作为对应于未注册的MBean,没有看到新的MBean。
行为取决于引用未注册的MBean的角色的基数:
- 如果删除角色中的一个MBean引用使其引用次数小于最小度,则必须删除该关系。
- 如果删除MBean引用后剩余的引用数仍然在基数范围内,请保持关系并更新它调用其handleMBeanUnregistration()回调。
purgeRelations
在接口
RelationServiceMBean
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册。
public Map<String,List<String>> findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
这对应于CIM“引用”和“引用名称”操作。
findReferencingRelations
在界面
RelationServiceMBean
mbeanName
- MBean的ObjectName
relationTypeName
- 可以为null;
如果指定的话,只有这种类型的关系才会在搜索中被考虑。
否则会考虑所有的关系类型。
roleName
- 可以为null;
如果指定,则仅返回该角色中引用MBean的关系。
否则所有角色都被考虑。
IllegalArgumentException
- 如果为空参数
public Map<ObjectName,List<String>> findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
这对应于CIM Associator和AssociatorNames操作。
findAssociatedMBeans
在接口
RelationServiceMBean
mbeanName
- MBean的ObjectName
relationTypeName
- 可以为null;
如果指定的话,只有这种类型的关系才会在搜索中被考虑。
否则会考虑所有的关系类型。
roleName
- 可以为null;
如果指定,则仅考虑在该角色中引用MBean的关系。
否则所有角色都被考虑。
IllegalArgumentException
- 如果为空参数
public List<String> findRelationsOfType(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
findRelationsOfType
在界面
RelationServiceMBean
relationTypeName
- 关系类型名称
IllegalArgumentException
- 如果为空参数
RelationTypeNotFoundException
- 如果与该名称没有关系类型。
public List<ObjectName> getRole(String relationId, String roleName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
getRole
在界面
RelationServiceMBean
relationId
- 关系id
roleName
- 角色名称
RelationServiceNotRegisteredException
- 如果关系服务未注册
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果与给定的id没有关系
RoleNotFoundException
- 如果:
- 给定名字没有任何作用
要么
- 角色不可读。
setRole(java.lang.String, javax.management.relation.Role)
public RoleResult getRoles(String relationId, String[] roleNameArray) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
getRoles
在接口
RelationServiceMBean
relationId
- 关系id
roleNameArray
- 要检索的角色的名称数组
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果与给定的id没有关系
setRoles(java.lang.String, javax.management.relation.RoleList)
public RoleResult getAllRoles(String relationId) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException
getAllRoles
在界面
RelationServiceMBean
relationId
- 关系id
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果没有给定id的关系
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
public Integer getRoleCardinality(String relationId, String roleName) throws IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
getRoleCardinality
在界面
RelationServiceMBean
relationId
- 关系id
roleName
- 角色名称
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果与给定的id没有关系
RoleNotFoundException
- 如果没有给定名称的角色
public void setRole(String relationId, Role role) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException, InvalidRoleValueException
将根据其在关系类型中提供的相应角色定义来检查角色
关系服务将跟踪变更,以通过处理引用的MBean注销来保持关系的一致性。
setRole
在界面
RelationServiceMBean
relationId
- 关系id
role
- 要设置的角色(名称和新值)
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果与给定的id没有关系
RoleNotFoundException
- 如果角色不存在或不可写
InvalidRoleValueException
- 如果为角色提供的值无效:
- 给定值中引用的MBean的数量小于预期的最小度
要么
- 提供的值中引用的MBean的数量超过预期的最大度
要么
- 值中的一个引用的MBean不是该角色的MBean类的对象
要么
- 为该角色提供的MBean不存在
getRole(java.lang.String, java.lang.String)
public RoleResult setRoles(String relationId, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
将根据其在关系类型中提供的相应角色定义来检查角色
关系服务通过处理引用的MBean注销来跟踪更改以保持关系的一致性。
setRoles
在界面
RelationServiceMBean
relationId
- 关系id
roleList
- 要设置的角色列表
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果与给定的id没有关系
getRoles(java.lang.String, java.lang.String[])
public Map<ObjectName,List<String>> getReferencedMBeans(String relationId) throws IllegalArgumentException, RelationNotFoundException
getReferencedMBeans
在界面
RelationServiceMBean
relationId
- 关系id
ObjectName - > ArrayList的String(角色名称)
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果给定的关系id没有关系
public String getRelationTypeName(String relationId) throws IllegalArgumentException, RelationNotFoundException
getRelationTypeName
在接口
RelationServiceMBean
relationId
- 关系id
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果给定关系id没有关系
public void handleNotification(Notification notif, Object handback)
handleNotification
在接口
NotificationListener
notif
- 通知。
handback
- 一种不透明的对象,可帮助收听者将关于MBean发射器的信息(可以为空)关联起来。
public MBeanNotificationInfo[] getNotificationInfo()
getNotificationInfo
在界面
NotificationBroadcaster
getNotificationInfo
在
NotificationBroadcasterSupport