Master 1 d'Informatique - Option MAD (Middleware et Applications aDaptables) - Université Grenoble I - UFR IMA
Enseignant : Sara Bouchenak, Sara.Bouchenak@imag.fr
Page de l'option MAD : http://sardes.inrialpes.fr/~bouchena/teaching/MAD/
Conception et mise en oeuvre du traçage de programmes avec AOP/AspectJ.
Les logiciels suivants sont nécessaires au TP ; les installer s'ils ne sont pas disponibles dans votre environnement.
Les logiciels nécessaires au TP sont également disponibles dans ~sbouchen/ENS/MAD/AOP/Soft/
Définir les variables d'environnement suivantes :
JAVA_HOME
ASPECTJ_HOME
ANT_HOME
PATH (inclut JAVA_HOME/bin, ASPECTJ_HOME/bin, ANT_HOME/bin)
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/
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 :
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 :
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.
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.
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 :
L'équivalent de l'appel de la méthode java.util.logging.Logger.logp(Level.INFO, className, methodName, message) est l'appel de la méthode org.apache.log4j.Logger.info(message)
L'équivalent de l'appel de la méthode java.util.logging.Logger.logp(Level.WARNING, className, methodName, message) est l'appel de la méthode org.apache.log4j.Logger.warn(message)
De plus, log4j utilise un fichier de configuration appelé log4j.properties qui spécifie le niveau de traçage désiré.
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
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.