Archiv für den Monat: April 2011

Maven-PlugIn und transitive Workspace-Abhängigkeiten

Die Fehler-Situation war eine Exception im XStream/CGLIB. Sowohl der POM-Editor, die Eclipse „Maven-Dependencies“ und auch sonst zeigten XStream 1.3 an, wie man es erwarten konnte.
Im POM für Projekt A ist XStream 1.3 als Abhängigkeit eingetragen. A hängt noch von B ab, in welchem XStream 1.2.2 eingetragen ist. Der Dependency-Eintrag im POM von A enthält einen entsprechenden Exclude auf XStream aus B. Soweit so gut.

Wenn man nun aber in Eclipse und dem „Maven Integration for Eclipse“-PlugIn die „Workspace Resolution“ eingeschaltet hat, dann kann es passieren, das über diesen Bypass ein zweites XStream in den Classpath wandert. Das kostet dann Zeit, weil es auf dem einen Eclipse-Helios-Workspace geht und auf dem anderen nicht. Das macht sich beim Kunden besonders schlecht, wenn man für das Deployment einen solchen Workspace benutzt (wie bei mir geschehen) und Stunden benötigt, auf das Problem zu kommen.

Ich tendiere immer mehr dazu, dass man mit Maven einen festen überprüfbaren Abhängigkeitsbaum initial erzeugt und diesen dann fest in das Projekt einbindet. Sollten neue Abhängigkeiten nötig werden, so geht man wieder diesen Weg: get dependencies, test it and freeze.

Lernen für die Amateurfunkprüfung

Die Landeskürzel kann man gut hier lernen: DX-Cluster.

Testprüfungen kann man hier machen: Prüfungstraining für das Amateurfunkzeugnis. Bei der Technik-Prüfung bin ich immerhin schon bei 84% um die 35 Minuten.
Mit Lernen selbst muss ich noch in Technik und Vorschriften die EMV-Kapitel vollständig durchlesen. Es sind inzwischen 1616 Lernkarten und ich mache pro Tag um die 150 Karten im Test.

KW-Hören macht eine Menge Freude. Besser wäre, wenn ich die Prüfung schon hinter mir hätte.

YAESU-FT 897 D

Heute Abend mit Hein (DF6HF) zusammen nach Göttingen, meine erste Funke holen. 5 Stunden unterwegs wegen Staus.
Völlig am Ende aber glücklich die Nacht in der Küche mit dem neuen Spielzeug YAESU-FT 897 D.

Alles dran, was man braucht und gleich super Empfang mit Draht aus dem Fenster und Anpassgerät (danke für diese Sonnenflecken).
Hätte nie gedacht, wie viel so ein Anpassgerät ausmacht. Extra eines mitgenommen, da die eigene Anpassung des Yaesu kurz sendet. Das darf ich ja noch nicht, deshalb passives Anpassen.

Gleich super Empfang auf 40, 20 und 15 m. „Glasklare“ SSB-QSOs, trotz einfachen Drahts. Kaum Störungen im Haus. Stundenlang davorgehockt.
Nun muss ich erst einmal meine Ohren wieder trainieren zu hören. Aber es beginnt schon wieder riesen Spaß zu machen. Mit Lernen muss ich jeweils noch 2 Kapitel Technik bzw. Vorschriften lernen.

Testprüfungen hab ich schon online gemacht und bin Technik mit 24 Minuten und 67% zwar nicht so gut, wie ich dachte, aber das ist auch nur praktisches Training jenseits der einfachen Lernkarten.

Properties und Encoding

Manchmal sollte man die Warnings lesen, die diverse Tools auswerfen.

Es ist ein guter Hinweis von Maven2, dass man ggf. folgendes einfügen sollte:


<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

Ansonsten kann es sein, dass die Quellcode-Dateien stillschweigend umgesetzt werden.
In diesem Zusammenhang sind wir auf einen Mechanismus gestoßen, der komischerweise bis jetzt immer so weit funktioniert hat.

Die Properties-Dateien besitzen gesonderte Einstellungen im Eclipse und sie sind voreingestellt auf ISO-8859-1.
Der Grund ist das Default-Einlese-Verhalten von Ressource-Bundles.
Alle Zeichen, die nicht ISO-8859-1 entsprechen, müssen als Unicode-Escape-Sequencen geschrieben werden.
Wenn man nun UTF-8 kodierte Properties-Dateien benutzt, dann können die Zeichen beim Default-Einlesen zerstört werden.

Siehe hierzu z. B.: globalizer.wordpress.com

Aber unter Java 1.6 gibt es eine neue Möglichkeit, dieses Default-Einlesen mit einem eigenen Reader zu umgehen.
Nur leider wird beim Verwenden von verschiedensten Frameworks diese neue Möglichkeit sicher nicht konsistent umgesetzt.


Update: With Java 6 you can use PropertyResourceBundle constructed with a Reader, which can use UTF-8 directly.

Es kann passieren, dass beim Ressouce-Kopieren durch Maven die Dateien umkodiert werden und man lustige Ausgaben erhält, je nach Zielplattform und deren Encoding.