与StarTeam签到通知

时间:2010-01-13 21:56:48

标签: starteam

有人知道我们如何在办理登机手续时让Starteam发送电子邮件通知吗?我们正在使用Starteam 2006 R2。

3 个答案:

答案 0 :(得分:1)

不幸的是,StarTeam不提供执行签入后操作的功能。您可以使用Cruise Control等应用程序监视存储库中的更改,然后在看到它们时采取措施。

答案 1 :(得分:0)

几个月前我有类似的需求,这就是我发现的:

Starteam没有提交挂钩,但确实有Starteam MPX(borland.com)。从该链接,

  

StarTeamMPX是发布/订阅消息传递的框架。 StarTeamMPX Server使用先进的缓存和通信技术,既可以提高StarTeam客户端的性能,又可以扩展StarTeam Server的可扩展性。

好的,我们可以订阅活动。它看起来很有希望。

Starteam有一个Java API(borland.com),使用此API创建一个应用程序,并使用您自己的CheckinListener接口的电子邮件实现。然后,应用程序必须连接到Starteam,找到您感兴趣的任何视图并注册侦听器。然后等一下。

您的听众将收到CheckinEvent并可以查询这些内容。不幸的是,它似乎是逐个文件。 API中没有任何内容可以说“提交已完成”,只有“文件已完成”。您可以发现提交是否已取消。我不知道将文件签入事件组合回一个完整的签入事件是多么容易。

* StarteamMPX是Starteam的扩展(付费),可用于2006 R2。所有这些显然只有在启用时才适用。


我的经历: 我的公司没有启用该扩展,并且启用它需要升级,即更多的钱。所以它没有发生(我认为开始支付Starteam是痛苦的)。在这一点上,我放弃了我的研究,以上都没有实现过。我希望这对某人有用。

答案 2 :(得分:0)

我也在做这个话题的一些功课,所以将分享我学到的东西。

MicroFocus现在为此类事件提供了通知代理工具:

http://www.youtube.com/watch?v=QTKAT-ufkIs

这是你付出的额外费用。

我一直在思考如何通过上面Dan的帖子给出的建议“滚动你自己”。是的,MPX似乎确实是要走的路,虽然在研究了CheckinListener之后,这不是你想要的课程。为了澄清,CheckinListener由执行签入的客户端使用,以便它可以监视签入的进度(可能显示进度条,这类事情)。

以下是一些听取MPX事件的示例代码:

        Server s = new Server(strAddress, nPort);
    s.connect();
    s.enableMPX();  // must do this for MPX support
    s.logOn(strUsername, strPassword);

    Project p = s.findProject("mylovelyproject");

    View v = p.s.findView("mylovelyview");

    ItemListener listener = new ItemListener()
    {

        public void itemAdded(ItemEvent e)
        {
            System.out.println("itemAdd() - " + e.getNewItem().getComment());
        }

        public void itemMoved(ItemEvent e)
        {
            System.out.println("itemMoved() - from: " + e.getOldItem().getParentFolderHierarchy() + ", to: " + e.getNewItem().getParentFolderHierarchy());
        }

        public void itemChanged(ItemEvent e)
        {
            System.out.println("itemChanged() - " + e.getNewItem().getComment());
            System.out.println("  - from: v" + e.getOldItem().getDotNotation().toString());
            System.out.println("  - to: v" + e.getNewItem().getDotNotation().toString());
            User locker = e.getNewItem().getLocker();
            if (locker != null)
                System.out.println("  - locked by:" + locker.getDisplayName());
            else
                System.out.println("  - not locked");
        }

        public void itemRemoved(ItemEvent e)
        {
            System.out.println("itemRemoved() - " + e.toString());
        }
    };

    v.addItemListener(listener, s.getTypes().FILE);

要关注的与MPX相关的项目是 new ItemListener()(如何处理您收听的事件)和 v.addItemListener()(其中你想听的starteam视图)。

当视图中的文件被添加/修改/移动/删除时,示例代码会向控制台吐出各种打印输出。

除了ItemListener之外,您还拥有ViewListener和ProjectListener。每个界面提供不同的事件范围来监听,在sdk文档中有关于此的更多信息,这里也是一篇不错的文章:

http://conferences.embarcadero.com/article/32231#MPXEventHandling

因此,如果您想要自己发送通知电子邮件,这些MPX事件会提供您的部分答案(一种倾听这些变更事件的方式)。

在此之后您需要考虑的其他方面是:

  • 如何允许用户订阅各种服务器/项目/视图,以决定他们想听什么。

  • 如何向用户发送电子邮件给他们想要的东西(StarTeam的Server类提供了一个.SendMail()方法,这可以在这里提供帮助。)

一旦覆盖了所有这些基础,你应该有一些可以解决问题的方法。我会在接下来的几天里自己做这样的事情,我会尽我所能分享。