Neues aus dem Land der Sonnenfinsternis

Eclipse Weekly: Der Status Quo von Eclipse Che, e(fx)clipse 3.0 & der Tipp der Woche

Dominik Mohilo

© Shutterstock.com / solarseven

Noch keine drei Monate ist es her, seit Red Hat das Startup Codenvy und damit die Entwicklungsumgebung Eclipse Che geschluckt hat. Doch wie ist eigentlich der Stand der Dinge bei der „Entwicklungsumgebung der nächsten Generation“? Wir haben uns das Ganze einmal angesehen. Außerdem gibt es wie immer den Eclipse-Tipp der Woche und eine neue Major Version des JavaFX-Toolings für Eclipse, e(fx)clipse.

Eclipse Che – Wie ist der Status Quo?

Red Hat und Codenvy haben, gemeinsam mit Microsoft, etwas Großes geschaffen: Das Language Server Protocol. Da ist es nicht verwunderlich, dass eine solch erfolgreiche Zusammenarbeit auch anderweitig Früchte trägt. So kam es wenig überraschend, dass im Mai dieses Jahres die Übernahme Codenvys durch Red Hat offiziell verkündet wurde (JAXenter berichtete).

Codenvy wurde bekannt durch ihre Entwicklungsumgebung Eclipse Che, die sie seinerzeit zur Veröffentlichung als die „nächste Generation der Eclipse IDE“ anpriesen. Ob dieser Claim berechtigt ist oder nicht, das muss jeder Nutzer für sich selbst entscheiden, damals jedenfalls schlug diese Behauptung hohe Wellen. Neben den politischen Geschichten, stand aber immer die Weiterentwicklung der Browser-basierten Entwicklungsumgebung im Vordergrund, ein Meilenstein war Eclipse Che 5.0, das zu Beginn dieses Jahres ein neues CLI, die Integration einer Docker Compose Runtime und die Unterstützung des Language Server Protocols in petto hatte.

Neue Features für Eclipse Che

Codenvy selbst ist nicht nur der Name des Unternehmens, das hinter Eclipse Che steckt. Codenvy selbst ist eine Cloud IDE und lässt sich vermutlich mit „IDE as a Service“ am besten beschreiben. Die Funktionsvielfalt übertrifft, immerhin ist Codenvy auch als kommerzielles Tool konzipiert worden, die von Eclipse Che. Die Übernahme von Red Hat hat auf Codenvy und Eclipse Che zweierlei Effekte: Der Source Code von Codenvy wird laut einem aktuellen Blog-Beitrag von Red Hats Tyler Jewell (ehem. CEO von Codenvy) unter der Eclipse Public Licence Open Source gestellt. Zweiter Effekt ist, dass viele der beliebten Codenvy-Funktionen auch in Eclipse Che eingebettet werden sollen.

Zu den Funktionen, die übernommen werden sollen, zählen unter anderem SSL, die Nutzerauthentifizierung mit Keycloak, Nutzerdatenbanken mit Postgres und Dashboards für das Nutzermanagement. Zukünftig sollen Nutzer zudem die Möglichkeit haben, sich zwischen einer Docker- und einer Kubernetes-Infrastruktur entscheiden zu können. Die Docker-Infrastruktur würde dann auf einen einzelnen, großen Server deployt werden und Teams mit bis zu 50 Mitgliedern unterstützen. Entscheidet man sich für das Deployment auf einen Kubernetes Cluster, kann man sich auf hohe Verfügbarkeit und Skalierbarkeit verlassen und von Enterprise Management Features profitieren.

Eclipse Che 5.15

Natürlich bedeutet das Hinüberschwappen der Codenvy-Funktionen nicht, dass an Eclipse Che selbst derzeit nicht weitergearbeitet wird. Monatlich veröffentlicht das Team rund um Tyler Jewell Updates für die Entwicklungsumgebung, vor wenigen Tagen erst erschien mit Eclipse Che 5.15 eine Aktualisierung. Highlight ist hier sicher der Kotlin Support, der mit einem ganzen Stack für das Erstellen von Kotlin-Anwendungen daherkommt.

Aber auch die Unterstützung des Language Server Protocols wird mit diesem Update noch einmal verbessert. Zum einen kann nun ein Language Server für einen spezifischen Dateinamen registriert werden, zum anderen können gibt es die Möglichkeit, für eine einzelne Datei mehrere Language Server zu unterstützen.

Eine vollständige Übersicht über die aktuellen Änderungen in Eclipse Che, gibt es im entsprechenden Blog-Beitrag.

e(fx)clipse 3.0

Java 9 ante portas – und alle ziehen mit. Unter anderem e(fx)clipse 3.0, das mit der aktuellen Version zum ersten Mal vollständig kompatibel mit Java 9 und dem JPMS ist. Um das zu bewerkstelligen, wurde sämtlicher Code überarbeitet, der in Java 9 nicht funktioniert hätte. Zudem wurden einige der nicht öffentlichen APIs, die in Verbindung mit Java 8 genutzt wurden, zu öffentlichen umgewandelt.

Mit bindStream(ObservableValue<T>) lässt sich ein BindingStream erstellen. Dieser ist identisch mit Bindings.select, allerdings ist er typensicher und stellt eine Property als leaf zur Verfügung. Er ist außerdem Teil des neuen , das noch mehr FXBindings beinhaltet.

@ContextValue, das genutzt werden kann, um wiederverwendbare Komponenten zu erstellen, wurde in e(fx)clipse 3.0 mit einem scope-Property ausgestattet. Dadurch kann man einen Publishing Scope fixen. Außerdem gibt es ein neues API, mit dem sich der Program Flow (nicht aber der Event-Loop) stoppen lässt:

ThreadSynchronize t = ...;
TextField username = new TextField();
 
BlockCondition<String> w = new BlockCondition<>();
username.setOnAction( 
  e -> w.release( username.getText() ) );
 
System.out.println(t.block( w ));

Weitere Informationen zum aktuellen Update gibt es auf Tom Schindls Blog. Übrigens: Die Entwicklungsinfrastruktur von e(fx)clipse ist nun auf GitHub (Runtime Library & Eclipse Tooling).

@EclipseJavaIDE: Tipp der Woche

Der Eclipse-Tipp der Woche wird in Zusammenarbeit mit Sopot Cela präsentiert, der unter dem Handle @EclipseJavaIDE Tag für Tag wertvolle Tipps und Tricks für die Nutzer der Eclipe IDE veröffentlicht.

Diesmal kommt der Tipp nicht von Sopot Cela selbst, sondern von Noopur Gupta. Die Softwareentwicklerin arbeitet bei IBM und ist Leiterin des Projektes Eclipse Java Development Tools UI.

Kaum eine Community ist aktiver und innovativer als die der Eclipse IDE. JAXenter hat das Ohr am Puls der Entwicklungsumgebung und berichtet wöchentlich über die neuesten Entwicklungen und die spannendsten Geschichten rund um Eclipse.

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.