Master 1 Informatique - UE TAG (Techniques d'Adaptation et de Génie logiciel) - Université Grenoble 1 - UFR IMAG


Aspect-Oriented Programming / AspectJ

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


TP 1 : Initiation à AspectJ

  1. Objectif
     
  2. Environnement logiciel
     
  3. Etapes du TP
    (a) Exemple Hello
    (b) Manipulation de pointcuts
    (c) Manipulation de déclarations
    (d) Manipulation d'introductions
    (e) Pointcut cflow / cflowbelow
    (f) Passage de contexte entre poincut et advice
    (g) Manipulation de thisJoinPoint et thisJoinPointStaticPart
    (h) Autres pointcuts

1. Objectif

Mettre en pratique les concepts de l'AOP et d'AspectJ vus en cours.

Initiation à AspectJ à travers :

2. Environnement logiciel

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

Logiciels

Installer les logiciel requis (AspectJ, Ant, MckoiDb) : télécharger
Les logiciels nécessaires au TP sont également disponibles dans ~gautiesa/M1INFO/TAG/AOP/Soft/

Récupérer les programmes Java/AspectJ fournis : télécharger

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 également disponibles dans ~gautiesa/M1INFO/TAG/AOP/Soft/

Base logicielle

Copier le répertoire ~gautiesa/M1INFO/TAG/AOP/Project/Examples/ dans votre arborescence de travail.

3. Etapes du TP

(a) Exemple Hello

Tester l'exemple fourni dans Project/Examples/Hello :

(b) Manipulation de pointcuts

Récupérer l'exemple qui est fourni dans Project/Examples/Tests :

(c) Manipulation de declarations

Etendre l'exemple fourni dans Project/Examples/Tests comme suit :

(d) Manipulation d'introductions

Etendre l'exemple fourni dans Project/Examples/Tests comme suit :

(e) Pointcut cflow / cflowbelow

Etendre l'exemple fourni dans Project/Examples/Tests comme suit :

(f) Passage de contexte entre poincut et advice

Etendre l'exemple fourni dans Project/Examples/Tests comme suit :

(g) Manipulation de thisJoinPoint et thisJoinPointStaticPart

Etudier les interfaces JoinPoint et JoinPoint.StaticPart (voir l'API d'AspectJ)

Etendre l'exemple fourni dans Project/Examples/Tests comme suit :

(h) Autres pointcuts

Récupérer l'exemple qui est fourni dans Project/Examples/Tests :