AspectJ-IDE

Lösungen zu Kapitel 10

  1. Wenn Sie sich z.B. das Interface src/casino/player/RoulettePlayer.java im AspectJ-Visualizer anschauen, werden Sie einige Aspekte wie PlayerLogging oder RoulettePlayerAspect entdecken, die dieses Interface beeinflussen bzw. implementieren.
  2. Da Logging nur über die Log-Aspekte erledigt wird, müssen Sie nur diese anpassen und dort die import-Anweisung und Initialisierung des Loggers abändern:
    import org.apache.commons.logging.*;
    ...
    public aspect PlayerLogging extends AbstractLoggingAspect {
    private static Log log = LogFactory.getLog(PlayerLogging.class);
    ...
    }
    siehe src/casino/log/AbstractLoggingAspect.aj, LogAspect.aj, PlayerLogging.aj, RouletteLogging.aj
    Bei Jakarta-Commons-Logging handelt es sich nur um einen Wrapper um einige gängige Logging-Frameworks wie z.B. Log4J. Wenn Sie log4j.jar über den Classpath verfügbar machen, wird dieses Framework benutzt.
  3. src/casino/player/Player.java implementiert das RoulettePlayer-Interface jetzt selbst. Weitere Änderungen waren nicht notwendig, allerdings läuft die Anwendung jetzt ohne Logging.
  4. Bei der Rück-Verwandlung sollte es keine Probleme geben. Evtl. muss die Compilierung explizit angestoßen werden.

Falls Sie die Muster-Lösung ausprobieren wollen, sollten Sie noch ein "data"-Verzeichnis erstellen (z.B. über 'ant init').


letzte Änderung: 16. August 2005