Hier mal eine Zusammenfassung eines CO2-Messsystems (CO2-Ampel) mit dem Raspberry Pi an dem der MH-Z19b, OLED Anzeige, LED-Rgb-Ampel hängen. Auch werden die Daten Online an Thinkspeak, MQTT, NodeRed, Alexa ausgabe von Warnungen und abfrage der Co2 Werte, Pushover nachrichten ans Handy, REST Java-Client, Docker Container und an einen History Browser gesendet. Wie hier auch schon einzeln veröffentlicht.
REST Service in 15 min mit Quarkus, OpenAPI, Swagger UI und JUnit-Test erstellen und um CO2-Ampel Service erweitern
Einen REST Service in 15 min mit Quarkus, OpenAPI, Swagger UI und JUnit-Test erstellen und um CO2-Ampel Service erweitern ist nicht kompliziert.

Vorraussetzungen Java 11 und Maven. Test mit:
mvn -version
auf der Kommandozeile:
|
1 2 3 4 5 6 |
➜ ~ mvn -version Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /opt/local/share/java/maven3 Java version: 11.0.9, vendor: AdoptOpenJDK, runtime: /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home Default locale: de_DE, platform encoding: UTF-8 OS name: "mac os x", version: "10.15.7", arch: "x86_64", family: "mac" |
Dann fangen wir in einem leeren Verzeichnis an
|
1 2 |
mkdir rest-co2ampel cd rest-co2ampel |
jetzt rufen wir mit dem Maven Quarkus Plugin das create Goal auf:
|
1 |
mvn io.quarkus:quarkus-maven-plugin:1.9.0.Final:create -DprojectGroupId=de.wenzlaff.co2ampel -DprojectArtifactId=info-kleinhirn -DclassName="de.wenzlaff.Co2AmpelResource" -Dpath="/co2ampel" |
Zwei Sekunden später, ist das Projekt angelegt: „REST Service in 15 min mit Quarkus, OpenAPI, Swagger UI und JUnit-Test erstellen und um CO2-Ampel Service erweitern“ weiterlesen
Die Bibel in einem Jahr lesen? Terminplan zum kostenlosen Download! Ab heute! Und los …
Habe mal neue Bibellese Termine ab heute mit dieser neuen GUI der TWBibel erzeugt.
Einfach einen Bibellese-Plan, in Euren Kalender kostenlos laden und importieren: „Die Bibel in einem Jahr lesen? Terminplan zum kostenlosen Download! Ab heute! Und los …“ weiterlesen
Weil heute Sonntag ist: Java CO2 MQTT Client
Weil heute Sonntag ist. „Freut euch immer„! Nun ein kleiner Java CO2 MQTT Client um auch auf allen Betriebssystemen mit Java die CO2 Daten zu empfangen. Nicht nur für den Raspberry Pi auch Mac und Windows (ungetestet;-)).
Das selbstausführende JAR laden (siehe unten) und starten mit:
java -jar TWCo2Monitor-0.0.1-SNAPSHOT-jar-with-dependencies.jar [PI-Rechner Name/Adresse]
Hier mal eine Ausgabe auf einem Raspberry Pi W Zero:
Der MQTT Client besteht nur aus ein paar Zeilen Java Code: „Weil heute Sonntag ist: Java CO2 MQTT Client“ weiterlesen
Wie können JUnit Tests aus Eclipse unterschiedlich gestartet werden?
Wie muss in einer JavaFX Anwendung das Controller mapping sein?
Wie muss in einer JavaFX Anwendung das Controller mapping sein?

Im SceneBuilder muss hier die Klasse eingetragen werden mit Package:
Dann wird in der passenden fxml-Datei dort der Eintrag erscheinen: „Wie muss in einer JavaFX Anwendung das Controller mapping sein?“ weiterlesen
Eclipse Quickie: Automatischer JRE suche im Lokalen Dateisystem
In Eclipse gibt es eine Coole Funktion. Die automatische JRE suche im lokalen Dateisystem. Hier gibt es den Button:
Kein langes manuelles suchen. Cool, hier das Ergebnis:
„Eclipse Quickie: Automatischer JRE suche im Lokalen Dateisystem“ weiterlesen
Aktuell weltweit nur 2336 Flugzeuge erfasst. Liegt das an covid-19?
Hier die aktuelle Auswertung mit Eclipse 2020-03:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Flugbereich in Meter ; Flughöhe in Meter Parken 0 ; 259 1-500 ; 139 500-1000 ; 92 1000-2000 ; 133 2000-3000 ; 102 3000-4000 ; 90 4000-5000 ; 89 5000-6000 ; 77 6000-7000 ; 92 7000-8000 ; 83 8000-9000 ; 96 9000-10000 ; 145 10000-10500 ; 151 10500-11000 ; 217 11000-11500 ; 140 11500-12000 ; 284 12000-13000 ; 130 über 13000 ; 17 Summme ; 2336 Zeitpunkt ; Fri Mar 20 07:09:42 CET 2020 Quelle ; The OpenSky Network, http://www.opensky-network.org |
Code: „Aktuell weltweit nur 2336 Flugzeuge erfasst. Liegt das an covid-19?“ weiterlesen
Java Einzeiler: JSONvon URL einlesen mit org.apache.commons.io am Beispiel: Corona – COVID-19

Hatte hier schon mal über die JSON Lib
|
1 2 3 4 5 |
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20190722</version> </dependency> |
berichtet. Wie kann damit nun in einer Zeile eine URL abgefragt werden?
Mit Hilfe der org.apache.commons.io geht das ganz einfach. Also erst einmal die Lib in die pom.xml einbinden.
|
1 2 3 4 5 |
<dependency> <groupId>org.apache.directory.studio</groupId> <artifactId>org.apache.commons.io</artifactId> <version>2.4</version> </dependency> |
Was wollen wir nun beispielsweise abfragen? Alle reden von Corona. Also lesen wir die drei aktuellen Werte der Johns Hopkins University ein. Die werden über diese Webseite aktuell dargestellt. Hier mal ein Foto:

Die Daten werden auch über eine JSON-Rest API unter https://covid19.mathdro.id/api bereitgestellt. Hier mal das Ergebniss einer Abfrage: „Java Einzeiler: JSONvon URL einlesen mit org.apache.commons.io am Beispiel: Corona – COVID-19“ weiterlesen
Java Einzeiler des Tages: Lesen einer Webseite mit jsoup den Open source HTML Parser
Mit JSoup kann ganz einfach eine Webseite gelesen werden.
|
1 2 3 4 5 |
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.12.2</version> </dependency> |
ergänzen und folgenden Einzeiler:
System.out.println(„Webseite: “ + Jsoup.connect(„http://wenzlaff.info“).get().html());
Das Ergebnis ist dann die HTML Seite. Mit JSoup können auch einfach Filter und Selektoren erstellt werden. Es unterstüzt leider kein JavaScript.
Dafür kann dann HtmlUnit oder Selenium verwendet werden.
Wie kann die Anzahl verfügbarer CPU-Prozessoren (Kerne) der Java virtuelle Maschine (VM) per Java abgefragt werden?
Wie kann die Anzahl verfügbarer CPU-Prozessoren (Kerne) der Java virtuelle Maschine (VM) per Java abgefragt werden? Das geht mit einem Java-Einzeiler:
int availableProcessors = Runtime.getRuntime().availableProcessors();
Die unterschiedlichen Raspberry Pi Modelle haben einen Kern: „Wie kann die Anzahl verfügbarer CPU-Prozessoren (Kerne) der Java virtuelle Maschine (VM) per Java abgefragt werden?“ weiterlesen
Internet Adressen bzw. Links in Excel-Dateien in 5 Minuten überprüfen mit dem de.wenzlaff.linkchecker
Manchmal hat man in einer Excel-Tabelle eine oder mehrere Spalten mit Internet-Adressen (URLs) deren Gültigkeit man überprüfen will, da viele Adressen sich doch schnell ändern. Dh. ist die Adresse noch erreichbar oder ist eine ungültige Adresse (Broken Links) eingegeben. Man könnte nun einen VB-Macro schreiben der das tut, oder aber das de.wenzlaff.linkchecker Programm starten, das eine Spalte in einer Excel-Datei automatisch validiert und alle nicht erreichbaren bzw. falschen Adressen ausgibt. So kann mit einen Aufruf die ganze Datei überprüft werden.

Das wollen wir mal an einem Beispiel auf einem Raspberry Pi ausführen. Das würde analog natürlich auch auf Windows oder einem Mac laufen.
Wir haben diese Excel Testdatei. Die 3. Spalte, also Spalte C enthält Internet-Adressen die alle überprüft werden sollen. Alle anderen Spalten sind nicht relevant. Die Excel-Datei wir auch nicht verändert.
Voraussetzung ist, das auf dem Rechner Java installiert ist. Also ein java -version muss eine gültige Version >= 8 liefern und wer den aktuellen SNAPHOT holt, braucht mind. Java 11: „Internet Adressen bzw. Links in Excel-Dateien in 5 Minuten überprüfen mit dem de.wenzlaff.linkchecker“ weiterlesen
Beispiel Verwendung des Maven Plugin: de.wenzlaff.command.maven.plugin
Vor einiger Zeit hatte ich hier mal beschrieben, wie ein einfaches Maven-Plugin erstellt werden kann, dass alle Kommandozeilen Parameter im Log ausgibt z.B. ls, ps, ls -la. So können im Build-Prozess Verzeichnisse oder Prozesse überwacht werden.
Wer aber nur das Kommandozeilen Plugin nutzen will, kann dieses mit ein paar Zeilen in der pom.xml tun, da das Plugin auf Maven-Central frei verfügbar ist.

Einfach die pom.xml um folgende Zeilen ergänzen: „Beispiel Verwendung des Maven Plugin: de.wenzlaff.command.maven.plugin“ weiterlesen
Download Statistik von MavenCentral: de.wenzlaff.dump1090
Vor ein paar Jahren (Dez. 2014) hatte ich ja mal den Java Wrapper de.wenzlaff.dump1090 entwickelt und auf MavenCentral bereitgestellt. Bisher gab es 8 Versionen. Hier mal etwas aufbereitete Statistik. Im September 2019 gab es das meiste Intresse mit über 800 Download pro Monat.
„Download Statistik von MavenCentral: de.wenzlaff.dump1090“ weiterlesen
„Maven Command Plugin“ nun in Version 0.0.1 auf MavenCentral verfügbar
Das „Maven Command Plugin“ ist nun in Version 0.0.1 auf MavenCentral hochgeladen und verfügbar.
Über diese Koordinaten kann das Plugin eingebunden werden:
|
1 2 3 4 5 |
<dependency> <groupId>de.wenzlaff.command.maven.plugin</groupId> <artifactId>de.wenzlaff.command.maven.plugin</artifactId> <version>0.0.1</version> </dependency> |
Und hier ist es zu finden:

Buildpipeline für Maven-Command-Plugin im Docker über Gitlab
Auf Gitlab liegt nun der Quellcode, für den der sich das ganze Projekt einfach holen will: git clone git@gitlab.com:IT-Berater/twmavencommandplugin.git
Diese Buildpipeline für Java 8 und 11 wird über das folgende Script gesteuert und läuft im Docker-Container: „Buildpipeline für Maven-Command-Plugin im Docker über Gitlab“ weiterlesen
Refactoring eines Maven-Plugins mit Dependency Injection
Das hier erstellt Maven-Plugin, kann noch etwas refactored werden mit Nutzung von Dependency Injection.
Always rejoice, mit freundlicher Genehmigung meines Lieblingskünstlers
Die Methode im Mojo kann in eine eigene Klasse CommandProviderApi verschoben werden. Ein neues Interface CommandProvider kann erstellt werden. Die erstellen wir hier:
1. Das Interface: „Refactoring eines Maven-Plugins mit Dependency Injection“ weiterlesen
Ein eigenes Maven-Plugin in 15 Minuten inklusive Dokumentation erstellen
Ein eigenes Maven-Plugin zu erstellen ist nicht schwer und ist schnell gemacht. Wir wollen ein Plugin welches einen Verzeichnis Inhalt mit ls -la in das Log schreibt erstellen. Es können aber auch andere Linux Befehle übergeben werden. Hier nun die 6 Schritte mit den Vorlagen die mind. nötig sind.

1. Wir legen in Eclipse ein neue Maven Projekt mit Java 1.8 an. mit Artifact Id und Group Id de.wenzlaff.command.maven.plugin
2. In der pom.xml fügen wir die folgenden Abhängikeiten hinzu: „Ein eigenes Maven-Plugin in 15 Minuten inklusive Dokumentation erstellen“ weiterlesen
Quicktest: JUnit 5.6.0 – „Freut euch immer“
Vor zwei Tagen wurde die neue JUnit Version 5.6.0 veröffentlicht.

Also die BOM aktuallisieren:
|
1 2 3 4 5 6 |
<dependency> <groupId>org.junit</groupId> <artifactId>junit-bom</artifactId> <version>5.6.0</version> <type>pom</type> </dependency> |
Und ein kleiner Test mit zwei Projekten: „Quicktest: JUnit 5.6.0 – „Freut euch immer““ weiterlesen
Quicktest der neuen Eclipse 2019-12 IDE –>OK „Freut euch immer“
Mitten in meinem Indien Urlaub ist eine neue Eclipse Version veröffentlich worden.
Dann mal gleich die neue Repo. URL unter
Window > Preferences > Install/Update > Available Software Sites
hinzugefügt
https://download.eclipse.org/releases/2019-12/
und start des Updates. In der Zwischenzeit (1 Minute) kann mein Urlaubsvideo angeschaut oder ein paar Infos darüber gelesen werden. Oder die zwei neuen Videos in engl. über die Änderungen im Java / Maven Bereich (10 Minuten) und General und Git (8 Minuten).
So dann mal ein Quicktest nach dem Restart der neuen IDE. Der Start scheint gefühlt wieder länger zu dauern. Ein erster JUnit Test, ok:
Jetzt ist auch ein neues Maven 3.6.3 mit dabei und eine bessere JDK 13 Unterstüzung.
Also dann „Freut euch immer“ …












