页面树结构
Skip to end of metadata
Go to start of metadata

监听器是 JIRA 独有的,并且是一种非常强大的扩展方式。

JIRA 有一个完整的事件子系统,每当应用程序内部发生任何事情时都会触发事件。例如,ISSUE_CREATED每当创建问题时都会触发一个事件。

侦听器是一个实现侦听器接口之一的类。然后每当 JIRA 中发生事件时调用它。使用这些事件,您可以执行您想要的任何操作。例如,JIRA 发送的电子邮件是由MailListener驱动的。

当您想从 JIRA 中发生的事件驱动或影响外部系统时,侦听器最有用。

在本页面:



(警告) 此页面上的信息不适用于JIRA OnDemand


侦听器接口

JIRA 具有以下具体的侦听器(扩展了基本的 JiraListener 接口):

com.atlassian.jira.event。吉拉监听器

所有其他 JIRA 侦听器接口扩展的基本接口。涵盖核心侦听器属性,如唯一性、描述、参数等。
API 文档

com.atlassian.jira.event.issue。问题事件监听器

JIRA 中的主要侦听器接口,在发生任何问题时使用。
API文档

com.atlassian.jira.event.user。用户事件监听器

每当 JIRA 中的用户发生任何事情时,都会调用此侦听器。
API文档


示例监听器

提供的示例可以自由使用和修改以在您自己的环境中使用。所有示例的来源都是可用的,并且应该让您很好地了解编写自己的侦听器是多么简单。这两个示例侦听器都包含在 JIRA 2.1 中,并且都实现了UserEventListenerIssueEventListener.

  • DebugListener ( source ) — 这是一个非常简单的监听器,它在收到事件时将事件及其内容打印到 System.out。要测试此侦听器,请添加一个带有 class 的侦听器com.atlassian.jira.event.listeners.DebugListener
  • MailListener ( source ) — 这个监听器是当前从 JIRA 内部发送邮件通知的方式,也是更复杂监听器的一个很好的例子。它基本上监听事件,并使用 Velocity 模板将它们转换为电子邮件通知以生成邮件正文。
    此侦听器通常在 JIRA 中始终处于打开状态——有关更多详细信息,请参阅电子邮件通知。如果您想编写更复杂或更具体的通知,您可以禁用内部 MailListener 并添加您自己的。

可以通过侦听器完成的有用任务的其他示例包括:

  • 发送 SMS 或 IM 通知— 侦听器可以通过 SMS 或即时消息(例如 ICQ 或 AIM)轻松发送各种事件的通知 — 或任何有 Java 库来发送消息的地方。
  • 组通知——侦听器可以通知某些组的问题更改,具体取决于问题的内容。例如,环境中包含“windows”的任何问题都可以通知您的“windows-developers”组。

注册监听器

(信息)对于自定义编写的侦听器类,请确保您的侦听器类位于 JIRA 可以看到的类路径中 - 最佳位置通常是JIRA 安装目录<jira-application-dir>/WEB-INF/classes中的子目录或<jira-application-dir>/WEB-INF/lib子目录(作为 JAR 文件)。

注册一个监听器:

  1. 以具有“JIRA 系统管理员” 全局权限的用户身份登录。
  2. 选择“管理”>“系统”>“高级”>“侦听器”(选项卡)以打开“侦听器”页面。
    (滴答) 键盘快捷键'g' + 'g' +输入'lis'
  3. 在页面底部的“添加侦听器”表单中,填写以下字段:
    • 'Name' - 一个适当描述监听器的名字。
    • 'Class' — 监听器的完全限定的类名。

      (信息)要使用 JIRA 的内置侦听器类之一,首先单击“内置侦听器”链接以展开侦听器类列表,然后单击列表中特定类的名称。内置侦听器的完全限定类名将添加到“类”字段。
  4. 单击“添加”按钮,监听器现在将添加到上面的监听器列表中。

编辑侦听器属性

如果您的侦听器接受参数或属性,您可以通过单击与您的侦听器关联的“编辑”链接(在 JIRA 管理区域的“侦听器”页面上)来编辑它们。

在定义自己的 Listener 时,有一个方法getAcceptedParams可以重载定义参数名称,作为 String 对象数组传递。该DebugParamListener课程就是这样做的一个例子。

删除监听器

要删除侦听器,请单击与该侦听器关联的“删除”链接(在 JIRA 管理区域的“侦听器”页面上)。

自定义事件

通过向 JIRA添加自定义事件的能力,必须更新侦听器以适当地处理事件。这可以通过customEvent(IssueEvent event)在侦听器中提供方法的实现来实现。例如,MailListener 实现将自定义事件传递给通知处理。DebugListener 记录自定义事件已被触发。

也可以看看


  • 无标签