技术开发 频道

Jazz平台的扩展实践—EasyInspect插件

【IT168 专稿

    本文是Rational软件技术征文大赛(http://tech.it168.com/focus/200903/rationalgame/index.html)三等奖获奖作品。

    当被问到“你知道Jazz,你在使用Jazz吗”这个问题时,我相信很多人都会不假思索地说“是的”。但如果问题换成“你在Jazz平台的基础上开发过新工具吗”,大家是否还会给出肯定的回答呢?

    在Jazz平台席卷全球的同时,大家对Jazz的了解和喜爱越来越深,更多的人开始尝试基于Jazz的开发,以求对Jazz更深的了解。我们也是其中的一份子,并且成功实现了基于Jazz的用于代码检查的插件EasyInspect。这里,希望能够跟大家一起分享我们在开发EasyInspect过程中所获得的实践经验,并希望它能为其他Jazz热爱者带来一定帮助。

    首先,简单介绍一下我们的成果EasyInspect。前面已经提过,它是基于Jazz平台的插件,可以很好的与Rational Team Concert集成,它的目标是方便开发人员进行高效的代码检查,从而提高代码的质量。它主要的特性有:

    · 基于上下文的代码评论:自动记录被评论代码段的位置信息;源文件及被评论代码段的智能定位。

    · 与版本控制系统的集成:保证正确版本的源文件被检查;代码评论与版本信息保持关联。

    · 高效的通信:借用了Jazz平台的通信机制,使代码作者可以及时了解到新的评论;方便开发组基于特定的代码评论发起讨论。

    在开发EasyInspect的具体实践中,我们与Jazz的多个特性进行了亲密的接触。在接下来的部分,将从如下几个方面来介绍我们的实践,包括开发环境的搭建、工作项(WorkItem)的应用与扩展、版本控制与应用、工作流、与即时交谈工具的集成、插件的部署等。

1.配置基于Jazz RTC的扩展开发环境

    注册Jazz.net帐号

    在开始之前,先确保你有一个Jazz.net帐号。Jazz.net帐号不仅是下载代码的必要前提,它还允许你访问Jazz.net网上的各种开发资源,包括WIKI、论坛和整个开发社区。

    请访问https://jazz.net/首页注册Jazz.net帐号。

    下载Jazz RTC代码

    为了配置Jazz RTC开发环境,首先需要下载Jazz RTC的客户端和服务器端代码,我们同时需要可执行代码和源代码。

    请访问https://jazz.net/downloads/RationalTeamConcert找到下载页面。到写稿时Jazz RTC的最新版本是1.0.1.1。在“All Downloads”标签下找到下面的下载内容。

    · 下载可执行代码

    Express-C,Client for Eclipse IDE and Server (Zip版)

    · 下载源代码(在下载页面底部)

    - Jazz Team Server

    - Rational Team Concert Client

    - Jazz JUnit Tests

    解压缩成开发环境

    将Client for Eclipse IDE and Server(Zip版)解开到文件系统,下文以[InstallDir]指代解压缩的位置。由于Zip中的目录结构非常深,为了确保解压缩后的文件路径不超过文件系统的一些限制,请尽可能在系统根目录(或浅层目录)解压缩。

    解开后的内容结构大致如下所示。

[InstallDir]
   jazz
       buildsystem
       client
       repotools
       scmtools
       server

    接着解压缩源代码Zip文件。它们应当被解开到[InstallDir]/jazz/client/eclipse的位置。之后,文件系统中应该出现下面的目录结构。
[InstallDir]
   jazz
       client
           eclipse
               source
                   base
                   eclipse
                   rtc
                   server
                   tests

    到此为止,你已经准备好了Jazz RTC插件扩展的开发环境。你可以在在下面的位置找到Rational Team Concert的启动文件:

[InstallDir]/jazz/client/eclipse/TeamConcert.exe

    这将是你之后的开发环境。

    启动RTC和配置Target Platform

    启动RTC开发环境([InstallDir]/jazz/client/eclipse/TeamConcert.exe),并在Preference中(Window > Preferences... > Plug-in Development > Target Platform)配置插件开发的Target Platform为Jazz Team Server and Binaries。

    然后点击“Load Target”按钮,并在完成后确认。

    启动和调试客户端的Jazz插件

    到这里,Jazz客户端的开发环境已经配置完成。你可以像开发一般Eclipse插件一样开发Jazz RTC客户端的插件了,因为Jazz RTC插件首先也是一个Eclipse插件。

    运行和调试Jazz RTC插件的方法和普通Eclipse插件并无不同,可以在Run/Debug Configuration中(Run > Open Run/Debug Dialog…)配置。例如下图就是一个运行配置,加载了Workspace中一些RTC插件运行和调试。

    启动和调试服务器端的Jazz插件

    Jazz与传统的IDE最大区别就在于它拥有统一的服务器端,因此开发Jazz RTC扩展的一个重要内容是开发服务器端的扩展插件。为了方便服务器端的开发和调试,有必要配置一个能直接在IDE中启动和调试的Jazz服务器。

    之前我们已经下载和安装了Jazz Server的可执行代码,现在需要做的就是在IDE中建立一个运行配置来启动它。Jazz开发社区中有预先配置好了运行配置,我们可以直接下载使用。

    https://jazz.net/wiki/pub/Main/JazzServerRunAndDebug/JazzServer-06-RTC10-Maximal.launch

    下载上面的launch文件,并复制到Workspace中的任意项目里(一般launch运行配置被放在项目顶层的launches目录中)。刷新Workspace,就可以在Run/Debug Configuration中(Run > Open Run/Debug Dialog…)找到Jazz Server的运行配置。

    勾选Workspace中你开发的服务器端插件,之后启动就可以运行和调试Jazz Server了。

    (若遇到“org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy. You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.”,请看下面关于org.apache.commons.logging的问题的解决办法。)

    注意:已知关于org.apache.commons.logging的问题

    有些情况下,会在启动Jazz Server时遇到关于logging的异常“org.apache.commons.logging.LogConfigurationException”。这时打开运行配置,并在Target Platform下寻找org.apache.commons.logging,会看到类似下面,同时存在1.0.4和1.0.5两个不同版本的情况:

    由于Eclipse的一个缺陷,如果你禁用其中一个,下次启动时它又会被自动启用。解决的办法是:

    (1)在Target Platform下面禁用所有的logging实现。

    (2)导入org.apache.commons.logging(1.0.5.jazz)到Workspace中(从菜单选择File > Import... > Plug-ins and Fragments)。

    (3)在运行配置的Workspace组中勾选org.apache.commons.logging(1.0.5.jazz)。

    然后重新启动运行配置,问题应该解决了。

0
相关文章