Salut,

Je poste ce message car j'ai un probleme avec l'héritage des annnotations. En effet j'ai créé une annotation A (avec la meta-annotation @Inheritance) ainsi qu' annotation processor et une factory.
Et lorsque je rajouter l'annotation A sur une classe C, lors du traitement effecuté par APT seul la classe C est visité, les classes héritant de C ne sont pas visité.
Est ce un bug connu ?

PS j'utilise JAVA5 et j'utilise "l'annotation processing" d'eclipse.

Un peu de code :
Mon annotation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
@Target(value = ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
@Inherited
public @interface MyAnnot {
...
}
La méthode process de mon AnnotationProcessor
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
public void process() {
  MyClassDeclarationVisitor myVisitor = new MyClassDeclarationVisitor(this._env);
  for (Declaration d : this._env.getTypeDeclarations()) {
    d.accept(DeclarationVisitors.getSourceOrderDeclarationScanner(myVisitor, DeclarationVisitors.NO_OP));
  }
}
Ma Factory :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
public Collection<String> supportedOptions() {
return Collections.emptyList();
}
private static ArrayList<String> annotations = new ArrayList<String>();
{annotations.add(MyAnnot.class.getName());}
public Collection<String> supportedAnnotationTypes() {
	return annotations;
}
public AnnotationProcessor getProcessorFor(
		Set<AnnotationTypeDeclaration> atds,
		AnnotationProcessorEnvironment env) {
return new MyAnnotProcessor(env);
}
Merci d'avance pour vos remarques et conseils