Java 8 では、MBean または MXBean の作成に使用するインターフェースの可視性要件の振る舞いが変更されました。 MBean インターフェースと MXBean インターフェースは、すべてパブリックでなければなりません。 Java 8 の前では、非パブリックのインターフェースが許可されていましたが、仕様ではそれらもパブリックであるべきと定義されていました。
jdk.jmx.mbeans.allowNonPublic システム・プロパティーを設定すると、非パブリック管理インターフェースを許可するという古い振る舞いを使用する管理サブシステムに戻すことができます。
このプロパティーは暫定的と見なされており、後続のリリースでは削除される可能性があります。
非パブリックの MBean インターフェースと MXBean インターフェースを検出するため、以下の場合は Java コード内でフラグが立てられます。
@MXBean のアノテーションが付けられた非パブリック・インターフェース@MXBean(true) のアノテーションが付けられた非パブリック・インターフェースMXBean で終わる非パブリック・インターフェースMBean で終わる非パブリック・インターフェース以下の例では、この規則によってフラグが立てられる非パブリック・インターフェースを示します。
インターフェース Example1MBean {}
インターフェース Example2MXBean {}
@MXBean インターフェース Example3Interface {}
@MXBean(true) インターフェース Example4Interface {}
以下の例では、既にパブリックであるか、MXBean ではないというアノテーションが付けられているために、この規則によってフラグが立てられないインターフェースを示します。
パブリック・インターフェース Example5MBean{}
パブリック・インターフェース Example6MXBean{}
@MXBean(false) インターフェース Example7MXBean {}
このルールには、インターフェースの可視性を publicに設定する自動修正があります。 カスタム構成をアプリケーション・ビルド・ファイルにコピーして、フィックスの自動化を有効にします。
詳しくは、 パッケージ javax.management に関する Java 資料を参照してください。