trace
Changes
pom.xml 2(+1 -1)
Details
pom.xml 2(+1 -1)
diff --git a/pom.xml b/pom.xml
index 0b71e51..32496bd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,7 +47,7 @@
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib</classpathPrefix>
- <mainClass>br.ufrgs.inf.prosoft.trace.tools.HashFile</mainClass>
+ <mainClass>br.ufrgs.inf.prosoft.trace.tools.Main</mainClass>
</manifest>
<manifestEntries>
<Class-Path>lib/</Class-Path>
diff --git a/src/main/java/br/ufrgs/inf/prosoft/trace/Object.java b/src/main/java/br/ufrgs/inf/prosoft/trace/Object.java
index 3143cd2..362d699 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/trace/Object.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/trace/Object.java
@@ -27,4 +27,9 @@ public abstract class Object {
return d;
}
+ @Override
+ public String toString() {
+ return String.valueOf(this.d);
+ }
+
}
diff --git a/src/main/java/br/ufrgs/inf/prosoft/trace/tools/DiffTraces.java b/src/main/java/br/ufrgs/inf/prosoft/trace/tools/DiffTraces.java
new file mode 100644
index 0000000..ae14eac
--- /dev/null
+++ b/src/main/java/br/ufrgs/inf/prosoft/trace/tools/DiffTraces.java
@@ -0,0 +1,78 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package br.ufrgs.inf.prosoft.trace.tools;
+
+import br.ufrgs.inf.prosoft.trace.Trace;
+import br.ufrgs.inf.prosoft.trace.TraceConcrete;
+import com.google.gson.Gson;
+import com.google.gson.JsonSyntaxException;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.Iterator;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import java.util.stream.Stream;
+
+/**
+ *
+ * @author romulo
+ */
+public class DiffTraces {
+
+ private static final Logger logger = Logger.getLogger(DiffTraces.class.getName());
+
+ public static void diff(String firstPath, String secondPath) {
+ try {
+ Stream<String> linesFirst = Files.lines(Paths.get(firstPath));
+ Iterator<String> iteratorFirst = linesFirst.iterator();
+ Stream<String> linesSecond = Files.lines(Paths.get(secondPath));
+ Iterator<String> iteratorSecond = linesSecond.iterator();
+ int index = 0;
+ Gson gson = new Gson();
+ while (true) {
+ String lineFirst = iteratorFirst.next();
+ String lineSecond = iteratorSecond.next();
+ if (lineFirst == null || lineSecond == null) {
+ break;
+ }
+ try {
+ Trace traceFirst = gson.fromJson(lineFirst, TraceConcrete.class);
+ Trace traceSecond = gson.fromJson(lineSecond, TraceConcrete.class);
+ if (!traceFirst.getName().equals(traceSecond.getName())) {
+ System.out.println(index + " < " + traceFirst.getName());
+ System.out.println(index + " > " + traceSecond.getName());
+ continue;
+ }
+ if (!traceFirst.getParameters().toString().equals(traceSecond.getParameters().toString())) {
+ System.out.println(index + " < " + traceFirst.getParameters().toString());
+ System.out.println(index + " > " + traceSecond.getParameters().toString());
+ continue;
+ }
+ if (!traceFirst.getReturn().toString().equals(traceSecond.getReturn().toString())) {
+ System.out.println(index + " < " + traceFirst.getReturn().toString());
+ System.out.println(index + " > " + traceSecond.getReturn().toString());
+ continue;
+ }
+ System.out.print(".");
+ System.out.flush();
+ if (index != 0 && index % 100 == 0) {
+ System.out.println();
+ }
+ } catch (JsonSyntaxException e) {
+ if (lineFirst.length() > 2000) {
+ lineFirst = lineFirst.substring(0, 2000);
+ }
+ logger.log(Level.INFO, "Malformed Trace {0}: {1}", new java.lang.Object[]{index, lineFirst});
+ } finally {
+ index++;
+ }
+ }
+ } catch (IOException ex) {
+ logger.log(Level.SEVERE, null, ex);
+ }
+ }
+}
diff --git a/src/main/java/br/ufrgs/inf/prosoft/trace/tools/HashFile.java b/src/main/java/br/ufrgs/inf/prosoft/trace/tools/HashFile.java
index 4d14b69..4245db3 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/trace/tools/HashFile.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/trace/tools/HashFile.java
@@ -3,6 +3,7 @@
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
+
package br.ufrgs.inf.prosoft.trace.tools;
import br.ufrgs.inf.prosoft.trace.Parameter;
@@ -32,17 +33,7 @@ public class HashFile {
private static final Logger logger = Logger.getLogger(HashFile.class.getName());
- public static void main(String[] args) {
- System.setProperty("java.util.logging.SimpleFormatter.format", "[%1$tF %1$tT+%1$tL] [%4$-7s] [Trace] %5$s %n");
- String inputPath = null;
- String outputPath = null;
- if (args.length < 2) {
- System.err.println("<InputTracePath> <OutputTracePath>");
- System.exit(1);
- } else {
- inputPath = args[0];
- outputPath = args[1];
- }
+ public static void convert(String inputPath, String outputPath) {
try {
logger.log(Level.INFO, "Converting {0} traces", TraceReader.getLineCount(inputPath));
Stream<String> lines = Files.lines(Paths.get(inputPath));
@@ -95,7 +86,6 @@ public class HashFile {
}
}
});
- System.out.println();
} catch (IOException ex) {
logger.log(Level.SEVERE, null, ex);
}
diff --git a/src/main/java/br/ufrgs/inf/prosoft/trace/tools/Main.java b/src/main/java/br/ufrgs/inf/prosoft/trace/tools/Main.java
new file mode 100644
index 0000000..25d84f3
--- /dev/null
+++ b/src/main/java/br/ufrgs/inf/prosoft/trace/tools/Main.java
@@ -0,0 +1,38 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package br.ufrgs.inf.prosoft.trace.tools;
+
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author romulo
+ */
+public class Main {
+
+ private static final Logger logger = Logger.getLogger(Main.class.getName());
+
+ public static void main(String[] args) {
+ System.setProperty("java.util.logging.SimpleFormatter.format", "[%1$tF %1$tT+%1$tL] [%4$-7s] [Trace] %5$s %n");
+ String tool = null;
+ String firstPath = null;
+ String secondPath = null;
+ if (args.length < 2) {
+ System.err.println("<diff> <FirstTracePath> <SecondTracePath>");
+ System.err.println("<hash> <InputTracePath> <OutputTracePath>");
+ System.exit(1);
+ } else {
+ tool = args[0];
+ firstPath = args[1];
+ secondPath = args[2];
+ }
+ if (tool.equals("diff")) {
+ DiffTraces.diff(firstPath, secondPath);
+ } else {
+ HashFile.convert(firstPath, secondPath);
+ }
+ }
+}