diff options
author | Ivan Topolnak <ivantopo@gmail.com> | 2013-05-29 18:51:31 -0300 |
---|---|---|
committer | Ivan Topolnak <ivantopo@gmail.com> | 2013-05-29 18:51:31 -0300 |
commit | 03487dbfcaa9c5295c9735018e1a9a2bd728c780 (patch) | |
tree | 13292c1ba2f76f011eb0d35f75bfd8bbbfa656cb /src | |
parent | e9be0b251d5714a5726d7b90c309a293f146c96c (diff) | |
download | Kamon-03487dbfcaa9c5295c9735018e1a9a2bd728c780.tar.gz Kamon-03487dbfcaa9c5295c9735018e1a9a2bd728c780.tar.bz2 Kamon-03487dbfcaa9c5295c9735018e1a9a2bd728c780.zip |
testing different ways to make sure the inter-type defined members are final
Diffstat (limited to 'src')
3 files changed, 29 insertions, 9 deletions
diff --git a/src/main/aspectj/kamon/instrumentation/PromiseCompletingRunnableInstrumentation.aj b/src/main/aspectj/kamon/instrumentation/PromiseCompletingRunnableInstrumentation.aj index 83e46be3..bd2a4d47 100644 --- a/src/main/aspectj/kamon/instrumentation/PromiseCompletingRunnableInstrumentation.aj +++ b/src/main/aspectj/kamon/instrumentation/PromiseCompletingRunnableInstrumentation.aj @@ -4,26 +4,26 @@ import kamon.TraceContext; import scala.concurrent.impl.Future; import scala.Option; -public aspect PromiseCompletingRunnableInstrumentation { +privileged public aspect PromiseCompletingRunnableInstrumentation { + + declare parents : Future.PromiseCompletingRunnable extends TraceContextHolder; - public final Option<TraceContext> Future.PromiseCompletingRunnable.context = TraceContext.current(); pointcut run(Future.PromiseCompletingRunnable runnable) : execution(* scala.concurrent.impl.Future.PromiseCompletingRunnable.run()) && this(runnable); - void around(Future.PromiseCompletingRunnable runnable) + void around(TraceContextHolder runnable) : run(runnable) { - if(runnable.context.isDefined()) { - - TraceContext.set((TraceContext) runnable.context.get()); + if(runnable.getContext().isDefined()) { + System.out.println("########################################################3 There is some context"); + TraceContext.set(runnable.getContext().get()); proceed(runnable); TraceContext.clear(); } else { + System.out.println("########################################################3 There is NOOOOO context"); proceed(runnable); } - - } } diff --git a/src/main/resources/META-INF/aop.xml b/src/main/resources/META-INF/aop.xml index 4aac3913..cafba5ee 100644 --- a/src/main/resources/META-INF/aop.xml +++ b/src/main/resources/META-INF/aop.xml @@ -1,7 +1,10 @@ <!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd"> <aspectj> - <weaver options="-verbose -showWeaveInfo -nowarn"/> + <weaver options="-verbose -showWeaveInfo -nowarn"> + <dump within="*"/> + </weaver> + <aspects> <!--<aspect name="akka.ActorSystemAspect"/> diff --git a/src/main/scala/kamon/instrumentation/TraceContextHolder.java b/src/main/scala/kamon/instrumentation/TraceContextHolder.java new file mode 100644 index 00000000..529ce86a --- /dev/null +++ b/src/main/scala/kamon/instrumentation/TraceContextHolder.java @@ -0,0 +1,17 @@ +package kamon.instrumentation; +import scala.Option; +import kamon.TraceContext; + +abstract public class TraceContextHolder implements Runnable { + public final Option<TraceContext> context; + + public TraceContextHolder() { + context = TraceContext.current(); + } + + public Option<TraceContext> getContext() { + return context; + } + + +}
\ No newline at end of file |