リスナー

他のツールとの連携

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

リスナーはJIRAで固有であり、拡張するのにとても強力な方法です。

JIRA has a complete event subsystem that fires events whenever anything happens inside the application. For example, an ISSUE_CREATED event is fired whenever an issue is created.

リスナーは、リスナー インタフェースのいずれかを実装するクラスです。JIRA でイベントが発生するたびに、リスナーが呼び出されます。これらのイベントを使用して、希望する任意のアクションを実行できます。たとえば、JIRA によって送信された電子メールは MailListener  によって駆動されます。

リスナーは、JIRA内で発生するイベントから外部システムに影響を与えたいときに最も便利です。

For all of the following procedures, you must be logged in as a user with the JIRA System Administrators global permission.

リスナー インタフェース

JIRA には次のような(基本の JiraListener を拡張した)具体的なリスナーがあります。

com.atlassian.jira.event.JiraListener

すべての JIRA リスナー インタフェースが拡張している基本のインタフェース。一意性、説明、パラメータなどの主要なリスナー プロパティをカバーしています。
API doc

com.atlassian.jira.event.issue.IssueEventListener

課題でイベントが発生するたびに使用される、Jira のメイン リスナー。
API ドキュメント

com.atlassian.jira.event.user.UserEventListener

このリスナーは JIRA 内でユーザーに対して何かが起こるたびに呼びだされます。
API doc

リスナー例

The examples provided may be freely used and modified for use in your own environment. The source of all examples is available and should give you good overview of how simple it is to write your own listeners. Both example listeners are included with JIRA 2.1, and both implement UserEventListener and IssueEventListener.

  • DebugListener - これは、イベントやその内容を受信したら System.out に出力する、非常にシンプルなリスナーです。このリスナーをテストするには、com.atlassian.jira.event.listeners.DebugListener クラスのリスナーを追加します。
  • MailListener - このリスナーは、現在の JIRA 内からのメール通知状況を知らせるもので、より複雑なリスナーを示すよい例です。このリスナーは基本的にイベントをリッスンし、Velocity テンプレートを使用してイベントをメール通知に変換し、メール本文を生成します。
    このリスナーは、通常、JIRA で常にオンになっています - 詳細については、メール通知 を参照してください。複雑な通知や特定の通知を作成する場合は、内部 MailListener を無効にし、自分が作成したリスナーを追加します。

リスナーで実現できるその他の便利なタスクの例:

  • SMS または IM 通知を送信する — リスナーは SMS または インスタント メッセンジャー(例、ICQ または AIM)、メッセージを送信する Java ライブラリを介して様々なイベントの通知を容易に送ることができます。
  • グループ通知 — リスナーは課題の内容によって、信頼できるグループに課題の変更を通知することができます。例えば、環境に "windows" が含まれている課題は "windows-開発者" グループに通知することができます。

リスナーの登録

(info) For custom-written listener classes, make sure your listener class is in the classpath where JIRA can see it — the best locations are usually the <jira-application-dir>/WEB-INF/classes or <jira-application-dir>/WEB-INF/lib subdirectories of your JIRA installation directory (as JAR files).

  1. > [システム] の順に選択します。 
  2. 詳細 > リスナー を選択し、リスナー ページを開きます。
  3. ページの下部にある 「リスナーの追加」 フォームで、次のフィールドの入力を完了します。
    • 名前 — リスナーを適切に説明する名前
    • 'Class' — the fully-qualified class name of your listener.

      (info) To use one of JIRA's built-in listener classes, first click the 'Built-in Listeners' link to expand the list of listener classes and then click the name of the specific class in the list. The fully-qualified class name of the built-in listener will be added to the 'Class' field.
  4. 追加ボタンをクリックすると、リスナーが上部のリスナー一覧に追加されます。

リスナー プロパティの編集

リスナーがパラメータまたはプロパティを受け入れる場合、JIRA の管理エリアのリスナー ページにある、対象のリスナーに関連する編集リンクをクリックすることで変更することができます。

独自のリスナーを定義する場合、String オブジェクトの配列として渡されるパラメータ名の定義をオーバーロードするメソッド getAcceptedParams があります。init メソッドは、設定値を含む Map を受け取ります (JavaDoc は現在は使用されていません)。com.atlassian.jira.event.listeners.DebugParamListener  クラスは 2 つのパラメータでのこれの実行例です。

リスナーの削除

リスナーを削除するには、JIRA の管理エリアのリスナー ページにある、対象のリスナーに関連する削除リンクをクリックします。

カスタム イベント

With the ability to add custom events to JIRA, the listener must be updated to deal with the event as appropriate. This is possible by providing an implementation for the method customEvent(IssueEvent event) in the listener. For example, the MailListener implementation passes the custom event on for notification processing. The DebugListener logs that the custom event has been fired.

参考資料

最終更新日: 2019 年 10 月 3 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.