2009-10-02 4 views
9

FAIR WARNING: Diese Frage wird ziemlich schwer zu beantworten sein, es sei denn, Sie haben Erfahrung mit JIRA und haben Zugriff auf ihre Quelle (Enterprise-Benutzer).Atlassian JIRA Plugin-Entwicklung: Wie man Variablen Geschwindigkeitsvorlagen zur Verfügung stellt

Grüße alle,

ich ein Plugin schreibe die AbstractIssueSelectAction erstreckt. Ich habe festgestellt, dass ${issue.summary}, etc. alle innerhalb meiner Geschwindigkeit Vorlage verfügbar sind, aber es gibt andere Dinge, die ich offen legen möchte. Ich kann nicht herausfinden, wie man der Geschwindigkeitsparameterkarte andere Dinge hinzufügt. Ich benutzte sogar einen Remote-Debugger, um zu versuchen, durch den Stack zu gehen und herauszufinden, was vor sich geht - aber es war mir sowohl aufgrund eines tiefen Stacks als auch der Tatsache, dass ich nicht in der Lage war, die gesamte Quelle korrekt anzuhängen, ziemlich unklar (und viele der Webwork-Sachen scheinen verschleiert zu werden).

Ich habe diese Frage auch in den Atlassian-Supportforen gepostet, ich schreibe nur hier, um mehr über das Problem zu erfahren.

Beispiel Aktionscode:

public class MyOperation extends AbstractIssueSelectAction { 

    // ... 
    private final Issue myIssue; 

    public String doCollect() throws Exception { 
     log.debug("Running doCollect()"); 
     return "collectinfo"; 
    } 
} 

Beispiel Plugin config:

<webwork1 key="unique_key" name="My Name" class="java.lang.Object"> 
    <actions> 
    <action name="com.mycompany.jira.extensions.MyOperation" alias="MyOperation"> 
    <view name="collectinfo">/templates/myoperation-collectinfo.vm</view> 
    <view name="success">/templates/myoperation-success.vm</view> 
    </action> 
    </actions> 
    </webwork1> 

In der Geschwindigkeit schablonen ${issue.summary} löst richtig auf die Zusammenfassung der aktuellen Ausgabe, aber wenn MyIssue war ein anderes Problem, zum Beispiel Ich möchte ${myIssue.summary} verwenden können.

Danke! -Carl

+0

Hinweis: Diese Frage war etwa jira 3.X-4.X und wahrscheinlich nicht mehr auf jira 5.x +, ist es nicht mehr üblich Abstrakte Klassen wie AbstractIssueSelectAction – cmyers

Antwort

7

Wie wäre es mit $ action.mymethod(), um an die Informationen zu gelangen, wo mymethode eine Methode ist, die Sie in der Action-Klasse "MyOperation" definieren? Die Geschwindigkeitsparameter sind fummelig, um herauszufinden, wie sie bevölkert werden.

~ Matt

+2

Matt zu erweitern, Ich dachte mir das Problem aus. Peinlicherweise gaben meine Getter null zurück, weil sie nicht initialisiert wurden, meine Funktion init() wurde erst später ausgeführt. Unglücklicherweise hat JIRA die NPEs wie die Hure geschluckt, also konnte ich es nur sagen, nachdem ich Ihren Vorschlag ausprobiert hatte - durch Aufruf von $ {action.myMethod()} wurden die NPEs aufgedeckt. Danke Matt! – cmyers

Verwandte Themen