Слушатели

Слушатели уникальны для JIRA и являются очень мощным способом ее расширения.

JIRA имеет полную подсистему событий, которая запускает события, когда что-либо происходит внутри приложения. Например, событие ISSUE_CREATED запускается всякий раз, когда возникает проблема.

Слушатель - это класс, который реализует один из интерфейсов Слушателя. Затем он вызывается всякий раз, когда события происходят в JIRA. Используя эти события, вы можете выполнить любое действие, которое вы хотите. Например, электронная почта, отправленная JIRA, управляется MailListener.

Слушатели наиболее полезны, когда вы хотите управлять или влиять на внешние системы из событий, происходящих в JIRA.

Интерфейсы слушателя

JIRA имеет следующих конкретных слушателей (которые расширяют базовый интерфейс JiraListener):

com.atlassian.jira.event.JiraListener

Базовый интерфейс, который расширяется всеми другими интерфейсами слушателя JIRA. Обнаруживает свойства основного слушателя, такие как уникальность, описание, параметры и т. д.

API doc

com.atlassian.jira.event.issue.IssueEventListener

Основной интерфейс слушателя в JIRA, используется всякий раз, когда что-либо случается с задачей.

API doc

com.atlassian.jira.event.user.UserEventListener

Этот слушатель вызывается всякий раз, когда что-либо происходит с пользователем в JIRA.

API doc

 

Примеры слушателей

Приведенные примеры могут свободно использоваться и модифицироваться для использования в вашей собственной среде. Источник всех примеров доступен и должен дать вам хороший обзор того, насколько просто писать собственных слушателей. Оба примера прослушивателя включены в JIRA 2.1, и оба реализуют UserEventListener и IssueEventListener.

  • DebugListener (source) —  это очень простой слушатель, который печатает события и их содержимое в System.out всякий раз, когда они получены. Чтобы протестировать этот прослушиватель, добавьте слушателя с классом com.atlassian.jira.event.listeners.DebugListener.
  • MailListener (источник). Этот слушатель — это то, как почтовые уведомления в настоящее время отправляются из JIRA, и хороший пример более сложного слушателя. Он в основном прослушивает события и превращает их в уведомления по электронной почте с использованием шаблонов Velocity для создания почтовых тел.

Этот слушатель обычно всегда включен в JIRA - см. Уведомления по электронной почте для получения более подробной информации. Если вы хотите написать более сложные или более конкретные уведомления, вы можете отключить внутренний MailListener и добавить свой собственный.

Другими примерами полезных задач, которые могут быть выполнены с помощью слушателей, являются:

  • Отправлять SMS или IM-уведомления (Send SMS or IM notifications) — Слушатель может легко отправлять уведомления для различных событий через SMS или мессенджер (например, ICQ или AIM) - или где-либо, где у вас есть библиотека Java для отправки сообщений.
  • Групповые уведомления (Send SMS or IM notifications) — Слушатель может уведомлять определенные группы об изменениях в зависимости от содержания задачи. Например, любая задача, содержащая «окна» в среде, может уведомить вашу группу «windows-developers».

 

Регистрация слушателя

Для пользовательских классов слушателей убедитесь, что ваш класс слушателя находится в пути к классам, где JIRA может его видеть - лучшими местами обычно являются <jira-application-dir> / WEB-INF / classes или <jira-application- dir> / WEB-INF / lib внутри вашего каталога установки JIRA (в виде файлов JAR).

Чтобы зарегистрировать слушателя, выполните следующие шаги:

  1. Войдите в систему как пользователь с глобальным разрешением «Системные администраторы JIRA».
  2. Выберите шестеренка> «Система» (System). Выберите «Дополнительно» (Advanced)> «Слушатели» (Listeners), чтобы открыть страницу «Слушатели».

       Комбинация клавиш: 'g' + 'g' + набор 'lis'

  1. В форме «Добавить слушателя» (Add Listener) в нижней части страницы заполните следующие поля:
  • «Имя» (Name) - соответствующее описательное имя для слушателя.
  • «Класс» (Class) - полное имя класса вашего слушателя.

Чтобы использовать один из встроенных классов слушателей JIRA, сначала нажмите ссылку «Встроенные слушатели» (Built-in Listeners), чтобы развернуть список классов-слушателей, а затем щелкните имя определенного класса в списке. Полноценное имя класса встроенного слушателя будет добавлено в поле «Класс».

  1. Нажмите кнопку «Добавить» (Add), и слушатель будет добавлен в список вышеперечисленных слушателей.

Редактирование свойств слушателя

Если ваш слушатель принимает параметры или свойства, вы можете отредактировать их, нажав ссылку «Изменить» (Edit), связанную с вашим слушателем (на странице «Слушатели» в области администрирования JIRA).

При определении собственного слушателя существует метод getAcceptedParams для перегрузки для определения имен параметров, которые передаются как массив объектов String. Метод init задает карту с настроенными значениями (JavaDoc устарел). Класс com.atlassian.jira.event.listeners.DebugParamListener - хороший пример этого с двумя параметрами.

Удаление слушателя

Чтобы удалить слушателя, нажмите ссылку «Удалить» (Delete), связанную с этим слушателем (на странице «Слушатели» (Listeners) в области администрирования JIRA).

Пользовательские события

С возможностью добавления пользовательских событий в JIRA, слушатель должен быть обновлен, чтобы иметь дело с событием, если это необходимо. Это возможно, предоставляя реализацию для метода customEvent (событие IssueEvent) в Listener. Например, реализация MailListener передает пользовательское событие для обработки уведомлений. Журнал DebugListener регистрирует, что пользовательское событие было запущено.

Смотрите также

  • Учебное пособие по плагинам - Написание слушателей событий с библиотекой событий atlassian - это описание того, как писать слушатели с использованием библиотеки Atlassian Events (см. JIRA-специфические атласские события), а не события JIRA Listener, описанные выше.