« Grady Booch's keynote at AOSD | Main | AOP with Metadata: principles and practices (Ramnivas Laddad) »

March 16, 2005

Adopting AOP, and AspectJ 5 talks

It's harder to write an objective review of the next two talks I attended since I was giving them! Gregor (Kiczales) and I did a double act on "Adopting AOP". The talk was structured around the Adopting AOP talks that Gregor and I have done in multiple venues (the material for those talks was jointly developed and we continue to share enhancements and updates). Rather than just give the standard adopting talk though, we gave a running commentary on it - what works well, which areas are weaker and need more development etc. There was a good exchange of ideas with the audience which is exactly what we were hoping to provoke. The goal of the talk was that we could all leave with a better story to tell about the adoption of aop within an organisation. There was an interesting discussion at the end on the role that aspect libraries will play in driving adoption. I think getting to a "standard" aspect library that ships with AspectJ will be a huge boost since it shortens the time-to-value in getting started with AOP and helps the end-user avoid reinventing the wheel in common cases.

The second talk was "AspectJ 5" which I did jointly with Jonas Boner. We had only 30 minutes for this talk - giving a comprehensive overview of AspectJ 5 in only 30 minutes is an impossible task so we cherry-picked some of the highlights. We talked briefy about the merger and then got straight down to details. I covered some of the changes in AspectJ 5 to deal with the new Java 5 language features, including a short discussion on how AspectJ 5 will deal with parameterized types in join point matching. Jonas reviewed the @AspectJ (annotation-based development) style coming in AspectJ 5. If you haven't seen it before, it looks like this:

@Aspect public class NoopAspect { @Pointcut("execution(void Math.add(..))") void addMethods() {} @Before("addMethods") public void noop() { System.out.println("In advice"); } }

Which is exactly the same as:

public aspect NoopAspect { pointcut addMethods() : execution(void Math.add(..)); before() : addMethods() { System.out.println("In advice"); } }

We closed out with a discussion of the load-time weaving enhancements coming in AspectJ 5 and the support for AspectJ 5 in AJDT.

Posted by adrian at March 16, 2005 10:17 PM [permalink]


Post a comment

Thanks for signing in, . Now you can comment. (sign out)

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Remember me?