2

Does someone know how we can have Starteam send email notifications when a check in occurs? We are using Starteam 2006 R2.

4

3 回答 3

1

Unfortunately StarTeam doesn't offer the ability to execute post-checkin actions. You may be able to use an application like Cruise Control to monitor your repository for changes and then take action upon seeing them.

于 2010-01-17T05:59:26.583 回答
0

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

MicroFocus 现在为这类事情提供了一个通知代理工具:

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

不过,这是您支付的额外费用。

我也一直在思考如何通过上面丹的帖子中给出的建议“自己动手”。是的,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() 方法,可以在此处提供帮助)。

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

于 2013-06-30T03:51:03.257 回答
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 付出代价已经够痛苦了)。在这一点上,我放弃了我的研究,以上都没有实施过。我希望这对某人有用。

于 2011-04-14T21:35:13.713 回答