Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] context information in aspect fields

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


Am 06.11.2012 um 11:31 schrieb Romain Muller <romain.muller@xxxxxxxxx>:

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.muller@xxxxxxxxx ]

Le 6 nov. 2012 à 11:29, Reik Schatz <reik.schatz@xxxxxxxxx> 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@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Back to the top