Spec-Zone .ru
спецификации, руководства, описания, API
|
public class RelationSupport extends Object implements RelationSupportMBean, MBeanRegistration
Класс RelationSupport соответствует шаблонам разработки стандартного MBean. Таким образом, пользователь может решить инстанцировать объекта RelationSupport непосредственно как MBean (поскольку это следует за шаблонами разработки MBean), чтобы зарегистрировать это в Сервере MBean, и затем добавить это в Службе Отношения.
Пользователь может также, создавая его собственный класс отношения MBean, иметь это расширение RelationSupport, получать реализации необходимых интерфейсов (см. ниже).
Также возможно иметь в пользовательском отношении, MBean классифицируют элемент, являющийся объектом RelationSupport, и реализовывать необходимые интерфейсы, делегируя все к этому элементу.
RelationSupport реализует интерфейс Отношения (чтобы быть обработанным Службой Отношения).
Это реализует также интерфейс MBeanRegistration, чтобы быть в состоянии получить Сервер MBean, где это регистрируется (если регистрирующийся как MBean) к доступу к его Службе Отношения.
Конструктор и Описание |
---|
RelationSupport(String relationId, ObjectName relationServiceName, MBeanServer relationServiceMBeanServer, String relationTypeName, RoleList list)
Создает a
RelationSupport объект. |
RelationSupport(String relationId, ObjectName relationServiceName, String relationTypeName, RoleList list)
Создает a
RelationSupport объект. |
Модификатор и Тип | Метод и Описание |
---|---|
RoleResult |
getAllRoles()
Возвраты все роли, существующие в отношении.
|
Map<ObjectName,List<String>> |
getReferencedMBeans()
Получает MBeans, на который ссылаются в различных ролях отношения.
|
Строка |
getRelationId()
Идентификатор отношения возвратов (имел обыкновение однозначно определять отношение в Службе Отношения).
|
ObjectName |
getRelationServiceName()
Возвраты ObjectName Службы Отношения, обрабатывающей отношение.
|
Строка |
getRelationTypeName()
Имя возвратов связанного типа отношения.
|
List<ObjectName> |
getRole(String roleName)
Получает ролевое значение для данного ролевого имени.
|
Целое число |
getRoleCardinality(String roleName)
Возвращает число MBeans, на который в настоящий момент ссылаются в данной роли.
|
RoleResult |
getRoles(String[] roleNameArray)
Получает значения ролей с именами.
|
void |
handleMBeanUnregistration(ObjectName objectName, String roleName)
Обратный вызов, используемый Службой Отношения, когда MBean, на который ссылаются в роли, незарегистрирован.
|
Булевская переменная |
isInRelationService()
Возвращает внутренний флаг, определяющий, обрабатывается ли объект все еще Службой Отношения.
|
void |
postDeregister()
Позволяет MBean выполнять любые операции, необходимые будучи незарегистрированным в сервере MBean.
|
void |
postRegister(Boolean registrationDone)
Позволяет MBean выполнять любые операции, необходимые, будучи зарегистрированным в сервере MBean или после того, как регистрация перестала работать.
|
void |
preDeregister()
Позволяет MBean выполнять любые операции, в которых он нуждается перед стать незарегистрированным сервером MBean.
|
ObjectName |
preRegister(MBeanServer server, ObjectName name)
Позволяет MBean выполнять любые операции, в которых он нуждается прежде, чем быть зарегистрированным в Сервере MBean.
|
RoleList |
retrieveAllRoles()
Возвраты все роли в отношении, не проверяя режим чтения.
|
void |
setRelationServiceManagementFlag(Boolean flag)
Определяет, обрабатывается ли это отношение Службой Отношения.
|
void |
setRole(Role role)
Устанавливает данную роль.
|
RoleResult |
setRoles(RoleList list)
Устанавливает данные роли.
|
public RelationSupport(String relationId, ObjectName relationServiceName, String relationTypeName, RoleList list) throws InvalidRoleValueException, IllegalArgumentException
RelationSupport
объект. Этот конструктор должен использоваться, когда объект RelationSupport будет зарегистрирован как MBean пользователем, или создавая пользовательское отношение MBean, класс которого расширяет RelationSupport.
Ничто не делается в Уровне обслуживания Отношения, то есть RelationSupport
объект не добавляется к RelationService
и никакие проверки не выполняются, чтобы видеть, корректны ли обеспеченные значения. Объект всегда создается, КРОМЕ если:
- любой из обязательных параметров null
.
- то же самое имя используется для двух ролей.
Быть обработанным как отношение, RelationSupport
объект должен быть добавлен к Службе Отношения, используя метод Relation Service addRelation ().
relationId
- идентификатор отношения, чтобы идентифицировать отношение в Службе Отношения. Ожидаемый быть уникальным в данной Службе Отношения.
relationServiceName
- ObjectName Службы Отношения, где отношение будет зарегистрировано. Этот параметр требуется, поскольку это - Служба Отношения, которая знает об определении типа отношения данного отношения, так, чтобы был в состоянии проверить операции обновления (набор).
relationTypeName
- Имя типа отношения. Ожидаемый быть созданным в данной Службе Отношения.
list
- список ролей (Ролевые объекты), чтобы инициализировать отношение. Может быть null
. Ожидаемый соответствовать информации отношения в связанном типе отношения.
InvalidRoleValueException
- если то же самое имя используется для двух ролей.IllegalArgumentException
- если какой-либо из обязательных параметров (идентификатор отношения, служба отношения ObjectName, или имя типа отношения) null
.public RelationSupport(String relationId, ObjectName relationServiceName, MBeanServer relationServiceMBeanServer, String relationTypeName, RoleList list) throws InvalidRoleValueException, IllegalArgumentException
RelationSupport
объект. Этот конструктор должен использоваться, когда пользовательское отношение MBean реализует интерфейсы, которые, как ожидают, будут поддерживаться отношением, делегируя к объекту RelationSupport.
Этот объект должен знать Службу Отношения, которая, как ожидают, обработает отношение. Таким образом, это должно знать Сервер MBean, где Служба Отношения регистрируется.
Согласно ограничению, отношение MBean должен быть зарегистрирован в том же самом Сервере MBean как Служба Отношения, которая, как ожидают, обработает это. Так пользовательское отношение MBean должен быть создан и зарегистрирован, и затем обернутый объект RelationSupport может быть создан в пределах идентифицированного Сервера MBean.
Ничто не делается в Уровне обслуживания Отношения, то есть RelationSupport
объект не добавляется к RelationService
и никакие проверки не выполняются, чтобы видеть, корректны ли обеспеченные значения. Объект всегда создается, КРОМЕ если:
- любой из обязательных параметров null
.
- то же самое имя используется для двух ролей.
Быть обработанным как отношение, RelationSupport
объект должен быть добавлен к Службе Отношения, используя метод Relation Service addRelation ().
relationId
- идентификатор отношения, чтобы идентифицировать отношение в Службе Отношения. Ожидаемый быть уникальным в данной Службе Отношения.
relationServiceName
- ObjectName Службы Отношения, где отношение будет зарегистрировано. Этот параметр требуется, поскольку это - Служба Отношения, которая знает об определении типа отношения данного отношения, так, чтобы был в состоянии проверить операции обновления (набор).
relationServiceMBeanServer
- Сервер MBean, где обертывание MBean или будет зарегистрирован. Ожидаемый быть Сервером MBean, где Служба Отношения или будет зарегистрирована.
relationTypeName
- Имя типа отношения. Ожидаемый быть созданным в данной Службе Отношения.
list
- список ролей (Ролевые объекты), чтобы инициализировать отношение. Может быть null
. Ожидаемый соответствовать информации отношения в связанном типе отношения.
InvalidRoleValueException
- если то же самое имя используется для двух ролей.IllegalArgumentException
- если какой-либо из обязательных параметров (идентификатор отношения, служба отношения ObjectName, служба отношения MBeanServer, или имя типа отношения) null
.public List<ObjectName> getRole(String roleName) throws IllegalArgumentException, RoleNotFoundException, RelationServiceNotRegisteredException
Проверки, если роль существует и читаема согласно типу отношения.
getRole
в интерфейсе Relation
roleName
- имя ролиIllegalArgumentException
- если нулевое ролевое имяRoleNotFoundException
- если: - нет никакой роли с именем
- роль не читаема.
RelationServiceNotRegisteredException
- если Служба Отношения не регистрируется в Сервере MBeansetRole(javax.management.relation.Role)
public RoleResult getRoles(String[] roleNameArray) throws IllegalArgumentException, RelationServiceNotRegisteredException
Проверки на каждую роль, если это существует и читаемо согласно типу отношения.
getRoles
в интерфейсе Relation
roleNameArray
- массив имен ролей, которые будут полученыIllegalArgumentException
- если нулевое ролевое имяRelationServiceNotRegisteredException
- если Служба Отношения не регистрируется в Сервере MBeansetRoles(javax.management.relation.RoleList)
public RoleResult getAllRoles() throws RelationServiceNotRegisteredException
getAllRoles
в интерфейсе Relation
RelationServiceNotRegisteredException
- если Служба Отношения не регистрируется в Сервере MBeanpublic RoleList retrieveAllRoles()
retrieveAllRoles
в интерфейсе Relation
public Integer getRoleCardinality(String roleName) throws IllegalArgumentException, RoleNotFoundException
getRoleCardinality
в интерфейсе Relation
roleName
- имя ролиIllegalArgumentException
- если нулевое ролевое имяRoleNotFoundException
- если нет никакой роли с именемpublic void setRole(Role role) throws IllegalArgumentException, RoleNotFoundException, RelationTypeNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationNotFoundException
Проверит роль согласно ее соответствующему ролевому определению, обеспеченному в типе отношения отношения
Отправит уведомление (RelationNotification с типом RELATION_BASIC_UPDATE или RELATION_MBEAN_UPDATE, завися, если отношение будет MBean или не).
setRole
в интерфейсе Relation
role
- роль, которая будет определена (имя и новое значение)IllegalArgumentException
- если нулевая рольRoleNotFoundException
- если нет никакой роли с именем предоставленной роли или если роль не перезаписываема (никакой тест на режиме доступа для записи, выполняемом, инициализируя роль)InvalidRoleValueException
- если значение, предусмотренное роль, не допустимо, то есть: - число MBeans, на который ссылаются, в данном значении менее чем ожидается минимальный градус
- число MBeans, на который ссылаются, в обеспеченном значении превышает ожидаемый максимальный градус
- один ссылался на MBean в значении, не Объект класса MBean, ожидаемого для той роли
- MBean, предусмотренный та роль, не существует
RelationServiceNotRegisteredException
- если Служба Отношения не регистрируется в Сервере MBeanRelationTypeNotFoundException
- если тип отношения не был объявлен в Службе ОтношенияRelationNotFoundException
- если отношение не было добавлено в Службе Отношения.getRole(java.lang.String)
public RoleResult setRoles(RoleList list) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException
Проверит роль согласно ее соответствующему ролевому определению, обеспеченному в типе отношения отношения
Отправит одно уведомление (RelationNotification с типом RELATION_BASIC_UPDATE или RELATION_MBEAN_UPDATE, завися, если отношение будет MBean или не) на обновленную роль.
setRoles
в интерфейсе Relation
list
- список ролей, которые будут установленыIllegalArgumentException
- если нулевой ролевой списокRelationServiceNotRegisteredException
- если Служба Отношения не регистрируется в Сервере MBeanRelationTypeNotFoundException
- если тип отношения не был объявлен в Службе Отношения.RelationNotFoundException
- если отношение MBean не было добавлено в Службе Отношения.getRoles(java.lang.String[])
public void handleMBeanUnregistration(ObjectName objectName, String roleName) throws IllegalArgumentException, RoleNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException
Служба Отношения вызовет этот метод, чтобы позволить отношению принимать меры, чтобы отразить воздействие такой нерегистрации.
ОСТЕРЕГАТЬСЯ. пользователь, как ожидают, не вызовет этот метод.
Текущая реализация должна установить роль со своей текущей стоимостью (список ObjectNames MBeans, на который ссылаются) без незарегистрированного.
handleMBeanUnregistration
в интерфейсе Relation
objectName
- ObjectName незарегистрированного MBeanroleName
- имя роли, где на MBean ссылаютсяIllegalArgumentException
- если нулевой параметрRoleNotFoundException
- если роль не существует в отношении или не перезаписываемаInvalidRoleValueException
- если ролевое значение не будет соответствовать связанной ролевой информации (то это никогда не будет происходить когда вызвано от Службы Отношения),RelationServiceNotRegisteredException
- если Служба Отношения не регистрируется в Сервере MBeanRelationTypeNotFoundException
- если тип отношения не был объявлен в Службе Отношения.RelationNotFoundException
- если этот метод вызывают для отношения MBean, не добавленным в Службе Отношения.public Map<ObjectName,List<String>> getReferencedMBeans()
getReferencedMBeans
в интерфейсе Relation
ObjectName-> ArrayList Строки (ролевые имена)
public String getRelationTypeName()
getRelationTypeName
в интерфейсе Relation
public ObjectName getRelationServiceName()
getRelationServiceName
в интерфейсе Relation
public String getRelationId()
getRelationId
в интерфейсе Relation
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
MBeanRegistration
preRegister
в интерфейсе MBeanRegistration
server
- Сервер MBean, в котором будет зарегистрирован MBean.name
- Имя объекта MBean. Это имя является нулем если параметр имени к одному из createMBean
или registerMBean
методы в MBeanServer
интерфейс является нулем. В этом случае этот метод должен возвратить ненулевой ObjectName для нового MBean.name
параметр не является нулем, он обычно будет, но не обязательно быть возвращенным значением.Exception
- Это исключение будет поймано Сервером MBean и повторно брошено как MBeanRegistrationException
.public void postRegister(Boolean registrationDone)
MBeanRegistration
Если реализация этого метода бросает a RuntimeException
или Error
, Сервер MBean повторно бросит тех внутри a RuntimeMBeanException
или RuntimeErrorException
, соответственно. Однако, выдавая исключение в postRegister
не будет изменять состояние MBean: если MBean был уже зарегистрирован (registrationDone
true
), MBean останется зарегистрированным.
Это могло бы сбить с толку вызов кода createMBean()
или registerMBean()
, как таковой кодируют, мог бы предположить, что регистрация MBean перестала работать, когда такое исключение повышается. Поэтому этому рекомендуют это реализации postRegister
не бросайте Исключения на этапе выполнения или Ошибки, если этого можно избежать.
postRegister
в интерфейсе MBeanRegistration
registrationDone
- Указывает, был ли MBean успешно зарегистрирован в сервере MBean. Ложь значения означает, что регистрационная фаза перестала работать.public void preDeregister() throws Exception
MBeanRegistration
preDeregister
в интерфейсе MBeanRegistration
Exception
- Это исключение будет поймано сервером MBean и повторно брошено как MBeanRegistrationException
.public void postDeregister()
MBeanRegistration
Если реализация этого метода бросает a RuntimeException
или Error
, Сервер MBean повторно бросит тех внутри a RuntimeMBeanException
или RuntimeErrorException
, соответственно. Однако, выдавая исключение в postDeregister
не будет изменять состояние MBean: MBean был уже успешно вычеркнут из списка и останется так.
Это могло бы сбить с толку вызов кода unregisterMBean()
, поскольку это могло бы предположить, что MBean deregistration перестал работать. Поэтому этому рекомендуют это реализации postDeregister
не бросайте Исключения на этапе выполнения или Ошибки, если этого можно избежать.
postDeregister
в интерфейсе MBeanRegistration
public Boolean isInRelationService()
isInRelationService
в интерфейсе RelationSupportMBean
Boolean.TRUE
если объект все еще обрабатывается Службой Отношения и Boolean.FALSE
иначе.public void setRelationServiceManagementFlag(Boolean flag) throws IllegalArgumentException
RelationSupportMBean
Определяет, обрабатывается ли это отношение Службой Отношения.
ОСТЕРЕГАЙТЕСЬ, этот метод должен быть представлен, поскольку Служба Отношения получит доступ к отношению через свой интерфейс управления. Рекомендуется НЕ использовать этот метод. Используя это не влияет на регистрацию объекта отношения в Службе Отношения, но предоставит неправильную информацию об этом!
setRelationServiceManagementFlag
в интерфейсе RelationSupportMBean
flag
- обрабатывается ли отношение Службой Отношения.IllegalArgumentException
- если нулевой параметр
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.