Quicktest: Gestern wurde Quarkus 0.24.0 released – „Container First“

Wenn das kein Grund ist mal die neue Version zu testen. Quarkus ist ein relativ neues Framework, welches die leichtgewichtige Entwicklung von Java-Anwendungen nach dem „Container-first“-Prinzip macht. Es wird von Red Hat gesponsert und macht die Entwicklung von Microservices einfacher. Was Entwickler besonders gefällt ist das Live Reloading so das man gemachte Änderungen sofort „sieht“.

Also gleich ein Build it. Save it. Run it. – und das mit Java:

./mvnw compile quarkus:dev

Das klappt ja schon mal, nun ein

./mvnw clean package
Package bauen: „Quicktest: Gestern wurde Quarkus 0.24.0 released – „Container First““ weiterlesen

Wie kann JSON in Java „schnell“ erzeugt werden?

Da heute ein arbeitsfreier Tag ist, schon mal eine kleine Vorbereitung („ARBEIT“) für den Einsatz im Projekt ab Montag. Da wollen wir JSON Objekte verwenden. Für die JSON Erzeugung mit Java gibt es viele Möglichkeiten und Libs. Hier mal ein kleines Beispiel mit der 68 kB großen json.org Lib.

Zuerst in der pom.xml die Lib eintragen:

und dann einen kleine JUnit 5 Test.

Also einfach ein JSONObject Objekt erstellen und mit put die Key und Value Werte eingeben. Für die put Methode gibt es viele Möglichkeiten: „Wie kann JSON in Java „schnell“ erzeugt werden?“ weiterlesen

Wie kann in Java ein ical Termin (ics Datei) erzeugt werden?

Wer mit Java ical Termine erzeugen will, kann das gut mit der ical4j Lib machen. Es muss dazu in der pom.xml dieser Eintrag hinzugefügt werden.

Dann wollen wir zuerst mal ein paar Zeilen für den JUnit Test dafür schreiben:

Wir brauchen noch die Kalender Klasse, die hier kopiert werden kann: „Wie kann in Java ein ical Termin (ics Datei) erzeugt werden?“ weiterlesen

Java-Zweizeiler: Wie können alle Tage eines Zeitraumes mit Java 8 ausgegeben werden?

Manchmal benötigt man alle Tage im Jahr oder alle Tage im Monat oder alle Tage von Start Datum bis zum Ende Datum. Das geht mit Java 8 in einen Zweizeiler:

Hier das Ergebnis und die ganze Klasse:

207 Wortformen in der deutschen Schriftsprache machen 50% der ganzen Schriftsprache aus!

207 Wortformen in der deutschen Schriftsprache machen 50% der ganzen Schriftsprache aus (Quelle Wikipedia). Wer also 207 Wörter schreiben kann, kann schon die hälfte des deutschen Textes schreiben. Für einen Textparser brauchte ich eine Java Methode die checkt, ob ein Wort in dieser Liste ist.

Love never fails

Also mal eben eine Java-Zweizeiler um das zu überprüfen. „207 Wortformen in der deutschen Schriftsprache machen 50% der ganzen Schriftsprache aus!“ weiterlesen

Java 8 Quickie: Laufzeitberechnung mit java.time.Duratio und java.time.Clock

Will man mit Java 8 Zeiten berechnen, geht das z.B. so:

Raspberry Pi: Jave UUID perfomance Vergleich Raspberry Pi mit iMac

Wie lange braucht ein Raspberry Pi, im Vergleich zu anderen Rechner, um 100000 UUIDs zu erzeugen und auf der Konsole auszugeben mit einem Test ob doppelte generiert werden. So was ähnliches hatte ich vor 2 Jahren schon mal geschrieben.

Die generierten UUIDs oder Teile davon kann man auch als Passwort verwenden 😉

Hier das kleine Java Programm: „Raspberry Pi: Jave UUID perfomance Vergleich Raspberry Pi mit iMac“ weiterlesen

Java 8 Quickie: Kein PermSize und MaxPermSize – by by java.lang.OutOfMemoryError: PermGen error

Ab Java 8 werden die PermSize und MaxPermSize Kommandozeilen Parameter nicht mehr verwendet. Es wird eine Warnung in der Art:

ausgegeben. Also tschüss java.lang.OutOfMemoryError: PermGen error.

Quelle: Oracle.com

Java: Rätsel des Tages

Was ist das Ergebnis? „Java: Rätsel des Tages“ weiterlesen

Java: Rätsel des Tages

Was ist das Ergebnis?

Ergebnis: „Java: Rätsel des Tages“ weiterlesen

20 Jahre vs. 10 Jahre WordPress Blog – wenzlaff.de – 1226 Beiträge

Vor 20 Jahren ging wenzlaff.de ans Netz, wie hier schon mal berichtet.

Aber genau heute am 28.3.2009 also vor 10 Jahren wurde der erste WordPress Blog Eintrag hier auf wenzlaff.info veröffentlicht.

Wie die Zeit vergeht.

1226 Beiträge sind hier zu finden.

Zu Themen wie Java, Eclipse, Raspberry Pi, ESP32, SDR, Linux, Arduino und Planespotting … „20 Jahre vs. 10 Jahre WordPress Blog – wenzlaff.de – 1226 Beiträge“ weiterlesen

Java Quickie: Ermitteln der Java Version und Home Verzeichnis

Letzte Woche wurde das JUnit 5.4.0 Release veröffentlicht

Also mal testen ob alle läuft? Kleine Änderung in der pom.xml

Dann mal zwei Projekt umstellen. Siehe da, die Buildpipeline laufen auch noch wie erwartet:

und die auch „Letzte Woche wurde das JUnit 5.4.0 Release veröffentlicht“ weiterlesen

Java 8 Quickie: Zeitzonen Umwandlung mit ZonedDateTime: UTC nach Europas Zeitzone

Zeitzonen

Manchmal hat man Zeitangaben z.B. aus IOT Geräten in der Form eines Strings „2018-12-10 12:14:15 UTC“. Nun müssen die Zeitangaben die in UTC verwendet werden in die lokale Zeitzone für Europa/Berlin umgewandelt werden. Das ist in der Regel eine Stunde plus. Wie geht das aber mit der Java 8 API?

„Java 8 Quickie: Zeitzonen Umwandlung mit ZonedDateTime: UTC nach Europas Zeitzone“ weiterlesen

Java 8 Quickie: Alle Zeitzonen mit getAvailableZoneIds mit Java ermitteln

Zeitzonen?

Wie können alle Zeitzonen mit Java ermittelt werden? Das geht mit der Methode getAvailableZoneIds der Klasse ZoneId. Die Methode ist thread save und der Set kann zukünftig noch erweitert werden. Bei mir ist er heute 600 Einträge (IDs) groß, wie dieser JUnit Test zeigt:

@Test
public void testGetAlleZeitzonen(){
List zeitZonen = new ArrayList<>(ZoneId.getAvailableZoneIds()); zeitZonen.stream().sorted().forEach(zone -> System.out.println(zone)); assertEquals(600, zeitZonen.size());
}

Das sind die Zeitzonen IDs:

„Java 8 Quickie: Alle Zeitzonen mit getAvailableZoneIds mit Java ermitteln“ weiterlesen

Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions und Filter

Wenn man mit Lambda über eine Collection iteriert, kann man auch gleich einen Filter verwenden. Was das mit der 20 zu tun hat, kommt am 1.12.2018 hier auf dem Blog 😉

Jetzt aber hier erst mal ein Beispiel zum Filter:

Und die nötige Mindmap BE Klasse: „Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions und Filter“ weiterlesen

Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions

Ab Java 8 kann mit der forEach Methode über einen Stream iteriert werden und das mit Lambdas.

Hier mal eine Gegenüberstellung als JUnit Test:

Und das Mindmap BE: „Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions“ weiterlesen

Java Quickie: Ist eine Domain erreichbar?

Mit der Methode isReachable aus der Klasse InetAddress kann seit Java 1.5 leicht überprüft werden (via Echo) ob ein Rechner bzw. Domain erreichbar ist oder „lebt“. Als Parameter wird die Timeout Zeit in Millisekunden übergeben, hier also 1000 für eine Sekunde:

Eine IOException gibt es bei Netzwerkfehler. Und eine IllegalArgumentException wenn ein negativer Wert für den Timeout angegeben wird, das macht man ja auch nicht 😉

Java Quickie: Liefere die IP vom Domain Namen

Wie kann die IP von einem Domain Namen ermittelt werden? Das geht mit einer Zeile InetAddress.getByName aus dem java.net.InetAddress Package schon seit JDK 1. Wenn die Domain unbekannt ist gibt es eine UnknownHostException wie diese JUnit Tests zeigen:

Es muss ja nicht immer Apache Velocity sein, Apache FreeMarker geht auch!

Es gibt unterschiedliche Template Engine, wie zum Beispiel Apache Velocity aber auch Apache Freemarker.

Bei der Verwendung von Templates, kann man sich einfach auf die Präsentation der Daten konzentrieren. Das läuft nach dem MVC (Model View Controller) Pattern. Die Templats können auch über diesen Online FreeMarker Template Tester ohne Aufwand getestet werden.

Heute mal ein kleines Beispiel, mit Freemarker. Wir wollen Verzeichnisse nach Mindmaps durchsuchen, und alle gefundenen Mindmaps in eine HTML-Seite ausgeben.

Fangen wir mit einem JUnit Test an: „Es muss ja nicht immer Apache Velocity sein, Apache FreeMarker geht auch!“ weiterlesen

Verzeichnise mit Java Monitor WatchService überwachen رصد, izlemek, 顯示器

Seit Java 7 gibt es den WatchService zum überwachen von Verzeichnissen auf System-Ebene. Der WatchService übernimmt direkt die Eventaufrufe des Betriebssystems und ist damit vergleichbar mit einem Low-Level-Event.

Damit kann man in ein paar Zeilen Code, zum Beispiel benachrichtigt werden, wenn eine neue Datei im Verzeichnis hinzugefügt wird.
Das wir mit der Konstanten StandardWatchEventKinds.ENTRY_CREATE angegeben. Es gib aber auch noch welche fürs löschen oder verändern. Die Konstanten können dann auch verknüpft werden.

Für die Verwendung muss das Package java.nio.file.* importiert werden. Hier der Beispiel Code, der das „input“ Verzeichnis des Users überwacht, der auch auf einem Raspberry Pi läuft 😉