このセクションは、カスタム リスナーの追加方法について説明します。カスタムリスナーは、デフォルトでサポートされていないトランスポート上で、仮想アセットがメッセージを受信したり応答したりすることを可能にします。セクションの内容:

カスタム リスナーとは

各仮想アセットのコンフィギュレーション パネルには、[トランスポート] > [カスタム] タブがあります。このタブは、グループに固有の要件を満たすメッセージ リスナーの実装を表示するようにカスタマイズできます。 

カスタム メッセージ リスナーの実装が Virtualize にプラグインされると、仮想化フレームワークはレスポンス メッセージを生成できます。必要なプロトコル上の実際のメッセージの配信や受信は、メッセージ リスナーの実装によって処理されます。 

Parasoft Marketplace (marketplace.parasoft.com または組織のCTP からアクセスできます ) には、TCP/IP、 FTP、および Equifax といったその他の固定長メッセージ タイプの例があります。

カスタム リスナー用に実装するインターフェイス

拡張機能の追加: 基本手順」に記載のように、環境のセットアップが完了したら、次のインターフェイスを実装します ( 詳細については、『Extensibility API』ドキュメントを参照してください)。

ICustomMessageListener の実装

これは必須クラスです。isReady() は、構成が正しく設定されている場合は true を、そして必要な構成が設定されていない場合は false を返すべきです。startup() メソッドはリスナーがリスンを開始するべきときに呼び出されます。次の引数を受け取ります。

ICustomMessage

インスタンスが IMessageHandler.handleMessage() の実装に受け入れられるように、このインターフェイスを実装する必要があります。あるいは、メッセージ コンテンツのフォーマットが文字列で表現されている場合は、デフォルトの実装である DefaultCustomMessage<T> を使用できます。パラメータライズされたタイプは、文字列に適したプロパティ (またはヘッダー) オブジェクト タイプに使用できます。

カスタム リスナー用に parasoft-extension.xml を定義

必要なクラスを実装したら、次のように parasoft-extension.xml (「拡張機能の追加: 基本手順」に記載) を定義します。

 

<?xml version="1.0" encoding="UTF-8"?>
<extension xmlns="urn:com/parasoft/extensibility-framework/extension"
       type="messageListener" 
       name='The name of your message listener, appears in the transports menu' 
       description='A more detailed description'>
  <class>com.mycompany.MyMessageListener</class> <!-- implements ICustomMessageListener-->
  <form xmlns="urn:com/parasoft/extensibility-framework/gui">
       <!-- This describes the fields you wish to appear in your transport GUI --> 
       <section label="field group 1">
          <field id="key 1" label="field 1"/>
          <field id="key 2" label="field 2"/> 
          ...
          <section label="field group 2">
          <field id="key 3" label="field 3" />
      </section>
      <section label="field group 2">
          <field label="field 1" />
          ...
      </section>
      ...
  </form>
</extension>

 

section 要素の field id は、ICustomMessageListenerConfiguration インスタンスから値を取得するために使用されます。ICustomMessageListenerConfiguration インスタンスはさまざまな API メソッドに渡され、ユーザーが提供する値をユーザーの実装に渡すことを許可します。また、それらは保存されるときに、レスポンダー デプロイメント記述子ファイルにユーザーが提供する値を維持するために使用されます。フィールド ID は、この XML に基づいて構築された GUI に表示されます。セクション レイアウトはプログラムに影響を及ぼしません。エンド ユーザーが使用しやすいように、さまざまな GUI フィールドをセクションやカテゴリに整理します。

新しいリスナーの検証

拡張機能の追加: 基本手順」に記載のように、プロジェクトをビルドしたら Virtualize を再起動して、仮想アセット コンフィギュレーション パネルの [トランスポート] > [カスタム] タブに表示されるカスタム リスナー名 (parasoft-extension.xml に指定したもの) を確認します (仮想アセット コンフィギュレーション パネルは、[Virtualize サーバー] ビューの仮想アセット ノードをダブルクリックして開きます)。

カスタム リスナーが 1 個だけの場合、[カスタム] タブはそのカスタム フォーマットの設定専用になります。

 

 

複数のカスタム リスナーがある場合、[実装の選択] ボックスで使用するリスナーを選択できます。

 

サンプル

Parasoft Marketplace (marketplace.parasoft.com または組織のCTP からアクセスできます ) には、いくつかのカスタム メッセージ リスナーの実装があります。  それらの拡張をインストールして使用する方法については、zip ファイルに含まれるドキュメントを参照してください。 

ヒント