Suche
Es werde Licht!

Eclipse Photon: Dritter Meilenstein bringt Erweiterungen für JUnit & Support für Java 9

Dominik Mohilo

© Shutterstock.com / leungchopan

Mars, Neon, Oxygen – und nun Eclipse Photon. Kaum ist das diesjährige Simultaneous Release abgeschlossen, arbeiten die Entwickler der Eclipse IDE schon unter Hochdruck an der nächsten Version, Eclipse Photon (4.8). Die ersten beiden Meilensteine hatten unter anderem einige Verbesserungen der Optik und der User Experience an Bord, wichtigstes Feature des zweien Meilensteins war die Unterstützung von JUnit 5. Im dritten Meilenstein folgen erneut UX-Verbesserungen und die bereits für Eclipse Oxygen.1a verfügbare Unterstützung von Java 9.

Was 2018 wohl für uns in petto hat, das kann keiner vorhersehen. Eine Sache ist aber mehr als wahrscheinlich: Das Simultaneous Release von Eclipse im Sommer des kommenden Jahres. Die Entwicklungsumgebung erreicht damit Version 4.8, Namenspate waren diesmal die Photonen. Vielleicht ist das ja ein besonderes Omen, immerhin bewegen sich die Partikel mit Lichtgeschwindigkeit. Hoffentlich kein negatives Omen ist die Tatsache, dass es sich bei Eclipse Photon um das 13. Simultaneous Release handeln wird. Doch bedenkt man die Pünktlichkeit und die Kontinuität, mit der die neuen Eclipse-Versionen jedes Jahr herausgegeben werden, schreckt die vermeintliche Unglückszahl „13“ nur wenig.

In unserer Interview-Reihe zum kürzlich veröffentlichten Eclipse Oxygen haben wir Leiter verschiedener Eclipse-Projekte auch gefragt, was für Eclipse 4.8 geplant ist:

Eclipse Photon (4.8) M3

Plattform

Für Mac-Nutzer bringt der dritte Meilenstein von Eclipse Photon zunächst einmal Eye Candy. Führt man in Eclipse unter Mac eine Aktion aus, die lange dauert, wird nun nicht mehr ein statischer schwarz-weißer Kreis als Maus-Cursor angezeigt, sondern ein modernes, animiertes Icon (der sogenannte Beach Ball).

Um die Übersicht im Preferences-Dialog zu verbessern und wichtige Funktionen einfacher zugänglich zu machen, wurden zwei dem Menü an der unteren Seite zwei Buttons hinzugefügt: Einer, der die Nutzer direkt zu den Import-Einstellungen führt, und einer für die Export-Einstellungen. Wie gehabt sind diese auch über FILE | Import and File | Export erreichbar.

Die neuen Buttons für Import/Export-Einstellungen / Quelle: Eclipse Foundation

Der Open-Resource-Dialog zeigt nun deutlicher, wie die Suchergebnisse zustande kommen, indem die passenden Buchstaben bzw. Wörter und Muster hervorgehoben werden. Außerdem gibt es neuerdings die Option, sich einen Button für das Rückgängigmachen bzw. Wiederholen (Undo / Redo) anzeigen zu lassen. Diese Buttons sind nicht standardmäßig in der Toolbar, können allerdings über Window | Perspective | Customize Perspective in die Leiste eingefügt werden.

Java Development Tools

Natürlich werden die Java Development Tools (JDT) von Eclipse Photon das neue Java 9 und dessen Features unterstützen, darunter auch Project Jigsaw, das neue Modulsystem. Über den Support von Java 9 und JUnit 5 haben wir bereits ausführlich berichtet. Für Testläufe mit JUnit 5 können nun Tags eingefügt oder von ihnen ausgeschlossen werden. Das geht über den Dialog Configure Tags der JUnit-Startkonfiguration.

Wem die verfügbaren Daten zu Tests mit JUnit nicht ausreichen, die standardmäßig ausgegeben werden, kann ab sofort einen Methodenparameter nach dem Typ TestReporter nutzen. Durch dessen Einsatz werden weitere Informationen über den aktuell laufenden Test in der Konsole angezeigt (ab JUnit Jupiter).

Lesen Sie auch: Eclipse Weekly Special: EE4J, Java EE, Java 9 & OpenJ9 – das war die EclipseCon 2017

Neben den oben genannten Features beinhalten die JDT Quickfixes, um @NonNullByDefault zu Packages, requires directive zu module-info.java und die fehlenden import statement sowie requires directive für unresolved Types hinzuzufügen. Zudem gibt es einen Quickfix für das Erstellen neuer Klassen und Interfaces für unresolved types auf dem service provider.

Plug-in Development Environment & Platform Developers

Im Bereich des PDEs gibt es eine neue Option, sich Warnungen anzeigen zu lassen. Diesmal wurde die Möglichkeit implementiert, sich warnen zu lassen oder einen Error auszugeben, wenn Servicekomponenten ohne Lazy Activation Policy genutzt werden.

Die neue Option für Warnungen des PDE-Compilers / Quelle: Eclipse Foundation

Im generischen Texteditor wird für target-Dateien im dritten Meilenstein von Eclipse Photon das Highlighting und die Codevervollständigung für Parameter-Tags unterstützt. Außerdem hat das PDE nun einen Auffindungsmechanismus für Projekte. Dieser unterstützt das Auffinden von Projekten während des Imports via General | File Sytem.

Plattformentwickler können sich über den neuen Throttler freuen: Bei schnellen und vielfachen UI-Updates kann es dazu kommen, dass die Performanz des Systems leidet und man als Entwickler gar nicht mehr nachkommt, die ausgeschütteten Informationen überhaupt zu lesen.

Die neue Klasse org.eclipse.jface.util.Throttle kann in solchen Fällen nun genutzt werden, um die Updaterate des UI-Threads zu beschränken. Das Ganze könnte bspw. dann wie folgt aussehen:

public class ProgressMonitorPart extends Composite implements
        IProgressMonitorWithBlocking {
    [...]
    private Throttler throttledUpdate;
    [...]
    throttledUpdate = new Throttler(fLabel.getDisplay(), Duration.ofMillis(100), this::updateLabel);
    [...]
    protected void queueUpdateLabel() {
       throttledUpdate.throttledExec();
    }

Weitere Informationen zum dritten Milestone von Eclipse Photon gibt es als News and Noteworthy auf der Seite der Eclipse Foundation. Heruntergeladen werden kann Eclipse 4.8 M1 auf der Download-Seite.



Eclipse Photon (4.8) M2

Plattform

Im Fokus stand im zweiten Meilenstein von Eclipse Photon nicht die Plattform, dennoch gibt es ein paar wichtige Verbesserungen, die es in das aktuelle Release geschafft haben. In den Einstellungen, welche Dateien mit gewissen Content Types verküpft werden sollen, können nun auch ? sowie * als sogenannte Wildcards eingesetzt werden – und das an jeder Stelle des Musters eingesetzt werden (bspw. *-conf.json).

In Sachen optische Verbesserung der Nutzbarkeit können sich erneut die Mac-Nutzer der Eclipse-Plattform freuen. Ab dem zweiten Meilenstein von Eclipse Photon kann die Hintergrundfarbe von Buttons individuell gestaltet werden. Die Performance des Textcursors wurde im GTK3-Port des SWTs verbessert, sodass es nun nicht mehr zu Rucklern kommen sollte und der Cursor in gleichmäßiger Geschwindigkeit blinkt.

Farblich angepasste Buttons auf dem Mac / Quelle: Eclipse Foundation

Java Development Tools

Am 10. September war es endlich so weit: Das Testing Framework JUnit 5 wurde offiziell veröffentlicht. In Eclipse Photon wird die Unterstützung für JUnit 5 in den JDT nativ enthalten sein, für die Unterstützung in Eclipse Oxygen wird man im Marketplace fündig. Erstellt man in Eclipse Photon einen JUnit Test Case mit dem neuen JUnit Test Case Wizard, ist es bereits beim Erstellen möglich, diesen als JUnit Jupiter test zu definieren.

Der neue JUnit Test Case Wizard schlägt automatisch vor die JUnit-5-Bibliothek zum Build Path hinzuzufügen und beim Hinzufügen einer Library über das Java-Build-Path-Fenster kann die Version dieser ausgewählt werden. Auch neu sind die beiden Templates test_jupiter, mit dem eine JUnit-Jupiter-Testmethode erstellt werden kann, und test_factory, mit dem eine @TestFactory-Methode erstellt wird.

Der neue JUnit Test Case Wizard / Quelle: Eclipse Foundation

Standardmäßig sind nun auch die Klassen Assertions, Assumptions, DynamicContainer und DynamicTest Teil der Eclipse Favoriten. Dies erlaubt es Nutzern, statische Methoden dieser Klassen schnell via Content Assist (STRG + Space) bzw. Quick Fox (STRG + 1) zu importieren.

Die JUnit-Ansicht in Eclipse erlaubt die Nutzung zahlreicher neuer Funktionen quasi nativ, so kann man sich in ihr etwa sämtliche Fehlermeldungen gruppierter Assertions im Vergleichsfenster der Resultate anzeigen lassen. Beim Mouseover wird in der JUnit-Ansicht auch die Anzahl an deaktivierten Tests und Tests mit sogenannten Assumption Failures angezeigt.

Testergebnisse vergleichen in Eclipse Photon / Quelle: Eclipse Foundation

Wichtig: In einem Setup, in dem ein alter Eclipse Build, der keine Unterstützung für JUnit 5 hat, einen neuen Eclipse Build mit JUnit 5 Support als Ziel verwendet, wird das Testen nicht unterstützt.

Vom JUnit 5 Support abgesehen, wurde die Lesbarkeit für das Java Syntax Coloring im Dark Theme verbessert. Die Verwendung von Fettungen wurde dafür reduziert und einige Farben, die sich zu ähnlich waren, wurden geändert. Das Resultat sieht durchaus ansehnlich aus.

Das neue Java Syntax Coloring / Quelle: Eclipse Foundation

Plug-in Development Environment & Platform Developers

Der Target-Definition-Editor wurde um einen neuen Tab erweitert. Der Tab Source enthält den Target-Definition-Editor des erweiterungsbasierten Texteditors. Dieser ist gleichläufig mit den anderen Tabs und Änderungen sollten automatisch übernommen werden. Plattformentwickler können sich, wie oben bereits erwähnt, über die individuell gestaltbaren Buttons für Mac freuen; dies geht über den Befehl Button.setBackground().

Auch wichtig ist, dass die Interfaces der Listener im SWT erweitert wurden und nun statische Hilfsmethoden zur Verfügung stellen, die wiederum Lambdas als Listener akzeptieren. Diese Methoden sind Alternativen für die Nutzung von Adapterklassen:

  • org.eclipse.swt.events.ControlListener
  • org.eclipse.swt.events.ExpandListener
  • org.eclipse.swt.events.MenuListener
  • org.eclipse.swt.events.TreeListener
  • org.eclipse.swt.events.MouseTrackListener
  • org.eclipse.swt.events.ShellListener
  • org.eclipse.swt.custom.ControlListener
  • org.eclipse.swt.browser.LocationListener
  • org.eclipse.swt.browser.ProgressListener
  • org.eclipse.swt.browser.VisibilityWindowListener

Plattformentwickler, die transparente Farben vermisst haben, können aufatmen: Im GTK3-Port des Standard Widget Toolkits werden diese ab Eclipse Photon M2 unterstützt. Zu guter Letzt gab es für die CSS-Engine ein Upgrade auf Batik 1.9, das nun an Stelle von Batik 1.8 verwendet wird.

Weitere Informationen zum ersten Milestone von Eclipse Photon gibt es als News and Noteworthy auf der Seite der Eclipse Foundation. Heruntergeladen werden kann Eclipse 4.8 M1 auf der Download-Seite.



Eclipse Photon (4.8) M1

Plattform

Die Usability ist laut Lars Vogel also erneut ein wichtiger Faktor, wenn nicht sogar der wichtigste. Der erste Meilenstein von Eclipse Photon zeigt dies ebenfalls deutlich, sind doch gleich zwei der drei neuen Features reine Verbesserungen im Bereich Nutzerfreundlichkeit. Unter anderem werden nun im Dialog Open Resource die Buchstaben bzw. Wörter hervorgehoben, die mit dem Filter übereinstimmen. So kann man gleich sehen, ob das Suchergebnis zu dem passt, was man hatte finden wollen.

Das Highlighting im Open-Resource-Dialog / Quelle: Eclipse Foundation

Während das obige Feature für alle Nutzer der Eclipse IDE interessant ist, ist eine weitere Verbesserung der Usability ausschließlich für Nutzer des macOS interessant. Bislang war „Monaco“ die Schriftart der Wahl für die Mac-Version von Eclipse bzw. den Text-Editoren der Entwicklungsumgebung. Die Schriftart ist gut lesbar, allerdings hat sie den entscheidenden Nachteil, dass man sie nicht „fetten“ kann. Da viele Code-Editoren allerdings gewisse Schlüsselworte fettgedruckt darstellen, wurde es Zeit, die Schriftart zu wechseln.

Unter Mac wird in Eclipse Photon von Beginn an „Menlo“ als Standardschriftart verwendet, die diesen Nachteil ausgleicht und die Lesbarkeit beim Arbeiten mit Quelltext deutlich verbessern soll – immerhin ist das Lesen des Source Codes eine der Hauptaufgaben des Entwicklers beim Programmieren.

Vorher-Nachher-Vergleich der beiden Fonts Monaco (links) und Menlo (rechts) / Quelle: Eclipse Foundation

Das dritte und letzte Feature, das die Plattform-Entwickler für den ersten Meilenstein umgesetzt haben, ist die Erweiterung des Menüs für die Einstellungen der Content Types. Hier kann man ab sofort die Zuordnungen von Datei-Arten mit dem entsprechenden Editor einsehen, einstellen und entfernen.

Platform Developers

Für Plattform-Entwickler gibt es im ersten Meilenstein von Eclipse Photon ebenfalls drei Neuerungen. Die erste ist erneut ausschließlich für Mac-User interessant: Man kann nun endlich auch auf einem Apple-Rechner Text.setBackground(Color) nutzen, um die Hintergrundfarbe eines Text-Widgets zu definieren. Das funktionierte unter Windows und GTK bereits.

Wer XULRunner als Rendering Engine für den Browser den Vorzug gibt, der muss stark sein: Eclipse/SWT unterstützt es nicht mehr – auf keiner Plattform. Dafür hat der Generic Editor nun zwei neue Extension Points, um eine Auto-Edit-Strategie (org.eclipse.jface.text.IAutoEditStrategy) bzw. einen Reconciler (org.eclipse.jfache.text.reconciler.IReconciler) hinzuzufügen. Auto-Edit-Strategien sind für Syntaxregeln interessant, also etwa für das automatische Hinzufügen von Einrückungen oder das automatische Schließen von Klammern. Reconciler werden hingegen für das sogenannte Code Folding oder Spell Checker genutzt.

Lesen Sie auch unser aktuelles Interview mit Mike Milinkovich zum Oxygen-Release

Weitere Informationen zum ersten Milestone von Eclipse Photon gibt es als News and Noteworthy auf der Seite der Eclipse Foundation. Heruntergeladen werden kann Eclipse 4.8 M1 auf der Download-Seite.

Verwandte Themen:

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.