Skip to content
Snippets Groups Projects
Commit 9d6962c4 authored by Dean Jonas Finkes's avatar Dean Jonas Finkes
Browse files

java2sdg working!

parent f55d70eb
Branches master
No related tags found
No related merge requests found
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="src" path="src/examples"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
......
...@@ -6,7 +6,7 @@ import java2sdg.Sdg; ...@@ -6,7 +6,7 @@ import java2sdg.Sdg;
public class SootController { public class SootController {
public ArrayList<String> buildArguments(String pathToJava, String pathForNeo4J, String mainClass) throws Exception { public String[] buildArguments(String pathToJava, String pathForNeo4J, String mainClass) throws Exception {
ArrayList<String> args = new ArrayList<String>(); ArrayList<String> args = new ArrayList<String>();
if (pathToJava.isEmpty() || pathForNeo4J.isEmpty() || mainClass.isEmpty()) { if (pathToJava.isEmpty() || pathForNeo4J.isEmpty() || mainClass.isEmpty()) {
...@@ -15,9 +15,7 @@ public class SootController { ...@@ -15,9 +15,7 @@ public class SootController {
} }
args.add("-cp"); args.add("-cp");
args.add(pathToJava); args.add(pathToJava);
args.add(pathForNeo4J);
args.add("-pp"); args.add("-pp");
args.add("-app"); args.add("-app");
args.add("-w"); args.add("-w");
...@@ -30,10 +28,13 @@ public class SootController { ...@@ -30,10 +28,13 @@ public class SootController {
args.add(mainClass); args.add(mainClass);
args.add(mainClass); args.add(mainClass);
return args; String[] argArray = new String[args.size()];
argArray = args.toArray(argArray);
return argArray;
} }
public void startSoot(ArrayList<String> args) { public void startSoot(String[] args, String pathToDB) {
Sdg.start(args); Sdg.start(args, pathToDB);
} }
} }
package java2sdg; package java2sdg;
import java.util.ArrayList;
import java.util.Map; import java.util.Map;
import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.GraphDatabaseService;
...@@ -25,15 +24,12 @@ public class Sdg { ...@@ -25,15 +24,12 @@ public class Sdg {
private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(Sdg.class); private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(Sdg.class);
public static void start(ArrayList<String> args) { public static void start(String[] args, String pathToDB) {
final StatementVisitor<?> logVisitor = new StatementLoggerVisitor(); final StatementVisitor<?> logVisitor = new StatementLoggerVisitor();
// FileUtils.deleteRecursively(new File("neo4j-database")); // FileUtils.deleteRecursively(new File("neo4j-database"));
GraphDatabaseService graphDatabaseService = new Neo4Jdb(args.get(1)).getGraphDatabaseService(); GraphDatabaseService graphDatabaseService = new Neo4Jdb(pathToDB).getGraphDatabaseService();
args.remove(1);
String[] argsSoot = args.toArray(new String[args.size()]);
// delete db content // delete db content
graphDatabaseService.execute("MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r"); graphDatabaseService.execute("MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r");
...@@ -81,7 +77,7 @@ public class Sdg { ...@@ -81,7 +77,7 @@ public class Sdg {
try (Transaction transaction = graphDatabaseService.beginTx()) { try (Transaction transaction = graphDatabaseService.beginTx()) {
// start soot with its arguments and calculate the call-graph // start soot with its arguments and calculate the call-graph
soot.Main.main(argsSoot); soot.Main.main(args);
visitor.executeInterProceduralOperations(); visitor.executeInterProceduralOperations();
......
...@@ -3,7 +3,6 @@ package ui.expert; ...@@ -3,7 +3,6 @@ package ui.expert;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.net.URL; import java.net.URL;
import java.util.ArrayList;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import controller.Matcher; import controller.Matcher;
...@@ -46,6 +45,7 @@ public class ExpertScreenController extends ConnectedControl implements Initiali ...@@ -46,6 +45,7 @@ public class ExpertScreenController extends ConnectedControl implements Initiali
@FXML @FXML
private ListView matchedCPListView; private ListView matchedCPListView;
@Override
public void initialize(URL location, ResourceBundle resources) { public void initialize(URL location, ResourceBundle resources) {
sootController = new SootController(); sootController = new SootController();
matcher = new Matcher(); matcher = new Matcher();
...@@ -115,9 +115,10 @@ public class ExpertScreenController extends ConnectedControl implements Initiali ...@@ -115,9 +115,10 @@ public class ExpertScreenController extends ConnectedControl implements Initiali
System.out.println("Missing paths!"); System.out.println("Missing paths!");
throw new Exception(); throw new Exception();
} }
ArrayList<String> args = sootController.buildArguments(javaSrc, pathToDB, mainClass);
sootController.startSoot(args); String[] args = sootController.buildArguments(javaSrc, pathToDB, mainClass);
sootController.startSoot(args, pathToDB);
} }
@FXML @FXML
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment