Re: [akka-user] AOP in Akka

2014-06-05 Thread Leon Ma
Hi, Ivan I guess you must be very familiar with both aspectj and scala, could you help me on below question? I'm trying to do some experimental point cut on scala.concurrent.Future, something like: @Aspect class FutureAspect { @Around(value = execution (*

Re: [akka-user] AOP in Akka

2014-06-04 Thread Leon Ma
by and when I say all events I'm including future's body/callbacks and actor supervision messages, not just regular tell I happened to see your project has dependencies on aspectj, right? Are you using AOP to intercept some akka classes like LocalActorRef? I'm just curious that which weaver

Re: [akka-user] AOP in Akka

2014-05-30 Thread Leon Ma
My case is actually to pass some information like Mapped Diagnostic Context. Some of my legacy java code is using threadlocal to carry on those MDC information, that's why I need a way to: intercept tell : collect threadlocal information and do some wrapping like MDCCtx(mymessage,

Re: [akka-user] AOP in Akka

2014-05-30 Thread Konrad Malawski
So metrics. I would suggest piggybacking on kamon: http://kamon.io/ Since the guys have many of the things figured out already - it's open source so it should be possible to either get metrics from their pointcuts or piggyback in some other way. On Fri, May 30, 2014 at 11:58 AM, Leon Ma

Re: [akka-user] AOP in Akka

2014-05-30 Thread Konrad Malawski
The thread local stuff is quite scary in an Actor setting by the way and if possible it would be best to work around it (in a way other than setCurrentThreadId - I'm guessing that's your current impl?). Would you be able to construct MDC on your own, bypassing the threadlocals? On Fri, May 30,

[akka-user] AOP in Akka

2014-05-28 Thread Leon Ma
Hi, Assuming I want to do some aop advice against some of the actor method like ask , tell, etc like: @Around(value = execution (* akka.actor.ScalaActorRef.$bang(..)) args(message,sender), argNames = jp,message,sender) def handle(jp: ProceedingJoinPoint, message: AnyRef, sender: ActorRef) {