Java Getriebe

Java und NetBeans

Extension Points in Ant

Ant ist das Buildsystem für die NetBeans Platform. Es ist zwar möglich eine Anwendung auf Basis der NetBeans Rich Client Platform (RCP) mit Hilfe von Maven oder Ant zu erstellen, aber für diese Basis selbst ist Ant notwendig. Es finden aktuell zwar auch einige Diskussionen dazu statt das Buildsystem von NetBeans zu wechseln, aber selbst mit dem aktuellen System wären einige Optimierungen möglich. Insbesondere eine Feature von Ant ist derzeit noch komplett ungenutzt: Extension Points. Read More

try-with-resources dekompiliert

Durch einen ungünstigen Zwischenfall war ich gestern gezwungen die Arbeit des Tages durch dekompilieren noch vorhandener .class-Dateien zu retten. Nicht alle aktuellen Tools zum dekompilieren sind momentan in der Lage mit den Spracherweiterungen von Java 8 umzugehen. Mit CFR habe ich aber dennoch eine funktionierende Version des Tagewerks wiederherstellen können. Zumindest funktionieren die wiederhergestellten Tests.

Interessant fand ich eine Methode, die ich in der Form nicht in Erinnerung hatte geschrieben zu haben: Recht lang und dirverse geschachtelte try-catch-finally Blöcke. Read More

Simple XML/HTML Tag Writer

Eine einfache „Builder“-Klasse, mit der sich vergleichsweise leicht XML/HTML Tags erstellen lassen. Ich brauche die Klasse immer mal wieder, wenn ich einzelne HTML-Ausgaben erstellen muss (hier aus einem „@todo„-Taglet)

1
2
3
4
5
6
7
8
9
10
11
    String dt = new TagWriter("dt")
        .setAttribute("class", "simpleTagLabel")
        .setRawContent(new TagWriter("span")
            .setAttribute("style", "background-color:orange;padding:.5em;")
            .setContent("Zu Erledigen:")
            .toString())
        .toString();
    String dd = new TagWriter("dd")
        .setContent(tag.text())
        .toString();
    return dt + dd;

Die Klasse kommt auch mit „leeren“ Tag zurecht und schließt diese korrekt.
Read More

Neue JUG in der Euregio Maas-Rhein

In der Euregio Maas-Rhein, zu der auch Aachen gehört, hat sich eine neue „Java User Group“ (JUG) gegründet: EuregJUG Maas-Rhine — All things JVM!: Warming up!.

Ziel soll es sein alle 2 Monate einen kostenfreien, englisch-sprachigen Vortrag anzubieten rund um das Thema Java und die JVM. Der erste Vortrag wird im 28.5.2015 stattfinden:
„Building Modular Java Applications in the Cloud Age“

Hintergrundprozesse ohne den EDT zu verlassen.

Ich hatte vor längerer Zeit schon mal den SecondaryLoop aus Java7 erwähnt und mich das selber fast genauso lange nicht mehr mit ihm beschäftigt. Jetzt bot sich allerdings eine Gelegenheit das nachzuholen. Ein kleiner „Downloader“, der eine ausgewählte Datei auf den lokalen Rechner kopieren sollte.

Read More

Java Namespaces

Ich merke bei meinen Azubis immer mal wieder, dass ihnen der Sinn oder Unsinn der Paket-Anweisung (package) nicht ganz bewusst ist. Die Klassen werden zwar in irgendein Paket abgelegt, aber warum unsere Paket alle ausgerechnet mit de.rwthaachen.wzl.gt wird nicht hinterfragt. So kommt es gerade bei den ersten eigenen Projekten regelmäßig vor, dass als Paket de.nachname.projekt verwendet wird. Meist blicke ich dann ich weit aufgerissene Augen wenn ich Frage „gehört dir die Domain ’nachname.de‘ überhaupt?“

Read More

TopComponentGroup mit Annotation

Für eins meiner Projekte hier in der WZL Getriebeabteilung wollte ich 2 TopComponents öffnen. Das geht am schönsten mit TopComponentGroups. Wer allerdings schon einmal eine TopComponentGroup erstellt hat, der wird mir sicherlich zustimmen, dass das Eintragen in die layer.xml eine sehr fehleranfällige Methode ist, da man sich relativ leicht vertippen kann.

Read More