高度なカスタマイズ > サービスおよびインフラストラクチャのカスタマイズ > システム設定コレクターのプラグイン > システム設定コレクターのプラグインの作成 > 手順 - カスタムプラグインの作成 > プラグインの実装
  
プラグインの実装
プラグインの実装は、プラグインに代わって実際の作業を行うコードです。その主な処理は、プラグインが正しく初期化されており (前述の設計に関するステップを参照)、必要なインタフェースが実装されていることを確認することです。最後に、プラグインが作業を行うために必要なメソッドの実装を提供します。
1. プラグインの初期化
プラグインの構築中、オブジェクトはその MBean 属性を初期化する必要があります (プラグインはすべて MBean です)。設計段階の例を使用して、コンストラクタのメソッドを拡張できます。
public CustomPlugin() throws NotCompliantMBeanException {
super(null);
// super(PluginMBean.class);
initializeMBeanAttributes();
}
private void initializeMBeanAttributes() {
if (logger.isDebugEnabled()) {
logger.debug("Initializing " + CUSTOM_PLUGIN_NAME + " Plugin.");
}
// set the plugin display name
setDisplayName(CUSTOM_PLUGIN_NAME);
// set the plugin description
setDescription(CUSTOM_PLUGIN_DESCRIPTION);
// set the plugin MBean name
setMBeanName("TomcatConfigProperties");
// set the plugin enumerated type
setPluginType(PluginType.MISC);
// set the plugin version number
setPluginVersion("1.0");
// set whether the plugin relies on database
// administrator credentials
setDbCredentialsNeeded(false);
// set whether the plugin operates on each
// cluster node
setClusterAware(true);
// set whether the plugin relies on file
// date ranges for data collection
setDateRangeUsed(false);
// set whether the plugin should compress the
// output of its data collection
setCompressOutput(false);
}
ここでは、コンストラクタは、公開されている MBean 値を含むすべてのプラグインの属性を初期化するプライベートメソッドが含まれるように拡張されています。
setMBeanName パラメータの値は、適切な形式の MBean オブジェクト名である必要があります。Mbean ローダーで問題が発生することを回避するために、文字列名にスペースを含めないでください。MBean オブジェクト名の構文の詳細については、その他のリソースの「関連 Web サイト」を参照してください。
2. プラグインの collect(…) メソッド
プラグインの作業の大部分は collect(…) メソッドに含まれており、実装の詳細はプラグイン開発者が実装するかどうかを決定します。例については、サンプルコードを参照してください。
高度なプラグインでは、一般的に、作業は collect(…) メソッドが処理するには大規模であるため、Java ヘルパークラスとプライベートヘルパーメソッドを実装すると役立ちます。これにより、プラグインで個別のメソッドを使用でき、保守が簡単になります。ヘルパーメソッドの実装は、プラグインと開発者の判断のみに基づいて行われるため、具体的でもあり、プラグインの実装者によって異なります。collect(…) メソッドの詳細については、カスタマイズポイントを参照してください。
3. プラグインのローカライズ
Windchill は分散型アプリケーションであり、さまざまなロケールにクライアントが存在する可能性があるので、プラグインで外部化されているすべての Java 文字列をローカライズすることは非常に重要です。
特に重要な文字列は、プラグインの名前と説明です。これらの値は、システム設定コレクター UI でユーザーに対して表示されます。
com.ptc.customersupport.plugins.* パッケージには、多くのプラグインで参照されている、同じパッケージ内にあるさまざまな *Resource.java ファイルが含まれています。これらの *Resource.java ファイルには、MBean プラグインの初期化中にローカライズされ、読み取られるパブリック文字列参照値が含まれています。
ただし、常に Java 文字列をローカライズできるとはかぎりません。値がローカライズされていないと、入力されている値 (上記の例では英語) が使用され、クラスファイルにコンパイルされます。
CustomPlugin の例を使用して、新しいプラグインのメンバー変数を追加します。
private static ResourceBundle RESOURCE =
ResourceBundle.getBundle(
CustomPluginResource.class.getName());
これが、ローカライズ済み Java 文字列が配置される場所への参照になります。CustomPlugin は、この参照を使用して、ローカライズされた値を読み込むことができます。リファクタリングされた setDisplayName(string) メソッドと setDescription(string) メソッドは、次のようになります。
// set the localized plugin display name
setDisplayName(MBeanUtilities.formatMessage(
RESOURCE.getString(
CustomPluginResource.CUSTOM_PLUGIN_NAME)));
// set the localized plugin description
setDescription(MBeanUtilities.formatMessage(
RESOURCE.getString(
CustomPluginResource.CUSTOM_PLUGIN_DESC)));
ローカライズ済み文字列 CUSTOM_PLUGIN_NAME および CUSTOM_PLUGIN_DESC は、正しくローカライズされているクラスファイルから読み込まれます。
注記: プラグインのローカライズ済み文字列は、プラグインの初期化中にサーバーから読み取られるため、サーバーのロケールの影響を受けます。ローカライズされた値は、システム設定コレクター UI のクライアントのロケールではなく、サーバーのロケールに従って表示されます。
Windchill の文字列を適切にローカライズする方法の詳細については、現地化とローカリゼーションを参照してください。