我正在关注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;
经过大量挖掘,我发现它com.atlassian.jira.plugins.mail
存在于高达 JIRA 5.1.8 的规范中
但是,在 5.2-m03 以后的规范中,此文件夹不存在,这就是 maven 找不到它的原因。
此外,我找不到任何说明这些类已被弃用的信息,也找不到任何关于我应该为我的 JIRA 版本替换此代码的建议。
那么,我可以使用什么来代替com.atlassian.jira.plugins.mail.webwork.AbstractEditHandlerDetailsWebAction;
上述课程中看似已弃用的内容?