0

Atlassian のチュートリアル - カスタム メッセージ (メール) ハンドラー for JIRAに従っています。

最後から 2 番目のステップでレンガの壁にぶつかりました。

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 を継承しているため、パラメーターの検証に専念できます。ハンドラーの追加、編集、およびキャンセルのライフサイクル自体を処理します。

このチュートリアルは、7.2 までの最新バージョンを含む JIRA 5.0+ をサポートすることになっています。

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;では、上記のクラスで廃止されたように見えるものの代わりに何を使用できますか?

4

1 に答える 1

1

何らかの理由で、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 には、 から に変更する必要がある参照がもう 1 つありUserますApplicationUser

その後、それは私のために構築されます。

于 2016-09-28T17:17:26.353 に答える