2009-10-02 7 views
9

OSTRZEŻENIE TARGOWE: odpowiedź na to pytanie będzie trudna, chyba że masz doświadczenie z JIRA i masz dostęp do ich źródła (użytkownicy korporacyjni).Rozwój Atlassian JIRA: Jak udostępnić zmienne szablonom prędkości?

Pozdrowienia wszystkim

Piszę plugin, który rozciąga AbstractIssueSelectAction. Zauważyłem, że ${issue.summary}, itp. Są dostępne z mojego szablonu prędkości, jednak są inne rzeczy, które chciałbym ujawnić. Nie mogę wymyślić, jak dodać inne rzeczy do mapy parametrów prędkości. Użyłem nawet zdalnego debuggera, aby spróbować przejść przez stos i dowiedzieć się, co się dzieje - ale było to dla mnie dość niejasne ze względu na głęboki stos i fakt, że nie byłem w stanie poprawnie dołączyć wszystkich źródeł (i wiele elementów sieciowych wydaje się być zaciemnianych).

Zamieszczam to pytanie również na forach wsparcia Atlassian. Po prostu zamieszczam tutaj informacje, aby uzyskać więcej informacji na temat problemu.

Przykład kodu działanie:

public class MyOperation extends AbstractIssueSelectAction { 

    // ... 
    private final Issue myIssue; 

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

Przykład wtyczki 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> 

W szablonie prędkość, ${issue.summary} poprawnie postanawia podsumowanie aktualnego wydania, ale jeśli myIssue był jakiś inny problem, na przykład , Chcę móc używać ${myIssue.summary}.

Dzięki! -Carl

+0

Uwaga: to pytanie było o Jira 3.x 4.x prawdopodobnie nie ma już zastosowania do Jira 5.X +, nie jest już wspólne rozszerzenie klas abstrakcyjnych jak AbstractIssueSelectAction – cmyers

Odpowiedz

7

Jak korzystać z $ action.mymethod(), aby uzyskać informacje, gdzie mymethod to metoda zdefiniowana w klasie Action "MyOperation"? Parametry prędkości są fiddly, aby dowiedzieć się, jak są one zaludnione.

~ Matt

+2

Matt Pomyślałem, że masz problem. Żenująco, moje metody pobierające zwracały wartość null, ponieważ nie zostały zainicjowane, moja funkcja init() była uruchamiana później. Niestety, JIRA połknęła NPE jak ta dziwka, więc mogłam powiedzieć tylko po wypróbowaniu twojej sugestii - wywołanie $ {action.myMethod()} odsłoniło NPE. Dzięki Matt! – cmyers

Powiązane problemy