On Thursday, August 7, 2003, at 05:51 pm, Dhananjay Nene wrote:
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.
I'm personally a big fan of AspectWerkz and Nanning since they work using the Java language (rather than AspectJ which requires a new language & compiler). Though thats another discussion. Both Jonas & Jon (from AspectWerkz & Nanning) are aware of the Geronimo project & may well get involved in building J2EE aspects some stage. Especially Jon as now he's moved to London so I can drink beer with him :)
For now though we're focussing on the Geronimo - the container. Once thats up and running & folks can see how the interceptor stack works & things fit together - it should be very possible to start creating aspects in any AOP engine - I'd personally recommend AspectWerkz (for class based, bytecode weaving AOP) or Nanning (for interface based, dynamic proxy AOP) - to take any POJO and weave J2EE aspects (transactions, security, remoting, pooling, caching etc). I personally think this makes J2EE much simpler to use for end users.
However I see this as another aspect (forgive the pun) of the project - an alternative front end to Geronimo. We need to get the back end container working first. Then we can have some AOP project / module later on.
This kinda ties into the Avalon discussion somewhat. Various containers out there have integrated AOP weaving at deployment time. e.g. NanoContainer has a Nanning container which as components are dropped into the container, aspects are weaved for you at deployment time. So to bootstrap the whole thing we could just treat AOP stuff as a special service we deploy inside Geronimo and then reuse some AOP aware container of POJOs or whatever. The Avalon folks might wanna do something similar too (if they've not already). So the AOP integration could be a separate module.
But lets not run before we can walk...
James
-------
http://radio.weblogs.com/0112098/
