geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Strachan <>
Subject Re: Aspect based design ?
Date Thu, 07 Aug 2003 17:30:14 GMT

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...


View raw message