MBean 및 MXBean 인터페이스가 공용이어야 함

Java 8에서는 MBean 또는 MXBean을 작성하는 데 사용되는 인터페이스에 대해 가시성 요구사항에 대한 동작 변경을 소개합니다. 모든 MBean 및 MXBean 인터페이스가 공용이어야 합니다. Java 8 이전에서, 비공용 인터페이스가 허용되었지만 스펙에서는 공용이어야 한다고 정의했습니다.

jdk.jmx.mbeans.allowNonPublic 시스템 특성을 설정하면 이전 동작을 사용하도록 관리 서브시스템을 되돌려서, 비공용 관리 인터페이스를 허용합니다. 이 특성은 과도적으로 간주되고 후속 릴리스에서 제거될 수도 있습니다.

비공용 MBean 및 MXBean 인터페이스를 발견하려면 다음 상황이 Java 코드에서 플래그가 지정됩니다.

MBean 인터페이스 이름을 MBean으로 끝내는 경우 이는 요구사항이 아니라 관습이므로, 관리 Bean을 작성하는 경우 이 Java 8 차이점을 강조표시하도록 MBeanServer registerMBean 또는 createMBean 메소드의 호출도 플래그가 설정됩니다. 관리 Bean 인터페이스가 이전에 나열된 관습을 따르지 않는 경우 공용 인터페이스를 사용하는지 수동으로 확인하십시오.

다음 예제에서는 이 규칙에서 플래그가 설정되는 비공용 인터페이스를 표시합니다.

    interface Example1MBean {}

    interface Example2MXBean {}

    @MXBean
    interface Example3Interface {}

    @MXBean(true)
    interface Example4Interface {}

다음 예제에서는 이미 공용이거나 MXBean이 아닌 것으로 어노테이션이 있으므로 이 규칙에서 플래그가 설정되지 않은 인터페이스를 표시합니다.

    public interface Example5MBean{}

    public interface Example6MXBean{}

    @MXBean(false)
    interface Example7MXBean {}

이 규칙에는 인터페이스 가시성을 public으로 설정하는 자동화된 수정사항이 있습니다. 수정사항 자동화를 사용으로 설정하려면 사용자 정의 구성을 애플리케이션 빌드 파일에 복사하십시오.

MBeanServer registerMBeancreateMBean 메소드에 대한 호출은 인터페이스에 플래그가 지정되지 않은 경우 동작 변경을 강조 표시하기 위해서만 플래그가 지정됩니다.

추가 정보는 패키지 javax.management Java 문서를 참조하십시오.