09/2015

Top Ten der -Plugins Titelthema Heiße Begleiter Eclipse-Plugins

32 Damit Projekte funktionieren, sollten Entwickler sich auf einen festen Satz von Erweiterungen einigen. Das

Linux-Magazin stellt zehn Plugins für Java-EE-Projekte vor, die zum Pflichtprogramm gehören. Frank Pientka www.linux-magazin.de

Mit dem Menü-Eintrag »Run Report« öff- net sich der erste Bericht mit Daten im Browser über den Report Viewer. Von dort lässt sich der Bericht in unterschied- lichen Ausgabeformaten (Abbildung 2) ausgeben. Am einfachsten startet der Benutzer bei den Beispieldaten für klas- sische Automodelle und Oldtimer. Das Plugin bietet umfangreiche Funkti- onen und eine gute Dokumentation mit Beispielen samt Tutorials unter [http://​ ­www.​­eclipse.​­org/​­birt/​­demos/] an. Bei- des ist hilfreich. Die Berichte lassen sich mit etwas Java-Programmierkenntnissen einfach in eigene Programme einbinden oder in den kommerziellen Actuate-Ser- verprodukten verwenden.

E Anyedit – Textkonverter © nattapon wongwean, 123RF wongwean, © nattapon

Das preisgekrönte Plugin Anyedit [3] Weil Eclipse viele Einstellungs- und Er- von der Firma Actuate. Als die vor der fügt dem Kontextmenü einige nützliche weiterungsmöglichkeiten bietet, gleicht Entscheidung stand, eine neue Genera- Textkonvertierungs-Funktionen hinzu. So keine Installation der anderen. Projekt­ tion von Berichtwerkzeugen zu entwi- lassen sich Whitespaces anzeigen, Tabs arbeit bedeutet aber Gemeinsamkeiten ckeln, stellte sie Birt von Anfang an unter in Leerzeichen umwandeln und Texte in festzulegen, besonders in Sachen Tools. das Eclipse-Dach. einer Datei alphabetisch sortieren. Außer- Die vorgestellten Plugins dienen diesem Birt lässt sich praktischerweise als Stand- dem erleichtert es das Arbeiten mit Wor- kollaborativen Gedanken und haben sich alone-Version betreiben oder als Plugin kingsets und kann diese zwischen Ec- im Projektkontext einen Hitparadenplatz zu einer bestehenden Eclipse-Installation verdient. Die Auswahl dient auch als hinzufügen. Da es bisher an jeder Release Starthilfe für den Einstieg in Eclipse. Zu- teilgenommen hat, steht Version 4.5 auch sätzliche Erweiterungen, über 2000, fin- für die Mars-Version von Eclipse parat. den sich zwar im Eclipse-Marktplatz [1], Birt besteht aus zwei Hauptkomponen- doch trotz komfortabler Suche ist es oft ten und ihren zugehörigen Engines: den Glückssache, passende Plugins zu finden. Designern für Berichte und Diagramme. Hier hilft die Auswahl (Abbildung 1) des Diese erzeugen Berichte in den unter- Artikels weiter. schiedlichen Formaten. Bevor der Benutzer Daten aus einer Da- E Birt tenbank einem Bericht zuordnet, muss er im Datenexplorer eine Datenquelle mit ei- Das Birt-Projekt ist schon seit 2004 im ner Datenbankverbindung wählen, dann Plugin-Pool dabei. Das Berichterstel- ein Dataset mit einer Datenbankabfrage lungs-Werkzeug Birt (Business Intelli- erstellen und die Spalten der Abfrage auf gence and Reporting Tools, [2]), stammt dem zuvor erstellten Bericht platzieren. Abbildung 1: Die Parade der Eclipse-Plugins. lipse-Workspaces ex- portieren und wieder importieren. Im Kontextmenü der Konsole lassen sich dort referenzierte Da- teien direkt öffnen. Das sind alles Funktio- nen, deren Ausfüh- rung sonst externe Edi- toren und Werkzeuge außerhalb von Eclipse bedingt. Mit Anyedit muss man Eclipse nicht mehr verlassen und hat die erweiter- ten Textkonvertie- rungs- und Editier- Funktionen bequem parat (Abbildung 3). Abbildung 2: Birt-Reports lassen sich im Design anpassen.

Auf der Suche nach Fehlern passen, um nur auf die für ein Projekt relevanten besonders kritischen Fehler Über Werkzeuge zur statischen Code- hingewiesen zu werden. Viele Java-Ent- Analyse lassen sich Fehler oder Unsau- wickler benutzen das Werkzeug-Drei- berkeiten schnell erkennen und oft auch gestirn Findbugs, PMD und Checkstyle mit den dort enthaltenen Hinweisen be- lokal oder zentral auf dem Server. heben, bevor sie sich zu größeren und teureren Problemen auswachsen. Weil E Findbugs in größeren Java-Projekten ein zentraler Buildserver mit Codequalitäts-Überprü- Ein beliebtes und ausgereiftes Werkzeug, fung Standard ist, sind Entwickler gut das aus einem Forschungsprojekt der beraten, Fehlerhinweisen nachzugehen. University of Maryland stammt und dort Da oft weitere statische Codeanalyse- auch seine Weiterentwicklung erfährt, ist Werkzeuge zum Einsatz kommen, einige Findbugs [4]. Das Tool kann den Java- stellt der Artikel vor, passieren bei den Code nach über 400 Fehlermustern (Ab- Prüfungen Überschneidungen oder im bildung 4) untersuchen. idealen Fall Ergänzungen. Diese lassen sich grob in die folgenden Entwickler sollten die Standardüberprü- Prüfkategorien einteilen: Verletzung von fungsregeln an eigene Bedürfnisse an- guter Praxis, potenzielle Programmierfeh- ler, schlampiger Code, Bugs, die zu Laufzeit- fehlern führen, sowie Code, der Sicherheits- lücken oder ein Perfor- manceproblem ent- hält. Findbugs prüft auch, ob es Probleme bei der Internationali- sierung von Texten oder beim Ausführen paralleler Threads gibt. Die Gewichtung und die Prüfungen gemäß der einzelnen Kate- Abbildung 3: Bei Anyedit lassen sich Konvertierungseinstellungen ändern. gorien und ihrer Re- 09/2015 Titelthema zum Beheben des sodass die Überprüfung bei jeder Datei- Bugs kommen eben- Änderung stattfindet. Befunde erschei- falls. Praktischerweise nen dann direkt am Rande der im Editor kann der Programmie- geöffneten Datei, und zwar mit Hinwei- rer von dort aus auch sen angereichert, wie diese zu beheben

Eclipse-Plugins direkt zu der betroffe- sind. Die angewandten Checkstyle-Re- nen Codestelle sprin- geln sind ebenfalls anpassbar und lassen 34 gen, um den Fehler sich als externe Datei auch anderen zur möglichst gleich aus- Verfügung stellen. zubügeln. E PMD gegen Doppelungen

www.linux-magazin.de E Checkstyle – Stilprüfung Neben Java kann PMD [6] auch Java­ Abbildung 4: Findbugs-Einstellung für zu untersuchende Fehlerkategorien. script, XML und XSL auf Fehler untersu- Bei Checkstyle [5] chen. Dabei nutzt es eine Erweiterung, geln lassen sich an eigene Anforderun- handelt es sich um einen Quellcode- den Copy-Paste-Detector (CPD). Der gen anpassen. Ein für Sicherheitsaudits Analyzer, der die Übereinstimmung von identifiziert doppelte Codestellen, die oft hilfreiches Zusatzplugin ist Find-sec. Es Java-Code mit Kodier-Regeln überwacht auf nötige Refaktorings hinweisen, um prüft den Code mittels weiterer 63 Feh- und über Abweichungen informiert. Als die Wartbarkeit und das Design der Soft- lermuster auf Sicherheit und korrekte Standardvorgabe für Java dienen meist ware schrittweise zu verbessern. Verwendung von Verschlüsselung, unter die Programmierregeln von Sun. Sie las- PMD und CPD lassen sich auf Projekt­ anderem nach den Top 10 des Open Web sen sich an eigene Bedürfnisse anpassen ebene aufrufen. Die Fehler erscheinen in Application Security Project. Dessen Da- (Abbildung 5) oder erweitern. Es lohnt nach Wichtigkeit absteigender Reihen- tei »findsecbugs‑plugin‑1.4.1.jar« lässt sich auch, die Datei »BlochEffectiveJava. folge farbig markiert. Die Kategorien hei- sich über den Plugins-Setting-Reiter als xml« mit Regeln aus dem Standardwerk ßen: Blocker, Kritisch, Dringend, Wichtig Plugin hinzufügen, um dann die Muster- von Joshua Bloch zum Thema „Effective und Warnung. Auch hier kann sich der Detektoren zu konfigurieren. Java“ aus einer Checkstyle-Installation Benutzer weitere Information zum ge- Gefundene Fehler zeigt der Bug-Explorer in den Eclipse-Workspace zu importieren meldeten Befund anzeigen lassen oder nach der Code-Analyse in der Eclipse- und zu verwenden. zu der betreffenden Codestelle springen. Sicht an und sortiert sie nach Schwere- Auch für dieses beliebte Werkzeug exis- Das Verhalten von PMD lässt sich über graden. Hilfreich: In der Fehleransicht tiert ein Eclipse-Plugin, das in keinem die Preferences individuell anpassen lassen sich zusätzliche Informationen Java-Projekt fehlen sollte. Der Nutzer ak- (Abbildung 6). zur Art des Fehlers aufrufen. Hinweise tiviert es für das jeweilige Eclipse-Projekt, E Egit – Git Team Provider

Seit die Eclipse-Projekte mit der Release 4.3 vom CVS-Versionssystem auf das modernere Git-Versionssystem umge- stellt haben, ist die Git-Integration von Release zu Release immer besser gewor- den. Inzwischen wird Egit [7] deshalb in den meisten Eclipse-Paketen als Team­ provider für das Versionskontrollsystem Git ausgeliefert. Ein Muss.

E Maven mit M2e-Plugin

Hinter modernen Buildwerkzeugen wie ist etwas ins Hin- tertreffen geraten. Trotzdem ist Maven und die Nutzung von Maven-Reposito- ries in vielen Projekten nach wie vor gesetzt. Das M2e-Plugin [8] ist für die Maven-Integration bei Eclipse zuständig und steckt im Lieferumfang jeder Eclipse- Abbildung 5: In Checkstyle lassen sich Einstellungen für die Prüfungen anpassen. IDE. So wird die aktuelle Maven-Version 09/2015 Titelthema digung verbessern. giert, steckt Thym auch im Lieferumfang Dabei wertet es den von Jboss Developer Studio. Editierkontext aus und vergleicht Code­ E Code-Reviews mit Gerrit muster mit gespei-

cherten Mustern an- Eclipse-Plugins derer Programmierer Code-Reviews sind nicht nur in vielen in der zentralen Code- Open-Source-Projekten, sondern auch in 35 Recommender-Daten­ vielen agilen Projekten Alltag. Das Code- bank. Das Prinzip Review-System Gerrit unterstützt und funktioniert erstaun- organisiert diese Arbeit so gut, dass es

lich gut und bewahrt in diesem Bereich inzwischen zum De- www.linux-magazin.de Entwickler davor, sich facto-Standard geworden ist. Die Review- im stetig wachsenden Einheit von Gerrit ist immer ein einzelner API-Dschungel zu Git-Commit. verlaufen oder falsch Um die Code-Review-Workflows mög- abzubiegen. lichst komfortabel aus der Eclipse-Um- Das Projekt entstand gebung heraus zu gestalten, gibt es das Abbildung 6: Die PMD-Einstellungen lassen sich übersichtlich aufklappen. als Forschungsprojekt neue Projekt Egerrit [11], das diese in My- an der TU-Darmstadt. lyn anzeigt und steuert. Das Projekt ver- 3.3.3 in der aktuellen Eclipse-Release 4.5 Es sei jedem Entwickler zum Auspro- weilt zwar noch im Inkubator-Zustand mit M2e 1.6 unterstützt. M2e 1.6 enthält bieren und zum Verbessern seines Pro- und es ist noch keine offizielle Release Verbesserungen bei der Autovervollstän- grammierstils empfohlen. Es ist in den erschienen, das soll sich aber im dritten digung, bei Änderungen des Project Ob- Eclipse-Mars-Paketen für Java-EE-Deve- Quartal 2015 ändern. Egerrit ist dann ein ject Model in der zugehörigen Pom.xml- lopers, Java-Developers und RCP-/RAP- Kandidat, den es lohnt, in die Projektar- Datei im Editor sowie eine bessere Arche- Developers standardmäßig aktiviert. beit mit Git zu integrieren. (uba) n type-Unterstützung. Die experimentelle Funktion, die automatisch Änderungen E Thym für mobile Apps in Pom.xml auf die davon abhängigen Infos Maven-Projekte anwendet, ist über die Eclipse Thym ist ein Akronym und steht [1] Eclipse-Marktplatz: Preferences zu aktivieren. für „The Hybrid Mobile Project“ [10]. [https://​­marketplace.​­eclipse.​­org] Es soll die Entwicklung von hybriden [2] Birt: [http://​­www.​­eclipse.​­org/​­birt] E Eclipse Code mobilen Apps auf der Basis des Apache- [3] Anyedit-Tools: [http://​­andrei.​­gmxhome.​­de/​ Recommenders Cordova-Framework voranbringen. Es ­anyedit/​­features.html]​­ werden mehrere Cordova-Ablaufumge- [4] Findbugs: Das Plugin Eclipse Code Recommenders bungen für die Plattformen I-OS, Android [http://​­findbugs.sourceforge.​­ ​­net] [9] will die Produktivität der Entwickler und Windows Phone (Abbildung 7) un- [5] Checkstyle: durch eine intelligente Codevervollstän- terstützt. Da sich Red Hat hier stark enga- [http://​­checkstyle.​­sourceforge.​­net] [6] PMD: [http://​­pmd.​­sourceforge.​­net] [7] Egit-Doku: [http://​­wiki.​­eclipse.​­org/​­EGit/​­User_Guide] [8] Maven-Plugin: [http://​­www.​­eclipse.​­org/​­m2e] [9] Eclipse Code Recommenders: [https://​­marketplace.​­eclipse.​­org/​­content/​ ­eclipse‑code‑recommenders] [10]Eclipse Thym: [https://​­www.​­eclipse.​­org/​­thym] [11] Egerrit: [https://​­projects.​­eclipse.​­org/​ ­projects/​­technology.​­egerrit]

Der Autor Frank Pientka ist Senior Software Architect bei der Materna GmbH in Dortmund. Er ist zertifizier- ter SCJP und Gründungsmitglied des ISAQB. Als Autor des Buches zu Apache Geronimo beschäf- Abbildung 7: Eine Auswahl der von Thym unterstützten Geräte. tigt er sich viel mit Java Open Source Software.