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=9d9fe14abc69589604395c5b60bb13876d9a5d79;hb=2319ef1a410ce35bf2ef1800fd0be4e779ee44eb;hp=313a690eece4eb6bf35d495d1f716ad5729ed336;hpb=e0fff6b634346ca2d0256d95eacc1b0aae7d3387;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 313a690..9d9fe14 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+ @@ -354,11 +356,6 @@ public class Application return _resources; } - public List getDigestOnly () - { - return _digestonly; - } - /** * Returns the digest of the given {@code resource}. */ @@ -777,7 +774,6 @@ public class Application // clear our arrays as we may be reinitializing _codes.clear(); _resources.clear(); - _digestonly.clear(); _auxgroups.clear(); _jvmargs.clear(); _appargs.clear(); @@ -798,8 +794,6 @@ public class Application parseResources(config, "presource", Resource.PRELOAD, _resources); parseResources(config, "nresource", Resource.NATIVE, _resources); - parseResources(config, "digestonly", Resource.NORMAL, _digestonly); - // parse our auxiliary resource groups for (String auxgroup : config.getList("auxgroups")) { ArrayList codes = new ArrayList<>(); @@ -1066,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"); @@ -1170,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; @@ -1226,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"); @@ -1242,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); } /** @@ -1973,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 @@ -1987,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); } } @@ -2084,7 +2111,6 @@ public class Application protected List _codes = new ArrayList<>(); protected List _resources = new ArrayList<>(); - protected List _digestonly = new ArrayList<>(); protected boolean _useCodeCache; protected int _codeCacheRetentionDays;