本主题介绍如何更新已保存的引用已有 Extension Framework 扩展的 SOAtest 工件(.tst 文件)和 Virtualize 工件(.pva 和 .pvn 文件),以使它们适应包含一组不同 GUI 字段的新版本扩展。这使得这些构件可以无缝地升级到自定义扩展的新版本,而无需对它们进行重建。章节目录:

关于版本更新器

如果创建具有新 GUI 选项的现有扩展的新版本,可以使用版本更新器向已添加的新字段传输或设置值。为配置该更新,您需要实现 IVersionUpdater 并在 parasoft-extension.xml 中包含 <version> 元素。 

IVersionUpdater 实现

如果您创建了具有新 GUI 选项的现有扩展的新版本,则可以提供这个可选类。更新器可用于向已添加的新字段传输或设置值。 

如果新版本的扩展程序在未提供更新类的情况下添加或修改了 GUI 选项,那么扩展程序的 GUI 字段将仅显示当前版本的 parasoft-extension.xml 中定义的字段,而不会显示仅存在于旧版本 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 字段整理为不同的部分或分类,以便最终用户方便地访问和使用。

  • No labels