1

我目前正在开发一个类型为 Workflow 发布功能的 JIRA 插件。

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

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

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

4

1 回答 1

1

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

另一种解决方案(您可能会发现对您的情况更方便)是通过添加 webwork 模块来扩展 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,如果满足条件,则该 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>

如果操作正确,它应该看起来像这样: 截屏

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

于 2013-09-17T08:36:23.723 回答