|
From: Rod J. <rod...@in...> - 2004-02-22 10:09:03
|
All, I've just committed some changes to the Advisor hierarchy, to get rid of the parallel hierarchy between Advisors and Advices, which was bothering me. Now instead of having a hierarchy of Advisors, Advisor has a getAdvice() method that returns Object. It can't be more strongly typed because of AOP Alliance compliance. Originally I think I wanted to get away from such weak typing, but I'm just not happy with the old parallel class hierarchices. There are no longer specific Advisor subclasses, like DefaultMethodBeforeAdvisor: their's just DefaultPointcutAdvisor. An Advisor has a pointcut associated with it or not. There are quite a few fewer classes in the new approach (-17 I think). And it's more flexible, as DefaultPointcutAdvisor can be reused for any advice type. The impact on user code should be quite small. If you've extended one of those advisors, extend the appropriate generic PointcutAdvisor subclass. RegExpMethodPointcutAdvisor now replaces the old Around advice pointcut advisor. The changes make it possible to reuse the regexp pointcut advisor (or other pointcut advisor subclasses) for any kind of advice. Because this is a public API change, I think we need to consider going RC2, instead of straight to 1.0 now. I was strongly in favour of going straight to 1.0, but there have also been some other public API changes (notably in JDBC) as well as the new Quartz functionality, so I vote for a quick release of RC2 (early this week) and a goal of 1.0 2 weeks after that, with NO more changes except bug fixes. Regards, Rod |