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