Instrumentierungstechnologien in Java

Scheduled time: Sunday, 15:00 - Room V3 - Duration 60 Min.

Neben den Domänenanforderungen muss entwickelter Code oft bestimmte Anforderungen wie Logging, Sicherheit oder Applikationsmonitoring erfüllen. Diese Querschnittsaspekte sind mit herkömmlichen Implementierungsansätzen nicht sinnvoll zu bewältigen, da sie repetitive Implementierungen erfordern würden. Aus diesem Grund wurden Instrumentierungstechnologien in verschiedenen Sprachen – meist unter quelloffener Lizenz – entwickelt.
In diesem praxisorientierten Vortrag werden die Instrumentierungstechnologien AspectJ, ByteBuddy, DiSL und Javassist vorgestellt und mit händischer Instrumentierung des Quelltextes verglichen. Dabei wird erläutert, wie ein Projekt automatisiert um Logging erweitert werden kann. Hierbei wird sowohl die Implementierung für Buildzeitinstrumentierung als auch Kompilierzeitinstrumentierung vorgestellt. Abschließend wird ein Performancevergleich der Technologien präsentiert, um Einblicke in ihre Stärken und Schwächen zu geben.

Desired previous knowledge: Grundkenntnisse in Java

Supplemental material: Slides (4128 KiB), Material (1734 KiB)

Video recording (external):

https://media.ccc.de/v/clt25-348-instrumentierungstechnologien-in-java