Before I started getting into AOP, I wanted to know what the real differences between AOP implementions. Sure, we all know that AspectJ is a language extension and JBoss AOP can be done in all Java. Ask folks on the JBoss forums give you a JBoss-biased answer. Similarly, some of the IBM Developer Works articles (particularly this one) are a little dated and still have a bias toward AspectJ.
But aside from that, what makes one implementation better than the other? Is one easier to develop with? Easier to deploy? Personally, I’m still trying to figure this out and I thought I’d share some of my findings. I will state up front that initailly I was a bit more bias toward the JBoss AOP implementation. Now that AspectJ 5 has been released and it supports Java 5 and annotations, I’m seeing things a bit differentlty. Part 1 looks at the differences between IDE plugins. Part 2, which is still in development, will look at the differences implementing the same aspect in both implementation. Enjoy!