Spring Tools 4 Update

Am 22.01.2020 wurde das neue Update der beliebten Spring Tools 4 Suite veröffentlicht. Im allgemeinen sind Verbesserungen und Fehlerbeseitigung in Eclipse vorhanden. Ausnahme bildet der Hover Mechanismus, der nun auch Connection Failures anzeigen kann.

Spring Boot

  • Live hover können nun Connection Failures anzeigen

Eclipse

  • Completions werden nun asynchron durchgeführt
  • Early access builds für Eclipse 4.15 verfügbar
  • Bei der Autovervollständigung für Parameter in @Value Annotationen wurde immer ein zusätzliches NewLine eingefügt
  • Das Spring Boot Dashboard konnte Projekte die ein Leerzeichen enthalten nicht starten
  • Eine NPE in PropertiesJavaDefinitionHandler.adjustedHighlightRangeForKey wurde gefixt
  • Neueste m2e Snapshot um Probleme mit JUnit 5 Tests zu beseitigen

Spring Tool Suite

Mit dem neuen Release 4.3.0 von Spring Tool Suite, ist Pivotal wieder gut gelungen.

Neuerungen

Neben dem Update auf Eclipse 2019-06 (Release News) sind auch wieder jede Menge Bugfixes dabei (Changelog).

Änderungen in STS4

Theia ist nun in die Liste der offiziell unterstützten Editoren aufgenommen worden. Dafür wurde die Unterstützung für ATOM (ab Spring Tools 4.3.0) gestrichen und ist nun kein unterstützter Client mehr.

Spring Boot

  • Verbesserung: Die Startugeschwindigkeit wurde durch Optimierung der Classpath Meldungen verbessert
  • Verbesserung: Symbole werden neu erstellt, wenn ein abhängiger Typ sich ändert
  • Bugfix: Langsame Codevervollständigung (mehr als eine Sekunde) wurde behoben
  • Bugfix: Der Content-Assisten für Spring XML funktioniert nun auch wieder in VS Code und Theia Editoren
  • Bugfix: Ein ClassCast Exception in dem Spring Boot LanguageServer wurde behoben
  • Bugfix: Anonyme Inner Types hatten keine Boot Hints

Eclipse

  • Bugfix: Das schelle neustarten einer Anwendung im Boot Dashboard erzeugt keine Fehler mehr
  • Bugifx: Merkwürdige Exceptions beim Löschen einer CF Anwendung, wenn der SSH Tunnel noch aktiv war, wurde behoben

Spring Tools 4.4.2

Es ist mal wieder eine neue Version von den Spring Tools 4 erschienen.

  • Verbesserung: Neue actions um connect,refresh,disconnect live hover Informationen von laufenden Spring Boot Projecten zu steuern. Diese sind nun auch in den Boot Dashboard Menüs vornahen
  • Verbesserung: Über das Kontextmenü sind weitere Voreinstellungen für live hover möglich
  • Verbesserung: Die Console-View kann nun mit der Dashboard Auswahl verknüpft werden
  • Fehlerbehebung: Live hover werden wieder bei neueren Versionen von Spring Boot angezeigt, wenn sie auf CF deployt worden sind
  • Fehlerbehebung: Für Properties Keys wurde die Sortierung in @Value Annotationparametern gefixt

Weitere Änderungen

Wie immer habe ich hier nicht alle Änderugen aufgeführt. Diese könnt ihr auf der Release Info sehen.

Spring Tool Suite 4.2.0

Hier kurz die wichtigsten Änderungen der neuen Version vom 28.03.2019.

  • Bislang gab es keine Möglichkeit der VM für den Language Server Procol process Parameter zu übergeben. Dieses kann notwendig sein, wenn zum Beispiel der Heap zu klein ist.

    -Dboot.ls.custom.vmargs=-Xmx2G

    Kann man den Heap für das LSP auf 2G anheben.

  • Stark verbesserte Performance. Der Cache der Symboleindizierung des LSP wird nun über Neustarts des LSPs hinweg gespeichert.

  • Die interne Kommunikation mit dem JDT wurde ersetztz, was auch zu einer erhöhten Performance durch zeit- und Speichersparmaßnahmen geführt hat.
  • Update auf Eclipse 2019-03.
  • In den Lauch-Configs wird JMX Unterstüzung nun per default gesetzt.
  • Ein out of sync Fehler bei den Live Hoover wurde behoben.
  • Verschiedene Fehler in der Navigation in den Live Bean wurde behoben.
  • Weitere kleinere Eclipse Probleme wurden behoben.

Spring Tool Suite mit Gradle unter JDK 11

Im allgemeinen funktioniert die Spring Tool Suite 4 (Version 4.0.2) unter dem aktuellen Java 11 LTS. Leider ist die Erkennung Java Versionen anscheinend sehr fragil, da zum Beispiel die aktuelle Version 11.0.1 nicht erkannt wird.

Dadurch funktioniert das Gradle Tooling (Eclipse Buildship Plugin) nicht und es wird das öffnen eines Gradle Projektes mit einer Fehlermeldung der Editoren quittiert.

An internal error occurred during: "Initializing Java Tooling".
Could not determine java version from '11.0.1'.

Bestimmung der JVM

Unter Arch Linux oder Manjaro werden die verschiedenen Java Versionen parallel unterhalb /usr/lib/jvm abgelegt. Mit dem kleinen Hilfsprogramm archlinux-java kann die Default JVM angezeigt und bestimmt werden. Ist diese nun zum Beispiel auf die aktuelle Version 11 eingestellt, dann läuft auch Eclipse bzw. die RCP und somit auch die Spring Tool Suite unter der JVM. Abhilfe schafft die .ini Datei im Root-Verzeichnis. Hier lässt sich u.a. die zu verwendende JVM angegeben.

[sp@Laptop ~]$ sudo archlinux-java status
Available Java environments:
  java-11-openjdk (default)
  java-8-graal
  java-8-openjdk

Der Parameter vm bestimmt den Pfad zur JVM. Dieser muss unbedingt vor dem Parameter vm-args angegeben werden!

-vm
/usr/lib/jvm/java-8-graal/bin/java
-vmargs
-Dosgi.requiredJavaVersion=1.8

In diesem Beispiel läuft Spring Tool Suite unter der GraalVM, obwohl die Default VM auf JDK 11 zeigt.

Am 30.11.2018 wurde das Update von der Spring Tools Suite 4.0.2 veröffentlicht. Es enthält neben dem Bugfix für fehlende Context-Path Unterstützung (siehe Liver Hover fehlerhaft) Verbesserungen für die Navigation in application.properties und application.yaml Dateien, Vereinheitlichung der Autovervollständigung in Property und YAML, Autovervollständigung im Config-Editor in der Boot Dash View, Verbesserte Anzeige der Live Hover bei functional configuration für WebFlux, Unterstützung für Logging Groups in Property und YAML Editoren.

Außerdem wurden eine Reihe von Fehlern beseitigt, die die Stabilität des Language Server beeinträchtigten. So wurden hänger und zähflüssige Antwortzeiten beseitigt. Es wurde QuickFix mit CTRL + F1 in Editoren die das LSP (Language Server Protocol) verwenden behoben.

Link fehlerhaft

Aktuell besteht ein Bug in dem ansonsten so nützlichen Live Hover Informationen in Spring Tool Suite 4. Viele Anwendungen laufen ohne einen speziellen Application Context, so dass die Anwendung unter / erreichbar ist.

# Set application context path
server.servlet.context-path=/spring-mvc-thymeleaf-demo

Setzt man allerdings einen Application Context, dann ist der anzeigte Link fehlerhaft. Es fehlt der Path unter dem die Anwendung läuft, d.h. der Link funktioniert effektiv nicht (siehe Bild unten).

Bugfix

Mit dem nächsten Punktrelease ist Abhilfe in Sicht. Unter Issue 129 wird das Ticket bearbeitet. Dann sollte der Live Hover Bug behoben sein.

Am 31.10.2018 wurde das Update Release von Spring Tool Suite 4 in der Version 4.0.1 veröffentlicht. Der Download steht unter https://spring.io/tools zur Verfügung oder über Updates innerhalb der Eclipse Installation.

Spring Bugfixes

  • NPE innerhalb des SpringIndexer
  • Spring Boot configuration property auto-completion bietet keine Properties der Super Klassen an
  • Jede Menge NPEs im Language Server behoben
  • Live Boot Hint Decorators funktionieren nicht, wenn in der Anwendung ObjectMapper mit NON_DEFAULT vorhanden ist
  • Property Support funktioniert nun auch mit verschachtelten Projektstrukturen

Eclipse

  • Support für das neue Buildship (Gradle Plugin) in der Version 3.0
  • Eclipse enthält nun auch wieder Server Adapters für Apache Tomcat

Full Changelog

Alle Änderungen finden sich wie immer im Wiki.

Hier die Highlights der neuen Milestones M15 der Spring Tool Suite 4. Die meisten Verbesserungen gab es im Bereich der Live Hovers. Hier wurde die Performance und der Informationsgehalt gesteigert.

Changelog

Spring Boot

  • Der Informationsgehalt in den Live Hovers wurden verbessert
  • Informationen zu den autowired Feldern und Konstruktoren und den @Bean Definitionen wurden verbessert und stellen mehr Informationen zur Verfügung
  • Performanceverbesserungen von Live Hovers bei entfernten Boot Apps
  • Experimentelle Code Lenses (Code Minining) Informationen. Muss in den Preferences freigeschaltet werden
  • Verbesserte Performance und geringerer Speicherverbrauch des Live Hovers Updatemechanismus
  • Fehlender Zeilenumbruch in Live Hovers für Request Mappings gefixt
  • Resource Links in Live Hovers für entfernte Anwendungen funktionieren jetzt

Eclipse

  • Neue Versionen von Spring Boot CLI und Spring Cloud CLI (werden für Dashboard verwendet)