Master 1 d'Informatique - Option MAD (Middleware et Applications aDaptables) - Université Grenoble I - UFR IMA


Aspect-Oriented Programming / AspectJ

Enseignant : Sara Bouchenak, Sara.Bouchenak@imag.fr

Page de l'option MAD : http://sardes.inrialpes.fr/~bouchena/teaching/MAD/


TP 2 : Traçage de programmes

  1. Objectif
     
  2. Environnement logiciel
     
  3. Application bancaire
     
  4. Etapes du TP
    (a) Traçage de méthodes
    (b) Traçage d'exceptions
    (c) Traçage de paramètres de méthodes
    (d) Utilisation d'une nouvelle librairie de traçage
     
  5. Compte-rendu global

1. Objectif

Conception et mise en oeuvre du traçage de programmes avec AOP/AspectJ.

2. Environnement logiciel

Les logiciels suivants sont nécessaires au TP ; les installer s'ils ne sont pas disponibles dans votre environnement.

Logiciels

Les logiciels nécessaires au TP sont également disponibles dans ~sbouchen/ENS/MAD/AOP/Soft/

Variables d'environnement

Définir les variables d'environnement suivantes :

Exemple de fichier de commandes pour Unix/tcsh env-tcsh (soit ajouter ces commandes à votre fichier ~/.cshrc, soit exécuter la commande source env-tcsh).
Exemple de fichier de commandes pour Windows env-win.bat (exécuter la commande env-win.bat).
Ces fichiers sont disponibles dans ~sbouchen/ENS/MAD/AOP/Soft/

3. Application bancaire

Récupérer le TP2 qui se trouve dans ~sbouchen/ENS/MAD/AOP/Project/TP2.tgz

Une application bancaire est donnée dans Project/TP2/Basic :

Compiler et exécuter l'application puis naviguer dans son API et son code pour comprendre son fonctionnement :

4. Etapes du TP

(a) Traçage de méthodes

Le répertoire Project/TP2/Logging_HandCoded/1_Methods contient une extension "programmée à la main" de l'application bancaire pour la prise en compte d'un nouvel aspect : le traçage des méthodes de l'application.

Ce traçage est basée sur la librairie Java standard java.util.logging.

Les classes qui ont plus particulièrement été modifiées sont les suivantes :

En vous inspirant de ce code, proposer une mise en oeuvre de l'aspect de traçage de méthodes en utilisant AspectJ.

Pour ce faire, copier le répertoire Project/TP2/Logging_Aspects et écrire l'aspect demandé dans Project/TP2/Logging_Aspects/aspects/logging/LogAspect.java :

(b) Traçage d'exceptions

Le répertoire Project/TP2/Logging_HandCoded/2_MethodsExceptions/ contient une extension "programmée à la main" de l'application bancaire pour la prise de l'aspect de traçage des exceptions de l'application (en plus du traçage des méthodes).

Les classes qui ont plus particulièrement été modifiées sont les suivantes :

En vous inspirant de ce code, proposer une mise en oeuvre de l'aspect de traçage d'exceptions en utilisant AspectJ.

L'aspect demandé doit être ajouté à Project/TP2/Logging_Aspects/aspects/logging/LogAspect.java.

(c) Traçage de paramètres de méthodes

Le répertoire Project/TP2/Logging_HandCoded/3_MethodsExceptionsParams/ contient une extension "programmée à la main" de l'application bancaire pour la prise de l'aspect de traçage des paramètres des méthodes (en plus du traçage des méthodes et des exceptions).

Les classes qui ont plus particulièrement été modifiées sont les suivantes :

En vous inspirant de ce code, proposer une mise en oeuvre de l'aspect de traçage des paramètres de méthodes en utilisant AspectJ.

Penser aux informations réflexives fournies par AspectJ avec thisJoinPoint et thisJoinPointStaticPart.

L'aspect demandé doit être ajouté à Project/TP2/Logging_Aspects/aspects/logging/LogAspect.java.

(d) Utilisation d'une nouvelle librairie de traçage

Mise à part la librairie Java standard de traçage (java.util.logging), d'autres librairies Java existent telles que org.apache.log4j proposée par le projet log4j (http://logging.apache.org/log4j/).

Les principales différences, du point de vue syntaxique, de org.apache.log4j par rapport à java.util.logging sont les suivantes :

Voir les API de :

    1- Modification de l'application bancaire pour l'utilisation de la librairie de traçage log4j

Le répertoire Project/TP2/Logging_HandCoded/4_MethodsExceptionsParametersLog4j/ contient initialement une extension "programmée à la main" de l'application bancaire pour le traçage des méthodes, des exceptions et des paramètres ave le logging Java standard.

Modifier cette extension pour remplacer l'utilisation de la librairie standard Java de traçage par la librairie log4j.

La librairie log4j.jar est déjà disponible dans Project/TP2/Logging_HandCoded/4_MethodsExceptionsParametersLog4j/lib ; vous ne devez que modifier la mise à jour de votre application pour la prise en compte de cette nouvelle librairie.

    2- Modification de l'aspect pour l'utilisation de la librairie de traçage log4j

Modifier l'aspect préalablement écrit (Project/TP2/Logging_Aspects/aspects/logging/LogAspect.java) pour le remplacement de la librairie standard Java de traçage par la librairie log4j.

La librairie log4j.jar est déjà disponible dans Project/TP2/Logging_Aspects/lib/ ; vous ne devez que modifier la mise à jour de votre aspect pour la prise en compte de cette nouvelle librairie.

    3- Comparaison de l'impact des deux modifications du point de vue programmation

5. Compte-rendu global

Un compte-rendu global sur les TP 2, 3 et 4 est à rendre lors de la séance de démonstration.
Voir ici pour plus d'informations.