模块  java.management

Package 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值,这可以确保远程管理员了解它们。

类似的注释适用于操作和构造函数的参数类型以及操作的返回类型。

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

Default values and constraints

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

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

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

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

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

  • 值必须是适当的类型,或者是可以转换为适当类型的字符串,如上所述;
  • 如果存在legalValues ,则minValuemaxValue都不存在;
  • 如果defaultValue存在,则它必须满足定义的约束legalValuesminValue ,或maxValue当任何这些也存在;
  • 如果minValuemaxValue都存在,则minValue不得大于maxValue
从以下版本开始:
1.5
另请参见:
JMX Specification, version 1.4