Java Getriebe

Java und NetBeans

Statische Resourcen vom Compiler prüfen lassen

Benno Markiewicz hat in seinem Blog über eine Interessante Annotation in der NetBeans Plattform geschrieben: @StaticResource

NB platform: Catching missing resources at compile-time using @StaticResource | markiewb’s blog.

Gerade beim Refactoring kommt es gerne einmal vor, dass man eine Bilddatei oder auch eine Bundle.properties übersieht oder den entsprechenden Pfad in der Stringkonstante nicht anpasst. Die Annotation kann dabei helfen solche Probleme schneller und vor allem schon zur Compilezeit zu finden und nicht erst zur Laufzeit.

Es spielt dabei übrigens keine Rolle ob die Klassenkonstante mit der Annotation dran public oder private ist. Man muss die API der entsprechenden Klasse also nicht einmal verändern.

2 Responses to Statische Resourcen vom Compiler prüfen lassen

  1. Elmar says:

    Eine nützliche Annotation, die mir mehr als einmal Laufzeitfehler ersparte. Kennst du ein Plugin, das prüft, ob die Keys, die in NbBundle.getMessage(…) benutzt werden, auch in Bundle.properties des gleichen package sind? Das erspart viel Stress beim Refactoring, was bei Matisse-GUI-Abschnitten inzwischen meist richtig automatisch durchgeführt wird, aber bei eigenem Code vergessen werden kann. Mit den Bundle-Annotations kann ich mich nicht anfreunden, da es die Lokalisierung anderer Sprachen erschwert (Bundle.properties werden nicht im Source-Code aktualisiert, sondern nur im Compile-Verzeichnis, Matisse benutzt auch NbBundle).

  2. Dazu brauchst du kein Plugin. Mit NbBundle.@Message kannst du die Bundles quasi in den Java Quelltext verschieben. Die Annotation erzeugt automatisch für dich die Bundle.properties Dateien. Dadurch werden sie automatisch mit bearbeitet beim Refactoring. Leider funktioniert dies nur für die „original“-Bundles und nicht für die Übersetzungen, aber es ist schon mal ein guter Schritt in die richtige Richtung.