在Atlassian JIRA插件中为7.X替换不推荐使用的AbstractEditHandlerDetailsWebAction

韦斯利·史密斯

我正在关注Atlassian的教程-JIRA的自定义消息(邮件)处理程序

我已经倒数第二步撞到了墙:

3)在src / main / java / com / example / plugins / tutorial / jira / mailhandlerdemo目录中创建一个名为EditDemoHandlerDetailsWebAction.java的新文件,并为其提供以下内容:

package com.example.plugins.tutorial.jira.mailhandlerdemo;

import com.atlassian.configurable.ObjectConfigurationException;
import com.atlassian.jira.plugins.mail.webwork.AbstractEditHandlerDetailsWebAction;
import com.atlassian.jira.service.JiraServiceContainer;
import com.atlassian.jira.service.services.file.AbstractMessageHandlingService;
import com.atlassian.jira.service.util.ServiceUtils;
import com.atlassian.jira.util.collect.MapBuilder;
import com.atlassian.plugin.PluginAccessor;

import java.util.Map;

public class EditDemoHandlerDetailsWebAction extends AbstractEditHandlerDetailsWebAction {
    private final IssueKeyValidator issueKeyValidator;

    public EditDemoHandlerDetailsWebAction(PluginAccessor pluginAccessor, IssueKeyValidator issueKeyValidator) {
        super(pluginAccessor);
        this.issueKeyValidator = issueKeyValidator;
    }
    private String issueKey;
    public String getIssueKey() {
        return issueKey;
    }

    public void setIssueKey(String issueKey) {
        this.issueKey = issueKey;
    }

    // this method is called to let us populate our variables (or action state) 
    // with current handler settings managed by associated service (file or mail).
    @Override
    protected void copyServiceSettings(JiraServiceContainer jiraServiceContainer) throws ObjectConfigurationException {
        final String params = jiraServiceContainer.getProperty(AbstractMessageHandlingService.KEY_HANDLER_PARAMS);
        final Map<String, String> parameterMap = ServiceUtils.getParameterMap(params);
        issueKey = parameterMap.get(DemoHandler.KEY_ISSUE_KEY);
    }

    @Override
    protected Map<String, String> getHandlerParams() {
        return MapBuilder.build(DemoHandler.KEY_ISSUE_KEY, issueKey);
    }

    @Override
    protected void doValidation() {
        if (configuration == null) {
            return; // short-circuit in case we lost session, goes directly to doExecute which redirects user
        }
        super.doValidation();
        issueKeyValidator.validateIssue(issueKey, new WebWorkErrorCollector());
    }
}

该类继承自AbstractEditHandlerDetailsWebAction,它使我们能够专注于参数验证。它负责添加,编辑和取消处理程序生命周期本身。

本教程应该支持JIRA 5.0+,包括最新的7.2版本

我正在使用JIRA 7.1.8

我的问题是,Maven无法找到以下项的依赖关系:

import com.atlassian.jira.plugins.mail.webwork.AbstractEditHandlerDetailsWebAction;

经过一番挖掘,我发现JIRA 5.1.8之前的规格中com.atlassian.jira.plugins.mail 存在

但是,在5.2-m03及更高版本的规范中,此文件夹不存在,这就是为什么maven无法找到它的原因。

而且,我找不到任何信息表明这些类已被弃用,也找不到关于我的JIRA版本应替换该代码的建议。

那么,我可以用什么代替com.atlassian.jira.plugins.mail.webwork.AbstractEditHandlerDetailsWebAction;上面的类中似乎已被弃用的东西呢?

斯科特·达德利

无论出于何种原因,JIRA邮件插件的版本号都与JIRA本身的版本号分离。一旦确保引用了正确版本的邮件插件,便可以构建项目。

我能够按以下方式进行构建:

从教程克隆仓库

git clone https://bitbucket.org/atlassian_tutorial/jira-add-email-handler.git

找出正在使用哪个版本的JIRA邮件插件

您可以通过查看JIRA安装目录轻松地完成此操作。在我的JIRA 7.1安装中,邮件插件为v9.0.3:

$ find <PATH_TO_JIRA_INSTALL>/atlassian-jira -name '*jira-mail-plugin*.jar'

<your path here>/atlassian-jira/WEB-INF/atlassian-bundled-plugins/jira-mail-plugin-9.0.3.jar

调整POM以与邮件插件的正确版本相对应

这是我针对pom.xml应用的补丁:

diff --git a/pom.xml b/pom.xml
index f493ef2..a3bbb8f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,7 @@
         <dependency>
             <groupId>com.atlassian.jira</groupId>
             <artifactId>jira-mail-plugin</artifactId>
-            <version>${jira.version}</version>
+            <version>${jira.mail.plugin.version}</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -104,8 +104,9 @@
     </build>

     <properties>
-        <jira.version>6.0.4</jira.version>
-        <amps.version>4.2.0</amps.version>
+        <jira.version>7.1.8</jira.version>
+        <jira.mail.plugin.version>9.0.3</jira.mail.plugin.version> <!-- the version of the mail plugin shipped with your version of JIRA -->
+        <amps.version>5.0.4</amps.version> <!-- Adjust this to the specific version of the plugin SDK you have installed -->
         <plugin.testrunner.version>1.1.1</plugin.testrunner.version>
                <!-- TestKit version 5.x for JIRA 5.x, 6.x for JIRA 6.x -->
                <testkit.version>5.2.26</testkit.version>

解决其他类型问题

在DemoHandler中还有另外一个引用,您必须将其从更改UserApplicationUser

在那之后,它为我建立。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在OS X> = 10.9中不推荐使用CGDisplayIOServicePort,如何替换?

来自分类Dev

在OS X> = 10.9中不推荐使用CGDisplayIOServicePort,如何替换?

来自分类Dev

将 Atlassian Jira 与 SVN 集成

来自分类Dev

(PHP-GoDaddy) 对 Atlassian/Jira 域的 cURL API 请求失败/不返回任何内容

来自分类Dev

Atlassian中的隐藏登录问题

来自分类Dev

Atlassian Hello World JIRA构建错误

来自分类Dev

java.lang.NoClassDefFoundError:(Atlassian JIRA)

来自分类Dev

R与Jira / Atlassian有关的问题

来自分类Dev

在 Atlassian Jira 上生成 Excel/CSV 模板

来自分类Dev

如何从 Atlassian 网站解析 jira 版本

来自分类Dev

切换到从 atlassian jira 创建的 Eclipse 中的分支

来自分类Dev

如何构建Atlassian插件以快速重新加载?

来自分类Dev

Atlassian Bamboo .Net插件依赖项安装

来自分类Dev

Atlassian Stash fork在概述选项卡中不呈现自述文件

来自分类Dev

如何在Atlassian SourceTree中显示git?

来自分类Dev

Atlassian Stash(Git)中自动合并的问题

来自分类Dev

如何在Atlassian Bamboo中设置phpUnit?

来自分类Dev

隐藏使用atlassian sourcetree所做的更改

来自分类Dev

使用Atlassian .NET SDK时出现CommunicationException

来自分类Dev

Express 4中不推荐使用的req.param()的替换

来自分类Dev

在骆驼v2.16.0中替换不推荐使用的beanRef()

来自分类Dev

如何从我的wordpress代码中替换不推荐使用的功能?

来自分类Dev

Gitlab Enterprise和Atlassian Jira集成-SSL证书验证错误

来自分类Dev

面向不同受众的多个版本 - Atlassian / Jira / Confluence

来自分类Dev

插件之间的Atlassian Confluence通信/身份验证

来自分类Dev

在OS X 10.9中不推荐使用'gluErrorString'。为什么?

来自分类Dev

在OS X 10.9中不推荐使用'gluErrorString'。为什么?

来自分类Dev

在Atlassian Stash中的所有文件中搜索文本

来自分类Dev

Atlassian API在API中附加文件时引发错误

Related 相关文章

  1. 1

    在OS X> = 10.9中不推荐使用CGDisplayIOServicePort,如何替换?

  2. 2

    在OS X> = 10.9中不推荐使用CGDisplayIOServicePort,如何替换?

  3. 3

    将 Atlassian Jira 与 SVN 集成

  4. 4

    (PHP-GoDaddy) 对 Atlassian/Jira 域的 cURL API 请求失败/不返回任何内容

  5. 5

    Atlassian中的隐藏登录问题

  6. 6

    Atlassian Hello World JIRA构建错误

  7. 7

    java.lang.NoClassDefFoundError:(Atlassian JIRA)

  8. 8

    R与Jira / Atlassian有关的问题

  9. 9

    在 Atlassian Jira 上生成 Excel/CSV 模板

  10. 10

    如何从 Atlassian 网站解析 jira 版本

  11. 11

    切换到从 atlassian jira 创建的 Eclipse 中的分支

  12. 12

    如何构建Atlassian插件以快速重新加载?

  13. 13

    Atlassian Bamboo .Net插件依赖项安装

  14. 14

    Atlassian Stash fork在概述选项卡中不呈现自述文件

  15. 15

    如何在Atlassian SourceTree中显示git?

  16. 16

    Atlassian Stash(Git)中自动合并的问题

  17. 17

    如何在Atlassian Bamboo中设置phpUnit?

  18. 18

    隐藏使用atlassian sourcetree所做的更改

  19. 19

    使用Atlassian .NET SDK时出现CommunicationException

  20. 20

    Express 4中不推荐使用的req.param()的替换

  21. 21

    在骆驼v2.16.0中替换不推荐使用的beanRef()

  22. 22

    如何从我的wordpress代码中替换不推荐使用的功能?

  23. 23

    Gitlab Enterprise和Atlassian Jira集成-SSL证书验证错误

  24. 24

    面向不同受众的多个版本 - Atlassian / Jira / Confluence

  25. 25

    插件之间的Atlassian Confluence通信/身份验证

  26. 26

    在OS X 10.9中不推荐使用'gluErrorString'。为什么?

  27. 27

    在OS X 10.9中不推荐使用'gluErrorString'。为什么?

  28. 28

    在Atlassian Stash中的所有文件中搜索文本

  29. 29

    Atlassian API在API中附加文件时引发错误

热门标签

归档