包 javax.management.openmbean


javax.management.openmbean

提供开放数据类型和 Open MBean 描述符类。 Open MBean 是一个 MBean,其中属性和操作参数的类型以及返回值是使用一小组预定义的 Java 类构建的。 Open MBean 促进了与远程管理程序的操作,这些远程管理程序不一定能够访问特定于应用程序的类型,包括非 Java 程序。

每个 MBean 都有一个 MBeanInfo ,其中包含有关 MBean 本身及其属性、操作、构造函数和通知的信息。在 Open MBean 中,这个 MBeanInfo 实现了 OpenMBeanInfo 接口,通常是 OpenMBeanInfoSupport 的一个实例。

MBeanInfo.getAttributes 为 Open MBean 返回的属性信息是一个实现 OpenMBeanAttributeInfo 的对象数组,通常是 OpenMBeanAttributeInfoSupport 的实例。除了有关属性的常用信息外,OpenMBeanAttributeInfo 还指定了属性的 OpenType 。可能的 OpenType 值是预定义的,这确保远程管理人员能够理解它们。

类似的评论适用于操作和构造方法的参数类型,以及操作的返回类型。

getType() 返回的属性的 Java 语言类型与其 getOpenType() 返回的 OpenType 之间存在区别。例如,如果 Java 语言类型为 java.lang.String,则 OpenType 将为 SimpleType.String 。如果 Java 语言类型是 CompositeData ,则 OpenType 将是一个 CompositeType ,它描述属性的 CompositeData 实例中的项目。

默认值和约束

在 Open MBean 中,属性和参数可以在 OpenMBeanAttributeInfoOpenMBeanParameterInfo 中具有默认值和/或与其关联的约束。有两种方法可以指定这些约束。这些值直接指定为 OpenMBeanAttributeInfoSupportOpenMBeanParameterInfoSupport 的构造函数之一的参数,例如 OpenMBeanParameterInfoSupport(String, String, OpenType, Object, Object[]) ;或者值在 Descriptor 中指定,作为构造函数之一的参数。

使用 Descriptor 时,感兴趣的字段如下:

对于 defaultValueminValue maxValue ,关联值必须是对应于 openType 的 Java 类型,或者是可以转换为该类型的字符串。如果找到一个,则转换使用静态方法valueOf(String);否则,如果找到一个带有单个 String 参数的构造函数;否则失败。

对于 legalValues ,关联值必须是数组或 Set ,并且数组或集合的元素必须可转换,如 defaultValue 等所述。

这些字段必须满足以下条件:

  • 值必须是适当的类型,或者是可以转换为适当类型的字符串,如上所述;
  • 如果 legalValues 存在,则 minValuemaxValue 都不能存在;
  • 如果 defaultValue 存在,则它必须满足 legalValuesminValuemaxValue 定义的约束,当其中任何一个也存在时;
  • 如果 minValuemaxValue 都存在,则 minValue 不得大于 maxValue
自从:
1.5
参见: