δΊ 2012/10/22 17:02, Taha Siddiqi ει:
Did you try invocation.getInstance().getAnnotation() ?
What is that for? I read the API and seems it's not what I needed. My
annotation is on methods being advised, not on the class instance. I
also tried invocation.getMethod().getAnnotations() and it returns an
empty array. I just googled and found an old post:
http://tapestry.1045711.n5.nabble.com/Plastic-amp-proxy-annotations-td4453361.html
Seems annotation is not copied for methods by plastic...If it's still
true, is there anything else I can implement what I needed? My intention
is to audit methods call on my DAO services, including user information
from session, method names(or operation type: update/delete/insert etc.)
and some parameters(to get record id etc.), which I planed to implement
by service advising and annotation.
On Oct 22, 2012, at 1:15 PM, Rural Hunter wrote:
Hi,
I have an annotation:
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Audit
{
String operate() default "";
String desc() default "";
int type();
int idParamIndex() default 0;
}
I put on some methods of my DAO services and advised them in AppModule:
DAOInterface:
@Audit(type=1)
public void delete(int id) throws Exception;
AppModule:
for (Method m : receiver.getInterface().getMethods())
{
if (m.getAnnotation(Audit.class) != null)
{
System.out.println("advising "+m.getName());
receiver.adviseMethod(m, advice);
}
}
There is no problem and I can see the methods are advised by the System.out
above. But in the advise method, I can not get the Audit annotation:
public void advise(MethodInvocation invocation)
{
String methodName = invocation.getMethod().getName();
Audit audit = invocation.getAnnotation(Audit.class);
System.out.println("method="+methodName+", audit="+audit);
invocation.proceed();
}
The above advise method is called and I can see the system.out is always like this:
"method=delete, audit=null". I need some information in the Audit annotation
but why I can not get the annotation instance?
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org