Merge branch 'develop' into update_212_Dec_merge_with_21125_chamges
[jalview.git] / getdown / src / getdown / core / src / main / java / com / threerings / getdown / data / Application.java
index 2022750..9d9fe14 100644 (file)
@@ -31,7 +31,7 @@ import java.util.zip.GZIPInputStream;
 
 import jalview.bin.HiDPISetting;
 import jalview.bin.MemorySetting;
-//import com.install4j.api.launcher.Variables;
+import jalview.util.LaunchUtils;
 
 import com.threerings.getdown.util.*;
 // avoid ambiguity with java.util.Base64 which we can't use as it's 1.8+
@@ -1085,6 +1085,9 @@ public class Application
            log.info("Not setting proxy");
        }
 
+        // add the getdowninstanceappbase property.  getdownappdir is added by getdown.txt
+        args.add("-Dgetdowninstanceappbase=" + getAppbase().toString());
+
         // add the marker indicating the app is running in getdown
         args.add("-D" + Properties.GETDOWN + "=true");
         args.add("-Dsys.install4jVersion=" + Application.i4jVersion);
@@ -1181,6 +1184,17 @@ public class Application
             continue;
           }
         }
+
+        // use saved preferences if no cmdline args
+        LaunchUtils.loadChannelProps(getAppDir());
+        if (LaunchUtils.getBooleanUserPreference(MemorySetting.CUSTOMISED_SETTINGS)) {
+          if (jvmmempc == null) {
+            jvmmempc = LaunchUtils.getUserPreference(MemorySetting.MEMORY_JVMMEMPC);
+          }
+          if (jvmmemmax == null) {
+            jvmmemmax = LaunchUtils.getUserPreference(MemorySetting.MEMORY_JVMMEMMAX);
+          }
+        }
         
         // add the memory setting from jvmmempc and jvmmemmax
         long maxMemLong = -1;
@@ -1237,7 +1251,7 @@ public class Application
           if (j > -1) {
             ext = filename.substring(j+1);
           }
-          if (ext != null && LOCATOR_FILE_EXTENSION.equals(ext.toLowerCase())) {
+          if (ext != null && LOCATOR_FILE_EXTENSION.equals(ext.toLowerCase(Locale.ROOT))) {
             // this file extension should have been dealt with in Getdown class
           } else {
             _appargs.add(0, "-open");
@@ -1253,7 +1267,9 @@ public class Application
         String[] sargs = args.toArray(new String[args.size()]);
         log.info("Running " + StringUtil.join(sargs, "\n  "));
 
-        return Runtime.getRuntime().exec(sargs, envp, getAppDir());
+        // don't set the working dir, leave it the same as the working dir of the invocation
+        //return Runtime.getRuntime().exec(sargs, envp, getAppDir());
+        return Runtime.getRuntime().exec(sargs, envp);
     }
 
     /**
@@ -1984,7 +2000,7 @@ public class Application
         String locatorFilename = filenames.length >= 1 ? filenames[0] : null;
         if (
                 !StringUtil.isBlank(locatorFilename)
-                && locatorFilename.toLowerCase().endsWith("."+Application.LOCATOR_FILE_EXTENSION)
+                && locatorFilename.toLowerCase(Locale.ROOT).endsWith("."+Application.LOCATOR_FILE_EXTENSION)
                 ) {
           setLocatorFile(locatorFilename);
           // remove the locator filename from the filenames array
@@ -1998,7 +2014,7 @@ public class Application
           // skip any other locator files in a multiple file list
           if (filename.startsWith("jalview://") || filename.startsWith("jalviews://")) {
             setJalviewUri(filename);
-          } else if (! filename.toLowerCase().endsWith("."+Application.LOCATOR_FILE_EXTENSION)) {
+          } else if (! filename.toLowerCase(Locale.ROOT).endsWith("."+Application.LOCATOR_FILE_EXTENSION)) {
             addStartupFile(filename);
           }
         }