Blog

Blog

Neues aus unserem Blog

AtlasCamp 2013

Florian Rock Montag, 27. Mai 2013 @ 15:00 geschrieben von Florian Rock

Das AtlasCamp 2013 fand vom 22. bis 23. Mai 2013 in Amsterdam statt. Atlassian gab einen Überblick über den aktuellen Stand ihrer Produkte und stellte die neuen Features von diesen vor. Auch gab es einen kleinen Ausblick auf die Zukunft der Atlassian-Produkte und Einblicke in die Entwicklungsprozesse bei Atlassian selbst.

Atlassian Connect

Ein großer Fokus der Präsentationen lag auf der Fertigstellung von Atlassian Connect, das für die Entwicklung von Remote Plugins gedacht ist. Zukünftig ist es dank Atlassian Connect somit möglich, Plugins für OnDemand-Instanzen zu programmieren und im Marketplace bereitzustellen.

Der große Unterschied zu konventionellen V2-Plugins ist, dass die API sich auf Hooks und REST-Aufrufe beschränkt (was die Plugins auch über Versionen stabil hält) und nicht auf der Instanz selbst gehostet wird. Die Einbindung der V3-Plugins setzt ein Hosting des Herstellers voraus. Grafische Elemente werden mittels IFrame eingebunden. Zukünftig sollen V3-Plugins auch auf "Behind the Firewall"-Instanzen installiert werden können.

Quelle: https://developer.atlassian.com/display/AC/Introduction+to+Atlassian+Connect

Bei der Installation werden der Plugin-Descriptor und die Public Keys von Plugin und OnDemand-Instanz miteinander ausgetauscht:

Hierdurch kann das OAuth-Verfahren verwendet werden, um die REST-Aufrufe sowie Hooks abzusichern.

Dank der REST-basierenden Kommunikation kann das Plugin in nahezu jeder Programmiersprache umgesetzt werden und ist somit nicht mehr wie bei V2 auf Java beschränkt.

Weitere Informationen:

JIRA 6

Am 21.05.2013 wurde JIRA 6 nach 18-monatiger Entwicklungsphase veröffentlicht. Mehr hierzu in unserem Newsbereich.

Die wichtigsten Key Features von JIRA 6 wurden nochmals präsentiert:

  • Die Suche wurde optimiert, stabile Suche eingeführt
  • Über Split View kann performanter und übersichtlicher gearbeitet werden
  • Inline Editing überall (inklusive aller Custom Fields) verfügbar.

Viele weitere Features sind in unserer News zu JIRA 6 zu finden.

Auf eine Sache möchte ich jedoch noch gerne eingehen: die Project Templates. Atlassian schafft hier ein wirklich tolles Feature. Somit wird es in Zukunft nicht nur möglich sein, aus verschiedenen vorgegebenen Projekttypen zu wählen und damit schon ein vorkonfiguriertes Projekt zu haben. Ähnlich wie bei den Blueprints in Confluence wird auch noch ein Plugin Point geschaffen, in dem man mit seinem Plugin eigene Projekt Templates bereit stellen kann. Dies geht sogar soweit, dass im Dialog ein kleiner Wizard integriert werden kann und somit die Konfiguration eines Plugin-Projekts sehr benutzerfreundlich und schnell wird.

Stash Plugins - Git Hooks

Produkte von Atlassian sind besonders bei Software-Entwicklungsprozessen sehr hilfreich und mit jedem Release kommen viele wertvolle Features hinzu. Dies geschieht nicht zuletzt, da die Entwickler von Atlassian alle ihre eigenen Produkte auch in ihrer Produktsoftware-Entwicklung einsetzten. So gab es auch Präsentationen, in denen Real-Life-Probleme der Entwickler dargestellt wurden.

Eine Fallstudie zeigte einen Entwickler, der mit Stash und Bamboo arbeitete:

Der Entwickler checkte über Git den Trunk aus, um seinen Branch reinzumergen. Als er wieder commiten wollte, schlugen Unit Tests des Bamboo-Builds fehl. Er konnte sich jedoch nicht erklären, wie dies mit seinen Änderungen zusammenhängen konnte. Das Problem war, dass davor ein Kollege ein Checkin in den Trunk gemacht hatte, welcher jedoch noch nicht fertig in Bamboo gebaut war. Also kam die Frage auf, wie so etwas verhindert werden kann.

Die Lösung war, die Erstellung eines Git Hooks, der beim Auschecken prüft, ob die aktuelle Revision im Bamboo bereits gebaut ist und korrekt funktioniert. Wenn dies nicht der Fall ist, wird eine Warnung ausgegeben, bzw. solange es noch im Build Prozess steckt der Checkout verhindert.

Diese Git Hooks können nun ganz einfach in Stash definiert werden. Es ist möglich, Pre- und Post-Hooks zu verschiedenen Events (Pull, Push, Checkout, etc.) zu definieren. So können z.B. auch vor einem Push-Request Validatoren eingefügt werden oder nach einem Push Request eine Aktion, wie z.B. eine E-Mail mit dem Hinweis auf den Commit an das Entwicklerteam zu senden, ausgeführt werden.

Weitere Informationen:

SPI (Service Provider Interface)

Eigentlich selbstverständlich, aber leider noch nicht sehr verbreitet: Plugins für Plugins. Atlassian gab Anregung, Plugins so zu programmieren bzw. intelligente Schnittstellen (SPIs) bereitzustellen, dass die Erweiterung eines Plugins möglich ist. Hierdurch wird ein Plugin nicht nur modularer. Andere Entwickler machen das eigene Plugin durch ihre Erweiterungs-Plugins wertvoller. Außerdem kann dies auch verwendet werden um bspw. gewisse Funktionen eines kostenlosen Plugins kostenpflichtig im Marketplace zu platzieren.

Atlassian Design Guidelines

Atlassian veröffentlichte im Juni 2012 die Atlassian Design Guidelines. Hiermit vereinheitlicht Atlassian seine Produkte auf ein einheiliches Design. Die Design Guidelines sind online verfügbar und werden den Plugin-Entwicklern zur Verfügung gestellt, damit auch Plugins sich optisch nahtlos in die Produkte integrieren lassen. Atlassian stellt bereits viele, nach den Design Guidelines gestalteten, Komponenten zur Verfügung und arbeitet mit Hochdruck an vielen weiteren.

Als große Hilfe zur Implementierung der Design Guidelines dienen die Template-Engine "SOY" sowie das UI-Framework "AUI".

SOY

Die Template-Engine SOY kommt experimentell mit AUI 5 und wird somit auch in JIRA6 bereits mit ausgeliefert. SOY-Templates können sowohl auf Client- als auch auf Server-Seite gerendert werden, wodurch ein dynamisches Nachladen einzelner Komponenten per AJAX viel einfacher wird.

Weitere Informationen:

Atlassian User Interface - AUI

Nach einem kurzen Überblick über AUI und wie stark es sich bereits entwickelt hat (immer mehr Komponenten sind in AUI verfügbar), gab Atlassian einen Ausblick auf AUI6. Geplant sind unter anderem:

  • ein Retina Support der Komponenten
  • viele neue weitere Komponenten (table, type-ahead, error handling, notifications, email, keyboard shortcuts)
  • Komponenten für die Mobile View
  • Versionierte Dokumentation der Patterns

Außerdem stellte Atlassian einen AUI Debbuger als Extension für den Browser Chrome vor, welchen ich persönlich sehr hilfreich fand. Dieser hilft dabei, AUI einfacher zu implementieren und Fehler im Quelltext zu endecken.

Weitere Informationen:

Pretty URLs Plugin

Sehr gefallen hat mir auch das Pretty URLs Plugin, welches im AtlasCamp vorgestellt wurde. Hiermit ist es möglich, eigenen Webactions, Servlets, etc. eine "schöne" URL zu verpassen. Das Plugin ist sowohl für PluginV2 als auch für AtlassianConnect-Erweiterungen verfügbar.

Um eine Pretty-URL zu mappen, können routes in der "atlassian-plugin.xml" hinterlegt werden.
<routing key="prettyurls-key" path="/prettyurls">
    <route from="/are/{verb}" to="/secure/HorribleName.jspa"/>
    <route from="/can/{verb}" to="/secure/HorribleName.jspa"/>
</routing>

Die technische Umsetzung ist meiner Meinung sehr elegant gelöst, in dem das HTML5 History-Interface verwendet wird. Hierdurch wird ein zeitraubender Redirect vermieden. Hierfür werden die Methoden pushState und replaceState verwendet 

Während das HTML5 History-Interface nur die Anzeige im Browser darstellt, muss natürlich bei einer Eingabe der URL diese so umgeleitet werden, dass die Korrekte Methode aufgerufen wird, um all dies kümmert sich das Pretty URL Plugin. Daher von meiner Seite aus eine tolle Empfehlung für alle Atlassian Plugin Developer...

Weitere Informationen:

Confluence Blueprints

Auch wenn Blueprints mittlerweile geläufig sein dürften, haben vermutlich die Wenigsten bereits alle Features, die Blueprints bringen, richtig erkundet. Blueprints bieten nicht nur Vorlagen für Seiten, durch den Wizard können hier auch kleine Workflows für die Erstellung einer Seite abgebildet werden. 

Außerdem gab Atlassian einen kleinen Ausblick auf die Zukunft und gab bekannt, dass an "Space Blueprints" gearbeitet wird, wodurch Vorlagen für ganze Bereiche in Confluence geschaffen werden können.

Confluence Ausblick

Atlassian stellte den aktuellen Plan für die nächsten Confluence-Versionen vor. So soll unter anderem (natürlich schon V3-Plugin bedingt) die REST-API von Confluence mehr in den Fokus rücken und schnell weiterentwickelt werden.

Für die nächste Version 5.2 sind außerdem Features geplant wie:

  • Benutzer umbenennen
  • Neue Blueprints (Decisions, Shared Links)
  • und eine verbesserte Suche, dank Upgrade auf Lucene 4

Für die voraussichtlich darauf folgende Version 5.3 sind natürlich weitere Blueprints, die schon oben erwähnten "Space Blueprints" sowie eine verbesserte JIRA- Integration in Confluence geplant.

Fazit

Das AtlasCamp 2013 gab einen tollen Einblick in die Evolution der verschiedenen Atlassian-Produkte. Außerdem schafft es Atlassian immer wieder eindrucksvoll, ihre hausinternen Entwicklungsprozesse mit Hilfe ihrer Tools zu optimieren und diese Tricks & Tipps mit der Community zu teilen und zu diskutieren. Sehr interessant waren natürlich die zwar schon länger angekündigte, aber nun fast marktreife, Plugin-V3-Schnittstelle, sowie praktische Programmierbeispiele in den Vorträgen hierzu. Allgemein war auch das Netzwerken mit Plugin-Entwicklern, Atlassian Experts sowie mit den Atlassian-Mitarbeitern sehr ausgeprägt und in einer wirklich tollen Atmosphäre, so dass auch neben den Vorträgen viel Wissen ausgetauscht wurde und tolle Kontakte geknüpft werden konnten.

Zum Abschluß möchte ich noch erwähnen, dass auch das Rahmenprogramm von Atlassian wirklich toll gestaltet war! Meine avono-Kollegen und ich freuen uns schon auf das nächste AtlasCamp. 

 

zur Übersicht

Willkommen auf dem avono Blog

Hier auf dem avono Blog finden Sie in regelmäßigen Abständen sowohl technische Neuigkeiten aus unserer Partnerproduktwelt als auch nützliche Entwicklertipps.
Und jetzt kommt der obligatorische Disclaimer: Die Ausführungen der Blogeinträge spiegeln nicht die Meinung der avono AG sondern nur die Sicht der einzelnen Autoren wider.

Weitere Blogeinträge