I'm using "JBoss (MX MicroKernel) [4.0.1 (build: CVSTag=JBoss_4_0_1 
date=200501141152)]", and the version of JBoss AOP that comes as part of that 
deployment.

I have created some pointcuts that attached methods to the constructor, for 
example
<prepare expr="execution(public 
org.jaffa.applications.jaffa.modules.admin.components.usermaintenance.ui.*->new(..))"/>

I have enabled runtime aspect injection via the setting < attribute name 
="EnableTransformer" >true< /attribute >

Everything works fine, the interceptors are correctly bound to the methods, but 
i have a problem with interceptors not being invoked for the constructor. I 
believe this is because I use a Factory pattern for constructing new instance 
of my object via the clazz.newInstance().

If I hard code the new Class() constructor, JBoss will replace it with the 
correct call to an injected public static method to invoke the constructor 
interceptors and create the object.

Can I therefore assume that to use JBoss AOP on constructors all object 
factories must be re-written to call this new public static method, if the 
class being constructed implements the Advised interface?

Original Factory Code...

  |   Component compInst = (Component) clazz.newInstance();
  | 
New Factory Code to be JBoss AOP complient...

  |   Component compInst =  null;
  |   // Use the Advised static method to create the object if needed.
  |   if(clazz instanceof Advised) {
  |      String name = 
clazz.getName().substring(clazz.getName().lastIndexOf('.')) + "_new_$aop";
  |      Method method = clazz.getDeclaredMethods(name, new Class[0]);
  |      compInst = method.invoke(null, new Object[0]);
  |    }
  |    if(compInst==null)
  |      compInst = clazz.newInstance();
  | 
Am I missing something here, as this seems very intrusive, expecially if i now 
need to go and modify the likes of Struts so i can bind aspects to the creation 
of a FormBean?

I'm sure you must address similar issues in Hibernate when creating new objects 
that may have constructor interceptor stacks?

Please advise....

PaulE
(http://jaffa.sf.net)

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3863652#3863652

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3863652


-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
JBoss-Development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to