Webbasierte Software für für E-Sport und Business

Entwicklung eines Plugins für JIRA Server und JIRA Cloud

Veröffentlicht von Nils Ziermann am 02.08.2016

Nils Ziermann

Wie unterscheidet sich die Entwicklung für JIRA Server und JIRA Cloud und wie kann mit möglichst geringem Mehraufwand ein Plugin für beide Systeme entwickelt werden?

Worin unterscheiden sich JIRA Server und JIRA Cloud?

Bei den beiden Systemen erfolgt die Entwicklung mit unterschiedlichen Frameworks, so werden JIRA Server Plugins im P2-Framework entwickelt, während für die Entwicklung für JIRA Cloud das Atlassen Connect Framework verwendet wird.

Auch die Ausführung unterscheidet sich bei beiden Systemen deutlich. Plugins, die mit dem P2-Framework entwickelt werden, laufen auf dem gleichen Computer wie die JIRA Server Applikation.

Mit Atlassian Connect entwickelte Plugins laufen auf Servern des Plugin-Anbieters und werden in der JIRA-Ansicht nur mithilfe von Iframes eingebunden. Das Plugin kommuniziert mit dem ausführenden JIRA-Server ausschließlich über REST und HTTP Aufrufe. Die Speicherung der pluginbezogenen Daten erfolgt auf dem Server des Plugin-Anbieters, wobei Richtlinien von Atlassian bezüglich der Datensicherheit eingehalten werden müssen.

Dadurch, dass Atlassian Connect Plugins nicht auf dem gleichen Server wie die JIRA-Instanz laufen, sind viele der Methoden der traditionellen JIRA-Plugin Entwicklung unter Atlassian Connect nicht anwendbar.

So kann z. B. in einem Atlasssian-Connect Plugin auf JIRA-Daten nur über REST zugegriffen werden.

Wann lohnt sich die Entwicklung eines Plugins für beide Systeme besonders?

Da bei Atlassian Connect die Daten auf dem Server des Plugin-Herstellers gespeichert werden, bietet sich besonders bei sicherheitskritischen Plugins, die Entwicklung für beide Systeme an. Anwendern, die lieber selber für die Sicherheit ihrer Daten verantwortlich sind, wird diese Möglichkeit mithilfe des JIRA-Server-Plugins geboten. Die Anwender des JIRA Clouds Plugin können sich währenddessen auf die Datensicherheit des Plugin-Herstellers und Atlassians Richtlinien verlassen.

Da Atlassian Atlassian Connect als zukünftiges Framework für die Plugin-Entwicklung sieht und JIRA Cloud stärker verbreiten will, lohnt es sich auch sich an die folgenden Tipps zu halten, falls im Moment nur eine Entwicklung für JIRA Server geplant ist.

So können Sie (falls benötigt) in Zukunft leichter und schneller ein Atlassian Connect Plugin anbieten und schränken sich nicht unnötig ein.

Wie kann der Entwicklungsaufwand bei gleichzeitiger Entwicklung für beide Systeme minimiert werden?

Daten vom Server sollten nur über eine REST-API benutzt werden.

In einem Atlassian Connect Plugin können manche Daten nur per REST bezogen werden. Um Datenzugriffe also möglichst gleich zu halten, sollten alle Daten ausschließlich über REST bezogen werden.

Bei Einhaltung dieser Regel kann als Grundlage des Atlassian Connects Plugin jedes beliebige Framework genutzt werden, da nur entscheidend ist, dass die Antworten der REST-API unabhängig vom zugrundeliegenden Framework sind.

Das Javascript kann so unabhängig von der zugrundeliegen Struktur gehalten werden.

Rendering der UI ausschließlich auf der Client-Seite.

Durch das reine Rendering der UI auf der Client-Seite kann sich schon bestehender Techniken bedient werden, um leicht die REST-Calls in die UI einzubinden. Es müssen also auch keine Velocity/Soy Templates verwendet werden oder die Templates doppelt erstellt werden.

Das Javascript muss unabhängig von dem JIRA eigenen Javascript funktionieren.

Da bei einem Atlassian Connect Plugin das Plugin auf einem anderem Server läuft und nur mithilfe eines Iframes eingebunden wird, hat dieses keinen Zugriff auf das JIRA eigene Javascript.

Welche Tools sollten dafür benutzt werden?

Eine Empfehlung von Tools und weiterführende Information werden von Andreas Knecht in Developing a JIRA add-on like it's 2016 und Developing a JIRA add-on like it's 2016: Part Two beschrieben.

© 2021, Braune Digital GmbH, Niemannsweg 69, 24105 Kiel, +49 (0) 431 55 68 63 59