Download Masterarbeit Timo Meinen - Meinen, Timo
Download Masterarbeit Timo Meinen - Meinen, Timo
Download Masterarbeit Timo Meinen - Meinen, Timo
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
4.4. IMPLEMENTIERUNG<br />
ment in der Entwicklungsumgebung Eclipse mit @Friendship annotiert, erscheint<br />
neben der Zeile ein Rufzeichen als Warnhinweis. Führt der Benutzer seine Maus<br />
über das Rufzeichen wird ein Hinweis ausgegeben, dass die Sichtbarkeit für die<br />
befreundeten Elemente veröffentlicht wurde. In einer zusätzlichen Ansicht sieht<br />
der Benutzer auch direkt, welche Klassen betroffen sind.<br />
Der Java-Compiler bietet ab Version 6 ebenfalls die Möglichkeit solche Prozessoren<br />
vor dem eigentlichen Kompiliervorgang auszuführen und den AST des Java-<br />
Programmes zu modifizieren. Leider hat der Aspekt-Compiler von AspectJ AJC<br />
noch nicht nachgezogen und bietet daher diese Funktionalität noch nicht an. Um<br />
AST-Prozessoren und Aspekte miteinander zu kompilieren war der Einsatz dieses<br />
externen Spoon-Prozoessors notwendig. Mit Hilfe des Build-Werkzeuges Apache<br />
Ant 4 lassen sich aber sowohl Spoon als auch AspectJ miteinander verknüpfen.<br />
Dazu wird vor dem Einweben der Aspekte der Spoon-Prozessor ausgeführt, der<br />
AST modifiziert und die veränderten Programmteile an den Aspekt-Compiler weitergereicht,<br />
der dann die Friendship-Aspekte einwebt. Dies funktioniert, indem das<br />
veränderte Programm-Modell des Spoon-Prozessors wieder als Java-Code in einem<br />
temporären Verzeichnis ausgegeben wird. Dieser Code wird dann vom Aspekt-<br />
Compiler als Quelle verwendet, um die Aspekte einzuweben. Ein vollständig funktionierendes<br />
Ant-Skript für diese Prozedur befindet sich als Teil der <strong>Masterarbeit</strong><br />
in Anhang C auf Seite 126.<br />
Die Verwendung des Ant-Skriptes ist dann notwendig, wenn der Zugriff auf private<br />
deklarierte Elemente möglich sein soll.<br />
4 http://ant.apache.org/<br />
89