I'm trying to migrate an existing (web-)project to roo. After some painful hours migrating my maven-settings roo starts to like my project and I'm able to run my unit-test. So far, so good.
In my project I was using spring-aop to do some security, all with proxies, no compiler. When starting my webapp within eclipse it tells me, that some classes are missing, f.e. org.aspectj.lang.annotation.Aspect.
When looking to my classpath all the aspectj.jar-stuff is removed from classpath. I guess thats because Roo uses Aspectj-Compiler to add AOP and there's no need for runtime-weaving. So whats the right approach to migrate my existing aop-code? Should I tell Roo/Maven to add all the aspectj-jars to my webapp-lib folder or should I migrate aop to compile-time weaving?
Whats ever the answer, how do I do that?
In my pom.xml there are those dependencies: Code:
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
I really dont know where the magic in all that roo-maven-stuff happens that aspectj is removed from eclipses classpath. So what do I have to change to leave that jars in classpath?
My aspect looks like this and works when using runtime-weaving: Code:
@Aspect
public class SecurityAspect {
@Around("execution(@AuthorizedMethod public * de.diandan.web.controller.*.*(..))")
public Object checkRights(ProceedingJoinPoint jp) throws Throwable {
}
What do I have to do to tell aspectj to weave this aspect on compile-time?
Regards, Michael
So, after I took the time to analyze the problem, it seems that it's not Roo itself which removes aspectj jars from classpath but eclipse-Plugin in versin 2.7 (which is reverenced by command > roo project). I don't know if thats a bug or a feature, but creating an eclipse-project with that plugin removed that jars. Switching to 2.8 resolved the problem.
So as answer: -> Use further runtime-weaving -> The magic happens in eclipse-plugin