プログラミングによるアプリケーション管理オペレーションの拡張
共通デプロイメント・フレームワークを使用して、アプリケーション管理オペレーションにロジックを追加することができます。追加ロジックを使用して、 コード生成、構成オペレーション、追加の検証などのタスクを行うこともできます。このトピックでは、 プログラミングで共通デプロイメント・フレームワーク にプラグインし、アプリケーション管理オペレーションを拡張する方法を説明します。
始める前に
このタスクでは、Java™ アプリケーション・プログラミング・インターフェース (API) に関する基本的な知識があることを前提としています。アプリケーション・プログラミング・インターフェースの資料の Java API に関する項目をお読みください。
アプリケーション管理オペレーションを拡張するには、まず WebSphere® Application Server をインストールする必要があります。
このタスクについて
この例を使用して、プログラミングでアプリケーション管理を拡張します。 拡張によって提供されるタスクは、wsadmin ツールなどのすべての管理クライアント、 管理コンソール、または AppManagement MBean で提供されるプログラマチック API で使用することができます。
手順
- Eclipse プラグインで拡張を定義し、plugin.xml ファイルを追加して、デプロイメント・フレームワークに拡張プロバイダーを登録します。
- plugin.xml ファイルで、common-deployment-framework-extensionprovider 拡張ポイントの拡張プロバイダー実装クラスを指定します。
- WebSphere Application Server のインストール済み環境で、plugins ディレクトリーにプラグイン Java アーカイブ (JAR) ファイルを配置します。
<?xml version="1.0" encoding="UTF-8"?> <plugin id=“com.ibm.myproduct.MyExtensionProvider” name=“My Extension" version="1.0.0"> <extension point=“common-deployment-framework-extensionprovider”> <action class=“com.acme.MyExtendProviderImpl“/> </extension> </plugin>
- 拡張プロバイダーを指定します。
拡張プロバイダー・クラスでは、 アプリケーション・エンタープライズ・アーカイブ (EAR) ファイルで指定したオペレーションを行うためのステップが提供されます。オペレーションを実行する前に、 デプロイメント・フレームワークで追加ステップの登録済み拡張プロバイダーを照会してください。プロバイダーに、 ステップ・リストが 1 つずつ渡されます。 プロバイダーでは、リストにステップを追加することができます。 最初に、デプロイメント・フレームワークにあるデフォルトのプロバイダーが呼び出され、 デフォルトのステップでリストのデータを取り込みます。次に、その他の拡張プロバイダーが呼び出されます。
共通デプロイメント・フレームワークで拡張できるさまざまなオペレーションは、DeploymentConstants クラスで定数として定義されます。これらのオペレーションについては、以下の表で説明します。一部のオペレーションは印刷目的のために複数行に分割されています。表 1. 拡張可能 DeploymentConstants 操作. 拡張する操作を選択します。 オペレーション 説明 DeploymentConstants.CDF_OP_INSTALLJ2EE Java Platform, Enterprise Edition (Java EE) EAR ファイルをインストールします。 DeploymentConstants.CDF_OP_EDITJ2EE デプロイメント・アプリケーション構成を編集します。 DeploymentConstants.CDF_OP_UPDATEJ2EE ファイルまたはモジュールの追加、除去、更新や、アプリケーションの部分更新など、 アプリケーションへの詳細な更新を行います。 DeploymentConstants.CDF_OP_UNINSTALLJ2EE Java EE アプリケーションをアンインストールします。 DeploymentConstants. CDF_OP_CREATE_EAR_WRAPPERJ2EE
アプリケーションのインストールで入力された内容を EAR ファイルへラップします。 WebSphere Application Server で Java EE アプリケーションをデプロイおよび管理する AppManagement MBean は、CDF_OP_CREATE_EAR_WRAPPERJ2EE オペレーションを除くすべてのオペレーションを実行します。 デプロイメント・マネージャーの plugins ディレクトリーで、 これらのオペレーションを拡張する拡張子をデプロイします。
CDF_OP_INSTALLJ2EE オペレーションに渡される入力内容が EAR ファイルとしてパッケージされていない場合は、wsadmin ユーティリティーまたは管理コンソールのどちらかが CDF_OP_CREATE_EAR_WRAPPERJ2EE オペレーションを実行します。wsadmin インストールの plugins ディレクトリーで、CDF_OP_CREATE_EAR_WRAPPERJ2EE オペレーションを拡張する拡張子をデプロイします。
以下に、次のタスクを行う拡張プロバイダーを示します。- アプリケーション・インストール・オペレーションで、ステップを 2 つ追加します。
- EAR ファイルへ入力内容をラップするときに、ステップを 1 つ追加します。
package com.acme; import com.ibm.websphere.management.deployment.registry.ExtensionProvider; import com.ibm.websphere.management.deployment.core.DeploymentConstants; public class MyExtensionProviderImpl extends ExtensionProvider { public void addSteps (String type, String op, String phase, List steps) { if (op.equals (DeploymentConstants.CDF_OP_INSTALLJ2EE)) { // Add a code generation step. steps.add (0, new com.acme.CodeGenStep()); // Add a configuration step. steps.add (new com.acme.ConfigStep()); } else if (op.equals (DeploymentConstants.CDF_OP_CREATE_EAR_WRAPPERJ2EE)) { // Add an ear-wrapper step. steps.add (new com.acme.EarWrapperStep()); } } }
- デプロイメント・ステップ実装を指定します。
拡張子プロバイダーによって、 デプロイメント・ステップが追加されます。このステップには、 アプリケーション管理オペレーションで追加処理を行うロジックが含まれています。このロジックは、 デプロイメント・コンテキストおよびデプロイ可能なオブジェクトにアクセスするステップを提供しています。デプロイメント・コンテキストでは、 オペレーション名、構成セッション ID、一時ファイル作成のための一時ロケーション、 およびオペレーション・パラメーターなどの情報が提供されています。デプロイ可能なオブジェクトでは、 入力されたデプロイメントの内容をオペレーションへラップします。例えば、デプロイ可能なオブジェクトは、インストール・オペレーションで Java EE EAR ファイルをラップしたり、更新オペレーションでファイル、モジュール、または一部のアプリケーションをラップします。
- 以下の例では、インストール中の拡張子が、入力された EAR ファイルを完全にインストール・オペレーションに変更する方法を示しています。 インストールのオペレーション中に次のタスクを実行する、デプロイメント・ステップの例です。
- コード生成を実行して、新規 EAR ファイルを生成する。
- DeployableObject クラスで setContentPath メソッドを呼び出して、新規 EAR ファイル・パスを設定する。ステップの追加などを行うデフォルトのインストール・ロジックは、 構成リポジトリーでのインストールにこの新規 EAR ファイルを使用します。
package com.acme; import com.ibm.websphere.management.deployment.core.DeploymentStep; import com.ibm.websphere.management.deployment.core.DeployableObject; public class CodeGenStep extends DeploymentStep { public void execute (DeployableObject dObject) { EARFile earFile = (EARFile)dObject.getHandle(); String newEARPath = null; // Use step specific logic to create another EAR file after code generation. … newEARPath = _context.getTempDir() + "new.ear"; dObject.setContentPath (newEARPath); } }
- 以下の例では、次のようなデプロイメント・ステップが示されます。
- 入力した EAR ファイルの内容を読み取ります。
- コンテキスト・インスタンス _context によりアクセスされる、構成セッションを操作します。
package com.acme; public class ConfigStep extends DeploymentStep { public void execute (DeployableObject dObject) { EARFile earFile = (EARFile) dObject.getHandle(); // Use the following example code to perform the configuration. String sessionID = _context.getSessionID(); com.ibm.websphere.management.Session session = new com.ibm.websphere.management.Session (sessionID, true); // Use the configuration service to perform the configuration steps. … // Read the application configuration. Application appDD = earFile.getDeploymentDescriptor(); … String newEARPath = null; } }
以下に、EAR ファイル周辺の任意の内容をラップする、 デプロイメント・ステップの例を示します。アプリケーション管理ロジックは、 デプロイメント用の EAR ファイルのみを受け入れます。デプロイメントのプロセスで EAR ファイル以外のものを入力する場合は、 拡張子が必要です。
package com.acme; import com.ibm.websphere.management.deployment.core.DeploymentStep; import com.ibm.websphere.management.deployment.core.DeployableObject; public class EarWrapperStep extends DeploymentStep { public void execute (DeployableObject dObject) { Archive archive = (Archive) dObject.getHandle(); String newEARPath = null; // provide your logic to wrap the jar with the ear … newEARPath = //; // Set the new ear path back into DeploymentContext this.getContext().getContextData() .put(DeploymentContext.RETURN_Object_key, newEARPath); } }
タスクの結果
プログラミングで共通デプロイメント・フレームワークにプラグインし、アプリケーション管理オペレーションが拡張されました。
次のタスク
別のアプリケーション管理オペレーションを拡張したり、他の管理オペレーションを実行することもできます。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjmx_cdf
ファイル名:tjmx_cdf.html