首页 > 解决方案 > 如何使用 Jazz RTC Java API 列出项目区域拥有的流

问题描述

我正在为 IBM Rational Team Concert(IBM aka Jazz RTC)工作。

如何列出特定项目区域拥有的所有流?哪些是必需的 API 调用?

我在 IProjectArea 实例中找不到任何 getter,也找不到具有此类方法的服务或客户端实例。而且我不知道如何为此目的使用搜索条件。

标签: javagroovyrational-team-concert

解决方案


可以使用 查询项目区域拥有的流IWorkspaceSearchCriteria。因为流实际上是“流”类型的工作区。API 不太清楚如何指定拥有的项目区域。

  1. IWorkspaceManager从 中获取ITeamRepository,其中包含findWorkspaces方法。
  2. 你不需要IProjectAreaHandle。只有项目区域名称。
  3. 创建一个IWorkspaceSearchCriteria并设置kindIWorkspaceSearchCriteria.STREAMS并设置exactOwnerName为包含项目区域名称的字符串。
  4. 调用IWorkspaceManager.findWorkspaces(...)以获取IWorkspaceHandles. 第一个参数是搜索条件。se第二个参数是最大结果数(我设置为IWorkspaceManager.MAX_QUERY_SIZE,也就是512。第三个参数是进度监视器,可能是null.
  5. 如果您需要获取流名称、描述或其他属性,则需要调用IItemManager.fetchCompleteItems(...)fetch 完整IWorkspace实例。

这是 Groovy 中的一个示例:

Lit<IComponentHandle> listComponents(String projectAreaName) {
  final manager = repositoty.getClientLibrary(IWorkspaceManager) as IWorkspaceManager;
  final criteria = IWorkspaceSearchCriteria.FACTORY.newInstance();
  criteria.setKind(IWorkspaceSearchCriteria.STREAMS);
  criteria.setExactOwnerName(projectAreaName)
  final itemManager = repositoty.itemManager()
  return itemManager.fetchCompleteItems(handles, IItemManager.DEFAULT, null) as List<IWorkspace>
}

推荐阅读