Spec-Zone.ru › OpenJDK 25

Класс RelationSupport

java.lang.Object
javax.management.relation.RelationSupport
Все реализованные интерфейсы:
MBeanRegistration, Relation, RelationSupportMBean
public class RelationSupport extends Object implements RelationSupportMBean, MBeanRegistration
Объект RelationSupport используется внутри службы отношений для представления простых отношений (только роли, без свойств и методов) с неограниченным числом ролей любого типа отношений. В качестве внутреннего представления он не предоставляется пользователю.

Класс RelationSupport соответствует шаблонам проектирования стандартного MBean. Поэтому пользователь может создать объект RelationSupport самостоятельно в качестве MBean (так как он соответствует шаблонам проектирования MBean), зарегистрировать его на сервере MBean, а затем добавить в службу отношений.

Пользователь также может при создании собственного класса MBean отношения унаследовать его от RelationSupport, чтобы получить реализации требуемых интерфейсов (см. ниже).

Кроме того, пользовательский класс MBean отношения может содержать объект RelationSupport в качестве поля и реализовывать требуемые интерфейсы, делегируя все вызовы этому полю.

RelationSupport реализует интерфейс Relation (для обработки службой отношений).

Он также реализует интерфейс MBeanRegistration, чтобы получить сервер MBean, на котором он зарегистрирован (если зарегистрирован как MBean), и получить доступ к его службе отношений.

Начиная с:
1.5

Краткое описание конструкторов

Конструктор Описание
RelationSupport(String relationId, ObjectName relationServiceName, String relationTypeName, RoleList list)
Создает объект RelationSupport.
RelationSupport(String relationId, ObjectName relationServiceName, MBeanServer relationServiceMBeanServer, String relationTypeName, RoleList list)
Создает объект RelationSupport.

Краткое описание методов

Модификатор и тип Метод Описание
RoleResult getAllRoles()
Возвращает все роли, присутствующие в отношении.
Map<ObjectName, List<String>> getReferencedMBeans()
Получает MBean, на которые ссылаются различные роли отношения.
String getRelationId()
Возвращает идентификатор отношения (используется для уникальной идентификации отношения в службе отношений).
ObjectName getRelationServiceName()
Возвращает ObjectName службы отношений, обрабатывающей отношение.
String getRelationTypeName()
Возвращает имя связанного типа отношений.
List<ObjectName> getRole(String roleName)
Получает значение роли с заданным именем.
Integer getRoleCardinality(String roleName)
Возвращает количество MBean, на которые в данный момент ссылается заданная роль.
RoleResult getRoles(String[] roleNameArray)
Получает значения ролей с заданными именами.
void handleMBeanUnregistration(ObjectName objectName, String roleName)
Обратный вызов службы отношений при отмене регистрации MBean, на который ссылается роль.
Boolean 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)
Задает указанные роли.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

RelationSupport

public RelationSupport(String relationId, ObjectName relationServiceName, String relationTypeName, RoleList list) throws InvalidRoleValueException, IllegalArgumentException
Создает объект RelationSupport.

Этот конструктор следует использовать, когда пользователь регистрирует объект RelationSupport как MBean или создает пользовательский MBean отношения, класс которого расширяет RelationSupport.

На уровне службы отношений ничего не выполняется: объект RelationSupport не добавляется в RelationService, и не выполняются проверки корректности переданных значений. Объект создается всегда, ЗА ИСКЛЮЧЕНИЕМ следующих случаев:

- любой из обязательных параметров равен null.

- одно и то же имя используется для двух ролей.

Чтобы обрабатываться как отношение, объект RelationSupport необходимо добавить в службу отношений с помощью метода addRelation() службы отношений.

Параметры:
relationId - идентификатор отношения, используемый для идентификации отношения в службе отношений.

Должен быть уникальным в данной службе отношений.

relationServiceName - ObjectName службы отношений, в которой будет зарегистрировано отношение.

Этот параметр обязателен, поскольку служба отношений располагает сведениями об определении типа данного отношения и поэтому может проверять операции обновления (set).

relationTypeName - имя типа отношений.

Ожидается, что этот тип уже создан в данной службе отношений.

list - список ролей (объектов Role) для инициализации отношения. Может быть null.

Должен соответствовать сведениям об отношениях в связанном типе отношений.

Исключения:
InvalidRoleValueException - если одно и то же имя используется для двух ролей.
IllegalArgumentException - если любой из обязательных параметров (идентификатор отношения, ObjectName службы отношений или имя типа отношений) равен null.

RelationSupport

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 необходимо добавить в службу отношений с помощью метода addRelation() службы отношений.

Параметры:
relationId - идентификатор отношения, используемый для идентификации отношения в службе отношений.

Должен быть уникальным в данной службе отношений.

relationServiceName - ObjectName службы отношений, в которой будет зарегистрировано отношение.

Этот параметр обязателен, поскольку служба отношений располагает сведениями об определении типа данного отношения и поэтому может проверять операции обновления (set).

relationServiceMBeanServer - сервер MBean, на котором зарегистрирован или будет зарегистрирован обертывающий MBean.

Ожидается, что это сервер MBean, на котором зарегистрирована или будет зарегистрирована служба отношений.

relationTypeName - имя типа отношений.

Ожидается, что этот тип уже создан в данной службе отношений.

list - список ролей (объектов Role) для инициализации отношения. Может быть null.

Должен соответствовать сведениям об отношениях в связанном типе отношений.

Исключения:
InvalidRoleValueException - если одно и то же имя используется для двух ролей.
IllegalArgumentException - если любой из обязательных параметров (идентификатор отношения, ObjectName службы отношений, сервер MBean службы отношений или имя типа отношений) равен null.

Подробное описание методов

getRole

public List<ObjectName> getRole(String roleName) throws IllegalArgumentException, RoleNotFoundException, RelationServiceNotRegisteredException
Получает значение роли с заданным именем.

Проверяет, существует ли роль и доступна ли она для чтения согласно типу отношений.

Определено в:
getRole в интерфейсе Relation
Параметры:
roleName - имя роли
Возвращает:
ArrayList объектов ObjectName, составляющий значение роли
Исключения:
IllegalArgumentException - если имя роли равно null
RoleNotFoundException - если:

- роли с заданным именем не существует

- роль недоступна для чтения.

RelationServiceNotRegisteredException - если служба отношений не зарегистрирована на сервере MBean
См. также:
  • setRole(Role)

getRoles

public RoleResult getRoles(String[] roleNameArray) throws IllegalArgumentException, RelationServiceNotRegisteredException
Получает значения ролей с заданными именами.

Для каждой роли проверяет, существует ли она и доступна ли для чтения согласно типу отношений.

Определено в:
getRoles в интерфейсе Relation
Параметры:
roleNameArray - массив имен извлекаемых ролей
Возвращает:
объект RoleResult, содержащий RoleList (для успешно извлеченных ролей) и RoleUnresolvedList (для ролей, которые не удалось извлечь).
Исключения:
IllegalArgumentException - если имя роли равно null
RelationServiceNotRegisteredException - если служба отношений не зарегистрирована на сервере MBean
См. также:
  • setRoles(RoleList)

getAllRoles

public RoleResult getAllRoles() throws RelationServiceNotRegisteredException
Возвращает все роли, присутствующие в отношении.
Определено в:
getAllRoles в интерфейсе Relation
Возвращает:
объект RoleResult, содержащий RoleList (для успешно извлеченных ролей) и RoleUnresolvedList (для ролей, недоступных для чтения).
Исключения:
RelationServiceNotRegisteredException - если служба отношений не зарегистрирована на сервере MBean

retrieveAllRoles

public RoleList retrieveAllRoles()
Возвращает все роли отношения без проверки режима чтения.
Определено в:
retrieveAllRoles в интерфейсе Relation
Возвращает:
объект RoleList

getRoleCardinality

public Integer getRoleCardinality(String roleName) throws IllegalArgumentException, RoleNotFoundException
Возвращает количество MBean, на которые в данный момент ссылается заданная роль.
Определено в:
getRoleCardinality в интерфейсе Relation
Параметры:
roleName - имя роли
Возвращает:
количество MBean, на которые в данный момент ссылается эта роль
Исключения:
IllegalArgumentException - если имя роли равно null
RoleNotFoundException - если роли с заданным именем не существует

setRole

public void setRole(Role role) throws IllegalArgumentException, RoleNotFoundException, RelationTypeNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationNotFoundException
Задает указанную роль.

Роль будет проверена на соответствие определению этой роли, указанному в типе отношений данного отношения.

Будет отправлено уведомление (RelationNotification типа RELATION_BASIC_UPDATE или RELATION_MBEAN_UPDATE — в зависимости от того, является ли отношение MBean).

Определено в:
setRole в интерфейсе Relation
Параметры:
role - задаваемая роль (имя и новое значение)
Исключения:
IllegalArgumentException - если роль равна null
RoleNotFoundException - если роли с указанным именем не существует или роль недоступна для записи (при инициализации роли проверка режима доступа на запись не выполняется)
InvalidRoleValueException - если предоставленное значение роли недопустимо, то есть:

- число MBean, на которые ссылается указанное значение, меньше ожидаемой минимальной степени

- число MBean, на которые ссылается предоставленное значение, превышает ожидаемую максимальную степень

- один из MBean, на которые ссылается значение, не является объектом ожидаемого для этой роли класса MBean

- предоставленный для этой роли MBean не существует

RelationServiceNotRegisteredException - если служба отношений не зарегистрирована на сервере MBean
RelationTypeNotFoundException - если тип отношений не был объявлен в службе отношений
RelationNotFoundException - если отношение не было добавлено в службу отношений.
См. также:
  • getRole(String)

setRoles

public RoleResult setRoles(RoleList list) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException
Задает указанные роли.

Роли будут проверены на соответствие определениям этих ролей, указанным в типе отношений данного отношения.

Для каждой обновленной роли будет отправлено уведомление (RelationNotification типа RELATION_BASIC_UPDATE или RELATION_MBEAN_UPDATE — в зависимости от того, является ли отношение MBean).

Определено в:
setRoles в интерфейсе Relation
Параметры:
list - список задаваемых ролей
Возвращает:
объект RoleResult, содержащий RoleList (для успешно заданных ролей) и RoleUnresolvedList (для ролей, которые не удалось задать).
Исключения:
IllegalArgumentException - если список ролей равен null
RelationServiceNotRegisteredException - если служба отношений не зарегистрирована на сервере MBean
RelationTypeNotFoundException - если тип отношений не был объявлен в службе отношений.
RelationNotFoundException - если MBean отношения не был добавлен в службу отношений.
См. также:
  • getRoles(String[])

handleMBeanUnregistration

public void handleMBeanUnregistration(ObjectName objectName, String roleName) throws IllegalArgumentException, RoleNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException
Обратный вызов службы отношений при отмене регистрации MBean, на который ссылается роль.

Служба отношений вызывает этот метод, чтобы отношение могло отреагировать на последствия такой отмены регистрации.

ВНИМАНИЕ. Предполагается, что пользователь не будет вызывать этот метод.

Текущая реализация задает роль с ее текущим значением (списком ObjectName объектов MBean, на которые она ссылается), за исключением объекта, регистрация которого отменена.

Определено в:
handleMBeanUnregistration в интерфейсе Relation
Параметры:
objectName - ObjectName MBean, регистрация которого отменена
roleName - имя роли, в которой указан MBean
Исключения:
IllegalArgumentException - если параметр равен null
RoleNotFoundException - если роль не существует в отношении или недоступна для записи
InvalidRoleValueException - если значение роли не соответствует связанной с ней информации о роли (этого никогда не произойдет при вызове из службы отношений)
RelationServiceNotRegisteredException - если служба отношений не зарегистрирована на сервере MBean
RelationTypeNotFoundException - если тип отношений не был объявлен в службе отношений.
RelationNotFoundException - если этот метод вызван для MBean отношения, не добавленного в службу отношений.

getReferencedMBeans

public Map<ObjectName, List<String>> getReferencedMBeans()
Получает MBean, на которые ссылаются различные роли отношения.
Определено в:
getReferencedMBeans в интерфейсе Relation
Возвращает:
объект HashMap, отображающий:

ObjectName -> ArrayList строк (имен ролей)

getRelationTypeName

public String getRelationTypeName()
Возвращает имя связанного типа отношений.
Определено в:
getRelationTypeName в интерфейсе Relation
Возвращает:
имя типа отношений.

getRelationServiceName

public ObjectName getRelationServiceName()
Возвращает ObjectName службы отношений, обрабатывающей отношение.
Определено в:
getRelationServiceName в интерфейсе Relation
Возвращает:
ObjectName службы отношений.

getRelationId

public String getRelationId()
Возвращает идентификатор отношения (используется для уникальной идентификации отношения в службе отношений).
Определено в:
getRelationId в интерфейсе Relation
Возвращает:
идентификатор отношения.

preRegister

public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
Описание скопировано из интерфейса: MBeanRegistration
Позволяет MBean выполнить необходимые действия перед регистрацией на сервере MBean. Если имя MBean не задано, MBean может указать имя для регистрации. Если возникнет исключение, MBean не будет зарегистрирован на сервере MBean.
Определено в:
preRegister в интерфейсе MBeanRegistration
Параметры:
server - сервер MBean, на котором будет зарегистрирован MBean.
name - имя объекта MBean. Это имя равно null, если параметр имени в одном из методов createMBean или registerMBean интерфейса MBeanServer равен null. В этом случае данный метод должен вернуть ненулевой ObjectName для нового MBean.
Возвращает:
Имя, под которым будет зарегистрирован MBean. Это значение не должно быть null. Если параметр name не равен null, обычно, но не обязательно, будет возвращено именно это значение.
Исключения:
Exception - это исключение будет перехвачено сервером MBean и повторно выброшено как MBeanRegistrationException.

postRegister

public void postRegister(Boolean registrationDone)
Описание скопировано из интерфейса: MBeanRegistration
Позволяет MBean выполнить необходимые действия после регистрации на сервере MBean или после неудачной попытки регистрации.

Если реализация этого метода выбрасывает RuntimeException или Error, сервер MBean повторно выбросит их соответственно в виде RuntimeMBeanException или RuntimeErrorException. Однако выбрасывание исключения в postRegister не изменит состояние MBean: если MBean уже был зарегистрирован (registrationDone имеет значение true), он останется зарегистрированным.

Это может сбить с толку код, вызывающий createMBean() или registerMBean(), поскольку он может предположить, что регистрация MBean завершилась неудачно, если было выброшено такое исключение. Поэтому рекомендуется, чтобы реализации postRegister по возможности не выбрасывали исключения Runtime или ошибки.

Определено в:
postRegister в интерфейсе MBeanRegistration
Параметры:
registrationDone - указывает, был ли MBean успешно зарегистрирован на сервере MBean. Значение false означает, что этап регистрации завершился неудачно.

preDeregister

public void preDeregister() throws Exception
Описание скопировано из интерфейса: MBeanRegistration
Позволяет MBean выполнить необходимые действия перед отменой его регистрации сервером MBean.
Определено в:
preDeregister в интерфейсе MBeanRegistration
Исключения:
Exception - это исключение будет перехвачено сервером MBean и повторно выброшено как MBeanRegistrationException.

postDeregister

public void postDeregister()
Описание скопировано из интерфейса: MBeanRegistration
Позволяет MBean выполнить необходимые действия после отмены его регистрации на сервере MBean.

Если реализация этого метода выбрасывает RuntimeException или Error, сервер MBean повторно выбросит их соответственно в виде RuntimeMBeanException или RuntimeErrorException. Однако выбрасывание исключения в postDeregister не изменит состояние MBean: регистрация MBean уже была успешно отменена и останется отмененной.

Это может сбить с толку код, вызывающий unregisterMBean(), поскольку он может предположить, что отмена регистрации MBean завершилась неудачно. Поэтому рекомендуется, чтобы реализации postDeregister по возможности не выбрасывали исключения Runtime или ошибки.

Определено в:
postDeregister в интерфейсе MBeanRegistration

isInRelationService

public Boolean isInRelationService()
Возвращает внутренний флаг, указывающий, обрабатывается ли объект по-прежнему службой отношений.
Определено в:
isInRelationService в интерфейсе RelationSupportMBean
Возвращает:
значение Boolean, равное Boolean.TRUE, если объект по-прежнему обрабатывается службой отношений, и Boolean.FALSE в противном случае.

setRelationServiceManagementFlag

public void setRelationServiceManagementFlag(Boolean flag) throws IllegalArgumentException
Описание скопировано из интерфейса: RelationSupportMBean

Указывает, обрабатывается ли это отношение службой отношений.

ВНИМАНИЕ! Этот метод необходимо предоставлять, поскольку служба отношений будет обращаться к отношению через интерфейс управления. НАСТОЯТЕЛЬНО НЕ РЕКОМЕНДУЕТСЯ использовать этот метод. Его использование не влияет на регистрацию объекта отношения в службе отношений, но приводит к предоставлению неверных сведений о нем!

Определено в:
setRelationServiceManagementFlag в интерфейсе RelationSupportMBean
Параметры:
flag - указывает, обрабатывается ли отношение службой отношений.
Исключения:
IllegalArgumentException - если параметр равен null

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/relation/RelationSupport.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API