Eher unbekannt ist die Pluggable Annotation Processing API von Java, welche erlaubt schon während des Compilerens Annotations zu nutzen. Das Projekt Lombok geht noch weiter und verändert sogar den annotierten Code selbst. Boilercode wie Getter/Setter und das Aufräumen von Ressourcen lassen sich somit durch knackige Annotations ersetzen. Wir betrachten am Livedemo Chance und Grenzen beider Ansätze.
6. Java Annotations : Auslesen zur Laufzeit
6 | Scharfe Anmerkungen für Java 6
7. JAR – Datei / Klassenpfad
Pluggable Annotation Processing
(JSR 269)
META-INFservicesjavax[..]Processor
+ Eigene Annotation Processor Klasse
7 | Scharfe Anmerkungen für Java 6
8. 8 | Scharfe Anmerkungen für Java 6
Live Demo / Plugable Annotation Processor
9. Fazit : Annotations & Pluggable Annotations Processor
PRO: Dead easy to make -> vgl. Beispiel
Dead easy to use -> Klassenpfad aufnehmen
Standard & Nahtlose Integration
BEISPIEL: Hibernate Metamodell Generator
CON:
Kann nur Neues (Klahissen/Bytecode/.. )
nzufügen
9 | Scharfe Anmerkungen für Java 6
26. Houston?!
java -jar lombok.jar
delombok src -d src-delombok
Erzeugt aKopien derateien
Jav -Quelld
Ersetzt:-Tags -> Standard Java
Lombok
26 | Scharfe Anmerkungen für Java 6
27. Behind the scenes
Hängt sich via Pluggable Processing API ein
Anstatt neuen Bytecode-Klassen zu erzeugen…
… verändert es zur Compilezeit diesen über
den aufgebauten AST (Abstract Syntax Tree)
Nutzt dazu nicht-öffentliche API
Zwei Implementierungen: Eclipse & Javac
27 | Scharfe Anmerkungen für Java 6
28. Fazit Lombok
Lob
Boilerplate-Buster
Einfache Verwendung
Kein Lock-in durch Delombok
.
.
Kritik
Es ist ein HACK!
.
Neue Sprachsemantik
.
Bislang nur in Eclipse sinnvoll
Eigene Erweiterungen möglich
.
Kleinere Usability Glitches
Java 7-like Features
für Java 6
.
.
Namen & Umfang der Tags
Spannende Ansätze!
.
28 | Scharfe Anmerkungen für Java 6
29. Quellen & Referenzen
Besuchen Sie uns auf unserem Stand!
Project Lombok
Website
Vortragsvideos
http://projectlombok.org/
http://parleys.com/d/1574
http://parleys.com/#st=5&id=2136
Bildquellen
Illustrationen
Zeichnungen
http://www.sxc.hu/
Oliver Pehnke
B.Schmid@exxcellent.de
eXXcellent solutions gmbh
Beim Alten Fritz 2
D-89075 Ulm
Telefon:
Telefax:
Web:
+49 (0) 731 - 550 26 – 0
+49 (0) 731 - 550 26 – 99
http://www.exxcellent.de
Weiterführendes Material
Annotation Pitfalls
http://bit.ly/lcntFl
Lombok & NetBeans http://wiki.netbeans.org/Lombok
Eigene Tags schreiben http://www.ibm.com/developerworks/java/library/j-lombok/
29 | Scharfe Anmerkungen für Java 6