既存の Java クラスからの MBean の生成
このウィザードでは、既存の Java クラスに基づいた MBean を生成できます。
提供されているクラスは、管理インタフェースでエクスポートされる必要があるものを選択するため、内省されます。
生成された MBean は StandardMBean を拡張です。
StandardMBean を拡張
StandardMBean を拡張 は、javax.management.StandardMBean クラスを拡張した MBean で、StandardMBean クラスについての詳細は、JMX javadoc を参照してください。
Java クラスから生成された MBean の場合、生成された MBean の実装は、内省されたクラスのインスタンスにすべての呼び出しを委託します。内省されたクラスのインスタンスへの参照は、生成された MBean コンストラクタへ渡される場合があります。
「MBean」ウィザードを使用した既存 Java クラスからの MBean の生成
この節では、標準 MBean を例をあげて詳しく説明します。「MBean」ウィザードはクラスの生成に使用されます。
- 「ファイル」>「新規ファイル」を選択します。
- 「管理」カテゴリを選択します。「ファイルの種類」から「JMX MBean」を選択します。
- 「名前」と「パッケージ」を入力します。
- 「次へ」をクリックします。
- 「既存のクラスから」チェックボックスを選択します。
- 「参照...」ボタンをクリックして、現在のプロジェクトからクラスを選択します。クラス名 (パッケージ + 名前) をテキストフィールドに入力することもできます。
- MBean クラスをドキュメント化するための説明を入力できます。このウィザードから入力したすべてのドキュメントは、次のものとして生成されます。
- 標準 MBeans の Javadoc。
- MBeanInfo に追加され、Dynamic and Extended MBeans の実行時の MBean についてのドキュメントを提供します。
- MBean に MBeanRegistration インタフェースを実装する場合は、「MBeanRegistration インタフェースを実装」チェックボックスを選択します。MBeanRegistration インタフェースは、MBean がライフサイクルを追跡できる便利なインタフェースです。 特定のイベントは MBean の登録 (pre/post register/unregister コールバック) に関連しています。
- 「preRegister メソッドパラメータの非公開フィールドを生成」をチェックできます。このオプションを選択すると、ウィザードがいくつかの非公開フィールドを生成し、preRegister コールバックに渡されたパラメータの参照を保持します。一般に、提供された ObjectName と MBeanServer の参照を保持することは重要です。
- 「次へ」をクリックします。
- 候補として検出された一連の属性がある場合は「属性」表に表示されます。操作の説明を更新して、それぞれの属性についての簡単な説明をつけることができます。
- 対応するチェックボックスの選択を解除することにより、いくつかの属性を除外できます。
- 新規の属性を追加することもできます。「属性を追加」をクリックします。
- 「属性」表の最初の行に、次のように入力します。
- 「名前」列に、属性名 (例: Status) を入力します。
- 「型」列で、Java の種類 (例: String) を選択します。
- 「アクセス権」列で、アクセスの種類 (例: 読み取り / 書き込み) を選択します。
- 「説明」列に、この属性が何を示しているか (例: この MBean の現在のステータス) を入力します。
- 「次へ」をクリックします。
- 一連の検出された操作がある場合は「操作」表に表示されます。操作の説明を更新して、それぞれの操作についての簡単な説明をつけることができます。
- 対応するチェックボックスの選択を解除することにより、いくつかの操作を除外できます。
- MBean に新規に操作を持たせる場合は、「操作を追加」をクリックします。
- 「操作」表の最初の行に、次を入力します。
- 「名前」列の操作名 (例: リセット) を入力します。
- 「戻り値の型」列で、Java の種類 (例: void) を選択します。
- 入力パラメータを追加する場合は、「パラメータ」列で、「編集」ボタンをクリックします。
- 「パラメータを追加」をクリックします
- 「パラメータ名」列で、デフォルトのパラメータ名を変更できます
- 「パラメータ型」列で、Java の種類 (例: String) を選択します
- 「パラメータ説明」列に、このパラメータが何を示しているかを入力します
- 「説明」列にこの操作が何を示しているか (例: 現在のステータスをリセット) を入力します。
- 「次へ」をクリックします。
- MBean で通知を送信したい場合は、NotificationEmitter インタフェースを実装を選択します。ウィザードでは、この NotificationBroadcasterSupport 委託に基づいたインタフェースの実装を生成できます。通知シーケンスナンバーを処理するいくつかのコードも生成できます。関連するチェックボックスを選択して、このコードを生成します。
- MBean で通知を定義する場合は、「通知を追加」をクリックします。
- 「通知」表の最初の列に、次のように入力します。
- 「通知クラス」列で、標準 JMX 通知クラスを選択するか、または独自の通知クラスを入力します。「AttributeChangeNotification」クラスを選択した場合は、通知の種類は自動的に「AttributeChangeNotification.ATTRIBUTE_CHANGE」に設定されます。
- 「説明」列で、通知の説明 (例: ステータス属性が変更されたときに通知を送信) を入力します。
- 通知の種類の列で、「編集」ボタンをクリックします。
- 「種類を追加」をクリックします
- 「通知」列で、デフォルトの種類を独自の種類 (例: com.foo.event.BIRTHDAY) に変更します
- 「次へ」をクリックします。
- JUnit テストを生成する場合は、「JUnit テストを作成」チェックボックスを選択します。
- 「完了」をクリックします。
- MBean 実装クラスがエディタで開かれます。標準 MBean を選択した場合、<MBean Name>MBean と呼ばれるMBean インタフェース、<MBean Name> と呼ばれる実装クラス、および JUnit テストは、選択した src パッケージまたは test パッケージで生成されます。
- これで、独自のロジックを生成されたコードに追加して、JUnit テストを実行することができます。