代码之家  ›  专栏  ›  技术社区  ›  blu

Starteam的签入通知

  •  2
  • blu  · 技术社区  · 14 年前

    有人知道我们如何让Starteam在签入时发送电子邮件通知吗?我们使用的是Starteam 2006 R2。

    3 回复  |  直到 10 年前
        1
  •  1
  •   Doug Porter    14 年前

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

        2
  •  0
  •   Dan Midwood prunge    13 年前

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

    Starteam没有提交挂钩,但它有 Starteam MPX (borland.com)。从那个链接,

    starteammpx是发布/订阅消息传递的框架。starteammpx服务器使用高级缓存和通信技术,既提高了starteam客户机的性能,又扩展了starteam服务器的可伸缩性。

    好的,我们可以订阅事件。看起来很有希望。

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

    你的听众将收到 CheckinEvent 可以审问这些。不幸的是,它似乎是以文件为基础的。我在API中看不到任何表示“提交完成”的内容,只有“文件完成”。您可以发现是否取消了提交。我不知道将文件签入事件组合回完整的签入事件有多容易。

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


    我的经验: 我的公司没有启用这个扩展,要启用它需要升级,也就是说需要更多的钱。所以它没有发生(我认为为Starteam付出足够的代价)。在这一点上,我放弃了我的研究,而上面的任何一个都没有实现过。我希望这对某人有用。

        3
  •  0
  •   Gurce    11 年前

    我也做了一些关于这个主题的家庭作业,所以我会分享我学到的东西。

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

    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相关的项目有 新建项侦听器() (如何处理您所听的事件)和 五、AdditemListener()。 (您要收听的Starteam视图)。

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

    除了itemListener之外,还有viewListener和projectListener。每个接口都提供了不同的事件范围,在SDK文档中提供了更多有关此方面的信息,这里还有一篇不错的文章:

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

    因此,如果您想滚动自己的通知电子邮件,这些MPX事件提供了部分答案(一种倾听这些更改事件的方法)。

    在这之后,您需要关注的其他方面包括:

    • 如何允许用户订阅各种服务器/项目/视图,以决定他们要侦听的内容。

    • 如何通过电子邮件向用户发送他们想要的内容(Starteam的服务器类提供了一个.sendmail()方法,可以在这里提供帮助)。

    一旦所有这些基础都被覆盖了,你就应该有一些东西来完成这个技巧。在接下来的几天里,我会自己做类似的事情,我会尽我所能来分享。

    推荐文章