Aus Linux-Magazin 04/2007

Mylar stoppt die Reizüberflutung in Eclipse, indem es

© subwaytree, photocase.com

Das Eclipse-Tool Mylar unterstützt gängige Bugtracker, erzeugt und bearbeitet Aufgaben, filtert die Oberfläche und verhindert so, dass der Entwickler im Zuviel der Informationen ertrinkt. Zum Jahreswechsel ist das die Produktivität steigernde Plugin in Version 1.0 erschienen.

Mylar entstand als ein experimentelles Technologieprojekt der Eclipse Foundation. Mit der Release 1.0.0 im Dezember 2006 avanciert es zum beliebtesten Plugin auf EPIC (Eclipse Plugin Central, [1]). Näheres zur Geschichte weiß die Mylar-Webseite [2] zu berichten. Letztlich filtert Mylar Eclipse-Ansichten und zeigt dem Benutzer nur die Dinge, die er für sein Projekt benötigt, und hilft beim Wechseln zwischen Aufgaben. Die freie Software arbeitet bestens mit Bugtracking-Systemen zusammen.

Die zentrale Schaltstelle von Mylar ist die »Task List«-Ansicht (Abbildung 1). Hier gewinnt der Nutzer die Übersicht über seine Bugtracker-Queries samt Aufgaben und verwaltet sie. In Version 1.0.0 unterstützt Mylar Bugzilla [8] in den Versionen 2.18 bis 2.22, Jira [9] und Trac [10]. Für Web-basierte Bugtracker wie Sourceforge.net kennt Mylar eine generische Webschnittstelle, die mit Hilfe regulärer Ausdrücke Webseiten parst – Näheres dazu unter [11].

Abbildung 1: Die zentrale »Task List«-Ansicht, hier mit Queries für Bugzilla und Trac sowie einer lokalen Kategorie mit Aufgabe.

Abbildung 1: Die zentrale »Task List«-Ansicht, hier mit Queries für Bugzilla und Trac sowie einer lokalen Kategorie mit Aufgabe.

Drittanbieter stellen weitere Schnittstellen bereit. Alternativ lassen sich welche per Bugzilla beim Mylar-Team anfordern, eine Liste der geplanten Schnittstellen liefert Bugzilla unter [12]. Nach der Einrichtung des Bugtrackers kann der Benutzer neue Aufgaben aus Mylar heraus erzeugen und bestehende bearbeiten. Die verschiedenen Schnittstellen stellen ihre Aufgabeneditoren bereit, passend zum jeweiligen Bugtracker.

Fragestunde

Für den Abruf bestehender Aufgaben definiert der Benutzer über den Query-Wizard Abfragen für den Bugtracker. Abbildung 2 zeigt die Definition einer Query für Bugzilla. Die definierten Abfragen erscheinen als Kategorien in der Aufgabenliste, ein Kommando oder ein fester Zeitplan synchronisieren sie. Die einzelnen Aufgaben erscheinen als Unterpunkte der zugehörigen Kategorien. Aufgaben, die in keine bestehende Kategorie fallen, laufen entweder unter der Archivkategorie oder als Top-Level-Eintrag.

Abbildung 2: Definition einer Query über den Query Wizard für Bugzilla, um bestehende Aufgaben abzurufen.

Abbildung 2: Definition einer Query über den Query Wizard für Bugzilla, um bestehende Aufgaben abzurufen.

Sobald der Nutzer eine Aufgabe aktiviert, zeichnet Mylar alle Benutzereingaben im Hintergrund auf, um darauf aufbauend die Oberfläche zu filtern. Aus diesen Eingaben berechnet Mylar eine Gewichtung für die angefassten Artefakte im Arbeitsbereich. Artefakte, die keine Gewichtung haben, blenden sich aus den Ansichten aus, solche mit einer starken Gewichtung hebt Mylar fett hervor. Die Gewichtung verringert sich im Laufe der Zeit, und Artefakte, die längere Zeit niemand angeklickt hat, verschwinden aus den Ansichten.

Abbildung 3 zeigt die Paket-Explorer-Ansicht während der Bearbeitung einer Aufgabe. Der Nutzer hat die Möglichkeit, Artefakte besonders zu gewichten, um sie in den Ansichten anzuzeigen. Mylar filtert standardmäßig die Paket-Explorer-Ansicht, die Navigator-, die Fehler-, die Gliederungs- und die Task-List-Ansicht. Der Benutzer kann die Filterung in diesen Ansichten je nach Bedarf an- und abschalten.

Abbildung 3: Die Paket-Explorer-Ansicht während der Bearbeitung einer Aufgabe. Die fett hervorgehobenen Klassen, Methoden und Felder haben eine starke Gewichtung, die schwächeren eine geringere. Artefakte ohne Gewichtung sind nicht zu sehen.

Abbildung 3: Die Paket-Explorer-Ansicht während der Bearbeitung einer Aufgabe. Die fett hervorgehobenen Klassen, Methoden und Felder haben eine starke Gewichtung, die schwächeren eine geringere. Artefakte ohne Gewichtung sind nicht zu sehen.

Immer der passende Editor

Neben den Ansichten verwaltet Mylar auch die Editoren. Beim Aktivieren einer Aufgabe öffnet Mylar die Editoren für die gewichteten Artefakte von sich aus. Steht ein Artefakt aufgrund seiner Gewichtung zum Ausblenden an, schließt Mylar den entsprechenden Editor automatisch. Schließt der Benutzer einen Editor, reduziert das die Gewichtung der darin angezeigten Artefakte. Besonders in großen Projekten macht sich das bezahlt. Denn der Benutzer sieht dann immer nur jene Artefakte, die der aktuellen Aufgabe entsprechen, und die gerade irrelevanten lenken ihn nicht ab.

Zur weiteren Verringerung der Informationsflut kann Mylar die Code-Komprimierung für die Editoren einschalten. Dann komprimiert Mylar alle gefilterten Codeblöcke und erweitert nur jene, die im aktuellen Kontext von Interesse sind. Damit Mylar weiß, welche Artefakte es wichten kann, müssen geeignete Resource-Bridges zur Verfügung stehen. Mylar enthält bereits Bridges für alle im Eclipse-SDK vorkommenden Typen: Java, JUnit, PDE- und Ant-XML.

Soll Mylar auch andere Artefakte filtern, benutzt es eine generische Resource-Bridge, die mit Files umgehen kann. Bei ihr beschränkt sich das Filtern allerdings auf das schlichte Ein- und Ausblenden der Dateien. Eine verfeinerte Filterung – wie beispielsweise bei Java auf Methoden- und Feldebene – gibt es nicht. Drittanbieter liefern hier bessere Resource-Bridges. Den Interessenten, die selber welche entwickeln möchten, sei [13] als Lektüre empfohlen. Eine Liste der geplanten Bridges kennt Bugzilla [14].

Kontext wechseln

Beim Wechsel zu einer anderen Aufgabe, schließt Mylar den aktuellen Kontext und öffnet den der anderen. Wechselt der Benutzer wieder zurück, lädt das Plugin den ursprüngliche Kontext und er kann da weiterarbeiten, wo er aufgehört hat. Bei entsprechender Einstellung öffnet und schließt Mylar auch die jeweiligen Editoren automatisch.

Um eine Aufgabe fertig zu stellen, setzt der Benutzer den Status im Bugtracker, zum Beispiel »RESOLVED« in Bugzilla, oder, sofern es sich um eine lokal definierte Aufgabe handelt, indem er die Aufgabe als abgeschlossen markiert. Abgeschlossene Aufgaben kann Mylar auch aus der Task-List-Ansicht filtern, es schiebt sie danach wie üblich in die Archivkategorie.

Im Aufgabeneditor können ein Zieldatum und die geschätzte Bearbeitungszeit vermerkt werden. Mylar berechnet die verstrichene Zeit anhand der Benutzereingaben und gibt diese in der Aufgabe mit an. So hat der Nutzer eine ungefähre Übersicht über den Stand seiner Arbeit und kann die Aufgaben entsprechend planen. Aber nur ungefähr, da Mylar lediglich die Zeit ermitteln kann, die der Nutzer in Eclipse verbringt. Wechselt er häufig zu anderen externen Anwendungen oder erledigt andere Dinge, während die Aufgabe aktiv ist, verfälscht sich die Zeit entsprechend. Eine Möglichkeit zur manuellen Korrektur sieht die aktuellen Version nicht vor.

Für bessere Orientierung bietet die Task-List-Ansicht eine Darstellung, die nur die für die aktuelle Woche gültigen Aufgaben anzeigt. Ferner gibt es einen Report, aufrufbar unter »Datei | Neu | Andere | Mylar | Task-Activity-Report«, der die Planung von Aufgaben erleichtert.

Tauschzentrale

Mylar vermag den Kontext einer Aufgabe in den Bugtracker als XML-Datei einzufügen und wieder zu laden. Das erweist sich besonders beim Verarbeiten von Bugs als hilfreich. Der Bug-Reporter kann den Kontext im Bugtracker speichern und verschafft so Bearbeitern eine Übersicht über die betroffenen Artefakte. Ein Bearbeiter wiederum speichert den Kontext für seine Lösung im Bugtracker. Der Maintainer, der für die Bug-Bereinigung zuständig ist, sieht anhand dieser Bugtracker-Einträge genau, welche Artefakte angefasst wurden. Der gespeicherte Kontext liefert stets eine exakte Übersicht der betroffenen Codebereiche.

Kontextdaten lassen sich per Drag& Drop aus der Aufgabenliste in einen Ordner schieben. Die so erzeugte XML-Datei kann man an andere Entwickler verteilen, die sie dann nur in ihre eigene Aufgabenliste ziehen müssen, um die Aufgabe samt Kontext zu erhalten. Den Ex- und Import der gesamten Aufgabenliste handhabt Mylar über den Eclipse-eigenen Export- und Import-Mechanismus. Für Backups bietet Mylar auch die automatisierte zeitliche Sicherung der Aufgabenliste in ein frei definierbares Verzeichnis. Der Benutzer nimmt diese Einstellungen unter »Fenster | Benutzervorgaben | Mylar | Task-List« vor.

Ist ein unterstütztes Werkzeug für Code-Versionierung im Spiel, verwaltet Mylar automatisch den Aufgaben entsprechende Change-Sets. Mylar stellt alle im Zuge einer Aufgabenbearbeitung veränderten Ressourcen in dieses Change-Set. So hat der Benutzer immer die Übersicht, welche Änderungen in welchem Zusammenhang erfolgt sind. Beim Synchronisieren fügt Mylar automatisch eine Log-Nachricht ein, die Aufgabenbezeichnung und Status enthält. Der Benutzer darf diese Log-Nachrichten den eigenen Bedürfnissen entsprechend vorgeben.

Installation und
Releases
Mylar setzt mindestens Java 5 und Eclipse 3.2 voraus. Am einfachsten funktioniert die Installation von Mylar per Update-Manager. Die Update-Sites für die einzelnen Umgebungen listen [3] bis [6]. Mylar gibt es als stabile Release ([3], [4]) und als regelmäßige Entwickler-Builds. Die Dev-Builds sind zumeist nur auf den aktuellen Eclipse-3.3-Milestones lauffähig [6], es kommen aber in regelmäßigen Abständen auch welche für Eclipse 3.2 heraus [5].

Die Dev-Builds gelten trotz ihres Namens in der Regel als sehr stabil, sind allerdings nur mit Sorgfalt auf Produktivumgebungen anzuwenden. Ein Nightly-Build ist momentan nicht eingerichtet, Interessenten müssen sich die Sourcen direkt aus CVS laden und selber kompilieren. Ein entsprechendes Team-Project-Set steht unter [7] bereit.

Eine kleine Revolution

Mylar ist für den Autor des Artikels ein unentbehrlicher Bestandteil seiner Eclipse-Umgebung geworden. Die Filterung nach Aufgabenbereichen ermöglicht fokussiertes Arbeiten und verhindert die Informationsüberflutung. Dank der Bugtracker-Integration verwaltet der Benutzer Aufgaben sauber. Die gespeicherten Kontexte verkürzen wesentlich die Einarbeitungszeit für wiederkehrende Aufgaben, wie etwa wieder eröffnete Bugs. Mylar revolutioniert die Arbeit mit Eclipse und wird in Zukunft wahrscheinlich auch in andere Produkten Einzug halten. Der Autor jedenfalls freut sich, auf diese Weise Kontexte zwischen verschiedenen IDEs auszutauschen. (jk)

Tipps vom
Mylar-Experten
Folgende Einstellungen haben sich beim Autor dieses Artikels bewährt:

  • Stellen Sie Mylars Paket-Explorer auf »Unstrukturierte
    Paketdarstellung« um, ansonsten funktioniert die Filterung
    nicht.
  • Schließen Sie die Gliederungs-Ansicht. Bei Bedarf blenden
    Sie sie über [Strg]+[O] im Editor ein.
  • Schalten Sie die Komprimierung im Editor ab, da sie die
    Übersicht über den Code stört und die
    Markierungsvorkommen-Funktionalität einschränkt.
  • Besser ist, Sie lassen Mylar die geöffneten Editoren
    verwalten. Nutzen Sie das automatischen
    Change-Sets-Management.
  • Lassen Sie die Inhaltshilfe von Mylar filtern. Sollte Mylar
    nicht die für den aktuellen Kontext richtige Hilfestellung
    anzeigen, nutzen Sie [Strg]+[Space], um die weiteren Inhaltshilfen
    zu sehen. Die Einstellungen für die Inhaltshilfe lassen sich
    unter »Fenster | Benutzervorgaben | Java | Editor |
    Inhaltshilfe | Erweitert« nach eigenen Bedürfnissen
    anpassen.
  • Benutzen Sie die Java-Browsing-Perspektive, wenn Sie den
    Sourcecode als Ganzes betrachten wollen. Sie ersparen sich das
    ständige An- und Abschalten der Mylar-Filterung. Alternativ
    nutzen Sie die Navigator-Ansicht mit abgeschalteter Filterung.
  • Nutzen Sie [Alt], um Artefakte temporär von der Filterung
    auszuschließen.
  • Versuchen Sie eine Aufgabe abzuschließen, bevor Sie eine
    neue anfangen. Das verhindert, dass sich Change-Sets
    überlagern.
  • Lesen Sie die Mylar-FAQ [15].
Infos
[1] EPIC: [http://www.eclipseplugincentral.com]

[2] Mylar-Projekt: [http://www.eclipse.org/mylar/]

[3] Update-Site für Eclipse3.2 Releases: [http://download.eclipse.org/technology/mylar/update-site/e3.2]

[4] Update-Site für Releases Eclipse3.3: [http://download.eclipse.org/technology/mylar/update-site/e3.3]

[5] Update-Site für DEV-Builds Eclipse 3.2: [http://download.eclipse.org/technology/mylar/update-site/dev/e3.2]

[6] Update-Site für DEV-Builds Eclipse3.3: [http://download.eclipse.org/technology/mylar/update-site/dev]

[7] CVS Team Project Set: [http://www.eclipse.org/mylar/doc/dev/mylar.psf]

[8] Bugzilla: [http://www.bugzilla.org]

[9] Jira: [http://www.atlassian.com/software/jira/]

[10] Trac: [http://trac.edgewall.org]

[11] Generischer Webkonnektor:
[http://wiki.eclipse.org/index.php/Mylar_FAQ#Generic_Web_Repository_Connector]

[12] Anfragen für Konnektoren in Eclipse Bugzilla: [https://bugs.eclipse.org/bugs/buglist.cgi?
product=Mylar&short_desc_type=anywordssubstr&short_desc=%5Bconnector%5D]

[13] Beschreibung von Bridges in der Eclipsipedia:
[http://wiki.eclipse.org/index.php/Mylar_Integrator_Reference#Context_framework]

[14] Anfragen für Resource-Bridges in Eclipse Bugzilla: [https://bugs.eclipse.org/bugs/buglist.cgi?
product=Mylar&short_desc_type=anywordssubstr&short_desc=%5Bbridge%5D]

[15] Mylar-FAQ: [http://wiki.eclipse.org/index.php/Mylar_FAQ]

Der Autor
Stefan Langer ist als Berater und Entwickler bei der VS-Technology GmbH in München tätig. Er entwickelt seit zehn Jahren in Java. In seiner Freizeit beschäftigt er sich mit Open Source im Allgemeinen und Eclipse – seit Version 1.0 – im Speziellen. Er schreibt selbst Eclipse-Plugins.
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben