As an alternative if you do not lile the Map idea, you might want to use a 
non-singleton instantiation model like "perthis" or "pertarget" in combination 
with a normal (non-static) member variable for the Timer.

Alexander Kriegisch
http://scrum-master.de


Am 06.11.2012 um 11:31 schrieb Romain Muller <romain.mul...@esial.net>:

> You can't do this with a "final" TIMER field. You may want to have a "private 
> final Map<String, Timer> timers" in which you'd associate Timers to 
> MethodNames.
> 
> The MethodName you can get from thisJoinPoint(StaticPart) - you may even be 
> able to use thisJoinPointStaticPart.toString() for that purpose.
> 
> [ Romain Muller | Software Development Engineer | +33 (0)6 48 25 66 70 | 
> romain.mul...@esial.net ]
> 
> Le 6 nov. 2012 à 11:29, Reik Schatz <reik.sch...@gmail.com> a écrit :
> 
>> Hi,
>> 
>> I am working on a timer example using AspectJ similar to this logging 
>> example: 
>> http://adamgent.com/post/5479576926/the-python-decorator-pattern-for-java-using-aspectj
>> 
>> However the Timer (not Logger) I am using takes among others a String 
>> argument which describes the context of the place where you are timing (i.e. 
>> if you are timing a save method in a DAO class, the argument would be 
>> "save"). Now that the Timer is defined in the Aspect, is it possible to 
>> retrieve some context information outside of the pointcut or advice 
>> definition? Ideally I want to do something like:
>> 
>> public aspect TimedAspect {
>> 
>>     private final Timer TIMER = Metrics.newTimer(getClass(), "TARGET METHOD 
>> NAME HERE");
>> 
>>     pointcut timedExecution() : execution(@Timed * * (..)); // execution of 
>> a annotated method
>> 
>>     Object around() : timedExecution() {
>>         final TimerContext context = TIMER.time();
>>         try {
>>             return proceed();
>>         } finally {
>>             context.stop();
>>         }
>>     }
>> }
>> 
>> For me it looks like the only way is to create the Timer object inside the 
>> advice and use the context information available.
>> _______________________________________________
>> aspectj-users mailing list
>> aspectj-users@eclipse.org
>> https://dev.eclipse.org/mailman/listinfo/aspectj-users
> 
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@eclipse.org
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
_______________________________________________
aspectj-users mailing list
aspectj-users@eclipse.org
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to