Besser als Fussball: MQTT Java Client mit Paho

Fussball? Wie kann man per Java einen MQTT Client mit Paho schreiben, der z.B. die Anzahl Flugzeuge in Hannover anzeigt? Und das innerhalb der ersten Halbzeit, da nur 2 Klassen benötigt werden.

Mein Raspberry Pi sendet an den öffentlichen Testserver test.mosquitto.org unter den Topic /Anzahl/Flugzeuge/Hannover alle 5 Minuten die aktuelle Anzahl, so das dieses Beispiel jeder nachvollziehen kann.

Hier die Architektur:

mqtt

Wir brauchen zuerst ein Eclipse Maven Projekt mit Java 1.8 mit dieser pom.xml und einen Eintrag des Paho Repo, da es in Maven Central nicht vorhanden ist: „Besser als Fussball: MQTT Java Client mit Paho“ weiterlesen

List to CSV mit Java 1.8 und Eclipse Neon

Mal schnell ein erstes Beispiel, um zu sehen ob Java 1.8 mit Eclipse Neon wie gewünscht läuft.

Die neue stream Methode des Collection Interface, kann gut dafür verwendet werden, Listen formatiert auszugeben, hier ein Beispiel:

Und hier das JUnit Ergebnis:

Bildschirmfoto 2016-06-29 um 18.49.50

Java News zu der am 22.06.2016 veröffentlichten Eclipse Neon 4.6 Version

Hier eine schöne Aufzählung der Neuerungen der neuen Eclipse Neon Version.

Bildschirmfoto 2016-06-29 um 21.39.14

Bildschirmfoto 2016-06-29 um 21.38.42

Cool:

Content Assist now supports substring patterns. Enter any part of the desired proposal’s text, and Content Assist will find it! For example, completing on selection proposes all results containing selection as a substring.

The Refactor > Rename popup now shows an Options… link which opens the full Rename dialog that provides more options like renaming a field’s getter and setter methods.

You can now select multiple elements in views like Package Explorer and Outline and then search for References, Declarations, Implementors, and Read/Write Access (where applicable):

Wie kann mit der neuen Java Zeit API 1.8 ein Zeitstempel (2014-01-31_15:12:00) erzeugt werden?

Java 1.8 gibt es ja nun schon einige Zeit. Warum nicht die neue Time API verwenden?

Vorteil, die meisten Time und Date Klassen sind immutable und thread-safe. Z.B die LocalDateTime, LocalDate und DateTimeFormatter.

Hier mal ein Beispiel, um einen Zeitstempel in der Form 2014-01-31_15:12:00 zu erzeugen:

Wie kann mit der neuen Java 1.8 Time Api einmal am Tag um Mitternacht ein Ereignis erzeugt werden?

Wie kann mit der neuen Java 1.8 Time Api einmal am Tag um Mitternacht ein Ereignis erzeugt werden? Natürlich geht auch jeder andere Zeitpunkt, aber hier mal das Beispiel um Mitternacht:

Hier die Beispiel Klasse.

Wichtig ist das sie von TimerTask ableitet und die run() Methode überschreibt.

Wie kann auf einem Raspberry Pi die neueste Java 1.8 Version von Oracle installiert werden?

Zuerst das System des Raspberry Pi updaten und neu starten mit:

Schauen, welche Version jetzt installiert ist mit java -version:

Entweder über den den Packetmanager:

oder per Hand, dann so:

Dann das JDK 1.8 von der Oracle Seite downloaden. Die Seite wurde nach hier verschoben. Es wird die Linux ARM v6/v7 Hard Float ABI Version mit 83 MB benötigt.
Bildschirmfoto 2014-03-27 um 18.08.58

In das Download Verzeichnis wechseln und mit scp die Datei auf den rPi kopieren z.B.:

Dann in den rPi wechseln und und das Archive in das /opt Verzeichnis entpacken, das dauert ein paar Minuten:

Nun Java aktivieren und das Archive löschen mit:

Bildschirmfoto 2014-03-27 um 20.33.14
sudo update-alternatives --config java
# Auswahl 1 für Version 1.8 eingeben

Bildschirmfoto 2014-03-27 um 20.32.41

Und checken ob es geklappt hat mit java -version ergibt nun:

Java 1.8.0 ist nun erfolgreich installiert.