Endlich verfügbar: Eclipse 4.7 Oxygen

Eclipse Oxygen ist da!

Dominik Mohilo
Oxygen

© Shutterstock. com / Yurii Andreichyn

Pünktlich wie immer erreicht der Release Train für Eclipse Oxygen den Zielbahnhof. Ab sofort steht das Simultaneous Release zum Download bereit. Wir haben uns angesehen, welche Projekte neu sind, welche diesmal nicht dabei sind und auf was für Änderungen bzw. Verbesserungen sich die Nutzer freuen können.

Eclipse Oxygen ist da!

Machen wir eine kleine Zeitreise! Im Jahr 2004 wurde Griechenland mehr als überraschend Europameister im Fußball, Mark Zuckerberg startet Facebook und „Humankapital“ wird Unwort des Jahres. Und genau heute vor 13 Jahren wird mit Eclipse 3.0 die erste Eclipse IDE veröffentlicht, die nicht mehr nur eine erweiterbare Entwicklungsumgebung ist, sondern eine Plattform für Plug-ins und Tools, die Entwicklern das Leben leichter machen soll. Mit Eclipse Callisto wird schließlich das erste Simultaneous Release, wie wir es heute kennen, veröffentlicht.

Mit Eclipse Oxygen erblickt also am heutigen Mittwoch das zwölfte jährliche Sammelrelease von Eclipse-Projekten das Licht der Welt und die Anzahl an beteiligten Entwicklern war mit 951 in diesem Jahr deutlich höher als 2016: Die Eclipse Community kann sich in diesem Jahr über einen Zuwachs von 172 Contributors bzw. Committer in den am SR beteiligten Projekten freuen. Auch die Zeilen an Code sind gestiegen. Für Eclipse Neon verzeichnete man 69 Millionen Zeilen Code, in Eclipse Oxygen sind es rund 71 Millionen.

Eclipse Oxygen – Die Projekte

Zum ersten Mal in der Geschichte ist allerdings die Zahl der teilnehmenden Projekte in diesem Jahr. Ein Grund zur Panik ist das nicht, denn manche Projekte sind einfach nur umstrukturiert worden. So wurde etwa aus den Projekten EMF Query, EMF Transaction und EMF Validation das Projekt EMF Services.

Einige Projekte beteiligen sich in diesem Jahr leider tatsächlich nicht an Eclipse Oxygen. Dazu zählen unter anderem Eclipse Andmore, das Eclipse Gyrex Project und Eclipse Stardust. Ob diese Projekte aber generell nicht mehr teilnehmen ist nicht sicher. Dafür gibt es auch eine Reihe von Projekten, die das erste Mal am Eclipse Release Train teilnehmen. Etwa die Projekte Eclipse USS SDK und das Language Server Protocol (Eclipse LSP4J/LSP4E). Neu dabei sind auch die Projekte PMF, VIATRA und EclEmma. Und einen Rückkehrer gibt es: Das Projekt WindowBuilder war in Eclipse Neon nicht mit an Bord, bei Eclipse Oxygen ist es allerdings wieder vertreten.

Das ist neu in Eclipse Oxygen

Lässt man das Projekt EMF Services außen vor und betrachtet die beiden Projekte des Language Server Protocols als ein Projekt, enthält der Eclipse Oxygen Release Train fünf neue Projekte:

  • Durch die Projekte Eclipse LSP4J/LSP4E wird das Language Server Protocol offiziell Teil des Eclipse-Universums. Das LSP stellt Sprachspezifische Features über einen Sprachserver zur Verfügung.
  • Das Tool für Java Code Coverage Eclipse EclEmma exisitert schon länger und bringt nun die Code Coverage Analyse direkt in die Eclipse Workbench.
  • Das Framework Eclipse PMF stellt grundlegende Funktionen für die Nutzung von PIM level UI Modellierungssprachen zur Verfügung.
  • Das Eclipse VIATRA Framework unterstützt die Entwicklung von Modelltransformationen mit einem Fokus auf Event-getriebenen reaktiven Transformationen.
  • Das Eclipse USS SDK stellt den Nutzern eine Java-Implementierung des User Storage Service REST APIs zur Verfügung und erlaubt die einfache Nutzung des USS für Eclipse-Projekte, der mit Eclipse Neon eingeführt wurde.

Eine Vollständige Liste mit Neuerungen für Eclipse Oxygen gibt es in den offiziellen Release Notes. Zu den Highlights zählt im Bereich der Plattform der neue und erweiterbare Generic Editor, der bereits jetzt ganz wunderbar mit den Projekten LSP4E und TM4E zusammenarbeitet. Die neuen Launch Groups können beim Start festgelegt werden und erlauben es, verschiedene Startkonfigurationen gleichzeitig zu nutzen. Das verbesserte String Matching im Quick Access (STRG + 3) sorgt für eindeutigere und hilfreichere Suchergebnisse.

Lesen Sie auch: Eclipse Oxygen Highlights: Das ist neu in Eclipse 4.7

Wir haben bereits mehrfach über die Unterstützung von Java 9 in Eclipse berichtet. Auf der Devoxx US hat Mike Milinkovich höchstpersönlich den Support für das Release-Datum der neuen Java-Spezifikation versprochen. Eine Vorschau dafür kann man sich im Marketplace besorgen, von einem Einsatz dieser Beta-Version in der Produktion wird allerdings dringend abgeraten.

Eclipse Oxygen: Das sagen die Macher

Natürlich haben wir, exklusiv für unsere Leser, auch einmal bei der Eclipse Foundation selbst nachgehorcht, was sie zur aktuellen Version der Entwicklungsumgebung halten. In Kürze werden wir auf JAXenter vollständige Interviews mit einigen Projektleitern und offiziellen Vertretern der Eclipse Foundation veröffentlichen – stay tuned! Hier ein kleiner Vorgeschmack:

Das Eclipse-Oxygen-Release bringt ein paar tolle Leckerbissen für Java-Entwickler mit, darunter beispielsweise den Support für JUnit 5. Dann ist da noch das Projekt Eclipse EclEmma, das kürzlich zur Eclipse Foundation umgezogen ist und standardmäßig eine Analyse der Testabdeckung für Java-Code mitbringt.

Wayne Beaton, Director of Open Source Projects

 

Meiner Meinung nach ist Oxygen das erste Release unter den letzten paar Veröffentlichungen, bei dem sich das Java Tooling tatsächlich signifikant verbessert. Es wurden neue Tools für die Testabdeckung in das Tooling integriert. Auch der Java-Debugger hat ein paar praktische neue Features dazu bekommen, wie Tracepoint, Trigger Breakpoint oder Last Method Call Return Value in der Variable View. Das sind tolle Neuigkeiten für alle, die Eclipse für die Java-Entwicklung nutzen.

Mikaël Barbero, Senior Platform Developer

Webinarserie der Eclipse Foundation

Auch in diese Jahr hat die Eclipse Foundation zum Simultaneous Release einige Projektleiter und Entwickler gewinnen können, um eine Webinarserie auf YouTube zu veranstalten. Bereits vor dem Release gab es Talks von Marc R. Hoffmann (EclEmma), Kaloyan Raev (PHP Development Tools) sowie Sven Efftinge und Miro Spönemann (Xtext, LSP, Tracking Code Generator). Diese gibt es auf dem offiziellen YouTube-Kanal der Foundation. Lakshmi P Shanmugam hat außerdem ein Webinar zu den Neuerungen an der Eclipse Plattform und dem Eclipse SDK gegeben:

Lakshmi P Shanmugam works for IBM and has been part of the Eclipse open source project for about 9 years. She is currently the co-lead of Eclipse Platform SWT and has been a committer on the project for about 8 years. She has been an evangelist of Eclipse process and technologies and has presented in several Eclipse Day sessions and Eclipse Demo camps in Bangalore.

Sopot Cela und Mickael Istria werden am 28. Juni den neuen Generic Editor und das Language Server Protocol vorstellen. Am 29. Juni schließt die Webinarserie dann mit dem Talk von Mélanie Bats und Stéphane Bégaudeau über Eclipse Sirius. Wir haben bereits im Vorfeld der Veröffentlichung von Eclipse Oxygen Mélanie Bats interviewt, die uns einen großartigen Einblick in die Neuerungen für Eclipse Sirius in Oxygen und die Pläne für Eclipse Photon gegeben hat. Unser Interview mit Mickael Istria über den Generic Editor können Sie bald hier auf JAXenter lesen.
 

Gratulation an die Eclipse Community – und viel Spaß mit Eclipse Oxygen!




Update vom 16. Mai 2017

Eclipse Oxygen (4.7) M7

Knapp sechs Wochen wird es noch dauern, bis Eclipse Oxygen endlich hochoffiziell veröffentlicht wird. Der Release Train steht aber deswegen keinesfalls still, gerade erreichte er den siebten und damit letzten Meilenstein. Im Fokus stand erneut die User Experience und die einfachere bzw. intuitivere Bedienung der Entwicklungsumgebung.

Plattform

Bevor wir zu den Features der aktuellsten Testiteration kommen, hier die schlechten Neuigkeiten für Nutzer von PPC 32bit. Diese Linux-Plattform wird zukünftig nicht mehr unterstützt und es gibt keine Builds mehr hierfür. Mac-User hingegen können sich über signierte Apple Disk Images für Mac OS X freuen (*.dmg-Datei), in denen das Eclipse SDK und die Eclipse Plattform verfügbar sind.

Wer das Dark Theme nutzt, hatte zuweilen Probleme damit, dass CSS Nodes überschrieben wurden. Durch die nun mögliche Nutzung von Pseudo-Selektoren in CSS-Einstellungsdefinitionen, können Plug-ins diese CSS Nodes nun erweitern, anstatt sie zu überschreiben. Hierdurch wird das Dark Theme konsistenter. Für das standardisierte Dark Theme von Eclipse gibt es in Eclipse Oxygen vordefinierte Stylings für Tabellen- und Tree-Header, diese werden ab M7 auch auf Mac unterstützt.

Vergleich des Dark Themes unter Oxygen M6 & M7 / Quelle: Eclipse Foundation

Für Eclipse-Nutzer, die öfter mal einen Wechsel des Workspaces vollziehen, ist Eclipse Oxygen ein wahrer Segen: Endlich können die Einstellungen mit einem Klick auf einen neuen oder einen bereits existierenden Workspace kopiert werden. Außerdem ist in Oxygen (4.7) M7 der Support für Apache Ant 1.10.1 implementiert worden.

Java Development Tools

Übersichtlichkeit wird im siebten Meilenstein von Eclipse Oxygen groß geschrieben und daher wurden auch die JDT angepasst. So ist es ab sofort möglich, veraltete Fields und Methods in unterschiedlichen Ansichten auszublenden und damit die Übersichtlichkeit zu steigern. Auch die Suchansicht wurde aufgebohrt, Nutzer können die Ergebnisse nun nach Projekt, Package, Datei oder Typ gruppieren, standardmäßig wird nach Projekt gruppiert.

Die neuen Sortierfunktionen in der Suchansicht / Quelle: Eclipse Foundation

Wer den Wert eines Annotation-Type-Elements erfahren möchte, braucht in Eclipse Oxygen dazu lediglich den Cursor auf den entsprechenden Teil im Quelltext legen. Der Wert wird dann schwebend in der Javadoc-Ansicht dargestellt. Eine weitere Änderung betrifft die Variables-Ansicht: Dort werden Objekte nun standardmäßig in Form einer logischen Struktur dargestellt.

Plug-in Development Environment (PDE)

Der PDE-Feature-Editor erlaubt nun die Verwaltung der Versionen eingebauter Features, zuvor war dies lediglich für eingebaute Plug-ins möglich. Im entsprechenden Tab (Included Features) ist ein neuer Button implementiert worden, der die Synchronisation des aktuellen Features mit den tatsächlichen Versionen der eingebauten Features ermöglicht. Er kann auch genutzt werden, um die Versionen eingebauter Features festzulegen, die beim Builden synchronisiert werden sollen.

Im Dialog der Startkonfiguration gibt es ebenfalls zwei neue Buttons: Im Tab Tracing ist es nun per Mausklick möglich, die aktuelle Auswahl oder sämtliche Einträge auf die Standardeinstellungen zurückzusetzen. Der neue Quick Fix, der über die Tastenkombination STRG + 1 aufgerufen wird, gibt Nutzern die Möglichkeit, die Schwere eines API-Tool- oder PDE-Compiler-Problems festzulegen.

Neue Buttons im Tracing-Tab / Quelle: Eclipse Foundation

Platform Developers & Euinox

Tabellen- und Tree-Header im Standard Widget Toolkit (SWT) können ab Eclipse Oxygen M7 auch via CSS Engine gestyled werden, etwa so:

Table, Tree {
    swt-header-color: #CCC;
    swt-header-background-color: #383D3F;
}

Die APIs für die anpassbaren Tabellen- und Tree-Header sind kompatibel mit Windows, Linux (GTK3) und Mac. M7 hält außerdem ein neues API bereit: Image#getImageData (int zoom) gibt ImageData für das angegebene Zoomlevel zurück. Bei der Auswahl einer bestimmten Update-Seite wird im Installationsdialog ab Eclipse Oxygen M7 Feedback zum Status des Downloads angezeigt (Equinox).

Eine vollständige Liste der Änderungen in Eclipse 4.7M7 gibt auf der New-and-Noteworthy-Seite, herunterladen kann man sich den neuesten Meilenstein von Eclipse Oxygen auf der Downloadseite von Eclipse.



Update vom 13. März 2017

Eclipse Oxygen (4.7) M6

Etwas mehr als drei Monate werden noch ins Land ziehen, bis Eclipse Oxygen endlich den Zielbahnhof „User“ erreicht. Wer bereits heute die aktuellsten Features und Entwicklungen ausprobieren möchte, für den eignen sich die Milestone Releases. Gerade erschien der sechste Meilenstein von Eclipse Oxygen, bei dem besonders die Java Development Tools (JDT) und das Plug-in Development Environment (PDE) im Fokus standen.

Plattform

In Eclipse 4.7M6 hat der generische Editor der Plattform eine Erweiterung erhalten. Dank dieser kommen Nutzer nun auch für .patch– und .diff-Dateien in den Genuss des Syntax Highlightings. Wie gehabt kann der Editor per Rechtsklick | Open with | Generic Text Editor erreicht werden. Eine kleine Verbesserung der Nutzerfreundlichkeit liegt in der Verwendung von Verben anstelle von OK, No und Yes im Exit- bzw. Restart-Dialog. Hierdurch sollen die Dialoge direkter und spezifischer für die Nutzer sein.

Syntax Highlighting für .patch- & .diff-Dateien / Quelle: Eclipse Foundation

Syntax Highlighting für .patch- & .diff-Dateien / Quelle: Eclipse Foundation

Java Development Tools (JDT)

Nutzer von hochauflösenden Displays können sich in jedem Fall auf Eclipse Oxygen freuen: Die Java Development Tools kommen mit einem Paket von Icons in hoher Auflösung für Java-Elemente. Eine weitere Verbesserung der UX ist der neue Shortcut Run to Line im Annotation Ruler, der per Tastenkombination STRG + ALT + Linksklick ausgeführt wird. Ist der Cursor bereits in der Zeile, wird auch weiterhin STRG + R unterstützt.

Die Nutzung von Collections birgt eine gewisse Gefahr. In manchen Fällen kann es vorkommen, dass ein gewisser Anwendungsfall den Typecheck des Compilers besteht, aber noch immer Type Errors enthält. Das kann zu einem unerwarteten Verhalten der Runtime führen. Daher wurde dem Java Compiler von EclipseOxygen in M6 eine neue Abfrage hinzugefügt, die die verbreitetsten Bugs in der Hinsicht entdecken soll.

Die neue Kommentarzeilenmechanik / Quelle: Eclipse Foundation

Die neue Kommentarzeilenmechanik / Quelle: Eclipse Foundation

Im Profileditor des Code Formatters gibt es eine neue Option, die die Länge von Kommentare vom tatsächlichen Startpunkt an zählt, nicht vom Start der Zeile. Bei stark eingerückten Kommentaren wird so mehr Platz zur Verfügung gestellt, gleichzeitig aber sehr lange Kommentare begrenzt, die am Zeilenbeginn anfangen.

Plug-in Development Environment (PDE)

Das PDE wurde mit der Unterstützung der OSGi Declarative Services Annotations 1.3 ausgestattet. Dieses Update beinhaltet unter anderem Component Property Types für das Handling von stark-typisierten Konfigurationsparametern, Field Strategy für die Dependency Injection und Scoping für Services und References. Über die allgemeinen Einstellungen oder via Project Properties | Plug-in Development | DS Annotation kann das neue Feature aktiviert werden. Dort muss jeweils die Option Generate descriptors from annotated sources ausgewählt werden.

Für p2.inf-Dateien ist von Eclipse Oxygen M6 an der Properties File Editor der Standard-Editor. Überarbeitet wurde auch der Quick Fix für das Hinzufügen einer Import-Package– oder Require-Bundle-Abhängigkeit im MANIFEST.MF. Er fügt nun auch das entsprechende Import-Statement zum unresolved Type im Java-Editor hinzu.

Platform Developers

Auch Plattform-Entwickler werden im neuen Meilenstein von Eclipse Oxygen nicht vergessen. So sind die Klassen ImageDescriptor und CompositeImageDescriptor in org.eclipse.jface.resource nun auch vollständig für die Verwendung von HiDPI-Bildern bereit. Zuvor galt dies lediglich für ImageDescriptor#createFromURL (URL).

Auf Linux- und Windows-Plattformen werden nun zudem Hintergrund- und Vordergrundfarben in (SWT) Tabellen-Headern unterstützt. Nutzer können die Tabellenköpfe dank der neuen APIs individuell anpassen.

Eine Tabelle mit angepasstem Header in Linux (GTK3) / Quelle: Eclipse Foundation

Eine Tabelle mit angepasstem Header in Linux (GTK3) / Quelle: Eclipse Foundation

APIs für die Vordergrundfarbe des Tabellenkopfs:
Table#getHeaderForeground()
Table#setHeaderForeground(Color)

APIs für die Hintergrundfarbe des Tabellenkopfs:
Table#getHeaderBackground()
Table#setHeaderBackground(Color)

Eine vollständige Liste der Änderungen in Eclipse 4.7M6 gibt auf der New-and-Noteworthy-Seite, herunterladen kann man sich den neuesten Meilenstein von Eclipse Oxygen auf der Downloadseite von Eclipse.



Update vom 30. Januar 2017

Eclipse Oxygen (4.7) M5

Im fünften Milestone von Eclipse Oxygen setzen die Entwickler die im vorherigen Milestone begonnene Verbesserung der Usability nahtlos fort. Insbesondere die Eclipse Plattform wurde um einige Funktionen erweitert, die die Bedienung und die Arbeit mit der Entwicklungsumgebung vereinfachen. Außerdem unterstützt Equinox nun die OSGi R6 Spezifikation für Declarative Services.

Plattform

Auch Milestone Nummer 5 von Eclipse Oxygen (4.7) bringt ein neues Feature für den Quick Access. Über STRG + 3 lässt sich der nützliche Helfer aufrufen, der sich mehr und mehr zum Kernfeature der Eclipse Plattform entwickelt. Ab M5 können sowohl * als auch ? als sogenannte Wildcards verwendet werden, wodurch sich die Suche allgemeiner formulieren lässt.

Die untere Statusleiste lässt sich, ebenfalls über den Quick Access, ab dem aktuellen Build ausblenden. Das Kommando Toggle Statusbar sorgt für mehr Platz in der Entwicklungsumgebung. Natürlich kann diese Funktion auch über das Menü Window |Appearance | Hide (Show) Status Bar angesteuert werden.

Die neuen Wildcards im Quick Access / Quelle: Eclipse Foundation

Die neuen Wildcards im Quick Access / Quelle: Eclipse Foundation

Nutzerfreundlichkeit lag auch bei der Überarbeitung der neuen Launch Groups (Teil der Run/Debug-Konfiguration) im Fokus des Plattform-Teams, es soll nun intuitiver zu bedienen sein. Auch neue Möglichkeiten zur Konfiguration sind im neuen Milestone enthalten: Wait for console output (regexp) und Adopt launch if already running. Ersteres ist eine Aktion, die nach dem Start durchgeführt wird und es erlaubt, die Ausführung von Launch-Group-Elementen so lange zu verzögern, bis eine bestimmte Ausgabe in der Konsole des jeweiligen Gruppenelements erscheint. Letzteres erlaubt es zu bestimmen, wie sich eine Gruppe verhält, wenn die vom Launch-Group-Element referenzierte Launch-Konfiguration bereits läuft.

Bei der Auswahl vom Feature Name im Model Editor kann mit STRG + LEERTASTE jetzt der Inhaltsassistent aufgerufen werden. Zudem sind die Elemente, die im Menü Add child vorgeschlagen werden, in einer Liste zusammengefasst, die lediglich erlaubte Elemente beinhaltet.

Java Development Tool

Mit dem JSR 308 wurden sogenannte Type Annotations in Java 8 implementiert. Die Regeln zur Platzierung dieser sind, so die Entwickler der Java Development Tools (JDT) in Eclipse, manchmal ein wenig überraschend. Für den Fall, dass es zu Fehlern kommt, wurde ein neuer Quick Fix in Eclipse eingebaut, der falschplatzierte Type Annotations an die korrekte Stelle verschiebt.

Über das Menü Run ist ein neues Feature mit Namen Toggle Tracepoint zu erreichen. Hierdurch lässt sich ein konditionaler Breakpoint erstellen, der das systrace-Template verwendet, das Klassen- und Methodennamen ausgibt.

Quick Fix für das Platzieren von Type Annotations / Quelle: Eclipse Foundation

Quick Fix für das Platzieren von Type Annotations / Quelle: Eclipse Foundation

Plug-in Development Environment (PDE)

Der allgemeine Editor der Plug-in Entwicklungsumgebung wurde erweitert, sodass man mit ihm Zieldefinitionsdateien (*.target-Dateien) editieren kann. Auch Syntax-Highlighting für die meistgenutzten Keywords ist darin enthalten sowie Content Assist unter anderem für Tags und deren Attribute.

Erweitert oder implementieren Nutzer ein Interface, das als @noimplement markiert ist, wird dies ab sofort als API-Leak reported. Dies ist notwendig, da das Hinzufügen von einem Field oder einer Method zu einem mit @noimplement markierten Interface einen Client zerstören könnte. Als Breaking Change wird ab Eclipse Oxygen M5 auch das Hinzufügen von einem durch Clients erweiterbaren Field zur Klasse geflaggt.

Hinzu kommen Template-Namen, die ein wenig deskriptiver sind und die Möglichkeit, einen Textfilter beim Auswählen von Plug-ins über die Wizards Export.. | Deployable plug-ins and fragments und Export.. | Deployable features zu benutzen.

Ein Textfilter hilft bei der Auswahl von Plug-ins / Quelle: Eclipse Foundation

Ein Textfilter hilft bei der Auswahl von Plug-ins / Quelle: Eclipse Foundation

Platform Developers

Die Java 8 Standard-Methode Iterable#spliterator() wird ab sofort von org.eclipse.core.runtime.ListenerList überschrieben und stellt die Methoden stream() und parallelStream() zur Verfügung. Das BREE aller Plug-ins, die ListenerList nutzen, muss mindestens JavaSE-1.8 sein, damit sie ordentlich gegen Oxygen und kommende Versionen kompilieren.

Eclipse Oxygen (4.7) M5 bringt außerdem den neuen Konstruktor org.eclipse.jface.text.contentassist.ContentAssistant (boolean asynchronous) und das neue API ContentAssistant#addContentAssistProcessor (IContentAssistProcessor, String). Mit dem neuen API lassen sich mehrere Prozessoren zu einem Content Assistant direkt hinzufügen.

Eine vollständige Liste der Änderungen in Eclipse 4.7M5 gibt auf der New-and-Noteworthy-Seite, herunterladen kann man sich den neuesten Meilenstein von Eclipse Oxygen auf der Downloadseite von Eclipse.



Update vom 12. Dezember 2016

Eclipse Oxygen (4.7) M4

Der dritte Milestone von Eclipse Oxygen hatte sich weniger mit der Optik und mehr mit dem Tooling an sich beschäftigt. Der in der vergangenen Woche erschienene vierte Meilenstein hat nun wieder zahlreiche Verbesserungen im Bereich der Plattform erfahren. Im Fokus stand Bei Eclipse 4.7M4 die Anpassung einiger grafischer Schwächen und erneut die Erhöhung der Nutzerfreundlichkeit.

Plattform

Seit einiger Zeit ist der Quick Access (zu erreichen über STRG + 3) die heimliche Allzweckwaffe der Eclipse-Plattform: Zahlreiche neue Features wurden in den letzten Monaten hierfür implementiert. Für den vierten Meilenstein von Eclipse Oxygen wurde die Suchfunktion noch einmal verbessert. Es ist ab sofort möglich, auch nach Teilbeschreibungen zu suchen. Die Suche nach clone repo etwa findet das Kommando Clone a Git Repository. Das verbesserte sogenannte String Matching funktioniert auch in Bezug auf Namen von Kategorien oder innerhalb von Klammern.

Verbessertes String Matching in Eclipse Oxygen / Quelle: Eclipse Foundation

Verbessertes String Matching in Eclipse Oxygen / Quelle: Eclipse Foundation

Doppelte Elemente werden nun ebenfalls nicht mehr in den Ergebnissen angezeigt. Falls ein Element bereits unter dem Punkt Previous Choices aufgeführt wurde, wird es nicht mehr in anderen Kategorien angezeigt.

Es gibt im Bereich der Eclipse Platform zudem eine neue Möglichkeit für die Startkonfiguration: Die Launch Group. Diese ermöglicht es, verschiedene Startkonfigurationen nacheinander auszuführen und nach jeder einzelnen verschiedene Aktionen zur Durchführung zu definieren. Wählt man keine aus, wird das nächste Gruppenmitglied direkt gestartet. Die Option Wait until terminated startet die nächste Startkonfiguration erst dann, wenn die vorherige geschlossen wurde und mit dem Befehl Delay kann man eine Verzögerung um eine festgelegte Zahl von Sekunden forcieren.

Die neuen Launch Groups / Quelle: Eclipse Foundation

Die neuen Launch Groups / Quelle: Eclipse Foundation

Rein optisch wurde die Progress-Ansicht angepasst, die sich nun, bei Verwendung des Eclipse Dark Themes, farblich nicht mehr unterscheidet. Auch der schlechte Kontrast des Heap Status unter Linux ist nun behoben und die Anzeige endlich lesbar.

Java Development Tools (JDT)

Farblich wurde auch bei den Java Development Tools ein wenig nachgebessert: Die Optik der Javadoc wurde dem allgemeinen Farbschema entsprechend geändert und die Unterstützung für das Dark Theme implementiert. Dadurch wurde die Unstimmigkeit unter Linux, die seit GTK 3.04 herrschte, behoben.

Java-Entwickler konnten bereits seit einiger Zeit von dem automatischen Einfügen von Semikolons an den richtigen Stellen im Code profitieren. Die gleiche Option für das automatische Einfügen von Klammern an den korrekten Stellen im Code ist ab sofort standardmäßig aktiviert.

Plug-in Development Environment (PDE)

Die Plug-in-Entwicklungsumgebung stellt nun eine Option zur Verfügung, mit der sich Features in Hierarchien organisieren lassen. Hierfür wird die Unterstützung von Nested Categories> aus dem Category Definition Editor verwendet. Auch die Nutzung eines Textfilters beim Auswählen von Plug-ins über den Wizard New | Feature Project ist nun möglich.

Hierarchische Organisation von Features / Quelle: Eclipse Foundation

Hierarchische Organisation von Features / Quelle: Eclipse Foundation

In den Einstellungen für die Plug-in Entwicklung (Plug-in Development | General settings for plug-in development) kann man ab Milestone 4 von Eclipse Oxygen nun spezifizieren, ob Workspace-Plug-ins die Plug-ins der Zielplattform, die die gleiche ID haben, überschreiben sollen. Diese Option ist standardmäßig aktiviert, kann aber deaktiviert werden. Bei Deaktivierung werden sämtliche Plug-in-Versionen des Workspaces und der Zielplattform genutzt und für die jeweilige ID wird das beste verfügbare Plug-in ausgewählt.

Eine vollständige Liste der Änderungen in Eclipse 4.7M4 gibt auf der New-and-Noteworthy-Seite, herunterladen kann man sich den neuesten Meilenstein von Eclipse Oxygen auf der Downloadseite von Eclipse.



Update vom 31. Oktober 2016

Eclipse Oxygen (4.7) M3

Pünktlich nach Vorgabe des Simultaneous Release Plans erschien am Freitag vergangener Woche der dritte Milestone von Eclipse Oxygen. In diesem Update lag vor allem der Bereich der Plattform-Entwickler im Fokus, für den der Meilenstein neben einem neuen Editor auch Lambdas als Listener im Gepäck hat. Doch auch die User Experience von Eclipse wurde weiter verbessert und für die Java Development Tools und das Plug-in Development Environment gibt es neue Features.

Plattform

Zunächst gibt es gute Nachrichten für Linux-Nutzer; die Liste von externen Browsern, die Eclipse unter Linux erkennt, wurde aktualisiert. Sie umfasst nun:

  • Firefox (/usr/bin/firefox)
  • Chrome (/usr/bin/google-chrome)
  • Chromium (/usr/bin/chromium-browser)
  • Epiphany/Gnome Web (/usr/bin/epiphany)
  • Konqueror (/usr/bin/konqueror)

Der Quick Switch Editor, den man per Tastenkürzel STRG + E aufruft, listet alle offenen Editoren auf, auch das Filtern ist mit diesem Kommando möglich. Dies funktioniert ab dem aktuellen Milestone auch, wenn man eine bestimmte Ansicht im Bereich des Editors ausgewählt hat. Mit sogenannten Wildcards kann die Auflistung gefiltert werden, Editoren können Nutzer durch Verwendung von Maus oder Tastatur auswählen.

Der verbesserte Quick Switch Editor / Quelle: Eclipse Foundation

Der verbesserte Quick Switch Editor / Quelle: Eclipse Foundation

Zudem kann man sich durch erneutes Betätigen des Kürzels STRG + E durch die Liste bewegen, oder wie bisher die Pfeiltasten hierfür verwenden.

Auch die Kontextmenüs der Plattform wurden weiter verbessert, um die Nutzerfreundlichkeit zu vergrößern. Wer etwa die Beschreibung oder den resource qualified name eines Errors, einer Warnung oder eines Tasks ins Clipboard kopieren möchte, kann dafür nun das neue Kontextmenü Copy Details verwenden. Darin enthalten sind entsprechende Kommandos für die oben genannten Aktionen.

Nutzt man den Project Explorer und Working Sets als Top-Level-Elemente, kann man sich über das Menü Top Level Elements nun auch die Gruppe Other Projects anzeigen lassen. Darin enthalten sind Projekte, die nicht in einem der gerade aktiven Working Sets enthalten sind. Das neue Kontextmenü Recent Filters hat ebenfalls im Project Explorer gehalten: Wie der Name bereits sagt, kann man sich so die zuletzt genutzten Filter anzeigen lassen.

Auch an der Optik der Plattform wurde wieder ein wenig gearbeitet und die Abstände unter der Quick-Access-Box wurden reduziert. Über das Drücken von F2 im Dialog Open Perspective kann man sich außerdem die Beschreibung einer Perspective anzeigen lassen, sofern sie vom entsprechenden Plug-in zur Verfügung gestellt wird.

So lassen sich Other Projects anzeigen / Quelle: Eclipse Foundation

So lassen sich Other Projects anzeigen / Quelle: Eclipse Foundation

Java Development Tools (JDT)

Mit dem dritten Milestone wurde ein experimenteller neuer Java-Index in die JDT eingepflegt. Dieser Index ist standardmäßig aktiviert und kann über die Einstellungen abgestellt werden (Preferences | Java). Derzeit sollte der neue Index die Arbeit mit den Entwicklungs-Tools nicht beeinflussen, allerdings erhoffen sich die Entwickler der JDT große Verbesserungen der Performance im Bereich Typen-Hierarchien und in Szenarios mit vielen JARs.

Für das Debuggen von verteilten Systemen werden nun Verbindungen von mehreren virtuellen Maschinen vom Remote Java Application „Socket Listen“ Type unterstützt. Im entsprechenden Fenster steht eine 0 für unbegrenzte Verbindungen, man kann allerdings auch eine fixe Anzahl festlegen.

Verbindungen von mehreren VMs wird nun unterstützt / Quelle: Eclipse Foundation

Verbindungen von mehreren VMs wird nun unterstützt / Quelle: Eclipse Foundation

Wer Probleme mit dem Hot Code Replace (HCR) hatte oder Code-Veränderungen im Debugging-Ziel verhindern möchte, kann dieses Feature nun deaktivieren.

Plug-in Development Environment (PDE)

Erstellt man eine neue Eclipse-Application-Startkonfiguration, aktiviert die Plug-in-Entwicklungsumgebung nun die Option, Plug-ins automatisch vor dem Start zu validieren. Dies soll Entwicklern helfen, fehlende Plug-in-Abhängigkeiten zu erkennen, bevor die Anwendung tatsächlich gestartet wird. Außerdem soll es dadurch für neue Plug-in- und RCP-Entwickler leichter werden, allgemeine Probleme zu identifizieren. Natürlich kann auch dieses Feature deaktiviert werden (im Startkonfigurationsdialog des Tabs Plug-in).

Um die neue und erweiterbare Funktionalität des Generic Editors zu zeigen, wurde der PDE ein Plug-in-Template hinzugefügt. Bei Auswahl wird ein .target-Dateieditor mit Syntax-Highlighting erstellt. Referenzen zu Plug-ins sucht man am besten über das Menü Search | Plug-ins. Diese Suche kann nun auch dazu verwendet werden, um in Features nach Referenzen zum entsprechenden Plug-in zu finden.

Platform Developers

Im Standard Widget Toolkit (SWT) wurde das SelectionListener-Interface dafür fit gemacht, die statischen Hilfsmethoden SelectionListener#widgetSelectedAdapter(Consumer c) und SelectionListener#widgetDefaultSelectedAdapter(Consumer c) zur Verfügung zu stellen. Diese akzeptieren Lambdas und Methodenreferenzen als Listeners.

Für Plattform-Entwickler wurde ein neuer und leicht erweiterbarer Generic Text Editor implementiert. Es soll nun leichter sein, die Unterstützung für neue Sprachen hinzuzufügen. Der Generic Editor nutzt die bestehende Infrastruktur des Eclipse Editors, allerdings kann er – anders als bisherige Editoren – einfach durch Extension Points erweitert werden. So muss nicht für jede neue Funktionalität ein neuer Editor erstellt werden.

In diesem Beispiel wird gezeigt, wie man den Generic Editor via Extensions erweitern kann:

<extension point="org.eclipse.ui.genericeditor.contentAssistProcessors">
   <contentAssistProcessor
         class="org.eclipse.ui.genericeditor.examples.dotproject.NaturesAndProjectsContentAssistProcessor"
         contentType="org.eclipse.ui.genericeditor.examples.dotproject">
   </contentAssistProcessor>
</extension>
<extension point="org.eclipse.ui.genericeditor.hoverProviders">
   <hoverProvider
         class="org.eclipse.ui.genericeditor.examples.dotproject.NatureLabelHoverProvider"
         contentType="org.eclipse.ui.genericeditor.examples.dotproject"
         id="natureLabelHoverProvider">
   </hoverProvider>
</extension>
<extension point="org.eclipse.ui.genericeditor.presentationReconcilers">
   <presentationReconciler
         class="org.eclipse.ui.genericeditor.examples.dotproject.BlueTagsPresentationReconciler"
         contentType="org.eclipse.ui.genericeditor.examples.dotproject">
   </presentationReconciler>
</extension>

Diese neuen Extension Points erhalten als Parameter reguläre Plattform-Klassen (IPresentationReconcilier, ITextHover, ICompletionProposalComputer), um dem Generic Editor bestimmte Verhaltensweisen hinzuzufügen. Es ist kein neues Java-API notwendig.

Sämtliche Änderungen des aktuellen Milestones und insbesondere eine detaillierte Erklärung, wie der neue Generic Text Editor funktioniert und erweitert werden kann, gibt es in den Release Notes des aktuellen Milestones. Herunterladen kann man sich Eclipse 4.7M3 auf der Download-Seite der Eclipse Foundation.



Update vom 22. September 2016

Eclipse Oxygen (4.7) M2

Da Java 9 erneut verschoben wurde und somit voraussichtlich erst nach Veröffentlichung von Eclipse Oxygen erscheinen wird, bleibt genug Zeit, sich in Milestone #2 der Usability zu widmen. Natürlich dürfte dieser Fokus auch ein klein wenig an der derzeitigen Unzufriedenheit mit den Nutzerzahlen liegen. Die Hoffnung des Platform UI Leads Lars Vogel ist jedenfalls, dass dieses Update die Liebe der Nutzer zur Eclipse IDE steigert.

Die Richtung, die mit dem zweiten Milestone von Eclipse 4.7 eingeschlagen wurde, ist jedenfalls eine gute: Statt mit neuen – möglicherweise überflüssigen – Features zu locken, wird die Zufriedenheit der Nutzer angesprochen. Es wird also wieder einmal auf Hochtouren gearbeitet: Auch am dritten Milestone, der für den 28. Oktober angekündigt ist. Für kommende Woche steht zudem das Update Release Neon.1 an.

Plattform

Verwendet man einen Compare-Editor, kann man ab sofort einen Button nutzen, der es ermöglicht, die linke und rechte Ansicht zu vertauschen. In den Einstellungen des Editors kann jetzt zudem die Anordnung des Vergleichs verändert werden.

Die neue Swap-Funktion im Compare Editor / Quelle: Eclipse Foundation

Die neue Swap-Funktion im Compare Editor / Quelle: Eclipse Foundation

Wie bereits in Eclipse Weekly besprochen, wurden die Menüpunkte Switch Workspace sowie Restart verschoben und sind nun im Dateimenü ganz unten (über Exit in Windows sowie Linux und ganz unten in Mac OS X) zu finden.

Ein weiteres Feature, das wir in der oben genannten Ausgabe von EW bereits vorgestellt haben, ist die Möglichkeit, nach einem Begriff in der Hilfe zu suchen, der im Quick-Access-Fenster eingegeben wurde. Unter Quick Access (STRG + 3) werden jetzt im Übrigen auch die entsprechenden Kommando-Icons angezeigt, sofern sie verfügbar sind.

Icons für Kommandos im Quick Access / Quelle: Eclipse Foundation

Icons für Kommandos im Quick Access / Quelle: Eclipse Foundation

Weitere Änderungen im Bereich Plattform sind das reduzierte Padding um die TabItems ab GTK+ 3.20 und die Möglichkeit zum Auf- und Zuklappen von Tree Items ab Version 3.6 von GTK+. Interaktive Pop-ups, wie etwa Quick Outline aus den Java Development Tools, verwenden nun nicht mehr die Farben der Plattform-Tooltipps.

Der Dialog Filters für die Problems-, Bookmarks- und Tasks-Ansichten wurde überarbeitet und sind ab Eclipse Oxygen M2 einfacher gestaltet. Er ist außerdem per Button in den entsprechenden Ansichten direkt erreichbar. Hinzu kommen einige neue und hochauflösende Grafiken, die alte und etwas verschwommene Bilder ersetzen. Im Project Explorer-Menü wurde Customize View… in Filters and Customization… umbenannt.

Java Development Tools (JDT)

In der Ansicht Variables im Java-Tooling der Eclipse IDE wird nun die letzte Method, die während Step Into, Step Over oder Step Return beobachtet wird, angezeigt. Dies lässt sich im Menü Preferences => Java => Debug => Show method result after a step operation abstellen. Auf Reddit sorgte diese Änderung, gemeinsam mit der oben erwähnten Platzersparnis bei den GTK+-TabItems für große Freude.

Die zweite Änderung betrifft die Breakpoints eines Workspaces, für die zukünftig Trigger definiert werden können. Grundsätzlich kann jeder Breakpoint auch als Trigger Point gesetzt werden, das geht über den Dialog Breakpoint Properties… oder im Detail-Fenster der Breakpoints-Ansicht. Trigger werden dort mit einem kleinen „T“ versehen, Breakpoints, die von Triggern unterdrückt werden, mit einem durchgestrichenen „T“.

Trigger im Detail-Fenster der Breakpoints-Ansicht / Quelle: Eclipse Foundation

Trigger im Detail-Fenster der Breakpoints-Ansicht / Quelle: Eclipse Foundation

Plug-in Development Environment & Equinox

In der Entwicklungsumgebung für Plug-ins wurde der Tab Versions Management im Untermenü API Errors/Warnings der Plug-in-Development-Eigenschaften neu organisiert. Die Unterfunktionen für die Kontrolle von Versionsänderungen ohne API Breakage und API Changes wurden in normale Optionen umgewandelt und stehen standardmäßig auf Warning. Zudem reporten die API Tools jetzt das Hinzufügen einer Default Method in ein API-Interface, die von Clients implementiert werden kann, als Breaking Change.

Im Bereich Equinox hat org.eclipse.core.runtime.SubMonitor die neue Method step(int work) bekommen. Diese reportet den Fortschritt und prüft gleichzeitig auf Abbrüche. Hier ein Anwendungsbeispiel:

SubMonitor subMonitor = SubMonitor.convert(monitor, someCollection.size());
for (Object next : someCollection) {
    subMonitor.step(1);
    // ...do some work...
}

Platform Developers

Das GTK+-Theme kann mit eigenem CSS getweakt werden, um die normale visuelle Ausgabe zu erweitern. In Eclipse Weekly vom 31. August haben wir diese Änderung bereits vorgestellt. Ab Milestone 2 von Eclipse Oxygen ist es dank eines neuen APIs im Bundle org.eclipse.test.performance möglich, einen Screenshot zu machen.

Weitere Informationen zum zweiten Milestone von Eclipse Oxygen gibt es als News and Noteworthy auf der Seite der Eclipse Foundation. Heruntergeladen werden kann Eclipse 4.7 M2 auf der Download-Seite.



Original-Artikel erschienen am 12. August 2016 von Autor Dominik Mohilo

Eclipse Oxygen (4.7) M1

Der erste Meilenstein für die nächste Eclipse-Version „Oxygen“ ist erreicht. Wir haben uns die ersten Neuerungen in Eclipse 4.7 M1 etwas genauer angeschaut.

Der Eclipse Neon Release Train ist an seiner Endstation angekommen – Zeit, auf einen neuen aufzuspringen: Eclipse Oxygen. Wie Ian Skerrett im Interview mit uns verriet, wird der Fokus in Eclipse Oxygen auf dem Support von Java 9 liegen. Aber auch in Sachen Usability, Optik und Features wird, das zeigt schon Version 4.7 M1, Eclipse Oxygen wieder einiges zu bieten haben.

Plattform

Für Nutzer der Unix-basierten Plattformen AIX, Solaris, HP-UX und s390 wird Eclipse Oxygen nicht mehr verfügbar sein. Bereits im Juli hatte das Eclipse PMC angekündigt, dass die langsame Umstellung auf aktuelle GTK-Versionen und die daraus resultierende Mehrarbeit für die SWT-Entwickler eine Bürde sind. Daher sei der Support für die o.g. Plattformen nicht mehr tragbar. Auch die Codebasis würde dadurch immer komplizierter und gefährde so die Stabilität.

In Sachen Usability gibt es gute Neuigkeiten für Entwickler, die mit Bildern arbeiten: Mit Eclipse Oxygen ist die Entwicklungsumgebung in der Lage, Dateien der Formate png, jpg, jpeg, gif, bmp und ico direkt zu öffnen. Ein Zurückgreifen auf externe Bildbearbeitungs- oder Bildbetrachtungstools ist damit nicht mehr nötig. Mit Open With => System Editor ist ein Öffnen in dem Standardprogramm des Betriebssystems aber auch direkt aus Eclipse heraus möglich.

Bildbetrachtung in Eclipse / Quelle: Eclipse Foundation

Bildbetrachtung in Eclipse / Quelle: Eclipse Foundation

Die Option Terminate and Relaunch ist nun beim Start des Debuggings über das Run-Menü, das Kontextmenü oder die Werkzeugleiste verfügbar. Standardmäßig werden zuvor gestartete Vorgänge nicht beendet, diese Einstellung kann aber unter Preferences => Run/Debug => Launching vorgenommen werden. Eine weitere Usability-Verbesserung ist die standardmäßige Darstellung von Breakpoints in der Übersichtsleise.

Im Bereich Optik gibt es bereits seit längerer Zeit Konzepte wie Clean Sheet oder das standardmäßig in Eclipse integrierte Dark Theme.

Da es allerdings auch viele Puristen unter den Eclipse-Nutzern gibt, sind die Entwickler der Plattform stets bemüht, auch das Standard-Layout optisch möglichst einwandfrei zu halten, weshalb für den ersten Milestone von Eclipse Oxygen unter Windows die Farbe der Werkzeugleiste angepasst wurde.

Die farblich angepasste Werkzeugleiste in Windows / Quelle: Eclipse Foundation

Die farblich angepasste Werkzeugleiste in Windows / Quelle: Eclipse Foundation

Neben dieser Änderung wurde das Styling für sämtliche Formular-basierte UIs geändert. Es wird nun ein flacher, grauer Stil verwendet, der vom oben genannten Clean Sheet inspiriert ist. Für Linux und Mac OS X wurde außerdem eine kaum sichtbare aber störende gelbe Linie entfernt.

Das neue Styling für Formular-basierte UIs / Quelle: Eclipse Foundation

Das neue Styling für Formular-basierte UIs / Quelle: Eclipse Foundation

Java Development Tools

Die Weiterentwicklung der Java-Entwicklungstools (JDT) hat noch nicht richtig Fahrt aufgenommen, lediglich drei kleinere Features haben es in den ersten Meilenstein von Version 4.7 geschafft. So wurde etwa ein neuer Button im Failure Trace von JUnit implementiert, über den man sich einen Stack Trace in der Konsolenansicht anzeigen lassen kann. Dies macht es leicht, sich einen sehr langen Stack Trace anzusehen oder Teile daraus zu kopieren.

Im Fenster Organize Imports kann man zudem nun einen Type überspringen, ohne die ganze Operation abzubrechen. Dies gelingt über den neuen Skip-Button; der übersprungene Type wird keine Importanweisung hinzugefügt. Der neue Wizard zur Erstellung von Java-Typen akzeptiert nun die Verwendung der .java-Erweiterung mit dem Typen-Namen.

Plug-in Development Environment & SWT

Die Entwicklungsumgebung für Plug-ins (PDE) hat ein neues Tool für das Debuggen von SWT-Layouts bekommen. Es ist über den Shortcut STRG + ALT + SHIFT + F9 erreichbar. Die Funktionsweise sieht sehr intuitiv aus: Einfach per Select Control die zu überprüfende Klasse auswählen, anschließend Show Overlay aktivieren und durch die Widget-Hierarchie navigieren. Findet man dabei eine Unstimmigkeit zwischen einem Widget und einem „Kind-Element“, kann man sich die Resultate von computeSize ansehen. Ist das Resultat korrekt, befindet sich das Problem beim „Elternteil“, wenn nicht, beim Kind.

Das neue Layout Spy Tool / Quelle: Eclipse Foundation

Das neue Layout Spy Tool / Quelle: Eclipse Foundation

Ändert man in Eclipse Oxygen die Ausführungsumgebung (Execution Environment) in einem Plug-in, wird ein Problem-Marker gesetzt. Dieser empfiehlt, die untergeordnete Version zu erhöhen, wenn diese nicht bereits im Sinne der Basis erhöht wurde.

Sämtliche SWT-Projekte werden ab Eclipse Oxygen auf Konformitätsebene 1.8 kompiliert, sodass nun eine Java Runtime von 1.8 oder höher benötigt wird, um SWT-Anwendungen auszuführen.

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

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.