使用RTC提供的Plain Java API进行客户端开发

通过阅读本文,您将学会如何使用 Plain Java API 编写客户端代码来进行 RTC 上的二次开发,提高管理 Work Item 整个生命周期的效率,更加高效的实现团队合作。

Rational Team Concert (RTC) 是构建在 IBM Rational 面向软件交付技术的下一代协作平台 Jazz 上的第一个协作式的开发环境,它包含了集成的源代码控制、工作项(Work Item)管理和构建管理等功能。">开发团队在运行其进行项目协作时,往往需要与已有工具进行集成。幸好 RTC 也是一个具有极强扩展性的平台,我们可以采用 REST API 和 Plain Java API 两种方式对其进行扩展。下图展示了 RTC 的扩展功能。

图 1. RTC 的扩展架构

REST API: REST (Representational State Transfer)是一种针对网络应用的设计和开发方式,可以降低开发的
复杂性,提高系统的可伸缩性。RTC 从 2.0 版本开始正式支持 REST API,目前 REST API 所支持的功能还比较有限,但对于一般的集成需求已经足够,其功能主要集中在对 Work Item(工作项)的管理。对 RTC 而言,有了 REST API 的支持后,客户端的程序语言讲不再局限于 Java。并且,在各个版本的 RTC 之间,REST API 都是
稳定的。 Plain Java API:这些 API 可以在一般的 Java 应用程序中来对 RTC 进行扩展。我们要做的只是在 Eclipse 客户端中使用 Plain Java API 来调用 RTC 提供的特定 Java API,而这些 Java API 就能够完成对 Work Item 的生命周期
管理工作。需要注意的是,这些 Java API 在不同版本的 RTC 之间是不稳定的,如果 RTC 服务器进行版本升级,我们同时也需要对 Java API 进行相应的测试和迁移,而 REST API 则是永远稳定,这是 Plain Java API 的缺点,
但是由于 Java API 的简便性和易学性,它仍然是我们学习和扩展 RTC 的主要方式。本文
重点阐述使用 Plain Java API 管理 Work Item 整个生命周期的方式。

登录 RTC 服务器

要管理 Work Item 生命周期,首先需要建立与 RTC 的连接,使得 Java 程序能够登录到 RTC 的数据库中,从而进行后续操作。通过 Java API,可以登录到 RTC 的服务器端,建立同 RTC 数据库的连接,从 RTC 上得到需要的信息用于 Java 应用程序中。下面给出了一个登录方式,通过 RTC 的 URI、登录 RTC 的用户名和密码建立同 RTC 的连接。

清单 1. 登录 RTC 服务器

String REPOSITORY_URI = "https://example.ibm.com:9443/jazz/";String RTC_USER_ID = "example name"; String RTC_PASSWORD = "example password";private boolean login() throws RTCException { TeamPlatform.startup(); //启动 RTC 平台 TeamPlatform teamRepository = \ TeamPlatform.getTeamRepositoryService().getTeamRepository(REPOSITORY_URI); teamRepository.setConnectionTimeout(LOGIN_TIMEOUT); teamRepository.setAutoLogin(true); teamRepository.registerLoginHandler(new LoginHandler(RTC_USER_ID, RTC_PASSWORD)); try { teamRepository.login(null); } catch (TeamRepositoryException e) { throw new RTCException(e); } initConnection(); return true;}

在这个方法中,首先初始化 RTC 平台 TeamPlatform,然后利用 getTeamRepository 方法通过 RTC 的 URI 得到 RTC 的存储连接,该方法返回一个代表存储连接的 ITeamRepository 类型的变量 teamRepository,之后通过这个类中的 login 方法登录 RTC 并同 RTC 的数据库建立连接。在登录的过程中,还需要用到 RTC 的用户名和密码,这些账户信息存储在一个实现了接口 ILoginHandler 和 ILoginInfo 的自定义类 LoginHandler 中。

清单 2. LoginHandler

class LoginHandler implements ILoginHandler, ILoginInfo { private String fUserId; private String fPassword; public LoginHandler(String userId, String password) { fUserId = userId; fPassword = password; } public String getUserId() { return fUserId; } public String getPassword() { return fPassword; } public ILoginInfo challenge(ITeamRepository repository) { return this; }}

登录后,就可以通过得到的 teamRepository 变量对 RTC 中的数据进行相关操作了。在 initConnection 方法中,我们通过 teamRepository 初始化了一些变量,供后面的代码使用,比如 projectArea, workItemClient 和 auditableClient。

清单 3. initConnection

private void initConnection() throws RTCException { IProcessClientService processClient = \ (IProcessClientService) teamRepository.getClientLibrary(IProcessClientService.class);|-------10--------20--------30--------40--------50--------60--------70--------80--------9||-------- XML error: The previous line is longer than the max of 90 characters ---------| URI uri = URI.create(PROJECT_AREA.replaceAll(" ", "%20")); try { projectArea = \ (IProjectArea) processClient.findProcessArea(uri, null, null); if (projectArea == null) { throw new RTCException(PROJECT_AREA_NOT_FOUND); } workItemClient = (IWorkItemClient) teamRepository.getClientLibrary(\ IWorkItemClient.class); } catch (TeamRepositoryException e) { throw new RTCException(e); } auditableClient = (IAuditableClient) teamRepository.getClientLibrary(\ IAuditableClient.class);}

注意在工作完成后,调用 logout 方法退出登录,使用 TeamPlatform.shutdown()来关闭 TeamPlatform。

清单 4. logout

public void logout() { teamRepository.logout(); TeamPlatform.shutdown();}

时间: 2024-08-07 05:22:54

使用RTC提供的Plain Java API进行客户端开发的相关文章

使用IBM Rational ClearQuest Java API进行集成开发

通过 JNI 技术使用 ClearQuest Java API 实现与 Rational ClearQuest Test Manager(CQTM )系统的集成 简介:Rational ClearQuest 是一个缺陷和变更的管理系统,ClearQuest Test Manager (CQTM) 作为 一个模型运行在 ClearQuest V7 的顶层.其管理功能可覆盖测试的整个生命周期,包括测试计划.测试 编写.测试执行和测试报告.为了能够更好地使用CQTM提供的强大功能,自如地与其他应用系统

Google证实下一版Android不再使用Oracle专属的Java API

Google正计划将Java应用程序接口(APIs)从Orcale专属的Java开发套件(JDK)换成开源的OpenJDK.Hacker News在上月率先曝光了"神秘的Android代码库",而Google亦向VentureBeat证实"Android N"将仅仅依赖于OpenJDK,而不是Android自有的Java API版本. 一名Google发言人告诉VentureBeat: 作为一个开源的平台,Android建立在开源社区的协作之上. 在我们即将发布的新

使用Java API处理WebSphere MQ大消息

WebSphere MQ 中处理大消息的方法 使用过 WebSphere MQ 的读者都知道,WebSphere MQ 对处理的单条消息的大小是有限制的,目前支持的最大消息是100M,而且,随着消息大小的增大,WebSphere MQ 处理的性能也会随之下降.从最佳实践来说,WebSphere MQ 传输大小为几K的消息其效率是最高的.那如何使 WebSphere MQ 能高效的处理大消息呢? WebSphere MQ 提供了处理大消息的两种方法:消息分片和消息分组.下面我们来看在使用 Java

DB2 NoSQL JSON 功能(三) 使用 Java API 编写应用程序

管理 JSON 文档 - 使用事务和不使用事务 概述 简介 DB2 JSON 是一个可用于 DB2 Linux, Unix and Windows 10.5 的 Technology Preview,提供了以下特性: 一个命令行 shell 用于管理和查询 JSON 数据 一个 Java API 用于应用程序开发 一个有线监听器用于接受和响应通过网络发送的请求. 图 1. DB2 JSON 组件 本文将介绍如何使用 Java 接口管理和查询 DB2 JSON 文档存储中的 JSON 文档.还将讨

用JAX-RPC构建RPC服务和客户机:使用Java API构建基于RPC的Web服务(一)

简介:远程过程调用(RPC)是基于 Simple Object Access Protocol(SOAP)或 Representational State Transfer(REST)的现代 Web 服务的前身.因为所有 Java 平台的 Web 服务 API 都构建 在从 RPC 引入的概念之上,所以要想用 Java 语言编写有效且高效的 Web 服务,理解 Java API for XML-Based RPC(JAX-RPC)几乎是必需的.本教程讲解如何获取.安装和配置 JAX-RPC 并构

处理JSON的Java API :JSON的简介

原文链接  作者:Jitendra Kotamraju   译者:撒木 处理JSON的各种解析.生成.处理.转换和查询的JAVA API JSON (JavaScript Object Notation)是一种轻量级的.基于文本的.完全独立于语言的数据交换格式.它非常方便人们和机器的阅读和书写.JSON 有两种结构类型的表现方式:对象和数组.对象是名/值对的无序集合.数组是值(value)的有序集合.值的类型可以是字符串(在双引号中).数字(整数或浮点数).逻辑值(true或false).数组(

HBase Java API详解

[本文转自HBase Java API详解] HBase是Hadoop的数据库,能够对大数据提供随机.实时读写访问.他是开源的,分布式的,多版本的,面向列的,存储模型. 在讲解的时候我首先给大家讲解一下HBase的整体结构,如下图: HBase Master是服务器负责管理所有的HRegion服务器,HBase Master并不存储HBase服务器的任何数据,HBase逻辑上的表可能会划分为多个HRegion,然后存储在HRegion Server群中,HBase Master Server中存

《Hadoop与大数据挖掘》一2.4.1 HDFS Java API操作

2.4.1 HDFS Java API操作 Hadoop中关于文件操作类基本上是在org.apache.hadoop.fs包中,这些API能够支持的操作有:打开文件,读写文件,删除文件,创建文件.文件夹,判断是文件或文件夹,判断文件或文件夹是否存在等. Hadoop类库中最终面向用户提供的接口类是FileSystem,这个类是个抽象类,只能通过类的get方法得到其实例.get方法有几个重载版本,如图2-28所示. 比较常用的是第一个,即灰色背景的方法. FileSystem针对HDFS相关操作的

Google确认下一个Android版本将不会使用Oracle的Java API

在下一个Android版本中Google将会把应用程序接口(APIs)的实现替换为OpenJDK,它是Oracle私有的Java开发工具包(JDK)的开源版本.Google确认了Android N将会仅依赖于OpenJDK,而非Android自身实现的Java APIs.一位Google的发言人说:"最为一个开源平台,Android的构建是基于开源社区的合作.在即将到来的Android的下一个版本Android N,我们计划将所有Android的Java语言开发包用OpenJDK实现,从而为开发