[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] context information in aspect fields
|
Hi,
It may or may not be useful to you, but the Perf4j project[1] uses
AspectJ to instrument code with stopwatches, providing generic
around-method timing via an @Profiled annotation. There's also an
unreleased enhancement in github which allows methods to be timed
without annotating them (by completing an abstract pointcut), so no
source-changes requires.
Best
Brett
[1] http://perf4j.codehaus.org/
On 6 November 2012 21:29, Reik Schatz <reik.schatz@xxxxxxxxx> wrote:
> 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
>