Community
Participate
Working Groups
In the weaver.tools API, there is no way to determine what runtime tests will be executed when a ShadowMatch returns maybeMatches(). Spring needs to know whether the this, target, @this, @target, or @annotation vars are part of the runtime test, because if so it can make an important optimisation in Spring AOP to say that the pointcut does not match. This is because the exact runtime type of a bean is already known - there can never be a subsitute subtype later on. The Spring class org.springframework.aop.aspectj.RuntimeTestWalker contains an ugly workaround for AspectJ not providing this API. The smallest needed additional external API would be to add an operation boolean matchConditionalOnRuntimeTypeOfThis() to the ShadowMatch interface.
Spring code can be cleaned up once this enhancement is incorporated...
Changing OS from Mac OS to Mac OS X as per bug 185991
unsetting the target field which is currently set for something already released