[AspectJ] adviceDidNotMatch sur un prog simplissime
Bonjour à tous,
je re-commence l'AspectJ après 1 an de pause. J'ai repris mes petits progs simples pour me faire la main et j'ai un warning lors de la compil:
Code:
Warning: advice defined in asp3.AspAj3 has not been applied [Xlint:adviceDidNotMatch]
Mon code se divise en 3 parties:
1/ un jar appelant (le main)
2/ un jar appelé par le main
3/ mon jar d'aspect qui vient s'intercaler entre les 2 avec un around sur la méthode du 2e jar.
Voici le 1er jar:
Code:
1 2 3 4 5 6
|
public static void main(String[] args) {
Acii2 acii = new Acii2();
acii.credit(4);
} |
Voici la méthode du 2e jar:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
package aci2;
public class Acii2 {
public Acii2(){
}
public void credit(float amount){
System.out.println("OK");
} |
Et voici le around:
Code:
1 2 3 4 5 6 7 8 9
|
import aci2.Acii2;
public aspect AspAj3 {
void around() : call(* Acii2.credit(..)){
System.out.println("OK aspectj");
proceed();
} |
Sauriez-vous me dire pourquoi j'ai un warning adviceDidNotMatch sur la ligne du void around()... ???
C'est pourtant assez simple comme code mais je ne vois pas mon erreur...
Merci d'avance pour vos observations.
Cyril
Certaines méthodes visibles par l'Aspect, d'autres non...
Bonjour,
je reviens encore vers vous sur un point bien précis:
Dans mon projet, certaines méthodes sont visibles par l'Aspect, d'autres non (pourtant de la même classe)...
Je m'explique: sous Eclipse, l'advice que je crée ne voit pas toutes les méthodes de la classe tissée. En l'occurence, il ne voit pas la principale que je veut remplacer par un around et me sort un
mais voit bien les autres (celle dont je n'ai pas l'utilité bien sûr, ce serait trop facile...).
J'ai bien regardé les interfaces de ces méthodes, et je ne vois aucune caracteristique spécifique entre l'une et les autres.
Sauriez-vous s'il faut définir certains attributs qq part dans le projet pour les méthodes qu'on veut surcharger??
Merci d'avance!
Cyril