2009-10-02 9 views
9

ADVERTENCIA JUSTA: esta pregunta será bastante difícil de responder a menos que tenga experiencia con JIRA y tenga acceso a su fuente (usuarios empresariales).Atlassian JIRA Plugin Development: cómo hacer que las variables estén disponibles para las plantillas de velocidad

Saludos a todos,

Estoy escribiendo un plugin que se extiende AbstractIssueSelectAction. Me di cuenta de que ${issue.summary}, etc. están disponibles desde mi plantilla de velocidad, sin embargo, hay otras cosas que deseo exponer. No puedo encontrar la manera de agregar otras cosas al mapa de parámetros de velocidad. Incluso utilicé un depurador remoto para tratar de pasar por la pila y descubrir qué está pasando, pero no estaba muy claro para mí, debido a una gran acumulación de datos y al hecho de que no podía adjuntar correctamente toda la fuente. (y muchas de las cosas del webwork parecen ofuscadas).

He publicado esta pregunta en los foros de soporte de Atlassian también, estoy haciendo una publicación cruzada aquí para tener más en cuenta el problema.

Ejemplo código de acción:

public class MyOperation extends AbstractIssueSelectAction { 

    // ... 
    private final Issue myIssue; 

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

plugin de ejemplo de configuración:

<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> 

En la plantilla de velocidad, ${issue.summary} resuelve correctamente en el resumen de la edición actual, pero si myIssue era alguna otra cuestión, por ejemplo, , Quiero poder usar ${myIssue.summary}.

Gracias! -Carl

+0

Nota: Esta pregunta fue sobre jira 3.X-4.X y probablemente ya no se aplica a 5.X jira +, ya no es común a extender las clases abstractas como AbstractIssueSelectAction – cmyers

Respuesta

7

¿Qué le parece usar $ action.mymethod() para obtener la información, donde mymethod es un método que define en la clase de acción "MiOperación"? Los parámetros de velocidad son complicados para averiguar cómo se llenan.

~ Matt

+2

Matt, Pensé en el problema. De manera vergonzosa, mis getters regresaban nulos porque no se inicializaban, mi función init() solo se ejecutaba más tarde. Lamentablemente, JIRA se tragó los NPE como la puta que es, así que solo pude decirlo después de probar tu sugerencia: llamar a $ {action.myMethod()} expuso los NPE. Gracias Matt! – cmyers

Cuestiones relacionadas