本主题解释如何将更新已保存的 SOAtest 构件(.tst 文件)和 Virtualize 构件(.pva 和 .pvn 文件),它们引用现有的扩展框架扩展,以使它们适应包含一组不同 GUI 字段的扩展的新版本。这使得这些构件可以无缝地升级到自定义扩展的新版本,而无需对它们进行重建。本章包含:
关于版本更新器
如果创建具有新 GUI 选项的现有扩展的新版本,可以使用版本更新器向已添加的新字段传输或设置值。为了配置这个更新,你需要实现 IVersionUpdater 并在 parasoft-extension.xml 中包含 <version> 元素。
IVersionUpdater 实现
如果你创建了具有新 GUI 选项的现有扩展的新版本,则可以提供这个可选类。更新器可用于向已添加的新字段传输或设置值。
如果在没有提供更新器类的情况下,新版本的扩展添加或更改 GUI 选项,则扩展 GUI 字段将只会显示当前版本的 parasoft-extension.xml 中定义的字段。这些字段保存的所有字段值也将在下次保存扩展的字段值时被删除。
更新器传递保存的版本号,该版本号表示上次保存选项时扩展的版本。如果以前未在 parasoft-extension.xml 中指定版本,则预期的版本号为 0。传递的配置类可以用来获取字段值和设置字段值,也可以删除任何不必要的字段。记住,将自动删除不再在 XML 中的字段,不需要手动在更新器中删除。
例如,假设你更改了 XML 中的选项,让一个字段代替两个字段。此外,假设这个新字段包含原来两个字段值的连接。下面是一个例子:
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 构件从扩展的一个版本更新为一个新版本。
有两个可用的属性:
- id - 整数版本,指定扩展的当前版本。此版本将保存在任何存储字段值的 Parasoft 构件中。将保存在 Parasoft 构件中的已保存版本传递给实现 IVersionUpdater 的类。
- updaterClass - 保存实现 IVersionUpdater 的类的完全限定名。
section 元素下的字段 id 值用作键,用于从传递给转换方法的 ICustomXMLConverterConfiguration 对象检索值。这允许将用户提供的值传递给实现类中。
例如:
IXMLMessage toXML(INativeMessage nativeMessage, IConversionContext context) throws CustomConversionException { String optionValue = context.getConfiguration().getString("fieldId"); }
GUI 中出现的字段标签是基于此 XML 构建的。它们还可用于在保存值时,将用户提供的值保留到 .tst 或 .pva 文件中。section 布局不存在编程影响;它只是帮助将各种 GUI 字段组织成 sections 或 categories,以便最终用户方便地访问和使用。