Wie kann ein Timer in Java mit Quartz erstellt werden?

Manchmal möchte man Ereignisse mit Java zeitgesteuert oder wiederholt ausführen. Das geht auch mit Java Mitteln. Die bekannte java.util.Timer Klasse kann schon was. Der Open Source Framework Quartz hat ua. aber diese Vorteile:

  • persistence mechanismen
  • flexible Zeitplanung
  • Thread-Pool
  • Managment Schemen
  • flexibel
  • fehlertolerant, auch nach Systemstart

Quartz ist ein kleiner Framework der nur quartz-x.y.z.jar im Classpath benögigt (inkl. log sl4j-api.jar, und c3p0.jar). Er kann Standalone oder im Server als J2EE Anwendung verwendet werden. Die wichtigsten drei Klassen sind Task/Job, Trigger und der Listener.

Sie spielen so zusammen:

quartz-uebersicht

Wie kann ein Timer in Java mit Quartz erstellt werden? „Wie kann ein Timer in Java mit Quartz erstellt werden?“ weiterlesen

Anzahl der Flugzeuge mit 3 Zeilen Java Code ausgeben via REST API mit Jersey und JDom 2.0

Mit Java ist es nicht schwer, einen REST Client zu erstellen. Das geht mit Jersey und JDom in 3 Zeilen.

Hier nun mal ein Beispiel.

Die Anzahl der Flugzeuge in Hannover wird von mir mit einem Raspberry Pi empfangen und an thingspeak gesendet.

jdom-2.0
Diese Daten kann jeder leicht abfragen. „Anzahl der Flugzeuge mit 3 Zeilen Java Code ausgeben via REST API mit Jersey und JDom 2.0“ weiterlesen

Ecore mit Texo: Wie kann im Annotationsmodell die Spalte für EString vergrößert werden?

Default wird für EString eine Länge von 255 Zeichen verwendet. Wie kann die Spalte nun vergrößert werden wenn ein:
Error Code: 1406. Data too long for column … at row …
kommt?

Einfach das Annotationsmodel um diesen Eintrag ergänzen:
Annotation

Dann das Modell einmal neu generieren, schon ist die Spalte wie gewünscht annotiert:

Wie können auf einem Mac OS X dmg (Apple disk image) Archive mit Maven und hdiutil erstellt werden?

Will man Java Programme ausliefern, benötigt man auf einem Apple ein dmg Archive. Das kann wie folgt erstellt werden.

In der pom.xml folgendes Plugin einfügen:

Die Main Klasse mit der Klasse ersetzen, die gestartet werden soll. Auch der Pfad zum Icon anpassen. Evl. noch eine eigene plist setzen mit:

Dann das Maven Goal mvn package appbundle:bundle ausführen
mvn goal
und in das target Verzeichnis mit einer Konsole gehen und folgenden Befehl mit hdiutil ausführen:

Schon wird das TW.dmg Archive im target Verzeichnis erzeugt. Wer das auch noch als Maven Task automatisieren möchte, trägt noch folgendes ein:

Als Alternative könnte man auch das osxappbundle-maven-plugin verwenden. Das hat Abhängigkeiten zu Apple’s Java launcher, und ist nicht für Java Version 7 und größer.
Aber wer will, kann dann das als Alternative eintragen:

Wie kann eine MySQL Datenbank auf einem Mac OS X 10.10.3 (Yosemite) (Windows …) installiert werden, um mit Java von Eclipse (Java EE Luna 4.4.2) aus darauf zuzugreifen?

Wer eine MySQL Datenbank auf seinen Rechner installieren will, muss sich die Packages die zu installieren sind, auf der MySQL Homepage zusammen suchen.

Folgende drei Komponenten müssen für Mac OS X geladen und installiert werden (für Windows analog):

1. MySQL Community Server 5.6.24 von https://dev.mysql.com/downloads/mysql/

Für den Mac OS X 10.9 (x86, 64-bit), DMG Archive 5.6.24 167.6M mysql-5.6.24-osx10.9-x86_64.dmg. Installation.

2. MySQL Workbench 6.3.3
von http://dev.mysql.com/downloads/workbench/

mysql-workbench-community-6.3.3-osx-x86_64.dmg. Installation.

Die Workbench kann dann aus dem Programm Verzeichnis über das folgende Programm-Icon gestartet werden:
workbench

3. Connector/J 5.0.8 für Java für alle Betriebsysteme von https://dev.mysql.com/downloads/connector/j/5.0.html

Download mysql-connector-java-5.0.8.zip und z.B. in das Verzeichnis
/usr/local/mysql-5.6.24-osx10.8-x86_64/mysql-connector-java-5.0.8.jar kopieren.

Wenn alles installiert wurde, kann der DB Server über die Systemsteuerung mit dem MySQL Icon unten rechts gestartet werden:
mysql „Wie kann eine MySQL Datenbank auf einem Mac OS X 10.10.3 (Yosemite) (Windows …) installiert werden, um mit Java von Eclipse (Java EE Luna 4.4.2) aus darauf zuzugreifen?“ weiterlesen

Raspberry Pi: Per Bash mit GPIO Lib wiringpi, per Phyton mit RPi.GPIO und Java mit pi4j ansteuern der Pins auf Kali

Um die Pins per Bash anzusteuern, kann die wiringpi Lib verwendet werden. Die GPIO Homepage oder auch die Pin Belegung des rPi ist hilfreich.

So, jetzt erst einmal alles installieren und testen mit einer LED mit Widerstand an Pin 7 (4. Pin von oben links) und Masse (ganz unten links).

Zuerst alles für die Bash, um von der Konsole auf die Pins zugreifen zu können: „Raspberry Pi: Per Bash mit GPIO Lib wiringpi, per Phyton mit RPi.GPIO und Java mit pi4j ansteuern der Pins auf Kali“ weiterlesen

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.

DUMP1090 Client TWFlug 0.1.0 für Raspberry Pi, Mac, Windows und Linux veröffentlicht

Habe soeben die 1. Version von dem DUMP1090 Client TWFlug kostenlos TWFlug Icon
veröffentlicht.

TWFlug liest die Daten von einem DUMP1090 Server und zeigt sie (optional) in einem Tacho an oder/und schreibt die Daten in eine Logdatei für die Auswertung mit z.B. Fhem. Es kann die Logdatei auch per sFTP an einen entfernten Rechner kopieren.
Das TWFlug Programm ist ein Java Programm und läuft somit auf allen Betriebssystem. Es können mit Fhem dann solche schönen Grafiken in Echtzeit angezeigt werden:

Fhem Flugdaten in Langenhagen zu Weihnachten
Fhem Flugdaten in Langenhagen zu Weihnachten

Installation:

Download der twflug-0.1.0.zip.

Dann das Archive auspacken.

Für das Starten gibt es zwei Möglichkeiten mit oder ohne GUI.

Ohne GUI mit Eingabe in der Konsole in dem TWFlug Verzeichnis mit:

also z.B. java -jar twflug.jar -n --ip 192.198.1.2

oder mit GUI

also z.B. java -jar twflug.jar --ip 192.198.1.2

Dann startet nach einigen Sekunden, die folgenden Anzeige von TWFlug:

TWFlug Tacho
TWFlug Tacho

Weiter Infos zu den Parametern erhält man durch Eingabe von

Weitere Anregungen, Bugs, Fix, Likes, Lob und Dank gerne als Kommentar hier auf der Seite.

Viel Spaß beim Planecounting.

Raspberry Pi: Wie können Flugzeugdaten in Fhem in real-time (Echtzeit) angezeigt werden?

Da bei mir ein Fhem Home-Server läuft, hatte ich die Idee, dort doch gleich die Flugdaten die von den Flugzeugtranspondern ausgesendet werden schön graphisch in Echtzeit anzuzeigen.

Also wie kann eine Grafik in Fhem erstellt werden, die die aktuelle Anzahl der gerade empfangenen Flugzeuge anzeigt.

Hier das Ergebniss, wo man deutlich sehen kann, das heute bis ca. 6 Uhr nur ca. 10 Flugzeuge flogen. Dann steigt der Flugverkehr rapide an:
Fhem Flugdaten

Wie kann nun so eine Grafik, die sich automatisch aktualisiert erstellt werden.

Zuerst einmal die Architektur als BPMN 2.0 Diagramm:

Architektur TWFlug BPMN 2.0
Architektur TWFlug BPMN 2.0

Es werden zwei Raspberry Pi benötigt. Auf dem einen läuft der DUMP1090 Server mit der TWFlug Anwendung unter Java 1.8. Die TWFlug Anwendung läuft ohne Gui, und schreibt alle 5 Minuten die Anzahl der empfangenen Flugzeuge in eine Datei. Diese Datei wird dann jede halbe Stunde per sFTP an den anderen Raspberry Pi gesendet und von Fhem eingelesen und als Grafik ausgegeben.

TWFlug kann auch mit Gui auf einen Rechner gestartet werden und gibt dann als Tacho die Anzahl der Flugzeuge aus.

TWFlug Tacho
TWFlug Tacho

Das nötige GPlot Script:

TWFlug schreibt die Daten in eine Logdatei mit folgenden Format, z.B.:

TWFlug kennt bisher die folgenden Parameter:

Welche fehlen noch?

Hinweise zu TWFlug TWFlug Iconund DUMP1090 können auf diesem Blog gefunden werden.

JUnit 4.12 erschienen

Nach über 2 Jahren ist nun eine neue Version von JUnit veröffentlicht worden. Die Releasenotes sind auf Github zu finden. In folgenden Bereichen gab es Ergänzungen:

Ok, dann mal gleich das aktuelle Maven Projekt TWFlug auf die neue Version 4.12 angepasst:

Und siehe da, alles GRÜN:
Bildschirmfoto 2014-12-14 um 16.47.52

Mehr über JUnit oder drei Gründe warum man keine JUnit-Tests schreiben sollte.

Wie kann OpenHab und eine Demo-Anwendung auf einem Raspberry Pi (Debian) installiert werden?

Wie kann OpenHab und eine Demo-Anwendung auf einem Raspberry Pi (Debian) installiert werden?

OpenHab läuft auch auf einem Raspberry Pi. Auf Wikipedia gibt es einen kurzen Überblick zu OpenHab.

Um erste Erfahrungen mit OpenHab zu machen, kann man die Demo Anwendung von OpenHab installieren. Als Basis dient die aktuelle Debian 7.6 Version, auf der schon Java installiert ist.

1. Zuerst checken ob Java installiert ist und läuft mit:

Ausgabe:

2.Verzeichnis anlegen

3. Von hier die https://openhab.ci.cloudbees.com/job/openHAB/

die aktuelle Version 1.6.0 laden und auspacken (erst die runtime und später die demo)

4. Usermod für User pi setzen und default openhab.cfg erstellen

5. Demo zip laden uns auspacken (eine Readme Datei wird evl. überschrieben)

6. Starten von OpenHab und im Browser aufrufen (ip anpassen)

Ungefähr 1 Minute warten…
Bildschirmfoto 2014-10-02 um 21.59.42

Dann im Browser die folgende URL der Demo Anwendung aufrufen:

Hier nun einige Fotos, von der Demoanwendung:
Bildschirmfoto 2014-10-02 um 21.56.03

Bildschirmfoto 2014-10-02 um 21.56.29

Bildschirmfoto 2014-10-02 um 21.57.13

Bildschirmfoto 2014-10-02 um 21.58.16

Wie nutzt Ihr OpenHab?

Wie kann Eclipse 4.4 Luna installiert werden, das soeben erschienen ist und meine TOP 7 Plugins?

Hallo,

soeben ist Eclipse 4.4 Luna erschienen.
Bildschirmfoto 2014-06-25 um 20.33.31
Auf die Download-Seite gehen und installieren.

Folgende Plugins sind noch für mich nötig:

CommentTemplate

Wie in Blogeintrag installieren.

Dieses Jar den Classpath hinzufügen:
Bildschirmfoto 2014-06-25 um 20.51.37Bildschirmfoto 2014-06-25 um 20.59.47

Subversion – SVN Team Provider 2.0

Bildschirmfoto 2014-06-25 um 21.02.44
Bildschirmfoto 2014-06-25 um 21.06.52
Bildschirmfoto 2014-06-25 um 21.08.16

Grep Console 3.6

Wie hier beschrieben installieren.
Bildschirmfoto 2014-06-25 um 21.18.51

Workspacemechanic

Wie hier beschrieben installieren.
Bildschirmfoto 2014-06-25 um 21.21.29

Start Explorer

Wie hier beschrieben installieren.
Bildschirmfoto 2014-06-25 um 21.24.02

UML Diagramme erstellen mit ObjectAid

Wie hier beschrieben installieren.
Bildschirmfoto 2014-06-25 um 21.31.03

BPMN 2.0 Modeler

Wie hier beschrieben einfach die Kepler Update URL nehmen, die „geht“ auch mit Luna:
http://camunda.org/release/camunda-modeler/update-sites/kepler/latest/site/ die geht, habe es eben mit einem Diagramm validiert:
Bildschirmfoto 2014-06-25 um 21.48.13
Bildschirmfoto 2014-06-25 um 21.46.01

Welche Plugins sind für Euch essentiell? Bitte als Kommentar.

Java Rätsel des Monats

Wenn wir diese Java Klasse compilieren und ausführen:

Welche Lösung bzw. Aussage ist richtig?

1. Es wird immer folgende Ausgabe gemacht, egal was in der wieSiehtDieMethodeAus()
ergänzt wird:
Hallo Welt!
Hallo Welt!
Hallo Welt!

2. Es wird „nichts“ ausgegeben.

3. Es wird Hallo Welt! ausgegeben

4. Es kann durch Anpassung, nur in der Methode wieSiehtDieMethodeAus() folgende Ausgabe erzeugt werden?
Was in Java alles geht!
Was in Java alles geht!
Was in Java alles geht!

Dein Vorschlag in Form von 1,2,3 oder 4 bitte posten. Nur Mut!
Hier nun die Lösung:
„Java Rätsel des Monats“ weiterlesen