Dann mal ein Quicktest mit der neuen Version, mit der CO2-Ampel. Version eintragen und …:
Server starten … „Passend zum #cryptocrash und #FTXInsolvenz ist heute eine neue Quarkus Version 2.14.0.Final released worden“ weiterlesen
Wenzlaff.de – Rund um die Programmierung
mit Java, Raspberry Pi, SDR, Linux, Arduino, Sicherheit, Blender, Krypto und Blockchain
Dann mal ein Quicktest mit der neuen Version, mit der CO2-Ampel. Version eintragen und …:
Server starten … „Passend zum #cryptocrash und #FTXInsolvenz ist heute eine neue Quarkus Version 2.14.0.Final released worden“ weiterlesen
Eine Keycloak Installation auf einem Raspberry Pi Zero W ist möglich. Wie? Das werde ich hier beschreiben. Hier ein paar Infos zu Keycloak das jetzt auf Quarkus basiert.
Danke Dr.Kleinhirn.eu für die Mindmap.
Voraussetzung ist ein aktuelles Debian in dieser Version: … „Aktuelle Keycloak 19.0.2 Installation auf einem Raspberry Pi Zero W“ weiterlesen
Heute mal ein Vergleich mit einem Beispiel-Quarkus-REST Service normal vs. nativ.
Um die Größe und die Buildzeit zu vergleichen. Hier das Ergebnis vorweg:
1 2 3 |
Build Start Größe normal 4,00 s 0,625 s 4588 Byte nativ 53,47 s 0,018 s 39,126296 MB |
Also native gebaute Apps sind wesentlich länger zur Buildzeit dafür laufen sie aber auch wesentlich schneller und sind dann auch auf das jeweilige Betriebssystem beschränkt.
Um auf einen MacOs Quarkus auch nativ zu kompilieren muss die GraalVM und das Native-Image installiert sein.
Also installieren wir die GraalVM auf dem Mac mit Port: „Vergleich GraalVM nativ vs. herkömmlich mit Quarkus auf MacOS“ weiterlesen
Vor 10 Tagen ist die neue Quarkus Version 2.5.1-Final erschienen. Das Update enthält fast 800 Commits. In den Releasenotes steht: „It is a safe upgrade for anyone already using 2.5.“. Dann sollte es bei der CO2-Ampel mit dem REST-Server keine großen umbauarbeiten geben. Ist das so? … „CO2-Ampel auf Quarkus 2.5.1-Final upgedated“ weiterlesen
TWRestMindmap mit React, Patternfly, RESTEasy, Swagger-UI, Quarkus, Panache, ORM, JPA, Hibernate, Docker und PostgreSQL DB verwenden. Um nicht JUnit 5 zu vergessen.
Wir bauen nun mit Quarkus eine React Anwendung die Titel und das Datum von Mindmaps anzeigt und per REST bedient werden kann. Die GUI im Browser sieht dann so aus: „TWRestMindmap mit React, Patternfly, RESTEasy, Swagger-UI, Quarkus, Panache, ORM, JPA, Hibernate, Docker und PostgreSQL“ weiterlesen
In der neuen Quarkus Version 2.4.1.Final gib es nun eine schöne Gui für die Bearbeitung der applications.properties. Man kann dort gut Parameter suchen und die Funktionen werden dort auch beschrieben.
Wenn der Quarkus Server im dev Modus gestartet wird (via mvn quarkus:dev), kann über diese URL der Service erreicht werden http://localhost:8080/q/dev/, dann auf Config Editor
und schon ist diese Seite Online. Hier am Beispiel der CO2-Ampel mit MQTT und REST-Service… „Quarkus UI für die einfache Bearbeitung der applications.properties“ weiterlesen
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
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:
1 2 3 4 |
[INFO] --- quarkus-maven-plugin:0.24.0:add-extension (default-cli) @ info-kleinhirn --- ✅ Adding extension io.quarkus:quarkus-smallrye-openapi [INFO] ------------------------------------------------------------------------ [INFO] 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
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:
1. Ein neues leeres Verzeichnis erstellen und dahin wechseln:
1 2 |
mkdir quarkus-anwendung cd quarkus-anwendung |
2. Mit folgenden Maven Kommando ein Maven Projekt in ca. 30 Sekunden erstellen
1 |
mvn io.quarkus:quarkus-maven-plugin:0.24.0:create -DprojectGroupId=de.wenzlaff.info -DprojectArtifactId=info-kleinhirn -DclassName="de.wenzlaff.InfoResource" -Dpath="/info" |
3. Das Projekt compilieren und starten in ca. 40 Sekunden mit:
1 |
mvn compile quarkus:dev |
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
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