データを生成するには、記録セッションで少なくとも 1 つのクライアントを開始する必要があります。本製品にはいくつかのクライアントが用意されています。
特定アプリケーションの開始を自動化するには、新規クライアントを定義します。
クライアントのタスクは、アプリケーションの起動、および記録フレームワークへのクライアントのライフサイクル・イベントの通知のみです。レコーダーで記録できるようにクライアントを構成するには、レコーダーによるクライアントの記録方法の定義を参照してください。
クライアントが既に存在するため、またはクライアントがその独自のライフサイクルを持つシステムであるため、起動すべきクライアントがない場合があります。
その場合は、製品に組み込まれた「手動」クライアントを使用します。
「手動」クライアントの ID は、com.ibm.rational.test.lt.recorder.core.manualClient です。
クライアントの新規タイプを定義するには、以下のタスクを実行します。
- com.ibm.rational.test.lt.recorder.core.client 拡張ポイントを使用して、plugin.xml ファイルで新規クライアント・タイプを宣言します。
- クライアントをワークベンチ内でローカルに実行できるのか、別の JVM 内でリモートに実行できるのか、バインド先のレコーダーと同じ JVM 内で実行できるのかを決定します。
- クライアントの実装クラスである代行を定義します。
代行は、クライアントを開始および停止し、クライアントが開始またはクローズされたらフレームワークに通知します。
- リモート・クライアントの場合には、代行を実行する JVM についての詳細を提供するリモート・ランチャーの実装を定義します。
- オプションで、クライアントを現在のコンピューター上で実行できるかどうかの基本的な検査を実行する前提条件バリデーターを定義します。
IClientDelegate インターフェースを実装するには、以下のようにします。
- このインターフェースの実装を提供する必要があります。
このインターフェースは、クライアントを開始および停止し、「クライアント開始済み」や「クライアント停止済み」などのイベント通知を送信します。
- start() メソッドと stop() メソッドは非同期です。言い換えると、これらのメソッドが戻る際に操作が完了している必要はありません。
そのため、クライアント代行は、操作が完了したらフレームワークに通知する必要があります。
- stop() 操作は、ユーザーがユーザー・インターフェースで「停止」をクリックした場合にのみ呼び出されます。多くの場合、ユーザーはアプリケーション自体の中でアプリケーションのクローズを合図します。
代行はアプリケーションをモニターして、アプリケーションがクローズされたらフレームワークに通知する必要があります。
- クライアントは構成を持つことができます。
構成は、XML ファイル (拡張子が .recconfig であるファイル) またはウィザードを使用して作成されます。
XML ファイルの例については、既存の記録セッション・ファイルを開き、とクリックしてください。
構成は ClientConfiguration オブジェクト内に格納されます。このオブジェクトは、ストリングをオブジェクトの各種タイプにマップしたものです。
クライアント代行は、その initialize() メソッドの中でこの構成を読み取ります。
- クライアント代行には、その initialize() メソッドの中でコンテキストが与えられます。
このコンテキストにより、レコーダーはイベントの通知を送信したり、ログ・メッセージを記録したりできます。
- 通常は、IClientDelegate クラスを直接実装するのではなく、BaseClientDelegate クラスを拡張します。
基底抽象クラスには大部分のメソッドの基本的な振る舞いが用意されています。オーバーライドが必要なものは個別にオーバーライドできます。
- BaseClientDelegate クラスを拡張していないクライアント代行の場合は、sendUserMessage() メソッドまたは getContext().sendMessage(new UserMessage(...)) メソッドを呼び出すことによって、ユーザーにメッセージを送信できます。
- クライアント代行は、動的プロパティーを設定または取得するか、メッセージを受信することによって、外部エンティティーと通信できるようになります。
クライアント代行が役に立つのは、クライアントの特定の UI を作成する場合、またはクライアントのクライアント・デコレーターを定義する場合のみです。
クライアントが特定のプロセスを起動する場合は、com.ibm.rational.test.lt.recorder.core.clients.ProcessBuilderClientDelegate クラスを拡張できます。その場合は、initialize() メソッドを拡張し、setter メソッドを呼び出して、コマンド行、引数、環境変数、および作業ディレクトリーをセットアップするだけで済みます。