Clean up
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@773050 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
6d3c3f65f4
commit
78b93434ca
7 changed files with 0 additions and 438 deletions
|
@ -1,100 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
-->
|
||||
<project>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<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>
|
||||
<name>Apache Tuscany AOP-based Logging and Tracing</name>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.aspectj</groupId>
|
||||
<artifactId>aspectjrt</artifactId>
|
||||
<version>1.6.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.aspectj</groupId>
|
||||
<artifactId>aspectjlib</artifactId>
|
||||
<version>1.6.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.aspectj</groupId>
|
||||
<artifactId>aspectjweaver</artifactId>
|
||||
<version>1.6.1</version>
|
||||
<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:"${settings.localRepository}/aspectj/aspectjweaver/1.6.1/aspectjweaver-1.6.1.jar"</argLine>
|
||||
-->
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>aspectj-maven-plugin</artifactId>
|
||||
<version>1.0</version>
|
||||
<configuration>
|
||||
<complianceLevel>1.5</complianceLevel>
|
||||
<!--
|
||||
<includes>
|
||||
<include>**/*Aspect.java</include>
|
||||
</includes>
|
||||
-->
|
||||
</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>
|
||||
|
||||
</project>
|
|
@ -1,93 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.tuscany.sca.aspectj;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.aspectj.lang.JoinPoint;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.annotation.After;
|
||||
import org.aspectj.lang.annotation.AfterReturning;
|
||||
import org.aspectj.lang.annotation.AfterThrowing;
|
||||
import org.aspectj.lang.annotation.Around;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Before;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
|
||||
/**
|
||||
* @version $Rev$ $Date$
|
||||
*/
|
||||
@Aspect
|
||||
public class LoggingAspect {
|
||||
@Pointcut("call(* org.apache.tuscany.sca..*(..)) && (!within(org.apache.tuscany.sca.aspectj.*Aspect))")
|
||||
public void anyMethodCall() {
|
||||
}
|
||||
|
||||
@Pointcut("execution(* org.apache.tuscany.sca..*(..)) && (!within(org.apache.tuscany.sca.aspectj.*Aspect))")
|
||||
public void anyMethodExecution() {
|
||||
}
|
||||
|
||||
@Pointcut("call(* java.util.logging.Logger.info(..))")
|
||||
public void anyLogCall() {
|
||||
}
|
||||
|
||||
@Pointcut("cflow(anyMethodExecution()) && anyLogCall()")
|
||||
public void anyLog() {
|
||||
|
||||
}
|
||||
|
||||
// @Around("anyMethodCall() || anyLog()")
|
||||
@Around("anyLog()")
|
||||
public Object around(ProceedingJoinPoint jp) throws Throwable {
|
||||
System.out.println("Around: " + jp);
|
||||
long start = System.currentTimeMillis();
|
||||
try {
|
||||
return jp.proceed();
|
||||
} finally {
|
||||
long end = System.currentTimeMillis();
|
||||
System.out.println("Roundtrip is " + (end - start) + "ms for " + jp.getSignature());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Before("anyMethodCall()")
|
||||
public void before(JoinPoint jp) {
|
||||
System.out.println("Before: " + jp);
|
||||
System.out.println("Location: " + jp.getSourceLocation());
|
||||
System.out.println("This: " + jp.getThis());
|
||||
System.out.println("Target: " + jp.getTarget());
|
||||
System.out.println("Input: " + Arrays.asList(jp.getArgs()));
|
||||
}
|
||||
|
||||
@After("anyMethodCall()")
|
||||
public void after(JoinPoint jp) {
|
||||
System.out.println("After: " + jp);
|
||||
}
|
||||
|
||||
@AfterReturning(pointcut = "anyMethodCall()", returning = "result")
|
||||
public void afterReturning(JoinPoint jp, Object result) {
|
||||
System.out.println("After returning: " + jp + " " + result);
|
||||
}
|
||||
|
||||
@AfterThrowing(pointcut = "anyMethodCall()", throwing = "e")
|
||||
public void afterThrowing(Exception e) {
|
||||
}
|
||||
|
||||
}
|
|
@ -1,100 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* @version $Rev$ $Date$
|
||||
*/
|
||||
|
||||
@Aspect
|
||||
public abstract class TracingAspect {
|
||||
|
||||
@Pointcut("")
|
||||
protected abstract void entry();
|
||||
|
||||
/** ignore join points outside this scope - use within(..) */
|
||||
@Pointcut("")
|
||||
protected abstract void withinScope();
|
||||
|
||||
@Pointcut("withinScope() && call(* java..*.*(..))")
|
||||
protected void exit() {
|
||||
}
|
||||
|
||||
@Pointcut("withinScope() && entry() && !cflowbelow(entry())")
|
||||
void start() {
|
||||
}
|
||||
|
||||
@Pointcut("withinScope() && cflow(entry()) && !cflowbelow(exit()) && !within(org.apache.tuscany.sca.aspectj.*Aspect)")
|
||||
void trace() {
|
||||
}
|
||||
|
||||
@Pointcut("!handler(*) && !preinitialization(new(..))")
|
||||
protected void supportsAfterAdvice() {
|
||||
}
|
||||
|
||||
@Before("start()")
|
||||
public void beforeStart() {
|
||||
startLog();
|
||||
}
|
||||
|
||||
@Before("trace() && supportsAfterAdvice()")
|
||||
public void beforeTrace(JoinPoint jp) {
|
||||
logEnter(jp);
|
||||
}
|
||||
|
||||
@After("trace() && supportsAfterAdvice()")
|
||||
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 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();
|
||||
|
||||
protected abstract void completeLog();
|
||||
|
||||
}
|
|
@ -1,82 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.tuscany.sca.aspectj;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.aspectj.lang.JoinPoint;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
|
||||
/**
|
||||
* @version $Rev$ $Date$
|
||||
*/
|
||||
@Aspect
|
||||
public class MyTracingAspect extends TracingAspect {
|
||||
|
||||
public MyTracingAspect() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void completeLog() {
|
||||
System.out.println("completeLog()");
|
||||
}
|
||||
|
||||
@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(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(JoinPoint jp, Object result) {
|
||||
System.out.println("< " + jp.getSignature());
|
||||
if (!jp.getSignature().toString().startsWith("void ")) {
|
||||
System.out.println("Output: " + result);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startLog() {
|
||||
System.out.println("startLog()");
|
||||
}
|
||||
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.tuscany.sca.aspectj;
|
||||
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @version $Rev$ $Date$
|
||||
*/
|
||||
public class TracingTestCase {
|
||||
|
||||
@Test
|
||||
public void testAOP() {
|
||||
Logger log = Logger.getLogger(getClass().getName());
|
||||
System.out.println("doSomething()");
|
||||
log.info("Hello, Log");
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
new TracingTestCase().testAOP();
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
<aspectj>
|
||||
|
||||
<aspects>
|
||||
<!-- declare two existing aspects to the weaver -->
|
||||
<aspect name="org.apache.tuscany.sca.aspectj.MyTracingAspect" />
|
||||
<!--
|
||||
<aspect name="org.apache.tuscany.sca.aspectj.LoggingAspect" />
|
||||
-->
|
||||
|
||||
</aspects>
|
||||
|
||||
<!--weaver options="-verbose -debug -showWeaveInfo"-->
|
||||
<weaver options="">
|
||||
<include within="org.apache.tuscany.sca..*" />
|
||||
</weaver>
|
||||
|
||||
</aspectj>
|
|
@ -1,5 +0,0 @@
|
|||
@echo off
|
||||
set ASPECTJ_HOME=c:\aspectj1.6
|
||||
set TUSCANY_HOME=C:\Apache\tuscany-sca-1.3
|
||||
set CP=%TUSCANY_HOME%\lib\tuscany-sca-manifest.jar;%TUSCANY_HOME%\samples\calculator\target\sample-calculator.jar
|
||||
call %ASPECTJ_HOME%\bin\aj5.bat -cp %CP%;target\classes;target\test-classes calculator.CalculatorClient
|
Loading…
Add table
Reference in a new issue