public class StandardEmitterMBean extends StandardMBean implements NotificationEmitter
Java インタフェースのリフレクションによって管理インタフェースを決定し、通知を発行する MBean です。
次の例は、public コンストラクタ StandardEmitterMBean(implementation, mbeanInterface, emitter) を使用して、任意の実装クラス名 Impl、任意のインタフェース Intf で定義された管理インタフェース (現在の Standard MBean 用)、およびインタフェース NotificationEmitter の任意の実装を指定し、通知を発行する MBean を作成する方法を示しています。この例では、NotificationBroadcasterSupport クラスをインタフェース NotificationEmitter の実装として使用します。
MBeanServer mbs;
...
final String[] types = new String[] {"sun.disc.space","sun.disc.alarm"};
final MBeanNotificationInfo info = new MBeanNotificationInfo(
types,
Notification.class.getName(),
"Notification about disc info.");
final NotificationEmitter emitter =
new NotificationBroadcasterSupport(info);
final Intf impl = new Impl(...);
final Object mbean = new StandardEmitterMBean(
impl, Intf.class, emitter);
mbs.registerMBean(mbean, objectName);
StandardMBean| 修飾子 | コンストラクタと説明 |
|---|---|
protected |
StandardEmitterMBean(Class<?> mbeanInterface, boolean isMXBean, NotificationEmitter emitter)
管理インタフェースが
mbeanInterface で指定された MBean を作成します。通知は、指定した NotificationEmitter により処理されます。 |
protected |
StandardEmitterMBean(Class<?> mbeanInterface, NotificationEmitter emitter)
管理インタフェースが
mbeanInterface で指定された MBean を作成します。通知は、指定した NotificationEmitter により処理されます。 |
|
StandardEmitterMBean(T implementation, Class<T> mbeanInterface, boolean isMXBean, NotificationEmitter emitter)
指定された実装を持ち、指定された
NotificationEmitter で通知が処理される、管理インタフェースが mbeanInterface で指定された MBean を作成します。 |
|
StandardEmitterMBean(T implementation, Class<T> mbeanInterface, NotificationEmitter emitter)
指定された実装を持ち、指定された
NotificationEmitter で通知が処理される、管理インタフェースが mbeanInterface で指定された MBean を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void |
addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
この MBean にリスナーを追加します。
|
MBeanNotificationInfo[] |
getNotificationInfo()
この MBean が送信する可能性のある各通知について、その通知の Java クラス名と通知型を示す配列を返します。
|
void |
removeNotificationListener(NotificationListener listener)
この MBean からリスナーを削除します。
|
void |
removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
この MBean からリスナーを削除します。
|
void |
sendNotification(Notification n)
通知を送信します。
|
cacheMBeanInfo, getAttribute, getAttributes, getCachedMBeanInfo, getClassName, getConstructors, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getImpact, getImplementation, getImplementationClass, getMBeanInfo, getMBeanInterface, getParameterName, getParameterName, invoke, postDeregister, postRegister, preDeregister, preRegister, setAttribute, setAttributes, setImplementationpublic StandardEmitterMBean(T implementation,
Class<T> mbeanInterface,
NotificationEmitter emitter)
指定された実装を持ち、指定された NotificationEmitter で通知が処理される、管理インタフェースが mbeanInterface で指定された MBean を作成します。生成される MBean は、そのメソッドを emitter に転送することにより、NotificationEmitter インタフェースを実装します。implementation および emitter を同じオブジェクトにすることは、正当で有用です。
emitter が NotificationBroadcasterSupport のインスタンスである場合、MBean の sendNotification メソッドは emitter.sendNotification を呼び出します。
新規 MBean で getNotificationInfo() により返される配列は、構築時に emitter.getNotificationInfo() により返される配列のコピーです。emitter.getNotificationInfo() により返された配列があとで変更されても、オブジェクトの getNotificationInfo() が影響を受けることはありません。
implementation - MBean インタフェースの実装。mbeanInterface - Standard MBean インタフェース。emitter - 通知を処理するオブジェクト。IllegalArgumentException - mbeanInterface が管理インタフェースの JMX 設計パターンに従っていない場合、指定された implementation が指定されたインタフェースを実装していない場合、または emitter が null の場合。public StandardEmitterMBean(T implementation,
Class<T> mbeanInterface,
boolean isMXBean,
NotificationEmitter emitter)
指定された実装を持ち、指定された NotificationEmitter で通知が処理される、管理インタフェースが mbeanInterface で指定された MBean を作成します。このコンストラクタは、Standard MBean または MXBean の作成に使用できます。生成される MBean は、そのメソッドを emitter に転送することにより、NotificationEmitter インタフェースを実装します。implementation および emitter を同じオブジェクトにすることは、正当で有用です。
emitter が NotificationBroadcasterSupport のインスタンスである場合、MBean の sendNotification メソッドは emitter.sendNotification を呼び出します。
新規 MBean で getNotificationInfo() により返される配列は、構築時に emitter.getNotificationInfo() により返される配列のコピーです。emitter.getNotificationInfo() により返された配列があとで変更されても、オブジェクトの getNotificationInfo() が影響を受けることはありません。
implementation - MBean インタフェースの実装。mbeanInterface - Standard MBean インタフェース。isMXBean - true の場合、mbeanInterface パラメータにより MXBean インタフェースが指定され、結果の MBean は MXBean になる。emitter - 通知を処理するオブジェクト。IllegalArgumentException - mbeanInterface が管理インタフェースの JMX 設計パターンに従っていない場合、指定された implementation が指定されたインタフェースを実装していない場合、または emitter が null の場合。protected StandardEmitterMBean(Class<?> mbeanInterface, NotificationEmitter emitter)
管理インタフェースが mbeanInterface で指定された MBean を作成します。通知は、指定した NotificationEmitter により処理されます。生成される MBean は、そのメソッドを emitter に転送することにより、NotificationEmitter インタフェースを実装します。
emitter が NotificationBroadcasterSupport のインスタンスである場合、MBean の sendNotification メソッドは emitter.sendNotification を呼び出します。
新規 MBean で getNotificationInfo() により返される配列は、構築時に emitter.getNotificationInfo() により返される配列のコピーです。emitter.getNotificationInfo() により返された配列があとで変更されても、オブジェクトの getNotificationInfo() が影響を受けることはありません。
このコンストラクタの呼び出しは、指定した mbeanInterface を実装するサブクラスから行う必要があります。
mbeanInterface - StandardMBean インタフェース。emitter - 通知を処理するオブジェクト。IllegalArgumentException - mbeanInterface が管理インタフェースの JMX 設計パターンに従っていない場合、this が指定されたインタフェースを実装していない場合、または emitter が null の場合。protected StandardEmitterMBean(Class<?> mbeanInterface, boolean isMXBean, NotificationEmitter emitter)
管理インタフェースが mbeanInterface で指定された MBean を作成します。通知は、指定した NotificationEmitter により処理されます。このコンストラクタは、Standard MBean または MXBean の作成に使用できます。生成される MBean は、そのメソッドを emitter に転送することにより、NotificationEmitter インタフェースを実装します。
emitter が NotificationBroadcasterSupport のインスタンスである場合、MBean の sendNotification メソッドは emitter.sendNotification を呼び出します。
新規 MBean で getNotificationInfo() により返される配列は、構築時に emitter.getNotificationInfo() により返される配列のコピーです。emitter.getNotificationInfo() により返された配列があとで変更されても、オブジェクトの getNotificationInfo() が影響を受けることはありません。
このコンストラクタの呼び出しは、指定した mbeanInterface を実装するサブクラスから行う必要があります。
mbeanInterface - StandardMBean インタフェース。isMXBean - true の場合、mbeanInterface パラメータにより MXBean インタフェースが指定され、結果の MBean は MXBean になる。emitter - 通知を処理するオブジェクト。IllegalArgumentException - mbeanInterface が管理インタフェースの JMX 設計パターンに従っていない場合、this が指定されたインタフェースを実装していない場合、または emitter が null の場合。public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
NotificationBroadcasterremoveNotificationListener、インタフェース: NotificationBroadcasterlistener - 以前にこの MBean に追加されたリスナー。ListenerNotFoundException - リスナーが MBean に登録されていない場合。NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
NotificationEmitterこの MBean からリスナーを削除します。MBean は、指定された listener、filter、および handback パラメータと正確に一致するリスナーを持っている必要があります。該当するリスナーが複数存在する場合、そのうちの 1 つだけが削除されます。
削除されるリスナー内で null が指定されている場合、filter および handback パラメータは null になります。
removeNotificationListener、インタフェース: NotificationEmitterlistener - 以前にこの MBean に追加されたリスナー。filter - リスナーの追加時に指定されたフィルタ。handback - リスナーの追加時に指定されたハンドバック。ListenerNotFoundException - リスナーが MBean に登録されていない場合、または指定されたフィルタおよびハンドバックで登録されていない場合。public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
NotificationBroadcasteraddNotificationListener、インタフェース: NotificationBroadcasterlistener - ブロードキャスタが発行した通知を処理するリスナーオブジェクト。filter - フィルタオブジェクト。フィルタが null の場合、通知処理の前にフィルタは適用されない。handback - 通知の発行時にリスナーに送信される不透明なオブジェクト。Notification ブロードキャスタオブジェクトは、このオブジェクトを使用できない。このオブジェクトは、手を加えない状態で、通知とともにリスナーへ送り返されなければならない。NotificationBroadcaster.removeNotificationListener(javax.management.NotificationListener)public MBeanNotificationInfo[] getNotificationInfo()
NotificationBroadcasterこの MBean が送信する可能性のある各通知について、その通知の Java クラス名と通知型を示す配列を返します。
この配列に記述されていない通知を MBean が送信しても、不正ではありません。ただし一部の MBean サーバークライアントは、正しく機能するために、作成される配列に依存する場合があります。
getNotificationInfo、インタフェース: NotificationBroadcasterpublic void sendNotification(Notification n)
通知を送信します。
コンストラクタに渡される emitter パラメータが NotificationBroadcasterSupport のインスタンスであった場合、このメソッドは emitter.sendNotification を呼び出します。
n - 送信する通知。ClassCastException - コンストラクタに渡される emitter パラメータが NotificationBroadcasterSupport でなかった場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.