Hi.
I was debugging an application using Spring AOP to find out why a class was
proxied despite not actually matching the pointcut, and found out that
KindedPointcut.fastMatch() would only match on an exact type pattern or a
type pattern with an exact annotation type pattern, and return "maybe"
otherwise.
It seems a bit restrictive, when the conjunctions, disjunctions and
negations could probably also be evaluated with the same kind of cost, and
help my case, which is a pointcut like:
execution(* (@Annotation1 !@Annotation2 *).*(..))
Is there any intrinsic reason why that can't be done (outside of the Spring
AOP scope for example, when used directly in AspectJ), or is it just a lack
of need / time for the implementation?
In the same vein, the patterns seem really disjunct, when they could
actually have multiple facets: a WildTypePattern can contain an
AnnotationTypePattern, however it's not an AnyWithAnnotationTypePattern. If
it were, a possible match could be ruled out using only the annotations
(again with exact match, conjunction, disjunction, negation), and not
considering the wildcard.
I could probably try and contribute something if it seems feasible, though
I know building and testing AspectJ is not that easy.
Regards,
Frank
_______________________________________________
aspectj-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from
this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users