首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

公布WebQQ Client API库1.0.0正式版

2013-01-26 
发布WebQQ Client API库1.0.0正式版最近在研发一个JIRA的插件,具体场景如下:当测试人员提交一个问题时,需

发布WebQQ Client API库1.0.0正式版

最近在研发一个JIRA的插件,具体场景如下:

当测试人员提交一个问题时,需要通过QQ通知到开发人员,并且当问题属于SIT测试BUG时,需要自动的打开SVN上对应主干源代码的写权限。当开发人员修复并关闭问题时,需要自动的关闭SVN上对应主干源代码的写权限。

基本实现思路如下:

开发一个JIRA插件,基于ActiveMQ客户端,并监听JIRA的内部事件,如果是触发提交问题的事件,就将该事件发布到MQ主题中;开发一个服务器应用程序,订阅MQ上由JIRA插件发布的事件消息,并进行对应的处理,例如发送QQ消息或是修改SVN权限等。

实际上实现JIRA插件这一端的程序并不困难,关键是查阅JIRA SDK相关手册,基本上没什么难度,下一篇文章,我们就来看看如何实现这个JIRA插件。这篇文章主要是关注如何实现与QQ的通讯,着实花费了不少心思。通过Google,发现目前网上大部分是基于WebQQ实现的,然后下载了一个什么iQQ的实现代码,没什么设计思想,基本上就是代码的堆叠,不过可读性还算好,基本能看懂,于是乎就有了想搞一个WebQQ客户端API库的冲动,方便今后的使用和扩展。经过几天的整理和重构终于把WebQQ核心部分抽出来并形成一个API库,以下为API接口定义:

/** * 接收QQ消息的监听器实现 * @author Administrator * @version $Id: ReceiveFriendMessageListener.java, v 0.1 2013-1-24 下午3:28:15 Administrator Exp $ */public class ReceiveMessageListener implements WebQQEventListener, InitializingBean, DisposableBean {    /* logger */    private static final Logger LOGGER = Logger.getLogger(ReceiveMessageListener.class);    /* 事件发布器 */    private WebQQEventPublisher eventPublisher;    /**     * 构造函数     */    public ReceiveMessageListener() {    }    /**      * @see org.springframework.beans.factory.DisposableBean#destroy()     */    @Override    public void destroy() throws Exception {        eventPublisher.unregister(this); //注销    }    /**      * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()     */    @Override    public void afterPropertiesSet() throws Exception {        eventPublisher.register(this); //注册监听器    }    /**      * @see org.storevm.im.core.event.WebQQEventListener#onWebQQEvent(org.storevm.im.core.event.WebQQEvent)     */    @Override    public void onWebQQEvent(WebQQEvent event) {        LogUtils.info(LOGGER, "接收到QQ事件, event.code={0}, body={1}", event.getEventCode(),            event.getBody());    }    /**     * Setter method for property <tt>eventPublisher</tt>.     *      * @param eventPublisher value to be assigned to property eventPublisher     */    public void setEventPublisher(WebQQEventPublisher eventPublisher) {        this.eventPublisher = eventPublisher;    }}
以上代码的关键点是注册监听器和onWebQQEvent方法的实现。你也可以注册多个监听器,用于监听多个事件。更多的单元测试请下载源代码查看。

以下提供SVN源代码地址:

http://svn.storevm.org/svn/webqqclient/trunk

用户名和密码均为:reader

项目使用Maven进行管理,关于maven的使用请自行参考网上其他文章。最后希望对此有兴趣的同学可以相互交流经验技术。

热点排行