Merge branch 'develop' of https://source.jalview.org/git/jalview.git into develop
[jalview.git] / test / jalview / bin / CommandLineOperations.java
index d586dae..3ac8656 100644 (file)
@@ -35,6 +35,9 @@ import org.testng.annotations.BeforeTest;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
+import io.github.classgraph.ClassGraph;
+import io.github.classgraph.ScanResult;
+
 public class CommandLineOperations
 {
 
@@ -45,7 +48,7 @@ public class CommandLineOperations
     JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
   }
 
-  private static final int TEST_TIMEOUT = 4500; // Note longer timeout needed on
+  private static final int TEST_TIMEOUT = 9000; // Note longer timeout needed on
                                                 // full test run than on
                                                 // individual tests
 
@@ -113,21 +116,39 @@ public class CommandLineOperations
     }
   }
 
-  private Worker jalviewDesktopRunner(boolean withAwt, String cmd,
-          int timeout)
+  private static ClassGraph scanner = null;
+
+  private static String classpath = null;
+
+  public synchronized static String getClassPath()
   {
-    String cp_sep = ":";
-    if (System.getProperty("os.name").indexOf("Windows") >= 0)
+    if (scanner == null)
+    {
+      scanner = new ClassGraph();
+      ScanResult scan = scanner.scan();
+      classpath = scan.getClasspath();
+    }
+    while (classpath == null)
     {
-      cp_sep = ";";
+      try
+      {
+        Thread.sleep(10);
+      } catch (InterruptedException x)
+      {
+
+      }
     }
+    return classpath;
+  }
+  private Worker jalviewDesktopRunner(boolean withAwt, String cmd,
+          int timeout)
+  {
     // Note: JAL-3065 - don't include quotes for lib/* because the arguments are
     // not expanded by the shell
+    String classpath = getClassPath();
     String _cmd = "java "
             + (withAwt ? "-Djava.awt.headless=true" : "")
-            + " -classpath ./classes" + cp_sep
-            + "./lib/* jalview.bin.Jalview ";
-    System.out.println("CMD [" + cmd + "]");
+            + " -classpath " + classpath + " jalview.bin.Jalview ";
     Process ls2_proc = null;
     Worker worker = null;
     try