Es gibt jetzt für die JUnit View bei Fehlern einen neuen Button, der automatisch den Fehler-Trace in der Console View öffnet. Einfach unten rechts klicken in der JUnit View klicken:
Finale der Weltmeisterschaft 2018: REST Client in zwei Zeilen mit org.springframework.web.client.RestTemplate
Ein REST-Client ist in zwei Zeilen mit Spring schnell geschrieben. Früher war es komplizierter! Hier mal eine JUnit-Testklasse: „Finale der Weltmeisterschaft 2018: REST Client in zwei Zeilen mit org.springframework.web.client.RestTemplate“ weiterlesen
Eclipse Photon kann deprecated Felder und Methoden ausblenden
In Eclipse Photon können nun deprecated Felder und Methoden in Outline view, Members view, Package Explorer view, Project Explorer view, und Quick Outline mit dem neuen Filter ausgeblendet werden. Wenn man eine annotierte deprecated Methode hat, wird sie ja durchgestrichen im Project Explorer anzgezeit:
Mit dem neuen Filter, der über das Menü „Filters and …“ erreichbar ist:
dort diesen Eintrag selektieren „Eclipse Photon kann deprecated Felder und Methoden ausblenden“ weiterlesen
Wie wird in einer Vaadin (Spring) Anwendung ein Debug-Fenster geöffnet?
JUnit 5 mit 5.3.0-M1 auf Photon mit Maven läuft!
Was gibt es neues in JUnit 5.3.0-M1?
Hier eine Beispiel POM: „JUnit 5 mit 5.3.0-M1 auf Photon mit Maven läuft!“ weiterlesen
Photon, besser als Fussball!
Mitten im Fussballspiel der Weltmeisterschaft wurde die neue Photon Eclipse Version veröffentlicht. Bei heise.de gibt es einen Überblick mit Video. Jetzt kann auch der Testcode mehr getrennt werden. Dann mal downloaden.
Erster Quicktest mit Java 9 und JUnit läuft: „Photon, besser als Fussball!“ weiterlesen
Syntaxhighlighter sagt der Daltonist ;-) Wie kann Quellcode (Java, C++, C …) in PPT oder Word in Farbe eingefügt werden?
Manchmal braucht man für eine Präsentation oder ein Dokument farbige Beispiele von Quellcode oder auch für Dokus. Wie können die nun erstellt werden? Dafür gibt es ein cooles Programm highlight von Andre Simon. Highlight konvertiert Sourcecode in XHTML, HTML, RTF, TeX, LaTeX, SVG, BBCode und Terminal Escape-Sequenzen mit farbiger Syntaxhervorhebung. Sprachdefinitionen und Farbstile sind konfigurierbar. Es werden eine ganze Menge Sprachen unterstützt. Im Moment 215!
Auf dem Raspberry Pi ist das Programm schnell installiert mit:
|
1 2 3 4 5 6 7 8 |
sudo apt-get install highlight # Version ausgeben mit highlight --version # Ergebnis: highlight version 3.18 # Anleitung man highlight |
So, nun ein Beispiel, wir nehmen mal eine CPP Klasse aus meinen C++ Lehrgang, Temperatur.cpp, und geben die farbig auf der Konsole aus mit:
|
1 |
highlight -O ansi Temperatur.cpp |
Nun können wir auch die Ausgabe in eine Datei im RTF Format umleiten mit: „Syntaxhighlighter sagt der Daltonist 😉 Wie kann Quellcode (Java, C++, C …) in PPT oder Word in Farbe eingefügt werden?“ weiterlesen
Es muss ja nicht immer Fussball und Weltmeisterschaft sein! Neue Annotation für JUnit 5 – Tags sind auch spannend!
Mit den neuen Tags (org.junit.jupiter.api.Tag) können Methoden und auch ganze Klassen getagt werden, um sie z.B. in Gruppen einzuteilen.
Eine Testgruppe könnte z.B. eine langlaufende DB Methoden sein, die nicht immer ausgeführt werden soll.
Ein Tag muss folgenden Syntax Regeln folgen:
-ein Tag darf nicht Leer sein
-ein Tag darf keine Leerzeichen enthalten
-ein Tag darf keine ISO Kontroll Zeichen enthalten
-ein Tag darf kein, (, ), %, | oder ! Zeichen enthalten
Eine Testklasse zur WM 2018 könnte so aussehen:
„Es muss ja nicht immer Fussball und Weltmeisterschaft sein! Neue Annotation für JUnit 5 – Tags sind auch spannend!“ weiterlesen
Wie kann eine Vaadin Spring Boot Anwendung in 15 Minuten auf JUnit 5 umgestellt werden?
Wie kann eine Vaadin Spring Boot mit Hibernate Anwendung auf JUnit 5 für Eclipse Oxygene 3A umgestellt werden?
1. Deaktivieren wir die JUnit (4.12) Libs in der pom.xml:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <!-- Kein JUnit 4 mehr für den Test--> <exclusions> <exclusion> <groupId>junit</groupId> <artifactId>junit</artifactId> </exclusion> </exclusions> </dependency> |
2. Fügen wir die nötigen JUnit 5 Libs in der pom.xml hinzu:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<!-- Alles für JUnit 5 --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <scope>test</scope> </dependency> <!-- and the engine for surefire and failsafe --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <scope>test</scope> </dependency> |
3. Wir fügen JUnit 5 dem Buildpfad hinzu:
Es sieht dann so aus:
„Wie kann eine Vaadin Spring Boot Anwendung in 15 Minuten auf JUnit 5 umgestellt werden?“ 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:
|
1 2 3 4 5 6 7 |
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin> |
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
|
1 |
mvn package |
erzeugte Vaadin 8 Jar mit Tomcat Server auf den Pi per Drag and Drop kopiert (43 MB) und auf der Kommandozeile ein
|
1 |
java -jar TW-0.0.1-SNAPSHOT.jar & |
Nach ein paar Sekunden
es startet schon mal. „Läuft eine Vaadin 8 Anwendung auch auf einem Raspberry PI Zero W?“ weiterlesen
Ist eine Kafka installation auf einen Raspberry Pi Zero W möglich?
Ist eine Kafka Installation auf einen Raspberry Pi Zero W möglich? Wir wollen mal sehen! Um Kafka zu installieren braucht man zu erst einmal das Archiv von der Downloadseite:
Dann „Ist eine Kafka installation auf einen Raspberry Pi Zero W möglich?“ 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
Many to Many mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML
Manchmal braucht man eine „Many to Many“ 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. können in einem Krankenhaus mehrere Ärzte arbeiten. Die Ärzte wiederum können in mehreren Krankenhäusern arbeiten, wenn sie z.B. als Belegärzte tätig sind. Also „Many to Many„:
Es wird von z.B. Hibernate eine Mapping-Tabelle angelegt um diese Verbindung abzubilden. Ein discribe arzt_krankenhaus; würde folgendes ergeben:
|
1 2 3 4 5 6 |
+----------------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+------------+------+-----+---------+-------+ | arzt_id | bigint(20) | NO | PRI | NULL | | | krankenhaus_id | bigint(20) | NO | PRI | NULL | | +----------------+------------+------+-----+---------+-------+ |
Hier nun eine Kopiervorlage um diese wiederkehrende Verbindung anzulegen: „Many to Many mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML“ weiterlesen
Wie kann eine Excel CSV Datei mit Java mit Apache commons eingelesen werden?
Will man Excel CSV Dateien einlesen geht das mit einem Einzeiler in Java:
|
1 |
parser = new CSVParser(reader, CSVFormat.EXCEL.withDelimiter(';').withHeader().withIgnoreHeaderCase().withTrim()); |
Hier die Testmethode die auch etwas Kontext auf der Konsole ausgibt dazu. Man sieht auch, das man auf die Inhalte über einen Index oder den Spaltennamen zugreifen kann. Dann muss auch jedesmal das gleiche Ergebnis geliefert werden, das wird auch in der assert abgetestet.
„Wie kann eine Excel CSV Datei mit Java mit Apache commons eingelesen werden?“ weiterlesen
Wie kann Boilerplate Code in Java reduziert werden?
Das geht mit dem Lombok Projekt.
Für eine Java-Daten Klasse z.B. Arzt
|
1 2 3 4 5 6 7 8 9 10 |
@Data public class Arzt { private String titel; private String vorname; private String name; } |
wird dann automatisch folgendes generiert: „Wie kann Boilerplate Code in Java reduziert werden?“ weiterlesen
Eclipse Oxygen.3 wurde jetzt veröffentlicht und ist schneller und für Java 10 vorbereitet
Ein schönes 5 Minuten Video und Kommentare sind auf heise.de zu finden.
Java JDK 10 noch nicht für den Raspberry Pi, das dauert noch!
Java JDK 10 noch nicht für den Raspberry Pi, das dauert noch!
Aber für Linux, Solaris, Mac und Windows -> Download JDK 10
Als Sprachänderung gibt es nur var.
Test-Pyramide oder Wer Testet ist feige ;-)
TWPlotter: Java Wasserfall Diagramme Generierung von rtl_power erzeugten CSV-Dateien
Mit rtl_power kann man via SDR alle Frequenzen scannen. Die Scann CSV-Ergebniss-Dateien können dann mit gopow in schöne Wasserfall Diagramme umgewandelt werden.
Hier mal den Ablauf als BPMN 2.0
Hier ein Beispiel:
Das gopow Programm wollte ich mal in Java 8 schreiben, um auch selbst die Farben usw. beeinflussen zu können. Und auch um mal neue Funktionen von Java 8 zu benutzen. Auch kann das gopow auf dem Raspberry Pi nicht mit sehr großen Dateien umgehen. Die Scann Dateien können aber auch einige 100 MB groß sein. „TWPlotter: Java Wasserfall Diagramme Generierung von rtl_power erzeugten CSV-Dateien“ weiterlesen
Eclipse Oxygen.2 (4.7.2) Release vor ein paar Tagen veröffentlicht
Es muss ja nicht immer ein Soft Link sein: Hard Link
Mit der java.nio Lib können leicht Links auf Dateien erstellt werden. Es muss ja nicht immer ein Soft-Link sein.
Hier mal ein JUnit Beispiel für Java, zur Erzeugung eines Hard-Link, der schnell mit Files.createLink erzeugt werden kann: „Es muss ja nicht immer ein Soft Link sein: Hard Link“ weiterlesen
JUnit 5: Class Assumptions vs. Assertions – org.junit.jupiter.api – Behauptungen – Annahme – założenia – допущения -假設 – الافتراضات
In JUnit 5 gibt es im Package org.junit.jupiter.api die Klasse Assumptions (Annahme).
Die Assumptions Klasse ist eine Sammlung von Util-Methoden. Im Gegensatz zu den Assertions (Behauptungen) wird die Assumptions im Fehlerfall nicht mit einem failure (graues Kreuz) sondern mit einem Error (rot) markiert.
Deshalb ist es manchmal gewünscht, wenn z.B. eine Bestimmte Umgebung nicht vorhanden ist, das dann der Test nicht als Error (rot) sondern mit einen grauen Kreuz (Failures) markiert wird. Dann sollte man also die org.junit.jupiter.api.Assertions verwenden wie diese Testklasse zeigt:
Hier der Quellcode „JUnit 5: Class Assumptions vs. Assertions – org.junit.jupiter.api – Behauptungen – Annahme – założenia – допущения -假設 – الافتراضات“ weiterlesen
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:
|
1 2 3 4 5 6 |
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.7</version> <scope>compile</scope> </dependency> |
Z.B. diese aircraft.json Datei. Die Felder werden hier beschrieben. Die Datei wird vom Dump1090 Server alle paar Sekunden aktualisert.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "now" : 1477853643.7, "messages" : 45918404, "aircraft" : [ {"hex":"471f87","altitude":38025,"vert_rate":-64,"track":287,"speed":393,"mlat":[],"tisb":[],"messages":5,"seen":0.1,"rssi":-35.3}, {"hex":"48520c","squawk":"6441","altitude":38000,"mlat":[],"tisb":[],"messages":26,"seen":7.2,"rssi":-35.0}, {"hex":"3c644a","squawk":"3537","flight":"DLH2TR ","lat":52.605377,"lon":10.574875,"nucp":7,"seen_pos":13.9,"altitude":38025,"vert_rate":0,"track":191,"speed":488,"category":"A0","mlat":[],"tisb":[],"messages":306,"seen":3.8,"rssi":-32.4}, {"hex":"4ca27a","mlat":[],"tisb":[],"messages":1654,"seen":121.9,"rssi":-35.3}, {"hex":"896184","mlat":[],"tisb":[],"messages":4657,"seen":295.6,"rssi":-35.7}, {"hex":"4ca2fe","altitude":37000,"mlat":[],"tisb":[],"messages":7085,"seen":3.6,"rssi":-35.6} ] } |
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
Java Code Coverage in Eclipse Oxygen.1A läuft mit EclEmma
Code Coverage läuft mit Eclipse Oxygen.1A auch schnell über den Menüpunkt: Code Coverage – Run As mit eclemma. Ist default in Oxygen.1A installiert.
Und die Coverage View sieht ja auch schon ganz gut aus … „Java Code Coverage in Eclipse Oxygen.1A läuft mit EclEmma“ 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:
|
1 2 3 4 5 6 7 |
/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/java -version # Ergebnis java version "9" Java(TM) SE Runtime Environment (build 9+181) Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode) |
Feier! Freude! Und das sogar im Urlaub …


























