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;
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+
}
// 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");
String query = jalviewUri.getQuery();
_appargs.clear();
- _appargs.add("-open");
if (host != null && host.length() > 0) {
URL newUrl = new URL(
(https?"https":"http")
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;
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");
}
}
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);
}
/**
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
// 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);
}
}