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™ tuts 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™ tuts 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 😉

Usability-Verbesserunge: Code Mining (Code CodeLens) mit Eclipse Photon

Wer Zusatzinformationen im Quelltext sehen will, kann das mit dem Code Minig (CodeLens) machen. Folgende Infos werden geboten:

Allgemein
Zeige references
Zeige implementations
Zeige method parameter Namen
Zeige method parameter types
Zeige end statement
JUnit
Zeige JUnit status
Zeige JUnit run
Zeige JUnit debug
Debugging
Zeige variable values inline im debugging
EGit
Zeige revision recent change
Zeige avatar
Zeige date ago
Zeige authors

Man kann sich also z.B. die Git-Information anzeigen lassen, wer wann eine Methode editiert hat. Für JUnit-Tests wird angezeigt, ob sie erfolgreich ausgeführt wurden. Zusätzlich lassen die JUnit-Methoden sich direkt starten bzw. debuggen

Das Code Mining mit Eclipse Photon muss noch über die Update-Site (Update Site http://oss.opensagres.fr/jdt-codemining/snapshot/) installiert werden:

Dann noch in den Einstellungen aktivieren:

Das sieht dann
„Usability-Verbesserunge: Code Mining (Code CodeLens) mit Eclipse Photon“ weiterlesen

Wie kann eine Vaadin Spring Boot App als Linux Service erstellt werden?

Um eine Vaadin Anwendung mit Spring Boot und Hibernate als Linux Service einzurichten, muss zuerst ein ausführbares Jar erstellt werden.

Dafür muss in der pom.xml die Konfiguration im spring-boot-maven-plugin auf executable = true gestellt werden:

Wenn das JAR (z.B. TWSuch-0.0.1-SNAPSHOT.jar) dann mit mvn package erstellt wird, ist es ein selbstausführendes JAR. „Wie kann eine Vaadin Spring Boot App als Linux Service erstellt werden?“ weiterlesen

Läuft eine Vaadin 8 Anwendung auch auf einem Raspberry PI Zero W?

Warum eigentlich nicht. Ist doch Java. Also mal ein Quicktest.

Java 1.8 und eine MySql DB (genauer Server version: 10.1.23-MariaDB-9+deb9u1 Raspbian 9.0, MariaDB ist schneller als MySQL) sind auf dem Pi schon installiert.

Das ist auch Voraussetzung.

Dann das mit

erzeugte Vaadin 8 Jar mit Tomcat Server auf den Pi per Drag and Drop kopiert (43 MB) und auf der Kommandozeile ein

Nach ein paar Sekunden

es startet schon mal. „Läuft eine Vaadin 8 Anwendung auch auf einem Raspberry PI Zero W?“ weiterlesen

One to One mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML

Manchmal braucht man eine „One to One“ Verbindung zweier BEs mit JPA (Java Persistence API) für Spring Boot (2.0.2) (JEE mit EJB 3.0 ist ähnlich, nur andere Annotationen).

Z.b. arbeiten ein Arzt in der Regel in einem Krankenhaus. Wenn sie nicht gerade als Belegärzte tätig sind. Also „One to One„:

Hier nun eine Kopiervorlage um diese wiederkehrende Verbindung anzulegen: „One to One mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML“ weiterlesen