10 Stimmen

Atlassian JIRA Plugin Entwicklung: Wie man Variablen für Velocity-Vorlagen verfügbar macht

FAIR WARNUNG: Diese Frage wird ziemlich schwer zu beantworten sein, es sei denn, Sie haben Erfahrung mit JIRA und haben Zugang zu den Quellen (Unternehmensnutzer).

Ich grüße alle,

Ich schreibe gerade ein Plugin, das AbstractIssueSelectAction erweitert. Ich habe bemerkt, dass ${issue.summary} usw. sind alle in meiner Velocity-Vorlage verfügbar, aber es gibt noch andere Dinge, die ich offenlegen möchte. Ich kann nicht herausfinden, wie ich der Velocity-Parameter-Map andere Dinge hinzufügen kann. Ich habe sogar einen Remote-Debugger verwendet, um zu versuchen, durch den Stapel zu gehen und herauszufinden, was vor sich geht - aber es war ziemlich unklar für mich, sowohl aufgrund eines tiefen Stapels als auch aufgrund der Tatsache, dass ich nicht in der Lage war, den gesamten Quellcode korrekt anzuhängen (und viel von dem Webwork-Zeug scheint verschleiert zu sein).

Ich habe diese Frage auch in den Atlassian-Supportforen gestellt, ich stelle sie hier nur ein, um mehr Aufmerksamkeit auf das Problem zu lenken.

Beispiel für Aktionscode:

public class MyOperation extends AbstractIssueSelectAction {

    // ...
    private final Issue myIssue;

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

Beispiel einer Plugin-Konfiguration:

  <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 Geschwindigkeitsvorlage, ${issue.summary} korrekt in die Zusammenfassung der aktuellen Ausgabe aufgelöst, aber wenn myIssue zum Beispiel eine andere Ausgabe war, möchte ich in der Lage sein ${myIssue.summary} .

Danke! -Carl

8voto

mdoar Punkte 6548

Wie wäre es, wenn Sie $action.mymethod() verwenden, um die Informationen zu erhalten, wobei mymethod eine Methode ist, die Sie in der Action-Klasse "MyOperation" definieren? Die Geschwindigkeitsparameter sind schwer zu ermitteln, wie sie gefüllt werden.

~Matt

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X