Bei der Benachrichtigung stören solche Ausbildungsflüge:
Bei denen will ich nicht per Pushover benachrichtigt werden. „Raspberry Pi: Flugzeuge Erfassung jetzt mit Blacklist in Version (0.0.7) auf Maven Central veröffentlicht“ weiterlesen

Wenzlaff.de – Rund um die Programmierung
mit Java, Raspberry Pi, SDR, Linux, Arduino, Sicherheit, Blender, KI, Statistik, Krypto und Blockchain
Alles rund um Java
Bei der Benachrichtigung stören solche Ausbildungsflüge:
Bei denen will ich nicht per Pushover benachrichtigt werden. „Raspberry Pi: Flugzeuge Erfassung jetzt mit Blacklist in Version (0.0.7) auf Maven Central veröffentlicht“ weiterlesen
Wie können mit Java PDF Dokumente erzeugt werden?
Das geht mit ein paar Zeilen Code und iText. Die iText Lib läßt sich leicht integrieren. Hier mal ein Beispiel um ein paar Daten zu haben, nehmen wir mal einen Lebenskalender. Der ganze Code (nur eine Java Klasse) liegt auf Github und kann von dort geladen werden.
Also mal ein neues Mavenprojekt anlegen und in der pom.xml die iText Abhängigkeit einfügen:
|
1 2 3 4 5 |
<dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>4.2.0</version> </dependency> |
Dann mal ein paar Zeilen Javacode für die PDF Erzeugung z.B. so:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
private static void printPdfDokument(List<String> kalender) throws DocumentException, FileNotFoundException { Document document = new Document(PageSize.A4); PdfWriter.getInstance(document, new FileOutputStream("lebenskalender.pdf")); document.open(); Font f = new Font(); f.setFamily("Courier"); f.setSize(10); for (String woche : kalender) { document.add(new Paragraph(woche, f)); } document.close(); } |
und schon können wir ein PDF Dokument erzeugen. Hier das Ergebnis lebenskalender.pdf.
Hier mal die Ausgabe auf System.out:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
Lebenskalender Berechne von aktuellem Alter 52 Jahren und 7 Monate Jahre Wochen 0 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 1 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 3 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 5 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 9 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 10 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 11 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 12 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 13 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 14 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 15 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 16 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 17 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 18 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 19 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 20 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 21 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 22 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 23 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 24 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 25 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 26 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 27 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 28 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 29 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 30 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 31 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 32 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 33 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 34 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 35 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 36 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 37 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 38 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 39 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 40 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 41 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 42 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 43 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 44 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 45 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 46 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 47 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 48 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 49 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 50 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 51 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 52 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 53 XXXXXXXXXXXXXXXXXXXXXXXXXXXX........................ 54 .................................................... 55 .................................................... 56 .................................................... 57 .................................................... 58 .................................................... 59 .................................................... 60 .................................................... 61 .................................................... 62 .................................................... 63 .................................................... 64 .................................................... 65 .................................................... 66 .................................................... 67 .................................................... 68 .................................................... 69 .................................................... 70 .................................................... 71 .................................................... 72 .................................................... 73 .................................................... 74 .................................................... 75 .................................................... 76 .................................................... 77 .................................................... Lebenserwartung in Deutschland: Männer 77 Jahre 9 Monate Frauen 82 Jahre 10 Monate Statistisch also noch: 27 Jahre als Mann zu leben! |
„PDF erzeugung in 5 Zeilen mit Java am Beispiel eines Lebenskalender“ weiterlesen
Java Wrapper für die Dump1090 Schnittstelle.
Dieses Projekt ist eine Javaschnittstelle für den Zugriff auf die Daten von Dump1090 per Java Objekte.
Mit dieser Javaschnittstelle können einfach Pushover Nachrichten an jedes Handy bzw. Tablet versendet werden wenn ein Flugzeug startet oder landet. Da wir in der nähe vom Flughafen Hannover (EDDV, HAJ) leben, sehen wir gerne Flugzeuge starten und landen. Die beiden Start.- und Landebahnen liegen in Ost-West Richtung. Wenn wir aus dem Küchenfenster schauen oder wenn wir auf der Terrasse sitzen, sehen wir alle Flugzeuge die von Osten aus ankommen bzw. in die Richtung wegfliegen. Nun möchte ich gerne eine Nachricht mit Tonsignal mit Höhe, Geschwindigkeit, Flugnummer usw. auf mein Handy erhalten, wenn ein Flugzeug aus dem Osten zum landen ankommt bzw. in Richtung Osten starte. Alle anderen Flugzeuge die in die andere Richtung starten bzw. landen sollen nicht berücksichtigt werden. Auch nicht Flugzeuge die nur Hannover überfliegen.

Auch soll eine Pushover versendet werden wenn ein Luftnotfall (med. Notfall, Entführung usw. ) per Transponder gemeldet wird.
„Java Wrapper für die Dump1090 Schnittstelle“ weiterlesen
Muss das sein? Können die nicht in Nevada ihre Flugübungen machen?
|
1 2 3 4 5 6 7 8 9 10 11 |
2016-11-23 19:17:24 INFO TimerAktion:86 - ---------> Nachricht senden: Flugzeug [hex=3d4190, squawk=7000, lat=52.389283, lon=9.745501, altitude=1900 Fuss, speed=73 Knoten/h, flight=DEXBS , nucp=0, seen_pos=30.8, vert_rate=-128, track=81, messages=7626, seen=0.4, rssi=-12.8, mlat=[lat, lon, track, speed, vert_rate], ] 2016-11-23 19:17:24 INFO PushoverAktion:122 - Versende Pushover Aktion mit folgender Nachricht: Flugzeug Flug: DEXBS, Höhe: 580 m, Geschwindigkeit: 136 km/h, HEX: 3D4190, Squawk: 7000, Lat: 52.389283, Lon: 9.745501 2016-11-23 19:17:24 INFO PushoverAktion:125 - Nachrichten URL: http://fr24.com/3d4190 2016-11-23 19:18:24 DEBUG Flugzeuge:82 - OK, Flugzeug im Landeanflug erfasst: Flugzeug [hex=3d4190, squawk=7000, lat=52.411116, lon=9.797372, altitude=1800 Fuss, speed=99 Knoten/h, flight=DEXBS , nucp=0, seen_pos=8.2, vert_rate=384, track=74, messages=7813, seen=1.0, rssi=-6.2, mlat=[lat, lon, track, speed, vert_rate], ] 2016-11-23 19:19:24 DEBUG Flugzeuge:82 - OK, Flugzeug im Landeanflug erfasst: Flugzeug [hex=3d4190, squawk=7000, lat=52.389888, lon=9.813930, altitude=1500 Fuss, speed=45 Knoten/h, flight=DEXBS , nucp=0, seen_pos=4.1, vert_rate=-512, track=169, messages=7966, seen=0.1, rssi=-25.2, mlat=[lat, lon, track, speed, vert_rate], ] 2016-11-23 19:20:24 DEBUG Flugzeuge:82 - OK, Flugzeug im Landeanflug erfasst: Flugzeug [hex=3d4190, squawk=7000, lat=52.395195, lon=9.763314, altitude=1400 Fuss, speed=106 Knoten/h, nucp=0, seen_pos=8.2, vert_rate=64, track=287, messages=8078, seen=0.1, rssi=-23.4, mlat=[lat, lon, track, speed, vert_rate], ] 2016-11-23 19:21:24 DEBUG Flugzeuge:82 - OK, Flugzeug im Landeanflug erfasst: Flugzeug [hex=3d4190, squawk=7000, lat=52.414282, lon=9.747698, altitude=900 Fuss, speed=92 Knoten/h, flight=DEXBS , nucp=0, seen_pos=22.3, vert_rate=128, track=321, messages=8193, seen=0.0, rssi=-14.4, mlat=[lat, lon, track, speed, vert_rate], ] |
Wie können Artifacte wie Jars usw. in das Nexus Maven Central Repository mit einem Mac (Windows analog) hochgeladen werden?
Das geht in 4 Schritten, die hier am Beispiel von de.wenzlaff.dump1090 beschrieben werden.
Zuerste benötigen wir einen Accout bei Atlassian den wir hier beantragen können. Evl. haben wir ja auch schon einen.
Dann müssen wir ein Jira Ticket mit „Create Issue“ erstellen, um eine eindeutige GroupId (z.B. de.wenzlaff) die es noch nicht gibt, zu erhalten, hier ein Beispiel für den Jira Ticket Antrag:
Wenn der Mitarbeiter das freigeschaltet hat (das kann etwas dauern), haben wir eine GroupId reserviert. „Wie können Artifacte nach Maven Central (Nexus) mit einem Mac hochgeladen werden?“ weiterlesen
JUnit Testmethoden sollten so geschrieben werden, das sie unabhängig von anderen Methoden sind. Die Reihenfolge der ausführung der Test-Methoden in einer Testklasse ist auch nicht garantiert und kann von lauf zu lauf unterschiedlich sein. Das ist auch gut so.
Manchmal möche man aber dennoch eine bestimmte Reihenfolge. Dies kann seit JUnit 4.11 mit der @FixMethodOrder(MethodSorters.NAME_ASCENDING Annotation durchgeführt werden.
Die Testklasse wird einfach mit der @FixMethodOrder(MethodSorters.NAME_ASCENDING markiert. Z.B.
Ohne ist die Ausführung z.B.:
Und mit Annotation z.B.:
Will man schnell und einfach HTML-Dateien parsen bzw. auswerten, geht das mit der schönen JSoup-Api. Hier gibt es eine Mindmap für den schnellen Überblick.
Es sind dann nur zwei Zeilen nötig um z.B. den Titel einer Webseite einzulesen:
|
1 2 |
Document doc = Jsoup.connect("http://reise.wenzlaff.de/reisetabelle/").get(); System.out.println("Der Titel der Website: " + doc.title()); |
Hier mal ein Zitat aus der Orginal Api-Beschreibung:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
jsoup is a Java library for working with real-world HTML. It provides a very convenient API for extracting and manipulating data, using the best of DOM, CSS, and jquery-like methods. jsoup implements the WHATWG HTML specification, and parses HTML to the same DOM as modern browsers do. parse HTML from a URL, file, or string find and extract data, using DOM traversal or CSS selectors manipulate the HTML elements, attributes, and text clean user-submitted content against a safe white-list, to prevent XSS output tidy HTML jsoup is designed to deal with all varieties of HTML found in the wild; from pristine and validating, to invalid tag-soup; j soup will create a sensible parse tree. |
Das sind doch Gründe!
Es braucht in der pom.xml des Maven Projekte nur diese eine Abhängigkeit angegeben zu werden: „Java: Parsen von HTML-Dateien mit JSoup 1.9.2 in zwei Java Zeilen“ weiterlesen
Java Objekte können leicht nach Json serialisiert und deserialisiert werden mit Gson.
Es braucht nur eine Abhängigkeit in der pom.xml ergänzt zu werden.
Das Beispiel: „Java to Json Beispiel mit Gson“ weiterlesen
Meistens erzeugt man Objekte in Java mit new. Es gibt aber noch ein paar andere Möglichkeiten.
Wir haben diese Farbe Testklasse:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
package de.wenzlaff.mqtt.client; import java.io.Serializable; /** * Farben Klasse. * * @author Thomas Wenzlaff * */ public class Farbe implements Cloneable, Serializable { private static final long serialVersionUID = 8660877851154300583L; private String farbe = "rot"; public Farbe() { System.out.println("Konstruktor aufruf"); } public String getFarbe() { return farbe; } public void setFarbe(String farbe) { this.farbe = farbe; } @Override public String toString() { return "Farbe: " + farbe + " mit HashCode=" + hashCode() + "\n"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((farbe == null) ? 0 : farbe.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Farbe other = (Farbe) obj; if (farbe == null) { if (other.farbe != null) return false; } else if (!farbe.equals(other.farbe)) return false; return true; } @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } } |
und haben diese Möglichkeiten Objekte zu erzeugen. „Welche Möglichkeiten der Java Objekt-Erzeugung gibt es?“ weiterlesen
Es muss nicht immer MQTT.fx sein um MQTT Daten zu empfangen. Der Java-Client Mqtt-Spy hat viel mehr Optionen. Es braucht nur das JAR von Github geladen zu werden und dann ein doppelklick auf das JAR, und schon läuft der MQTT-Client unter Mac, Windows, Linux …
Es braucht nur der Server test.mosquitto.org und als Topic /Anzahl/Flugzeuge/Hannover eingegeben zu werden und schon werden meine Flug-Daten die von einem Raspberry Pi empfangen werden alle 5 Minuten aktualisiert.
„Flugdaten aus Hannover von einem Raspberry Pi per MQTT mit Mqtt-Spy empfangen“ weiterlesen
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:
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
In Java 1.8 gibt es einen neue schöne static join Methode, es braucht nur ein Begrenzer angegeben zu werden und schon wird ein schöner String zusammengebaut.
Hier mal ein kleines Beispiel:
Was für neue schönen Methoden hast Du entdeckt?
In Java 1.8 gibt es das neue Schlüsselwort default. In Eclipse Neon wird dies auch unterstüzt.
So kann eine default Methode in einen interface erstellt werden:
Sie kann dann so verwendet werden:
In Eclipse ist sie an dem kleinen D erkennbar. Die default implementierung kann auch vererbt werden.
Hier eine schöne Aufzählung der Neuerungen der neuen Eclipse Neon Version.
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):
Der gute BPMN 2.0 Modeler von Camunda:
Bricht leider bei der Installation ab mit diesem Fehler: „Camunda BPMN 2.0 Modeler 2.7.1 läuft leider noch nicht mit Eclipse Neon 4.6.0“ weiterlesen
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:
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:
Wie kann ein Timer in Java mit Quartz erstellt werden? „Wie kann ein Timer in Java mit Quartz erstellt werden?“ weiterlesen
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.

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
Um JSON Files zu bearbeiten, gibt es das JSON-PlugIn. Damit können JSON-Dateien bearbeitet werden und auch die Syntaxhervorhebung ist schön.
„JSON Editor Plugin für Eclipse (Mars.2 Release (4.5.2))“ weiterlesen
Wer eine Fritzbox hat, kann dort auch Telefonbücher anlegen, so das beim Anruf eine E-Mail versendet wird. Bei mir wird bei Anruf auch eine Pushover Nachricht auf das Handy gesendet und der Name und die Nummer mit openHAB via Karotz angesagt, so das ich schon hören kann, wer anruft.

Das läuft über das openHab Fritzbox 064 Binding ganz gut. Von dem Bindig wird aber bisher nur das erste Telefonbuch aus der Fritzbox ausgelesen. Wer ein anderes benutzt muss die Daten exportieren und in dem ersten Telefonbuch wiederherstellen, da es keine löschen Funktion in der Fritzbox gibt.
Bei mir war noch das Problem, das viele Telefonnummern (über 600) Blanks, Bindestriche und Klammern enthielt. Z.B. (0)511-123 456 und die wird bisher in dem Binding nicht erkannt. Deshalb habe ich einen kleinen Konverter geschrieben, der alle Blanks, (,),- löscht und auch alle Nr. die kein +49 haben und mit 0 beginnen mit dem gültigen prefix +49 ohne 0 ergänzt. Weitere Regeln können leicht angepasst werden.
In diesem Java Programm, kann man auch sehen, wie mit einem SAXBuilder ein JDom Dokument erzeugt gelesen und verändert werden kann. Hier das Programm: „Fritzbox Telefonbuch (Phonebook) mit Java bearbeiten via JDom und SAXBuilder“ weiterlesen
Oft verwendet man java -version aber warum nicht mal
|
1 |
java -XshowSetting |
um noch mehr Infos zu bekommen?
Die UML 2.5 Umgebung Papyrus läuft auch unter Eclipse Mars.1 und bietet u.a. folgende Diagramme:
Die Installation läuft „Papyrus 1.1.3 UML 2.0 Designer läuft auch unter Eclipse Mars.1“ weiterlesen
Für die aktuelle Eclipse Mars.1 Version
gibt es einen kostenlosen UML 2.5 Designer. Mit ihm können ua. folgende Diagramme modelliert werden, wie auf der Homepage zu sehen:
„UML Designer 5.0 für Eclipse Mars.1 installieren“ weiterlesen
Hier am Beispiel von einem Arzt und einer Adresse. Wenn nun von der Adresse auf den Arzt und umgekehrt navigiert werden soll, kann die bidirektionale Verbindung im Feld EOpposite wie folgt eingetragen werden (rechts auf den Pfeil der Combobox klicken):

„Ecore & EMF: Wie kann eine bidirektional Verbindung in Eclipse zwischen zwei Klassen im ecore-Model modelliert werden?“ weiterlesen
Diese drei:
Die @Indexed annotation markieren, dass die Entitys indiziert
werden sollen.
Das Attribut ID der Entity muss mit @DocumentId annotiert werden, damit Hibernate
Search ein Mapping zwischen Dokumenten im Index und Entitys in der Datenbank herstellen kann.
Und die @Field annotation. Mit diesem Parameter kann angegeben werden, wie das Feld heißen soll und wie es indiziert werden soll und ob der Inhalt in Tokens zerlegt werden soll oder nicht, und ob der Inhalt auch im Index gespeichert werden soll, welche Filter und Analyzer für das Feld verwendet werden sollen.
Wie kann in einer Java Klasse ein Attribut für die Hibernate-Suche wie folgt annotiert werden?
|
1 2 |
@Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO) private String klinik_name = null; |
Dazu folgende EAnnotation als Value mit den voll qualifizierter Namen einfügen, damit auch die imports aufgelöst werden können
|
1 |
@org.hibernate.search.annotations.Field(index=org.hibernate.search.annotations.Index.YES, analyze=org.hibernate.search.annotations.Analyze.YES, store=org.hibernate.search.annotations.Store.NO) |
Und für die Maven pom.xml, den folgenden Eintrag, damit die Hibernate Klassen auch gefunden werden können:
|
1 2 3 4 5 6 |
<!-- Für die Hibernate Volltext-Suche --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-search-orm</artifactId> <version>5.3.0.Final</version> </dependency> |
Mit den Ecore Tools können gut Modelle per UML modelliert und das Java-Modell generiert werden. Die Ecore Tools können leicht über den Menüpunkt: Hilfe -> Eclipse Marketplaces … installiert werden:
Nach einem Neustart können die *.aird (ecore) Dateien über das Menü: Windows-Show View … Model Explorer geöffnet werden:
„Eclipse EcoreTools: Wie können *.aird (*.ecore) Modelle per UML unter Eclipse Mars bearbeitet werden?“ weiterlesen
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:

Dann das Modell einmal neu generieren, schon ist die Spalte wie gewünscht annotiert:
|
1 2 3 4 5 6 7 8 |
/** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ @Basic() @Column(length = 1024) private String behandlungen = null; |
Heute ist die Mars 4.5 Version von Eclipse veröffentlich worden. Was gibt es neues?
Ok, dann mal auf die Mars Download Seite und das Programm laden. Ich war übrigens der 6,666 Download!
Für den Mac geht es jetzt super einfach.
Installation
Download des
eclipse-jee-mars-R-macosx-cocoa-x86_64.tar.gz oder andere gewünschte Version.
Dann einen doppelklick auf die Datei zum entpacken. Nun noch die Eclipse.app in das Programme Verzeichnis verschieben. Dann das Programm starten durch einen doppelklick auf Eclipse.app. Das geht gefühlt schneller als vorher!
Mehr ist für die installation auf einem Mac nun nicht mehr nötig. Hier die IDE, mit den Versions Dialog:

Mars, das war’s. That’s it. Happy coding!

Details und Download des TWTransformer siehe hier.