Skip to content

Commit d278b08

Browse files
committed
Added audit4j Spring Integration`
1 parent 3534484 commit d278b08

File tree

3 files changed

+162
-0
lines changed

3 files changed

+162
-0
lines changed

pom.xml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>com.bi3.commons.audit</groupId>
5+
<artifactId>bi3-commons-audit</artifactId>
6+
<packaging>jar</packaging>
7+
<version>1.0-SNAPSHOT</version>
8+
<name>Brandix_i3-Common_Components</name>
9+
<url>http://maven.apache.org</url>
10+
11+
<properties>
12+
<hapi.version.stable>2.1</hapi.version.stable>
13+
<slf4j.version>1.7.5</slf4j.version>
14+
<log4j.version>1.2.17</log4j.version>
15+
<spring.version>3.0.5.RELEASE</spring.version>
16+
</properties>
17+
18+
<dependencies>
19+
<dependency>
20+
<groupId>junit</groupId>
21+
<artifactId>junit</artifactId>
22+
<version>3.8.1</version>
23+
<scope>test</scope>
24+
</dependency>
25+
<dependency>
26+
<groupId>org.slf4j</groupId>
27+
<artifactId>slf4j-api</artifactId>
28+
<version>1.7.6</version>
29+
</dependency>
30+
31+
<!-- Spring AOP + AspectJ -->
32+
<dependency>
33+
<groupId>org.springframework</groupId>
34+
<artifactId>spring-aop</artifactId>
35+
<version>${spring.version}</version>
36+
</dependency>
37+
<dependency>
38+
<groupId>org.aspectj</groupId>
39+
<artifactId>aspectjrt</artifactId>
40+
<version>1.6.11</version>
41+
</dependency>
42+
<dependency>
43+
<groupId>org.aspectj</groupId>
44+
<artifactId>aspectjweaver</artifactId>
45+
<version>1.6.11</version>
46+
</dependency>
47+
</dependencies>
48+
49+
<build>
50+
<plugins>
51+
<plugin>
52+
<groupId>org.apache.maven.plugins</groupId>
53+
<artifactId>maven-compiler-plugin</artifactId>
54+
</plugin>
55+
<plugin>
56+
<groupId>org.apache.maven.plugins</groupId>
57+
<artifactId>maven-eclipse-plugin</artifactId>
58+
</plugin>
59+
<plugin>
60+
<groupId>org.apache.maven.plugins</groupId>
61+
<artifactId>maven-jar-plugin</artifactId>
62+
<configuration>
63+
<archive>
64+
<manifest>
65+
<addClasspath>true</addClasspath>
66+
<mainClass>org.foo.App</mainClass>
67+
</manifest>
68+
</archive>
69+
</configuration>
70+
</plugin>
71+
<plugin>
72+
<groupId>org.apache.maven.plugins</groupId>
73+
<artifactId>maven-surefire-plugin</artifactId>
74+
</plugin>
75+
</plugins>
76+
</build>
77+
</project>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package org.audit4j.integration.spring;
2+
3+
import java.lang.reflect.Method;
4+
5+
import org.apache.commons.logging.Log;
6+
import org.apache.commons.logging.LogFactory;
7+
import org.audit4j.core.AuditManager;
8+
import org.springframework.aop.MethodBeforeAdvice;
9+
10+
11+
/**
12+
* The Class AuditAdvice.
13+
*
14+
* @author Janith Bandara
15+
*/
16+
public class AuditAdvice implements MethodBeforeAdvice {
17+
18+
/** The log. */
19+
private final Log log = LogFactory.getLog(AuditAdvice.class);
20+
21+
/* (non-Javadoc)
22+
* @see org.springframework.aop.MethodBeforeAdvice#before(java.lang.reflect.Method, java.lang.Object[], java.lang.Object)
23+
*/
24+
@Override
25+
public void before(final Method method, final Object[] arg1, final Object arg2) throws Throwable {
26+
27+
if (log.isDebugEnabled())
28+
log.debug("Calling Audit advice before " + method.getName());
29+
30+
AuditManager manager = AuditManager.getInstance();
31+
manager.auditWithAnnotation(method.getClass(), method, arg1);
32+
}
33+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package org.audit4j.integration.spring;
2+
3+
import java.lang.reflect.Method;
4+
5+
import org.apache.commons.logging.Log;
6+
import org.apache.commons.logging.LogFactory;
7+
import org.aspectj.lang.ProceedingJoinPoint;
8+
import org.aspectj.lang.annotation.Around;
9+
import org.aspectj.lang.annotation.Aspect;
10+
import org.aspectj.lang.annotation.Pointcut;
11+
import org.aspectj.lang.reflect.MethodSignature;
12+
import org.audit4j.core.AuditManager;
13+
14+
15+
16+
/**
17+
* The Class AuditAspect.
18+
*
19+
* @author Janith Bandara
20+
*/
21+
@Aspect
22+
public class AuditAspect {
23+
24+
/** The log. */
25+
private final Log log = LogFactory.getLog(AuditAspect.class);
26+
27+
/**
28+
* Execute public method.
29+
*/
30+
@Pointcut(value = "execution(public * *(..))")
31+
public void executePublicMethod() {
32+
}
33+
34+
/**
35+
* Log action.
36+
*
37+
* @param pjp the pjp
38+
* @return the object
39+
* @throws Throwable the throwable
40+
*/
41+
@Around("executePublicMethod()")
42+
public Object logAction(final ProceedingJoinPoint pjp) throws Throwable {
43+
AuditManager manager = AuditManager.getInstance();
44+
Class<?> clazz = pjp.getClass();
45+
46+
MethodSignature methodSignature = (MethodSignature) pjp.getSignature();
47+
Method method = methodSignature.getMethod();
48+
49+
manager.auditWithAnnotation(clazz, method, pjp.getArgs());
50+
return pjp.proceed();
51+
}
52+
}

0 commit comments

Comments
 (0)