Laufzeitanalysen mit Hilfe der Aspektorientierten ... - Feldschmid
Laufzeitanalysen mit Hilfe der Aspektorientierten ... - Feldschmid
Laufzeitanalysen mit Hilfe der Aspektorientierten ... - Feldschmid
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<br />
<br />
<br />
Der Aufruf kompiliert hier sämtliche .java und .aj Dateien im Verzeichnis src<br />
und testsSrouces und schreibt die kompilierten .class Dateien in das destDir-Verzeichnis<br />
– ajc agiert hier also ebenso wie javac, nur eben <strong>mit</strong> AspectJ Unterstützung. Je nachdem<br />
welches Projekt hier kompiliert werden soll, müssen weitere Bibliotheken im Classpath<br />
angegeben werden, o<strong>der</strong> Konfigurationsdateien <strong>mit</strong> in das destDir kopiert werden.<br />
Hierfür kann die Build-Datei beliebig erweitert werden. Für einfache Aufgaben sind hier<br />
kaum Kentnisse <strong>der</strong> Ant-Syntax notwendig, die Build-Datei ist ausserdem für sich sehr<br />
sprechend.<br />
Um das volle potential des AspektJ-Compilers auszunutzen und sich so die Möglichkeit<br />
zu erschließen inkrementell zu kompilieren o<strong>der</strong> ByteCode-Weaving, also das anwenden<br />
eines Aspekts auf bereits kompilierte .class Dateien (bzw. .jar-Dateien), zu betreiben –<br />
verweisen wir auf die sehr gute Dokumentation <strong>der</strong> AspectJ-Ant-Tasks unter [Aspa].<br />
Das aktuell enthaltene Buildfile aspectj build.xml kompiliert sämtliche Aspekte und<br />
Tests. Um es zu verwenden sind folgende Schritte vorzunehmen:<br />
Zunächst sollte Ant in einer möglichst neuen Version installiert werden und das ant/bin-<br />
Verzeichnis gegebenenfalls zur Path-Variable hinzugefügt werden, um Ant direkt als<br />
Kommando in <strong>der</strong> Konsole verwenden zu können. Nun müssen noch die Properties im<br />
aspectj build.xml angepasst werden. Beson<strong>der</strong>s wichtig sind hier die beiden Properties<br />
<br />
<br />
Diese müssen auf den jeweiligen Pfad zeigen, in dem AspectJ installiert wurde.<br />
Um unsere Beispiele auszuführen ist sonst keine weitere Einstellung nötig. Sollen aber<br />
an<strong>der</strong>e Projekte kompiliert werden, muss das classpath compile bzw. classpath execution<br />
Property gegebenenfalls um weitere librarys erweitert werden.<br />
Nun kann das default-target, hier compile, per Kommandozeile gestartet werden: ”<br />
ant<br />
–f aspectj build.xml“ führt das default-target aus. Zunächst, wird falls vorhanden <strong>der</strong><br />
Ordner ant-out im relativen Verzeichnis gelöscht (clean). Dann werden Librarys und<br />
Konfigurationsdateien ins ant-out Verzeichnis kopiert(copy). Zu guter letzt werden noch<br />
sämtliche java/aj Dateien compiliert, sowie alle weiteren Dateien die sich in den beiden<br />
sourceroot-Verzeichnissen befinden ins jeweilige ant-out Unterverzeichnis kopiert<br />
(ausgeschlossen von diesem Kopieren sind .java und .aj Dateien – siehe SourceRootCopyFilter).<br />
Nun können die kompilierten .class Dateien ganz normal per java Aufruf ausgeführt werden<br />
(zusätzlich muss man nur die aspectjrt.jar im Classpath angeben) – auch dies kann<br />
40