That way you don't break people's code. AOP, JMS and EJB3 are standalone binary distributions that are used across versions and by other people.

Yes, you can fix jboss-head or jboss.4.0.3+, but what about

* Somebody that wants to use the next EJB3 release with 4.0.2 * The other JBoss code that is not in the JBossAS sourcetree but uses those classes * Users's code

AOP is a final released product. Any major changes should be deferred to AOP2.0 (in a separate cvs branch).

We already have a similar issue with jgroups 2.2.7 -> 2.2.8

Lastly, in most circumstances, you wouldn't have to worry about this. Stuff like JMS/EJB3 would be using my wished for "proxy" container (unified container/interceptors) abstraction that doesn't require the user to get so deeply involved in "implementation details" of AOP.