J'essaie d'écrire un plugin d'écoute d'événements pour Jira. Lorsque j'utilise l'ancienne méthode (ce que fait le dernier SDK Atlassian 6.2.9) et que je mets ces 2 lignes
<component key="eventListener" class="jira.plugins.listeners.MyEventListener"/>
<component-import key="eventPublisher" class="com.atlassian.event.api.EventPublisher"/>
et que j'essaie d'empaqueter le plugin, je reçois un avertissement disant que I cannot use component/component-import statement inside plugin descriptor file when Atlassian plugin key is set
. Le dernier SDK utilise Spring Scanner, qui est ajouté au fichier pom.xml automatiquement lors de la création du squelette et que la documentation recommande fortement. Je supprime donc ces deux lignes du fichier atlassian-plugin.xml et j'essaie de les remplacer par les annotations correspondantes :
@Component
public class MyEventListener{
@Inject
public MyEventListener(@ComponentImport EventPublisher eventPublisher){
eventPublisher.register(this);
}
}
Je peux le compiler et l'empaqueter de cette façon, mais lorsque je l'installe sur une instance de Jira en cours d'exécution, la description du plugin indique ce qui suit This plugin has no modules
. J'ai essayé de remplacer @Component par @Named, d'ajouter @ExportAsService à la classe, mais sans succès. Il semble que l'analyseur de Spring ne détecte pas ma classe comme un composant. Quelqu'un a-t-il réussi à résoudre ce problème ? J'ai écrit à la communauté atlassienne mais je n'ai pas eu de nouvelles jusqu'à présent.