Without getting into a debate of how Aspects will compete with or complement EJBs, would it be a good idea to at least discuss how aspects could be used to actually build much of the desired functionality. This surely would complicate things given that the project might be using a lot of source from initial contributions, but possibly a way could be found to continuously refactor the same over a period of time. I am not sure whether one needs to actually build an AOP engine like JBoss. Leveraging existing infrastructure (AspectJ / AspectWerkz / Nanning) might not be a bad idea.