JIRA插件开发 - 显示警报/通知

时间:2013-08-26 05:24:05

标签: jira jira-plugin

我目前正在开发一个类型为Workflow post函数的JIRA插件。

这意味着我没有使用vm文件(速度模板)。

我有一个扩展AbstractJiraFunctionProvider的java类。它基本上使用SOAP来调用Web服务(异步)来更新远程系统的JIRA问题。

我已经完成所有工作并配置为在完成某些JIRA状态转换时被触发。 我想要做的是显示一条消息,通知用户是否已成功调用Web服务。 如何显示包含某些文本的弹出消息。 我尝试JOptionPane.showMessageDialog(null,"Text","Text 2")到我的插件类 但是这似乎没有从扩展AbstractJiraFunctionProvider的插件java类做任何事情。 我有什么想法或想法可以尝试吗?

1 个答案:

答案 0 :(得分:1)

我有a similar question但到目前为止没有得到满意的答案。我的进一步研究使我走向了一个不同的方向(将所有内容记录到日志文件中并让jira管理员处理它)。但是,您可以尝试使用另一个工作流程插件模块,您可以将其用于此目的:a validator module。它的代码在用户提交转换对话框后立即触发,但在转换被接受之前(它用于验证对话框中的所有输入参数是否对当前转换有效)。因此,您可以采用一种方法来使用验证器检查服务是否已启动,如果不是则抛出异常。当然,这样一来,如果远程服务不可用,就会阻止JIRA中的正常工作流程。

另一种解决方案(您可能会发现对您的案例更方便)是通过添加网络模块来扩展JIRA View操作。首先,在atlassian-plugin.xml文件中添加一个新的webwork模块:

<webwork1 key="view-issue" name="View issue with warnings" class="java.lang.Object">
    <description>View issue with warnings</description>
    <actions>
        <action name="com.my.jira.plugin.blah.blah.ExtendedViewIssue" alias="ViewIssue">
            <view name="success">/secure/views/issue/extended-viewissue.jsp</view>
            <view name="issuenotfound">/secure/views/issuenotfound.jsp</view>
            <view name="permissionviolation">/secure/views/permissionviolation.jsp</view>
            <command name="moveIssueLink" alias="MoveIssueLink">
                <view name="error">/secure/views/issue/viewissue.jsp</view>
            </command>
        </action>
    </actions>
</webwork1>

然后,使用您的ExtendedViewIssue覆盖类ViewIssue(参见上文)并添加一个公共方法来检查您的服务是否可用,并且将从显示该问题的JSP页面调用该方法:

public boolean isServiceAvailable() {
    // TODO your code that checks if the service is available
    return false;
}

编辑文件 extended-viewissue.jsp 并添加一个div,如果条件满足,将包含您的警告。

<ww:if test="/isServiceAvailable() == false">
    <div class="aui-message warning">
        <span class="aui-icon icon-warning">The service is not available!</span>
    </div>
</ww:if>

如果做得恰当,它应该是这样的: screenshot

请记住,每次JIRA升级后,您都必须再次编辑JSP文件,因为您在此处引入的更改可能会在升级过程中丢失。