Lombok

Fiddling around with a Java project from my friend Thomas Berger I encountered lombok:

Lombok e.g. generates automagically setter and getter for data classes. all You have to do is annotate a class with @Data

import lombok.Data;

@Data
public class CinemaEvent {
    private String location;
    private String url;
}

For IntelliJ there is a lombok plugin. After activating the plugin the structure looks like this:

And there are many more convenience wrapper annotations! Try it out!

Add Vaadin Maven Archetype to IntelliJ

On Windows You can add the Maven archetype for Vaadin to IntelliJ IDEA the following way:

Open:

c:\Users\username\.IdeaIC2017.3\system\Maven\Indices\UserArchetypes.xml

and add the line:

<archetypes>
 <archetype groupId="com.vaadin" artifactId="vaadin-archetype-application" version="8.3.2" />
</archetypes

Now you can create a new Vaadin project via Maven

 

Mac OS X und Java – Erkenntnis des Tages 2010-08-15

Apple und Java ist wohl so ein Thema für sich. Während man bei Windows ja brav sein SDK selber runterladen und installieren muss, bringt Mac OS X schon eine Java-Version mit.

Doch das Gegenteil von gut ist gut gemeint.
Kommt ein Update von Java heraus, (z.B. von 5 auf 6) findet man es nicht über die Softwareaktualisierung 🙁

Was nun folgt, ist leider aufwendiger als unter Windows:
1. Herausfinden, welches Update ich brauche
2. Runterladen des Updates von Apple
3. Ändern der default Java-Version

zu 1.
Bei muchsoft
findet man eine Übersicht der passenden Java-Versionen. Ich benutze 10.5.8 (Leopard) und hätte gerne die aktuellste Version von Java 6: das ist in diesem Fall dann 1.6.0_20

zu 2.
Apple bezeichnet das als Java for Mac OS X 10.5 Update 7
Also fix herunterladen und installieren.

zu 3.
Nun muss man nur noch unter Programme/Dienstprogramme die App Java-Einstellungen öffnen unter durch ziehen des Listeneintrags die Version 6 nach oben bringen.
Dann zeigt auch ein java -version auf der Konsole die aktuelle Version 1.6.0_20 an.
Voila!

Apache Commons IO (Erkenntnis des Tages 2010-08-09)

Wie oft steht man vor der Aufgabe, schnell mal ein Textfile in einen String einzulesen, um ein paar Überprüfungen bzgl. des Inhalts durchzuführen? Nichts leichter als das. Dank content assist tippt man sehr schnell:

StringBuilder fileContent = "";
FileReader fileIn = null;
BufferedReader buff = null;
try {
fileIn = new FileReader(fileName);

Halt!
Muss ich das wirklich selber machen???
Nö, denn dafür gibt es die apache commons-io lib.
Einfach ins Projekt integrieren und man kann sich viele lästige Dinge sparen.
Statt obigem Code schreibe ich jetzt nur noch

String str = FileUtils.readFileToString(filename);

Vorteil:
-sauber implementierter und getester Code für Routineaufgaben

Nachteil:
-zusätzliche Dependency 🙂

Runter mit den Testlaufzeiten!

Wer der Meinung ist, dass die Ausführungszeiten von JUnit doch eigentlich vernachlässigbar gering seien, der möge sich Kent Becks neues Projekt JUnit Max zu Gemüte führen.
Das Konzept ist einfach wie genial: Wenn die Testdatei gespeichert wird, werden die geänderten Testfälle direkt ausgeführt.
Durch die Symbole für warning / error, die man aus der JAVA IDE kennt, werden die fehlerhaften Testläufe signalisiert.

log4j

Logging erhält Einzug in nextstep!

Die Wahl fiel auf Apache log4j.

Ein gutes tutorial hierzu:
http://www.torsten-horn.de/techdocs/java-log4j.htm