summaryrefslogtreecommitdiffstats
path: root/sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java')
-rw-r--r--sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java b/sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java
index 7a6e4c5ded..53ef73573b 100644
--- a/sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java
+++ b/sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java
@@ -21,6 +21,8 @@ package org.apache.tuscany.sca.aspectj;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
@@ -61,23 +63,35 @@ public abstract class TracingAspect {
}
@Before("trace() && supportsAfterAdvice()")
- public void beforeTrace(JoinPoint.StaticPart jp) {
+ public void beforeTrace(JoinPoint jp) {
logEnter(jp);
}
@After("trace() && supportsAfterAdvice()")
- public void afterTrace(JoinPoint.StaticPart jp) {
+ public void afterTrace(JoinPoint jp) {
logExit(jp);
}
+
+ @AfterReturning(pointcut = "trace() && supportsAfterAdvice()", returning = "result")
+ public void afterReturning(JoinPoint jp, Object result) {
+ logExit(jp, result);
+ }
+
+ @AfterThrowing(pointcut = "trace() && supportsAfterAdvice()", throwing = "e")
+ public void afterThrowing(JoinPoint jp, Throwable e) {
+ logException(jp, e);
+ }
@After("start()")
public void afterStart() {
completeLog();
}
- protected abstract void logEnter(JoinPoint.StaticPart jp);
+ protected abstract void logEnter(JoinPoint jp);
- protected abstract void logExit(JoinPoint.StaticPart jp);
+ protected abstract void logExit(JoinPoint jp);
+ protected abstract void logExit(JoinPoint jp, Object result);
+ protected abstract void logException(JoinPoint jp, Throwable throwable);
protected abstract void startLog();