Wie kann ein XSD-Schema aus Java POJOs mit “Java Architecture for XML Binding” generiert werden?

Wie kann man aus einem Pojo ein XSD Schema für zukünftige Validierungen generieren?

Das geht ganz einfach mit JAXB und Eclipse Oxygen.1A.

Wir erstellen dazu erst einmal zwei Klassen, Mindmap und Autor mit ein paar Eigenschaften. Optional annotieren wir die Mindmap Klasse mit @XmlRootElement und die Autor Klasse mit @XmlType. “Wie kann ein XSD-Schema aus Java POJOs mit “Java Architecture for XML Binding” generiert werden?” weiterlesen

Wie können Json Dateien in Java Objekte eingelesen werden mit google gson?

Wie kann eine Json Datei in ein Java Objekt eingelesen werden? Es kommt doch hin und wieder mal vor, das man eine Json Datei hat, die man einlesen will. Man könnte es generisch einlesen. Oder man erzeugt sich die nötigen Java BEs bzw. Pojos und liest die Datei dann ein. Hier mal ein Beispiel mit gson zum einlesen in die zuvor erzeugten Java Klassen.

Es muss in der pom.xml diese Abhängigkeit ergänzt werden:

Z.B. diese aircraft.json Datei. Die Felder werden hier beschrieben. Die Datei wird vom Dump1090 Server alle paar Sekunden aktualisert.

Wir schauen uns einfach die Struktur an, und erzeugen Java Klasse mit genau den Feldnamen, das ist wichtig da die Felder dann automatisch per reflection eingelesen werden. “Wie können Json Dateien in Java Objekte eingelesen werden mit google gson?” weiterlesen

Wie können mit Eclipse Oxygen.1A aus XSD-Dateien mit JAXB Java Klassen generiert werden?

Wer keine Lust hat die Uhren umzustellen, kann ja mit JAXB Java Klassendateien generieren.

In der IDE für Java Developer für Eclipse, ist der JAXB Generator nicht installiert. Der müsste in der EE IDE vorhanden sein. Wer die nicht extra zusätzlich installieren will, kann auch über das Menü Windows – Help – Install New Software und dem Stichwort jaxb suchen und dort diese Installieren:

Dann nach einem Restart, ein neues JAXB-Projekt anlegen mit: “Wie können mit Eclipse Oxygen.1A aus XSD-Dateien mit JAXB Java Klassen generiert werden?” weiterlesen

Texo und EMF mit Diagram Editor läuft auch mit Eclipse Oxygen.1A (4.7) auf Mac OS X High Sierra (10.13)

Texo und EMF läuft auch mit Eclipse Oxygen.1A (4.7), dafür zuerst Texo installieren über das Menü neue Software mit der URL:

http://download.eclipse.org/modeling/emft/texo/updates/interim/

EMF installieren über die Oxygen Install Seite: “Texo und EMF mit Diagram Editor läuft auch mit Eclipse Oxygen.1A (4.7) auf Mac OS X High Sierra (10.13)” weiterlesen

Wie kann ein JEE 8 Projekt mit GlassFish v5 in Docker mit Eclipse Oxygen in 5 Minuten mit Archetyp erstellt werden?

Wer mal eben schnell ein JEE 8 Projekt mit GlassFish Server in einem Docker Kontainer erstellen will, kann das leicht mit dem Archtype com.airhacks von Adam Bien tun.

Voraussetzung ist Eclipse Oxygen (Mindmap) mit Java 1.8 und Docker.

Was ist zu tun?

1. Ein neues Mavenprojekt starten über das Menü: New – Other – Maven Projekt“Wie kann ein JEE 8 Projekt mit GlassFish v5 in Docker mit Eclipse Oxygen in 5 Minuten mit Archetyp erstellt werden?” weiterlesen

Soeben wurde die finale Version des JDK 9 veröffentlicht. Endlich!

Ab jetzt gibt es das Java 9 JDK zum Downloaden mit Jigsaw, Erweiterung der Stream-API, Kommandozeilenanwendung JShell, Neue Collection Factory-Methoden, usw. … und Oracle plant auch kürzere Releasezyklen (6 Monate).

Also, Archive laden und installieren:

Quicktest:

Feier! Freude! Und das sogar im Urlaub

Wie können Realtime ACARS Nachrichten in Eclipse Oxygen Konsolen View ausgeben werden?

Evl. möchte man ACARS Daten die von einem Raspberry Pi (W Zero) geliefert werden, wie hier berichtet, auch in einer Eclipse View auf einen anderen Rechern mit Mac OS X, Linux oder Windows anzeigen. Dann hat man alles immer im Auge 😉

Wie können also Realtime ACARS Daten, die von einem Raspberry Pi geliefert werden, in der Eclipse (Oxygen) Konsolen View ausgegeben werden?

Dafür habe ich einen kleinen ACARSConsoleViewer geschrieben der die Daten in Echtzeit auf der Konsole ausgibt. Die Zeiten werden so wie vom Server angezeigt, sie sind im UTC Format, also in Deutschland mit Sommerzeit 2 Stunden zurück. Der Viewer lauscht an Port 5555 und wartet auf eintreffende ACARS Meldungen via verbindungslosem UDP.

“Wie können Realtime ACARS Nachrichten in Eclipse Oxygen Konsolen View ausgeben werden?” weiterlesen

JUnit 5 Test-Ergebnisse Import und Export im XML Format mit Eclipse Oxygen

Manchmal möchte man die lokalen JUnit 5 Testergebnisse für später aufheben oder als Doku verwenden oder sichern. Man kann die Ergebnisse als XML exportieren und auch später wieder importieren. So kann man sich dann Fehler oder Laufzeiten mal wieder anschauen.

Die Import und Export Menüs, erscheinen aber nur, wenn schon mal ein JUnit Test gelaufen ist, dann an dieser Position:


“JUnit 5 Test-Ergebnisse Import und Export im XML Format mit Eclipse Oxygen” weiterlesen

Wie kann ein Raspberry Pi Debian Image via Docker auf dem Mac OS X und unter Eclipse Oxygen laufen?

Mit Docker ist es ganz einfach möglich, auf Mac OS X (oder auch Windows und Linux) ein Raspberry Pi oder andere Betriebssysteme laufen zu lassen. Dann braucht man keinen echten Raspberry Pi mehr 😉

Hier mal das Beispiel unter Mac OS X wie Docker installiert und Ubuntu, Alpine Linux und zu guter letzt ein Raspbian Debian Linux für Raspberry Pi installiert wird unter Eclipse Oxygen. Die 4.7 Version von Eclipse hat eine coole Docker Unterstüzung. Also allen Grund, auf die aktuelle Eclipse Version zu wechseln.

Docker auf dem Mac OS X ist schnell eingerichtet. Wir nehmen den Stable channel von docker.com, hier der direkt link. Das docker.dmg nach dem Download doppel klicken und in den Application Ordner ziehen.

Dann im Applicatons Ordner die Docker.app starten. Oben in der Menüleiste erscheint dann das Docker Icon für die Einstellungen. “Wie kann ein Raspberry Pi Debian Image via Docker auf dem Mac OS X und unter Eclipse Oxygen laufen?” weiterlesen

Cooler CSV Reader in JUnit 5

Will man Testfälle aus einer CSV-Datei verwenden, geht das mit JUnit 5 Super einfach. Es gibt da eine neue Annotation @CsvFileSource der nur der Dateiname der CSV-Datei übergeben werden muss, und schon wird für jede Zeile der Test ausgeführt. Die Datei muss im Classpath liegen und mit Komma (,) getrennt sein. Sie darf keine Überschrift haben.

JUnit 5

Als Beispiel soll mal die flug-data.csv dienen, die ua. die Summe aller erfassten Flugzeuge enthält.

Hier ein Auszug:

Wir wollen jetzt jede Zeile überprüfen, ob die Summe über 3000 Flugzeuge liegt und ob die UID vorhanden ist. Auch wollen wir die Testergebnisse um eine laufende Nr. ergänzen. “Cooler CSV Reader in JUnit 5” weiterlesen

Quicktest: JDeps (Java Dependency Analysis Tool)

Mit Java 8 wird im bin Verzeichnis auch das JDeps Tool ausgeliefert. Dieses Tool ermöglicht eine statische Kodeanalyse von der Kommandozeile. Es kann die statischen Abhängigkeiten von Klassen und Jars aufzeigen und auch eine Abhängigkeitsgraphen generieren. So ist man dann für Java 9 vorbereitet.

Das wollen wir einmal ausprobieren. Dazu hole ich mir für mein Testprojekt erst einmal alle Jars und untersuche dann das JUnit 4.12.

Also in der pom.xml folgendes Plugin ergänze und ein “mvn package” ausführen: “Quicktest: JDeps (Java Dependency Analysis Tool)” weiterlesen

JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!

In JUnit 5 gibt es nun die Möglichkeit, Testmethoden mit Parametern ausszuführen. Anstatt der @Test Annnotation verwendet man die @ParameterizedTest. Nun braucht man noch eine Datenquelle mit @ValueSource.

Diese Klassen liegen in: “JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!” weiterlesen

Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)

Wollte mal mein REST Testprogramm auf JUnit 5 umstellen. Die neuen JUnit 5 Feature sind schon sehr interessant. Vor ein paar Tagen ist der neue M6 veröffentlicht worden (JUnit 5.0.0-M6 = Platform 1.0.0-M6 + Jupiter 5.0.0-M6 + Vintage 4.12.0-M6). Auch ist die Architektur nun grundlegend geändert. Und evl. will man schon mal die Neuen Features testen. Es gilt nicht: “Wer testet ist Feige ;-)”

Was ist da so nötig?

JUnit 5 braucht zur Laufzeit Java 8.

Versionen setzen

Die neuen Abhängigkeiten hinzu: “Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)” weiterlesen

חזרות Wiederholungen mit JUnit 5: @RepeatedTest

Manchmal will man eine Testmethode öfter ausführen. Das ist ja leicht mit einer Schleife möglich.

JUnit 5 bietet nun aber eine schöne Annotation an @RepeatedTest. Mit der kann leicht die Anzahl der Wiederholungen angegeben werden. Über die Methodenparameter TestInfo und RepetitionInfo kann zur Laufzeit auf die Klassennamen, Methodennamen und aktuellen runden Wert zugegriffen werden. Hier mal ein Beispiel:


“חזרות Wiederholungen mit JUnit 5: @RepeatedTest” weiterlesen

Standalone RESTful Server und Client mit dem Restlet Framework

Manchmal braucht man in Java einen REST Server oder Client oder beides. Das ist mit dem Restlet Framework schnell implementiert.

Es kann entweder das ganze Beispielprojekt von Github geladen werden oder diese Schritte ausgeführt werden:

Zuerst richten wir in Eclipse ein neues Maven Projekt ein und fügen der pom.xml diese Einträge hinzu: “Standalone RESTful Server und Client mit dem Restlet Framework” weiterlesen