Kalenderspielereien mit Java – I18N

Die ersten drei Beiträge dieser Reihe handelten von einer Java API zur Feiertagsberechnung. In diesem Beitrag geht es um eine nachtragliche Verbesserung der Internationalisierung (I18N) und der minimalinvasiven Implementierung mit Hilfe des Decorator Design-Pattern.

Sortieren auf Teufel komm raus

Kaum ein Bereich in der Software Entwicklung gebiert so furchtbare Töchter wie die Sortierung. Obwohl die Java Standard Bibliothek viele wunderbare Klassen bereitstellt, finden sich immer wieder Programmierer, die ihre eigenen Holzwege schaffen.

Arbeiten mit FreeMarker Templates

Schaut man in irgendeine Code-Basis, dann finden sich immer Fragmente, die zur Generierung von Textdarstellungen dienen. Ob es sich um Inhalt einer Bestätigungs-Email, die Ausgabe von Rechnungsläufen oder eines Statusreports handelt. Je nach technologischer Reife der Systeme finden sich zur Erzeugung solcher Texte einfache String-Konkatenationen, String.printf Lösungen auf Konstanten oder Dateien, fluent Builder-APIs, eigene Template Engines oder erprobte Lösungen wie etwa FreeMarker.

Repeating Annotations

Lange war es in Java nicht möglich eine Annotation an einer bestimmten Position mehrfach anzugeben. Dieses Manko wurde erst in der Java Version 8 durch Repeating Annotationsbehoben.

Im Beitrag Hamcrest Matcher Generator wurde die @Hamcrest Annotation vorgestellt. Diese Annotation gestattet es, für eine angegebene Klasse, Hamcrest Matcher automatisch zu erstellen.
Leider kann in der initialen Version des Generators immer nur eine @HamcrestAnnotation an einer Klasse stehen.

Mehrsprachige Rest Endpoints

Hin und wieder schleichen sich I18N Anforderungen in die eigenen Anwendungen ein, die als einsprachige Anwendung gestartet wurde. Der offensichtlichste Fall für solch eine Mehrsprachigkeit ist z.B. eine Serviceseite im Kita Bereich. Da häufig Kinder verschiedenster Nationalitäten eine Kita besuchen, sind Informationen in der Muttersprache der Eltern hilfreich.

Hamcrest Matcher Generator (Teil 2)

Im vorherigen Beitrag wurde die grobe Struktur eines Generators für Hamcrest Matcher vorgestellt. In diesem Beitrag vervollständigen wir den Entwurf, in dem die losen Enden verknüpft und die tatsächlichen Matcher-Klassen generiert werden.

Hamcrest Matcher Generator

Generatorhalle

Wer lieber mit Hamcrest arbeitet, muss auf solch ein Feature nicht zwangsläufig verzichten. Wie ein eigener Assertion Generator für Hamcrest erstellt werden kann, wird in diesem und weiteren Beiträgen erläutert.

Bibliotheken Blues

Neue Teams und neue Kollegen das bedeutet häufig auch neue Frameworks, die von den Kollegen verwendet werden. Häufig ist es der ganz persönliche Geschmack, der die Wahl auf einen speziellen Framework fallen lässt.

Eigene Properties im Banner

Ein nettes Feature von Spring Boot ist der standardmäßige Banner in der Logausgabe nach dem Start der Anwendung. Der nachfolgende Banner zeigt nicht die übliche ASCII Art, sondern wurde auf schegge.de abgeändert. Außerdem wurden, neben der verwendeten Spring Boot Version, noch der Startzeitpunkt und der Autor der Anwendung ausgegeben.

Besucher in alten Gemäuern

alte Fabrikhalle

In diesem Beitrag geht es um das Visitor-Pattern, eines meiner liebsten Design Pattern. In den Beiträgen Zu Besuch bei den Enums und Noch mehr Besucher habe ich die Anwendung des Visitor-Pattern auf Enum Typen beleuchtet. In diesem Beitrag wenden wir uns der Legacy Software zu.