Descriptor

Descriptor (JMX 메타데이터 기술자)

JMX 요소에 대한 추가 메타데이터를 담는 인터페이스예요. MBeanInfo, MBeanAttributeInfo 등과 연결되며 이름-값 쌍(field)의 모음으로 구성돼요.

출처: Java API Reference

본문

Descriptor는 일련의 필드(field)로 구성돼요. 각 필드는 이름과 그에 연결된 값이에요. 필드 이름은 대소문자를 구분하지 않아서 descriptorType, descriptortype, DESCRIPTORTYPE 모두 동일하게 취급돼요. 다만 필드가 처음 설정될 때 사용된 대소문자는 getFields()getFieldNames() 결과에서 보존돼요.

모든 필드 이름과 값이 미리 정의된 것은 아니에요. 어떤 프로그램이든 새로운 필드를 정의하고 추가할 수 있어요. Descriptor는 가변(mutable)이거나 불변(immutable)일 수 있는데, 불변 Descriptor는 생성 후 절대 변하지 않으며 내용을 수정하려는 메서드가 호출되면 예외를 던져요. 불변 Descriptor는 보통 ImmutableDescriptor(또는 하위 클래스), 가변 Descriptor는 보통 DescriptorSupport(또는 하위 클래스)의 인스턴스예요.

필드 이름에 마침표(.)가 포함되면 안 되는데, 앞으로 추가될 JMX 규격의 필드들과 충돌하지 않도록 하기 위해서예요. 사용자는 이름에 마침표를 포함해 안전하게 자신만의 필드를 만들 수 있고(예: com.example.interestLevel), Java 패키지 명명 규칙을 따라 서로 다른 출처의 필드 이름 충돌을 피하는 것이 권장돼요.

정의된 주요 필드로는 속성/파라미터의 기본값(defaultValue), 허용값(legalValues), 최대/최소값(maxValue/minValue), MBean의 불변 여부(immutableInfo), MBeanInfo가 변하지 않을 것으로 예상되는 시간(infoTimeout), MXBean 여부(mxbean), 요소의 원본 Java 타입(originalType), 단위(units), 심각도(severity) 등이 있어요. Java 1.5부터 제공돼요.

더 알아보기 (Learn more)

Java 공식 API