Swagger-UI in 5 Minuten auf einen Raspberry Pi einem Quarkus Projekt hinzufügen!

Für die Entwicklung von REST APIs ist die Swagger-UI sehr hilfreich.

Ok, dann wollen wir mal in einem Quarkus Projekt eine Swagger-UI hinzufügen. Das geht mit einem Befehl, da Quarkus einen guten Plugin Mechanismus hat:

./mvnw quarkus:add-extension -Dextensions=“openapi“

Nach 27 Sekunden kommt das Build Success:

So, das wars schon. Nun noch die Anwendung starten mit „Swagger-UI in 5 Minuten auf einen Raspberry Pi einem Quarkus Projekt hinzufügen!“ weiterlesen

In unter 5 Minuten auf einem Raspberry Pi Zero eine Java Quarkus REST Anwendung mit JUnit-Test neu erstellen und starten!

Wenn Java 8 und ein aktuelles Maven auf dem Raspberry Pi installiert ist, kann man in unter 5 Minuten eine komplette REST-Anwendung mit statischer Webseite erstellen und starten. Die dann sogar Hot Reloading fähig ist. Das geht in drei Schritten und das sogar auf einem Raspberry Pi Zero:

Freut euch immer

1. Ein neues leeres Verzeichnis erstellen und dahin wechseln:

2. Mit folgenden Maven Kommando ein Maven Projekt in ca. 30 Sekunden erstellen

3. Das Projekt compilieren und starten in ca. 40 Sekunden mit:

Wenn der Server gestartet ist kann im Browser das Servlet aufgerufen werden mit:

http://[PI-ADRESSE]:8080/info

Ergebnis: hello

4. Nun wollen wir in einem anderen Kommondozeilen-Fenster in das Verzeichnis „In unter 5 Minuten auf einem Raspberry Pi Zero eine Java Quarkus REST Anwendung mit JUnit-Test neu erstellen und starten!“ weiterlesen

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

Bibelleseplan-Generator 0.0.4 nun mit frei wählbaren Start-Termin bzw. Bibelbuch für (Mac, Windows, Raspberry Pi) veröffentlicht

Der Bibelleseplan Generator ist nun mit frei wählbaren start Termin bzw. Bibelbuch für (Mac, Win, Raspberry Pi) veröffentlicht. Es können jetzt Termine für alle Kalender autom. erzeugt werden im isc Format für Google, Apple oder Outlock. Und zwar für ein oder alle Bibelbücher mit frei wählbaren Starttermin. Beschrieben hatte ich ihn ja schon hier.

Die Installation ist schnell in zwei Schriten gemacht.

1. Auf dieser Projekt-Seite die letzte Version landen unter CI/CD – Pipelines – dann Artefakte – Download Install Java 8 Artifacts oder als alternative hier die 0.0.4 Version (4,3 MB) als ZIP laden (artifacts.zip). „Bibelleseplan-Generator 0.0.4 nun mit frei wählbaren Start-Termin bzw. Bibelbuch für (Mac, Windows, Raspberry Pi) veröffentlicht“ weiterlesen

Raspberry Pi: Bibelleseplan im ics Kalender Format mit 1189 Termine

Hier hatte ich gestern ja schon die Biblellesepläne im EXCEL, TXT und PDF Format erzeugt.

Nun habe ich mit dem Generator auch für jeden Tag einen Termin im ics-Kalender Format erzeugt (Google, Apple, Outlock …). Und zwar 1189 Termine die jeweils um 6 Uhr morgens in der Woche 3 und am Wochenende 4 Kapitel angeben. Starten tut alles am 1.9.2019. Die ics-Datei kann hier geladen, und dann in dem Kaleder deiner Wahl importiert werden. Vorher wie immer ein backup (export) des Kalenders machen.

bibelleseplan_2019-08-17-ganze-Bibel.ics

Wer nich gleich mit der ganzen Bible starten will, kann auch mit einem Bibelbuch anfangen, mit Mathäus:

bibelleseplan_2019-08-17-mathaeus.ics

Bei klick auf Import in den Kalender kommt z.B. auf einem Mac, erst noch die Abfrage in welchem Kalender man importieren will:

Anschließend sind am Wochenende jeweils 4 Einträge um 6 Uhr zu finden: „Raspberry Pi: Bibelleseplan im ics Kalender Format mit 1189 Termine“ weiterlesen

Raspberry Pi: Bibelleseplan (PDF, Excel, TXT, ics) Generator (mit Java und twbibel)

Wer die 1189 Kapitel der Bibel in einem Jahr lesen will, kann einfach jeden Wochentag 3 Kapitel und am Wochenende 4 lesen. An vielen Stellen im Internet gibt es auch Bibellesepläne. Ich habe mal ein paar Pläne in unterschiedlichen Formaten generiert, die hier kostenlos geladen werden können:

bibelleseplan_1.9.2019 (PDF)
bibelleseplan_1.9.2019 (Excel)
bibelleseplan_1.9.2019 (TXT)
bibelleseplan_2019-08-17-ganze-Bibel (ics) siehe auch hier
bibelleseplan_2019-08-17-mathaeus (ics) siehe auch hier

Um aber die twbibel von MavenCentral mal zu testen, folgt hier ein kleines Java-Programm. Dieses wird dann noch um eine Oberfläche (GUI) oder Kommandozeilen-Client erweitert um verschiedene Bibellesepläne mit unterschiedlichen Start Datum zu generieren.

Um die Bibel Lib zu nutzen, muss in der pom.xml für das Maven-Projekt dieser Eintrag gemacht werden:

Dann eine Java Klasse mit ungefähr diesem Inhalt: „Raspberry Pi: Bibelleseplan (PDF, Excel, TXT, ics) Generator (mit Java und twbibel)“ 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

Wie kann mit Java 8 und dem DOM-Parser einfach eine XML Datei erzeugt werden?

Wie kann mit Java 8 mit dem DOM-Parser einfach eine XML Datei erzeugt werden?

Es sind keine weiteren Abhängigkeiten nötig. Allso keine imports von Fremdjars. Alles ist in Java 8 vorhanden:


Es muss ein DOM Object mit der Baumstruktur erzeugt werden. Dann kann mit dem Transformer und dem StreamResult in eine Datei geschrieben werden.

Hier nun die drei Schritte:

1. Mit der DocumentBuilderFactory ein neues Document erzeugen:

2. Benötigte Elemente und Attribute erzeugen und dem Dokument hinzufügen „Wie kann mit Java 8 und dem DOM-Parser einfach eine XML Datei erzeugt werden?“ weiterlesen

Wie kann mit Eclipse 2019-06 aus einem XSD Schema Javacode generiert werden? Babyleicht? HiHi!

Wie kann mit Eclipse 2019-06 aus einem XSD Schema Javacode generiert werden? Das braucht man, um ein Datenmodell uä. zu erzeugen.

Zuerst erzeuge wir ein JAXB-Projekt fügen dann die XSD (hier mal die freemind.xsd als Beispiel, es geht aber jede) als Basis dem Projekt hinzu. Dann selektieren wir die XSD und generieren über das Kontextmenü das Modell. Bei der Generierung mit Java 8 oder 9 kommt es zu Fehlern. Deshalb erst das Projekt mit Java 7 wie folgt einrichten:
„Wie kann mit Eclipse 2019-06 aus einem XSD Schema Javacode generiert werden? Babyleicht? HiHi!“ weiterlesen

Java Webclient des Statistischen Bundesamtes für GENESIS Online DB starten auf Mac OS X und Raspberry Pi bzw. Linux

Das Statistische Bundesamt bietet für registrierten Nutzern 3 Werkzeuge kostenlos zum Download an. Unter anderem ein Java-Web-Client. Es heißt:“

Durch den „GENESIS-Webservice“ werden bestimmte Funktionen von GENESIS-Online auch für die automatisierte Verarbeitung zugänglich gemacht, wie z. B. Abruf und Download von Daten. Über unser Dienstangebot (WSDL) können registrierte GENESIS-Online-Nutzer die entsprechenden Schnittstellen in ihre eigenen Applikationen integrieren und programmgesteuert die angebotenen Dienste nutzen.“

Ok, dann wollen wir mal testen. Wir wollen auf den Mac OS X und dann auf einem Raspberry Pi die autom. Abfragen stellen. Als Beispiel sollen mal die Daten abfrage der Transfusion von Vollblut und Erythrozytenkonzentrat (EK) u.Ä. in Deutschland verwendet werden. Die Anzahl ist rückläufig, wenn auch in Deutschland immer noch fast eine Millionen Einheiten (a mind. ca. 200 Euro) verkauft werden.

Datenquelle: Statistisches Bundesamt (Destatis), Genesis-Online,
Abrufdatum 22.06.2019; Datenlizenz by-2-0; eigene Berechnung/eigene Darstellung

Welche Schritte sind nötig? „Java Webclient des Statistischen Bundesamtes für GENESIS Online DB starten auf Mac OS X und Raspberry Pi bzw. Linux“ weiterlesen

In welcher Höhe fliegen alle Flugzeuge jetzt weltweit (7435)?

Habe dazu ja schon mal ein Java-Programm vorgestellt. Hier nun die Ergebnisse von heute mit 7435 Flugzeugen als Tortendiagramm:

Und noch mal so:

Die Datenbasis:

Als Tabelle:

Nach sortierter Flughöhe:

Und noch mal als Torte:

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 Quickie: Die Kommandozeilen Argumente mit Apache Commons CLI bändigen

Seit März 2017 gibt es noch kein neues Release von den Commons CLI. Aber warum die Commandline nicht auch damit auswerten? Macht alles viel übersichtlicher.

Das geht mit ein paar Zeilen Java Code und einen Eintrag in der pom.xml:

Hier ein Beispiel snippets: „Java Quickie: Die Kommandozeilen Argumente mit Apache Commons CLI bändigen“ weiterlesen

Java 8 Quickie: Wie können alle bestimmten Dateien eines Verzeichnis in einer Zeile ermittelt werden?

Mit der static Methode Files.newDirectoryStream. Diese Methode gibt es schon seit Java 1.7. Hier mal ein Beispiel für alle PDF Datein im aktuellen Verzeichnis:

Was kann man gegen eine NoClassDefFoundError (org/bouncycastel.asn1.ASN10ctetString) beim verschlüsseln mit iText tun?

Was kann man gegen eine NoClassDefFoundError (org.bouncycastele.asn1.ASN10ctetString) beim verschlüsseln mit iText tun?

Zur Laufzeit wird die Klasse benötig. Es kommt diese Exc:

Lösung, „Was kann man gegen eine NoClassDefFoundError (org/bouncycastel.asn1.ASN10ctetString) beim verschlüsseln mit iText tun?“ weiterlesen

Java: Rätsel des Tages

Was ist das Ergebnis?

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