aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Topolnak <ivantopo@gmail.com>2013-05-29 18:51:31 -0300
committerIvan Topolnak <ivantopo@gmail.com>2013-05-29 18:51:31 -0300
commit03487dbfcaa9c5295c9735018e1a9a2bd728c780 (patch)
tree13292c1ba2f76f011eb0d35f75bfd8bbbfa656cb /src
parente9be0b251d5714a5726d7b90c309a293f146c96c (diff)
downloadKamon-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')
-rw-r--r--src/main/aspectj/kamon/instrumentation/PromiseCompletingRunnableInstrumentation.aj16
-rw-r--r--src/main/resources/META-INF/aop.xml5
-rw-r--r--src/main/scala/kamon/instrumentation/TraceContextHolder.java17
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