Предупреждение AspectJ & Maven: «Рекомендации, определенные в… не были применены?»
Я пытаюсь сплести некоторые аспекты во время компиляции в проект, который становится WAR. Аспекты рекомендуют классы, которые находятся в одном и том же проекте (хотя и в разных пакетах).
Я получаю предупреждение:
Advice not applied
Мой аспект не выполняется. Вот'мои настройки:
аннотация FooAnnotation.java:
package a;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface FooAnnotation {}
аспект FooAdvice.aj:
package a;
public aspect FooAdvice {
private static final Log log = LogFactory.getLog(FooAdvice.class);
Object around() : call( @FooAnnotation * *(..)) {
log.info(String.format("Testing around"));
return proceed();
}
}
Я также попробовал аннотацию:
@Around("call( @FooAnnotation * *(..))")
public Object checkFoo( ProceedingJoinPoint joinPoint) throws Throwable {
Насколько я могу судить, моя спецификация pointcut верна, но по какой-то причине компилятор ajc неЯ не играю в мяч.
Класс FooClass.java:
package b;
@ApplicationPath("/service")
@Path("/{param}")
@Produces("application/json")
@Provider
public class FooClass {
@POST
@PUT
@Path("/{context}/{resource}")
@FooAnnotation
public String updateResource(...) {}
pom.xml:
4.0.0
zzz.group
yyy.artifact
0.0.1-SNAPSHOT
war
yyy.name
${project.build.directory}/endorsed
UTF-8
1.6
1.7.2
... stuff ...
org.aspectj
aspectjrt
${org.aspectj-version}
org.apache.maven.plugins
maven-compiler-plugin
3.0
${javaVersion}
${javaVersion}
${endorsed.dir}
org.apache.maven.plugins
maven-war-plugin
2.1.1
false
org.codehaus.mojo
aspectj-maven-plugin
1.4
org.aspectj
aspectjrt
${org.aspectj-version}
org.aspectj
aspectjtools
${org.aspectj-version}
compile
true
${javaVersion}
${javaVersion}