このセクションでは、既存の Extension Framework の拡張機能を参照している SOAtest の生成物 (.tst ファイル) および Virtualize の生成物 (.pva、.pvn ファイル) を、異なる GUI フィールドを含む新しいバージョンの拡張機能に適応させるアップデート方法について説明します。生成物を再生成することなく、新しいバージョンのカスタム拡張機能へアップデートさせることができます。
このセクションの内容:
新しい GUI オプションを備えた、既存の拡張機能の新しいバージョンを作成した場合、Version Updater を使用して新しく追加されたフィールドへ値を移行したり設定することができます。このアップデートを構成するには、 IVersionUpdater を実装し、parasoft-extension.xml に <version> 要素を含める必要があります。
新しい 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); } } |
これは以下を定義するためのオプション要素です。
2 つの属性が適用可能です。
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 フィールドを セクションまたはカテゴリに整理します。