aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/kamon/instrumentation/AspectJPimps.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/kamon/instrumentation/AspectJPimps.scala')
-rw-r--r--src/main/scala/kamon/instrumentation/AspectJPimps.scala19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/main/scala/kamon/instrumentation/AspectJPimps.scala b/src/main/scala/kamon/instrumentation/AspectJPimps.scala
new file mode 100644
index 00000000..0663e801
--- /dev/null
+++ b/src/main/scala/kamon/instrumentation/AspectJPimps.scala
@@ -0,0 +1,19 @@
+package kamon.instrumentation
+
+import org.aspectj.lang.ProceedingJoinPoint
+
+trait ProceedingJoinPointPimp {
+ import language.implicitConversions
+
+ implicit def pimpProceedingJointPoint(pjp: ProceedingJoinPoint) = RichProceedingJointPoint(pjp)
+}
+
+object ProceedingJoinPointPimp extends ProceedingJoinPointPimp
+
+case class RichProceedingJointPoint(pjp: ProceedingJoinPoint) {
+ def proceedWith(newUniqueArg: AnyRef) = {
+ val args = pjp.getArgs
+ args.update(0, newUniqueArg)
+ pjp.proceed(args)
+ }
+}