JAL-3523 Remove getdown setting the working directory to appdir
[jalview.git] / getdown / src / getdown / core / src / main / java / com / threerings / getdown / data / Application.java
index fd53c79..a0fdbee 100644 (file)
@@ -9,6 +9,8 @@ import java.io.*;
 import java.lang.reflect.Method;
 import java.net.MalformedURLException;
 import java.net.Proxy;
+import java.net.SocketAddress;
+import java.net.InetSocketAddress;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
@@ -27,6 +29,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.zip.GZIPInputStream;
 
+import jalview.bin.HiDPISetting;
 import jalview.bin.MemorySetting;
 //import com.install4j.api.launcher.Variables;
 
@@ -1057,13 +1060,30 @@ public class Application
         }
 
         // pass along our proxy settings
-        String proxyHost;
-        if ((proxyHost = System.getProperty("http.proxyHost")) != null) {
+        String proxyHost = System.getProperty("http.proxyHost");
+       String proxyPort = StringUtil.isBlank(System.getProperty("http.proxyPort")) ? "80" : System.getProperty("http.proxyPort");
+        if (StringUtil.isBlank(proxyHost) && ! proxy.equals(Proxy.NO_PROXY)) {
+           try {
+               SocketAddress a = proxy.address();
+               if (a != null && a instanceof InetSocketAddress) {
+                   InetSocketAddress ia = (InetSocketAddress)a;
+                   proxyHost = ia.getHostString();
+                   proxyPort = String.valueOf(ia.getPort());
+               }
+           } catch (Exception e) {
+               log.error("Problem obtaining proxy settings from Proxy object");
+               e.printStackTrace();
+           }
+       }
+        if (proxyHost != null) {
+           log.info("Using proxy settings "+proxyHost+":"+proxyPort);
             args.add("-Dhttp.proxyHost=" + proxyHost);
-            args.add("-Dhttp.proxyPort=" + System.getProperty("http.proxyPort"));
+            args.add("-Dhttp.proxyPort=" + proxyPort);
             args.add("-Dhttps.proxyHost=" + proxyHost);
-            args.add("-Dhttps.proxyPort=" + System.getProperty("http.proxyPort"));
-        }
+            args.add("-Dhttps.proxyPort=" + proxyPort);
+       } else {
+           log.info("Not setting proxy");
+       }
 
         // add the marker indicating the app is running in getdown
         args.add("-D" + Properties.GETDOWN + "=true");
@@ -1071,6 +1091,13 @@ public class Application
         args.add("-Dinstaller_template_version=" + System.getProperty("installer_template_version"));
         args.add("-Dlauncher_version=" + Build.version());
 
+        // set HiDPI property if wanted
+        String scalePropertyArg = HiDPISetting.getScalePropertyArg();
+        if (scalePropertyArg != null)
+        {
+          args.add(scalePropertyArg);
+        }
+
         // set the native library path if we have native resources
         // @TODO optional getdown.txt parameter to set addCurrentLibraryPath to true or false?
         ClassPath javaLibPath = PathBuilder.buildLibsPath(this, true);
@@ -1226,7 +1253,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);
     }
 
     /**
@@ -1411,6 +1440,8 @@ public class Application
             clearValidationMarkers();
             // if the new copy validates, reinitialize ourselves; otherwise report baffling hoseage
             if (_digest.validateResource(crsrc, null)) {
+                // unset _initialisedConfig so new file is initialised
+                _initialisedConfig = null;
                 init(true);
             } else {
                 log.warning(CONFIG_FILE + " failed to validate even after redownloading. " +