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.

Eclipse Plugins

Hier sind meine Favorieten unter den Eclipse Plugins. Ich stelle die Ansammlung hier zur Verfügung, weil mir das Anmelden unter http://accounts.eclipse.org für den Marketplace zu aufwendig ist. Es muss ein Passwort mit mindestens 12 Zeichen vergeben werden und dieses ist auch nicht über einen PasswortManager bei einer Neuinstallation innerhalb von Eclispe verfügbar.

Coole Plugins

Infinitest

Continous testing wird mit diesem Plugin realität. Werden Änderungen an Tests betreffenden Dateien durchgeführt, dann wird automatisch ein JUnit lauf ausgeführt. Sehr praktisch.

MouseFeed

MouseFeed zeigt vorhandene Shortcuts zu einer Aktion an, so kann man diese schneller erlernen, weil diese jedesmal kurz eingeblendet wird.

DBeaver

Die Community Edition des DBeaver ist kostenlos und eines der besten Tools im Umgang mit Datenbanken. DBeaver gibt es als Plugin für Eclipse und als Standalone Version, da es auf Eclipse basiert.

SpotBugs

SpotBugs ist der designierte Nachfolger von dem populären FindBugs Plugin für Eclipse.

Thymeleaf

Das Thymeleaf Plugin stellt in HTML Dokumenten, die den Namespace von Thymeleaf besitzen, eine Autovervollständigung (CTRL + SPACE) der Attribute von Thymeleaf.

Spring Javaformat

https://github.com/spring-io/spring-javaformat

Das Plugin für Eclipse ist nicht im Marketplace gelistet und läßt sich daher nur über die Update Site https://dl.bintray.com/spring/javaformat-eclipse/ installieren.

Ein aktueller Status von dem Projekt Lombok

Hier ein kurzer Zwischenbericht über den aktuellen Stand JDK, Eclipse (STS4 Version), Gradle mit Lombok.

JDK10

Als Vorbereitung Java 10 installieren…

yaourt --noconfirm -S jre10-openjdk-headless jre10-openjdk jdk10-openjdk openjdk10-doc openjdk10-src

08.08.2018

Eclipse STS4 in M12 ist entpackt. Ich habe die aktuellste Version von Lombok mit dem integrieren Installer installiert. Auf dem Arch Linux System wird hier der absolute Pfad eingetragen. Leider gibt es folgenden Fehler:

16.08.2018

Hurra! Es ist geschafft. Endlich läuft Eclipse mit Gradle und Lombok unter einer Java Version > 8 !!! Aktuell verwende ich das letzte Milestone-Release M14 der STS14 mit der letzten Version v1.18.2 und der letzten Gradle Version 4.9.

JDK11

16.08.2018

Achtung: es gibt kein offizielles Paket für die EA-Version. Man findet sie auch nicht so leicht im AUR, da dass Paket jdk-devel heißt. Besser wäre jdk11-ea. Dann würde mann es mit yaourt -s jdk11 auch als EA finden.

yaourt --noconfirm -S jdk-devel
sudo archlinux-java set java-11-jdk

Auch hier gibt es offenbar keine Probleme mehr…

DBeaver

DBeaver ist zurzeit mein Favorit bei den Datenbank-Tools.

Highlights von DBeaver

Die Liste der Features von DBeaver ist lang. Es werden sehr viele Datenbanksysteme unterstützt. Da DBeaver RCP von Eclipse verwendet, kann DBeaver nahtlos in Eclipse integriert werden. DBeaver ist natürlich im Marktplatz von Eclipse vorhanden.

Neues in DBeaver

Mit der Version 5.1.4 sind ein paar Korrekturen und Neuerungen eingeflossen.

Data viewer

  • Die Navigation mit Foreign keys/references wurde verbessert
  • Der Textfilter Editor wurde gefixt
  • Die Historie der Volltextsuche wurde gefixed
  • Der SQL Formatter wurde verbessert und einige Fehler beseitigt

MariaDB

  • Der Editor für Benutzerrecht wurde verbessert
  • Das Erstellen einer View wurde gefixt

Plattform

  • DBeaver basiert jetzt auf Eclipse Photon Plattform. Dieses behebt zugleich ein paar alte UI Bugs und verbessert die Performance unter Linux und MacOS.

Code Mining

Was ist Eclipse Code Mining? Code Mining ist nichts anderes als CodeLense von Microsoft. CodeLens ist jedoch markenrechtlich durch Microsoft geschützt. Folglich muss für das sich noch in der Entwicklung befindene Plugin ein anderer Name her. Das Plugin wird auf GitHub gehostet und von Angelo Zerr entwickelt. Unterstützt wird das ganze von Lars Vogel.

Installation

Da sich das Plugin noch in der Entwicklung befindet, ist es noch kein Bestandteil der Eclipse Distribution und muss über eine UpdateSite installiert werden. Installieren Sie einfach alles aus dem Repository.

Nach dem üblichen Neustart der Workbench steht Ihnen das Plugin zur Verfügung.

Einstellungen

Per Default ist das Feature erst einmal noch nicht aktiv.

Neuer Milestone M12 erreicht

Am 14.06.2018 wurde der Milestone M12 freigegeben. Mit der Freigabe wurden diverse Bugs behoben und einige Verbesserungen vorgenommen:

  • JDK 9 und JDK 10 werden unterstützt, auch wenn die IDE unter JDK 8 läuft
  • Die Live Hoovers werden jetzt in allen geöffneten Editoren aktualisiert
  • Etliche NPE im Indexer wurden beseitigt

Siehe Changelog

Neuer Milestone M11 erreicht

Die Spring Tool Suite hat mit M11 einen neuen Milestone erreicht

Aus dem Changelog kann man die Unterstützung des JDK10 entnehmen. Das scannen der Projekte wurde bescheunigt, indem der gesamte Prozess jetzt auf dem Java Tooling von Eclipse beruht. Die Spring Tool Suite basiert ab sofort auf Photon. Es wird der letzte Milestone (aktuell ist Photon M6) verwendet.

Fazit

Insgesamt macht die Suite einen guten Eindruck. Probleme die zuvor bestanden existieren nicht mehr und der Workspace kann mit aktuellen Java Projekten verwendet werden. Ich bin weiter gespannt wie sich das Produkt entwickelt.

Download

Die aktuelle Version kann von https://spring.io/tools4 heruntergeladen werden.

Lombok

Ist Lombok unter Eclipse installiert und läuft Eclipse auf einer VM größer Java 8, dann kommt es beim aktualisieren des Gradle Modells unter Eclipse zu einer Fehlermeldung die erst einmal keinen direkten Rückschluss auf Lombok zulässt.

Gradle Buildfehler

Ist Lombok im Klassenpfad der VM von Eclipse geladen, dann kommt es zu folgender Fehlermeldung wenn man ein Gradle Projekt in der Workbench aktualisiert.

Errors occurred during the build.
    Errors running builder 'Java Builder' on project 'tornet'.
    Unknown constant pool type 19

Startet man Eclipse auf der Konsole, so kann man zumindest den Stacktrace zu dem BuildError sehen.

java.lang.AssertionError: Unknown constant pool type 19
        at lombok.bytecode.ClassFileMetaData.<init>(ClassFileMetaData.java:104)
        at lombok.bytecode.PreventNullAnalysisRemover.applyTransformations(PreventNullAnalysisRemover.java:42)
        at lombok.core.PostCompiler.applyTransformations(PostCompiler.java:43)
        at lombok.eclipse.agent.PatchFixesShadowLoaded.runPostCompiler(PatchFixesShadowLoaded.java:41)
        at jdk.internal.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at lombok.launch.PatchFixesHider$Util.invokeMethod(PatchFixesHider.java:115)
        at lombok.launch.PatchFixesHider$LombokDeps.runPostCompiler(PatchFixesHider.java:155)
        at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.writeClassFileContents(AbstractImageBuilder.java:880)
        at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.writeClassFile(AbstractImageBuilder.java:871)
        at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.acceptResult(AbstractImageBuilder.java:200)
        at org.eclipse.jdt.internal.compiler.Compiler.processCompiledUnits(Compiler.java:615)
        at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:472)
        at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:423)
        at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:383)
        at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:211)
        at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:315)
        at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:76)
        at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:259)
        at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:182)
        at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:795)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:216)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:259)
        at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:312)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:315)
        at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:367)
        at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:388)
        at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:142)
        at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:232)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)

Diesen kann man sehen das es zu einem Assertion Error kommt.

Lösung

Zur Zeit ist mir noch keine Lösung hierzu bekannt und es hilft nur den Java Agenten von Lombok aus der Eclipse.ini auszukommentieren.

-vmargs
--add-modules=ALL-SYSTEM
-Xms40m
-Xmx1200m
# build error in projects...
#-javaagent:lombok.j

Eclipse mit GTK in der Version 2 verwenden

Leider gibt es immer noch Problemen (performance regression) bei aktuellen Eclipse Versionen ( > Photon M6). Um dennoch mit Eclipse arbeiten zu können, kann man die IDE in der Eclipse.ini anpassen

Anpassung an der Eclipse.ini

Es muss der Parameter –launcher.GTK_version eingetragen werden. Wichtig hierbei ist, dass der Parameter vor dem Abschnitt -vmargs eingetragen wird.

--launcher.GTK_version
2

Die STS (Spring Tools Suite) wurde von Grund auf neu geschrieben und erhält mit der Spring Tools 4 einen neuen Nachfolger. Spring Tools 4 befindet sich aktuell (seit Dezember 2017) in der Betaphase und wird im Juli 2018 den GA Status erlangen. Bis dahin wird STS 3.9.X weiterhin mit Updates versorgt.

Spring 4 Tools ist eine Neuentwicklung und setzt auf das Language Server Protocol (LSP) auf und somit werden alle Features auch in anderen Komponenten (IDEs, Editoren etc.) nutzbar. Unter anderem auch unter VS Code von Microsoft.

Kompatibilität

Komponenten aus STS können auch weiterhin in Spring 4 Tools als AddOn Komponenten genutzt werden.

Alt bekanntes

Das Boot Dashboard View bleibt erhalten. Es erhält aber ein nützliches Feature. Es können Beans und Properties der laufenden Anwenung per Icon angezeigt werden.

Neue Features in Eclipse

Super schnelle Navigation in Spring Projetken

STRG + 66 startet den Dialog.

  • @/
  • @+

Installation

Es gibt das Beta als Bundle oder aber auch als Repository:

  • http://dist.springsource.com/release/TOOLS/sts4/update/e4.7/ <== Oxygen
  • http://dist.springsource.com/release/TOOLS/sts4/update/e4.8/ <== Photon

Alle Information zur Installation findet man unter im Wiki.
Das Changelog findet man hier.