Author: rfeng
Date: Wed Aug  6 11:55:38 2008
New Revision: 683368

URL: http://svn.apache.org/viewvc?rev=683368&view=rev
Log:
Add an aspectj-based tracing capability to trace tuscany code

Added:
    tuscany/java/sca/modules/tracing-aspectj/   (props changed)
      - copied from r670759, tuscany/sandbox/rfeng/aop-logging/
    tuscany/java/sca/modules/tracing-aspectj/launcher.bat   (contents, props 
changed)
      - copied, changed from r670759, tuscany/sandbox/rfeng/aop-logging/test.bat
    tuscany/java/sca/modules/tracing-aspectj/pom.xml
      - copied, changed from r683127, tuscany/sandbox/rfeng/aop-logging/pom.xml
    
tuscany/java/sca/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/SimpleTracingAspect.java
   (contents, props changed)
      - copied, changed from r670759, 
tuscany/sandbox/rfeng/aop-logging/src/test/java/org/apache/tuscany/sca/aspectj/MyTracingAspect.java
    
tuscany/java/sca/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java
      - copied unchanged from r683317, 
tuscany/sandbox/rfeng/aop-logging/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java
    tuscany/java/sca/modules/tracing-aspectj/src/main/resources/
    tuscany/java/sca/modules/tracing-aspectj/src/main/resources/META-INF/   
(props changed)
      - copied from r670759, 
tuscany/sandbox/rfeng/aop-logging/src/test/resources/META-INF/
    tuscany/java/sca/modules/tracing-aspectj/src/main/resources/META-INF/aop.xml
      - copied, changed from r683143, 
tuscany/sandbox/rfeng/aop-logging/src/test/resources/META-INF/aop.xml
    
tuscany/java/sca/modules/tracing-aspectj/src/test/java/org/apache/tuscany/sca/aspectj/TracingTestCase.java
      - copied unchanged from r683131, 
tuscany/sandbox/rfeng/aop-logging/src/test/java/org/apache/tuscany/sca/aspectj/TracingTestCase.java
Removed:
    tuscany/java/sca/modules/tracing-aspectj/.checkstyle
    tuscany/java/sca/modules/tracing-aspectj/.pmd
    tuscany/java/sca/modules/tracing-aspectj/.ruleset
    tuscany/java/sca/modules/tracing-aspectj/LICENSE.txt
    tuscany/java/sca/modules/tracing-aspectj/NOTICE.txt
    
tuscany/java/sca/modules/tracing-aspectj/src/test/java/org/apache/tuscany/sca/aspectj/MyTracingAspect.java
    tuscany/java/sca/modules/tracing-aspectj/src/test/resources/META-INF/
    tuscany/java/sca/modules/tracing-aspectj/test.bat

Propchange: tuscany/java/sca/modules/tracing-aspectj/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Aug  6 11:55:38 2008
@@ -0,0 +1,11 @@
+target
+*.iws
+*.ipr
+*.iml
+*.log*
+.project
+.classpath
+junit*.properties
+.settings
+.deployables
+.wtpmodules

Propchange: tuscany/java/sca/modules/tracing-aspectj/
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: tuscany/java/sca/modules/tracing-aspectj/launcher.bat (from r670759, 
tuscany/sandbox/rfeng/aop-logging/test.bat)
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/tracing-aspectj/launcher.bat?p2=tuscany/java/sca/modules/tracing-aspectj/launcher.bat&p1=tuscany/sandbox/rfeng/aop-logging/test.bat&r1=670759&r2=683368&rev=683368&view=diff
==============================================================================
--- tuscany/sandbox/rfeng/aop-logging/test.bat (original)
+++ tuscany/java/sca/modules/tracing-aspectj/launcher.bat Wed Aug  6 11:55:38 
2008
@@ -1,3 +1,5 @@
 @echo off
-set ASPECTJ_HOME=c:\aspectj1.5
-call %ASPECTJ_HOME%\bin\aj5.bat -cp target\classes;target\test-classes 
org.apache.tuscany.sca.aspectj.TracingTestCase
\ No newline at end of file
+set TUSCANY_HOME=C:\Apache\tuscany-sca-1.3
+set 
ASPECTJ_WEAVER=%HOMEPATH%\.m2\repository\org\aspectj\aspectjweaver\1.6.1\aspectjweaver-1.6.1.jar
+set 
CP=%ASPECTJ_WEAVER%;%TUSCANY_HOME%\lib\tuscany-sca-manifest.jar;%TUSCANY_HOME%\samples\calculator\target\sample-calculator.jar
+java -javaagent:"%ASPECTJ_WEAVER%" -cp "%CP%;target\classes" 
calculator.CalculatorClient
\ No newline at end of file

Propchange: tuscany/java/sca/modules/tracing-aspectj/launcher.bat
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: tuscany/java/sca/modules/tracing-aspectj/pom.xml (from r683127, 
tuscany/sandbox/rfeng/aop-logging/pom.xml)
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/tracing-aspectj/pom.xml?p2=tuscany/java/sca/modules/tracing-aspectj/pom.xml&p1=tuscany/sandbox/rfeng/aop-logging/pom.xml&r1=683127&r2=683368&rev=683368&view=diff
==============================================================================
--- tuscany/sandbox/rfeng/aop-logging/pom.xml (original)
+++ tuscany/java/sca/modules/tracing-aspectj/pom.xml Wed Aug  6 11:55:38 2008
@@ -23,13 +23,10 @@
         <groupId>org.apache.tuscany.sca</groupId>
         <artifactId>tuscany-modules</artifactId>
         <version>1.4-SNAPSHOT</version>
-<!--
         <relativePath>../pom.xml</relativePath>
--->
     </parent>
-    <artifactId>tuscany-aop-logging</artifactId>
+    <artifactId>tuscany-tracing-aspectj</artifactId>
     <name>Apache Tuscany AOP-based Logging and Tracing</name>
-
     <dependencies>
         <dependency>
             <groupId>org.aspectj</groupId>
@@ -37,8 +34,8 @@
             <version>1.6.1</version>
         </dependency>
         <dependency>
-            <groupId>org.aspectj</groupId> 
-            <artifactId>aspectjlib</artifactId> 
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjlib</artifactId>
             <version>1.6.1</version>
         </dependency>
         <dependency>
@@ -48,51 +45,24 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-
     <build>
         <plugins>
-                <!-- surefire plugin configuration -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>LATEST</version>
-                    <configuration>
-                        <includes>
-                            <include>**/*TestCase.java</include>
-                        </includes>
-                        <reportFormat>brief</reportFormat>
-                        <useFile>false</useFile>
-                        <forkMode>once</forkMode>
-                        <!--  I hit a bug in maven-surefire-plugin 
-                        http://jira.codehaus.org/browse/SUREFIRE-128 -->
-                        <!-- 
-                        <argLine>-ea -Xmx128m 
-javaagent:&quot;${settings.localRepository}/aspectj/aspectjweaver/1.6.1/aspectjweaver-1.6.1.jar&quot;</argLine>
-                         -->
-                    </configuration>
-                </plugin>
+            <!-- surefire plugin configuration -->
             <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>aspectj-maven-plugin</artifactId>
-                <version>1.0</version>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>LATEST</version>
                 <configuration>
-                    <complianceLevel>1.5</complianceLevel>
-                    <!-- 
                     <includes>
-                        <include>**/*Aspect.java</include>
+                        <include>**/*TestCase.java</include>
                     </includes>
-                     -->
+                    <reportFormat>brief</reportFormat>
+                    <useFile>false</useFile>
+                    <forkMode>once</forkMode>
+                        <!--  I hit a bug in maven-surefire-plugin 
+                        http://jira.codehaus.org/browse/SUREFIRE-128 -->
+                    <argLine>-ea -Xmx128m 
-javaagent:&quot;${settings.localRepository}/org/aspectj/aspectjweaver/1.6.1/aspectjweaver-1.6.1.jar&quot;</argLine>
                 </configuration>
-
-                <executions>
-                    <execution>
-                        <goals>
-                            <!-- use this goal to weave all your main classes 
-->
-                            <goal>compile</goal>
-                            <!-- use this goal to weave all your test classes 
-->
-                            <goal>test-compile</goal>
-                        </goals>
-                    </execution>
-                </executions>
             </plugin>
         </plugins>
     </build>

Copied: 
tuscany/java/sca/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/SimpleTracingAspect.java
 (from r670759, 
tuscany/sandbox/rfeng/aop-logging/src/test/java/org/apache/tuscany/sca/aspectj/MyTracingAspect.java)
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/SimpleTracingAspect.java?p2=tuscany/java/sca/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/SimpleTracingAspect.java&p1=tuscany/sandbox/rfeng/aop-logging/src/test/java/org/apache/tuscany/sca/aspectj/MyTracingAspect.java&r1=670759&r2=683368&rev=683368&view=diff
==============================================================================
--- 
tuscany/sandbox/rfeng/aop-logging/src/test/java/org/apache/tuscany/sca/aspectj/MyTracingAspect.java
 (original)
+++ 
tuscany/java/sca/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/SimpleTracingAspect.java
 Wed Aug  6 11:55:38 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;
 
@@ -27,9 +29,9 @@
  * @version $Rev$ $Date$
  */
 @Aspect
-public class MyTracingAspect extends TracingAspect {
+public class SimpleTracingAspect extends TracingAspect {
 
-    public MyTracingAspect() {
+    public SimpleTracingAspect() {
         super();
     }
 
@@ -38,18 +40,38 @@
         System.out.println("completeLog()");
     }
 
-    @Pointcut("execution(* 
org.apache.tuscany.sca.aspectj.TracingTestCase.testAOP(..))")
+    @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

Propchange: 
tuscany/java/sca/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/SimpleTracingAspect.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/java/sca/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/SimpleTracingAspect.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: 
tuscany/java/sca/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/SimpleTracingAspect.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Propchange: 
tuscany/java/sca/modules/tracing-aspectj/src/main/resources/META-INF/
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: 
tuscany/java/sca/modules/tracing-aspectj/src/main/resources/META-INF/aop.xml 
(from r683143, 
tuscany/sandbox/rfeng/aop-logging/src/test/resources/META-INF/aop.xml)
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/tracing-aspectj/src/main/resources/META-INF/aop.xml?p2=tuscany/java/sca/modules/tracing-aspectj/src/main/resources/META-INF/aop.xml&p1=tuscany/sandbox/rfeng/aop-logging/src/test/resources/META-INF/aop.xml&r1=683143&r2=683368&rev=683368&view=diff
==============================================================================
--- tuscany/sandbox/rfeng/aop-logging/src/test/resources/META-INF/aop.xml 
(original)
+++ 
tuscany/java/sca/modules/tracing-aspectj/src/main/resources/META-INF/aop.xml 
Wed Aug  6 11:55:38 2008
@@ -2,7 +2,7 @@
 
     <aspects>
         <!-- declare two existing aspects to the weaver -->
-        <aspect name="org.apache.tuscany.sca.aspectj.MyTracingAspect" />
+        <aspect name="org.apache.tuscany.sca.aspectj.SimpleTracingAspect" />
         <!-- 
         <aspect name="org.apache.tuscany.sca.aspectj.LoggingAspect" />
          -->


Reply via email to