application-tracer
Changes
pom.xml 18(+0 -18)
Details
pom.xml 18(+0 -18)
diff --git a/pom.xml b/pom.xml
index d63edb6..02598d5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,24 +44,6 @@
<build>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>
- ${project.build.directory}/lib
- </outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.7</version>
diff --git a/src/main/java/br/ufrgs/inf/prosoft/applicationtracer/TracerAspect.java b/src/main/java/br/ufrgs/inf/prosoft/applicationtracer/TracerAspect.java
index d6debed..d7f3b01 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/applicationtracer/TracerAspect.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/applicationtracer/TracerAspect.java
@@ -49,30 +49,43 @@ public class TracerAspect {
String methodName = modifiersReturnAndName[modifiersReturnAndName.length - 1];
String returnType = modifiersReturnAndName[modifiersReturnAndName.length - 2];
List<Parameter> parameters = new ArrayList<>();
+ List<Parameter> parametersDigested = new ArrayList<>();
MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
if (split.length > 1) {
String[] parameterTypes = split[1].split(", ");
Object[] parametersData = joinPoint.getArgs();
for (int i = 0; i < parametersData.length; i++) {
- JSONObject.resetCycleBreaker();
- String parameter = new JSONObject(parametersData[i]).toString();
- parameters.add(new Parameter(parameterTypes[i], messageDigest.digest(parameter.getBytes()).toString()));
+ String parameter = JSONObject.createCyclicFields(parametersData[i]).toString();
+ parametersDigested.add(new Parameter(parameterTypes[i], messageDigest.digest(parameter.getBytes()).toString()));
+ parameters.add(new Parameter(parameterTypes[i], parametersData[i]));
}
}
- JSONObject.resetCycleBreaker();
- Return returnValue = new Return(returnType, messageDigest.digest(new JSONObject(proceed).toString().getBytes()).toString());
- Trace trace = new Trace(Arrays.asList(modifiers), returnValue, methodName, parameters, startTime, endTime);
- JSONObject.resetCycleBreaker();
- String signature = new JSONObject(trace).toString();
+ Return returnValueDigested = new Return(returnType, messageDigest.digest(JSONObject.createCyclicFields(proceed).toString().getBytes()).toString());
+ Return returnValue = new Return(returnType, proceed);
+ String instance;
+ try {
+ instance = String.valueOf(joinPoint.getThis().hashCode());
+ } catch (Exception ex) {
+ instance = "s";
+ }
+ Trace traceDigested = new Trace(instance, Arrays.asList(modifiers), returnValueDigested, methodName, parametersDigested, startTime, endTime);
+ Trace trace = new Trace(instance, Arrays.asList(modifiers), returnValue, methodName, parameters, startTime, endTime);
+ String signature = JSONObject.createAcyclicFields(trace).toString();
signature += "\n";
+ String signatureDigested = JSONObject.createAcyclicFields(traceDigested).toString();
+ signatureDigested += "\n";
try {
Files.write(Paths.get("./trace"), signature.getBytes(), StandardOpenOption.APPEND);
} catch (NoSuchFileException e) {
Files.write(Paths.get("./trace"), signature.getBytes(), StandardOpenOption.CREATE);
}
- System.out.print(signature);
+ try {
+ Files.write(Paths.get("./traceDigested"), signatureDigested.getBytes(), StandardOpenOption.APPEND);
+ } catch (NoSuchFileException e) {
+ Files.write(Paths.get("./traceDigested"), signatureDigested.getBytes(), StandardOpenOption.CREATE);
+ }
} catch (Exception ex) {
- System.err.println(ex);
+ System.err.println("[Application Tracer] exception: " + ex);
}
return proceed;
}