X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=getdown%2Fsrc%2Fgetdown%2Fcore%2Fsrc%2Fmain%2Fjava%2Fcom%2Fthreerings%2Fgetdown%2Fdata%2FApplication.java;h=435ebbd79af662ce55cc90ae336208b48c898b1f;hb=HEAD;hp=b11a380f072d870c6447e166b723253083f9803f;hpb=6402aef8acf127e8c5fee47ccaeb0b33aab07663;p=jalview.git diff --git a/getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java b/getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java index b11a380..435ebbd 100644 --- a/getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java +++ b/getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java @@ -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; @@ -29,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+ @@ -1058,13 +1060,33 @@ 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 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"); @@ -1115,7 +1137,6 @@ public class Application String query = jalviewUri.getQuery(); _appargs.clear(); - _appargs.add("-open"); if (host != null && host.length() > 0) { URL newUrl = new URL( (https?"https":"http") @@ -1162,6 +1183,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; @@ -1218,10 +1250,8 @@ 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"); } } @@ -1234,7 +1264,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); } /** @@ -1419,6 +1451,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. " + @@ -1963,7 +1997,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 @@ -1977,7 +2011,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); } }