このセクションでは、既存の Extension Framework の拡張機能を参照している SOAtest の生成物 (.tst ファイル) および Virtualize の生成物 (.pva、.pvn ファイル) を、異なる GUI フィールドを含む新しいバージョンの拡張機能に適応させるアップデート方法について説明します。生成物を再生成することなく、新しいバージョンのカスタム拡張機能へアップデートさせることができます。

このセクションの内容:

Version Updater とは

新しい GUI オプションを備えた、既存の拡張機能の新しいバージョンを作成した場合、Version Updater を使用して新しく追加されたフィールドへ値を移行したり設定することができます。このアップデートを構成するには、 IVersionUpdater を実装し、parasoft-extension.xml に <version> 要素を含める必要があります。 

IVersionUpdater の実装

新しい GUI オプションを備えた、既存の拡張機能の新しいバージョンを作成した場合に提供されるオプション クラスです。アップデーターは新しく追加されたフィールドへ値を移行したり設定したりするのに使用されます。  

新しいバージョンの拡張機能が、アップデーター クラスを提供せずに、 GUI オプションを追加または変更する場合、拡張 GUI フィールドは現在のバージョンの parasoft-extension.xml で定義されたフィールドだけを表示します。古いバージョンの parasoft-extension.xml だけに存在する古いフィールドは表示しません。これらの古いフィールド用に保存されたフィールド値も、次に拡張機能のフィールド値を保存する際に削除されます。 

アップデーターは、そのオプションが最後に保存された時点の拡張機能のバージョンを示すバージョン番号を渡します。バージョンが parasoft-extension.xml であらかじめ指定されていない場合、バージョン番号はゼロとなります。受け取った構成クラスは、フィールド値の取得または設定や、不必要なフィールドの削除に使用します。XML にないフィールドは自動的に削除されるので、アップデーターで手動で削除する必要はありません。 

たとえば、フィールドを 2 つから 1 つにするために、XML の中のオプションを変更したとします。さらに、この新しいフィールドはオリジナルの 2 つのフィールド値を連結したものを含むとします。このような設定をするには、次のように記載します。


updateVersion(int savedVersion, ICustomConfiguration config) {
     if (savedVersion == 1) {
         String valueOne = config.getString("oldId1"); 
         String valueTwo = config.getString("oldId2"); 
         config.setString(newKey, valueOne + valueTwo);
     }
}

parasoft-extension.xml の <Version> 要素

これは以下を定義するためのオプション要素です。  

  • ユーザーの拡張機能のバージョン
  • 古いバージョンの拡張機能から新しいバージョンの拡張機能へ、保存された Parasoft 生成物をアップデートする、任意のアップデーター クラス

2 つの属性が適用可能です。

  • id - 拡張機能の現行バージョン示す整数です 。このバージョンは フィールド値を格納する Parasoft 生成物に保存されます。Parasoft 生成物に格納されたバージョンは、IVersionUpdater を実装するクラスに渡されます。
  • updaterClass - IVersionUpdater を実装するクラスの完全修飾名を持ちます。

section 要素の下の field id 値 は、ICustomXMLConverterConfiguration オブジェクトから、変換メソッドに渡す値を読み出すキーとして使用されます。これはユーザーが提供した値がユーザーの実装に渡せるようにします。 

例:


IXMLMessage toXML(INativeMessage nativeMessage, IConversionContext context) throws CustomConversionException 
{
     String optionValue = context.getConfiguration().getString("fieldId");
}


GUI に表示される field label はこの XML に基づいて構成されます。それらはまた、.tst/.pva ファイルにユーザーが提供する値を維持するためにも使用されます。このセクション レイアウトはプログラムに影響を及ぼしません。エンドユーザーが使用しやすいように、さまざまな GUI フィールドを セクションまたはカテゴリに整理します。

  • No labels