You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2008/08/06 18:19:40 UTC

svn commit: r683317 - in /tuscany/sandbox/rfeng/aop-logging/src: main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java test/java/org/apache/tuscany/sca/aspectj/MyTracingAspect.java

Author: rfeng
Date: Wed Aug  6 09:19:39 2008
New Revision: 683317

URL: http://svn.apache.org/viewvc?rev=683317&view=rev
Log:
Display input/output for traces

Modified:
    tuscany/sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java
    tuscany/sandbox/rfeng/aop-logging/src/test/java/org/apache/tuscany/sca/aspectj/MyTracingAspect.java

Modified: tuscany/sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java?rev=683317&r1=683316&r2=683317&view=diff
==============================================================================
--- tuscany/sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java (original)
+++ tuscany/sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java Wed Aug  6 09:19:39 2008
@@ -21,6 +21,8 @@
 
 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 @@
     }
 
     @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();
 

Modified: tuscany/sandbox/rfeng/aop-logging/src/test/java/org/apache/tuscany/sca/aspectj/MyTracingAspect.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/rfeng/aop-logging/src/test/java/org/apache/tuscany/sca/aspectj/MyTracingAspect.java?rev=683317&r1=683316&r2=683317&view=diff
==============================================================================
--- tuscany/sandbox/rfeng/aop-logging/src/test/java/org/apache/tuscany/sca/aspectj/MyTracingAspect.java (original)
+++ tuscany/sandbox/rfeng/aop-logging/src/test/java/org/apache/tuscany/sca/aspectj/MyTracingAspect.java Wed Aug  6 09:19:39 2008
@@ -19,7 +19,9 @@
 
 package org.apache.tuscany.sca.aspectj;
 
-import org.aspectj.lang.JoinPoint.StaticPart;
+import java.util.Arrays;
+
+import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Pointcut;
 
@@ -38,22 +40,38 @@
         System.out.println("completeLog()");
     }
 
-    @Pointcut("execution(public * org.apache.tuscany.sca..*.*(..))")
+    @Pointcut("execution(public * org.apache.tuscany.sca..*.*(..)) &&!within(java..*)")
     protected void entry() {
     }
-    
+
     @Pointcut("within(org.apache.tuscany.sca..*) && !within(org.apache.tuscany.sca.aspectj.*Aspect)")
     protected void withinScope() {
     }
 
     @Override
-    protected void logEnter(StaticPart jp) {
+    protected void logEnter(JoinPoint jp) {
         System.out.println("> " + jp.getSignature());
+        if (jp.getArgs().length != 0) {
+            System.out.println("Input: " + Arrays.asList(jp.getArgs()));
+        }
+    }
+
+    @Override
+    protected void logExit(JoinPoint jp) {
+        // System.out.println("> " + jp.getSignature());
+    }
+
+    @Override
+    protected void logException(JoinPoint jp, Throwable throwable) {
+        System.out.println("! " + jp.getSignature() + " " + throwable.getMessage());
     }
 
     @Override
-    protected void logExit(StaticPart jp) {
+    protected void logExit(JoinPoint jp, Object result) {
         System.out.println("< " + jp.getSignature());
+        if (!jp.getSignature().toString().startsWith("void ")) {
+            System.out.println("Output: " + result);
+        }
     }
 
     @Override