import java.util.regex.Pattern;
import java.util.zip.GZIPInputStream;
+import jalview.bin.HiDPISetting;
import jalview.bin.MemorySetting;
-import com.install4j.api.launcher.Variables;
+//import com.install4j.api.launcher.Variables;
import com.threerings.getdown.util.*;
// avoid ambiguity with java.util.Base64 which we can't use as it's 1.8+
return _resources;
}
+ public List<Resource> getDigestOnly ()
+ {
+ return _digestonly;
+ }
+
/**
* Returns the digest of the given {@code resource}.
*/
// clear our arrays as we may be reinitializing
_codes.clear();
_resources.clear();
+ _digestonly.clear();
_auxgroups.clear();
_jvmargs.clear();
_appargs.clear();
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<Resource> codes = new ArrayList<>();
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);
try {
log.info("TRYING TO PARSE URL '"+uri+"'");
URI jalviewUri = new URI(uri);
- if (jalviewUri.getScheme().equals("jalview") || jalviewUri.getScheme().equals("jalviews")) {
- boolean https = jalviewUri.getScheme().equals("jalviews");
- String host = jalviewUri.getHost();
- int port = jalviewUri.getPort();
- String file = jalviewUri.getPath();
- String ref = jalviewUri.getFragment();
- String query = jalviewUri.getQuery();
-
- _appargs.clear();
- _appargs.add("-open");
- if (host != null && host.length() > 0) {
- URL newUrl = new URL(
- (https?"https":"http")
- + "://"
- + host
- + (port > -1? String.valueOf(port) : "")
- + jalviewUri.getRawPath()
- + (query != null && query.length() > 0 ? "?" + jalviewUri.getRawQuery() : "")
- );
- _appargs.add(newUrl.toString());
- } else {
- _appargs.add(file);
- }
-
- if (ref != null && ref.length() > 0) {
- String[] refArgs = ref.split("&");
- for (String refArg : refArgs) {
- if (refArg.startsWith("jvmmempc=")) {
- jvmmempc = refArg.substring(9);
- continue;
- }
- if (refArg.startsWith("jvmmemmax=")) {
- jvmmemmax = refArg.substring(10);
- continue;
+ if (jalviewUri != null) {
+ String scheme = jalviewUri.getScheme();
+ if (scheme != null && (scheme.equals("jalview") || scheme.equals("jalviews"))) {
+ boolean https = jalviewUri.getScheme().equals("jalviews");
+ String host = jalviewUri.getHost();
+ int port = jalviewUri.getPort();
+ String file = jalviewUri.getPath();
+ String ref = jalviewUri.getFragment();
+ String query = jalviewUri.getQuery();
+
+ _appargs.clear();
+ _appargs.add("-open");
+ if (host != null && host.length() > 0) {
+ URL newUrl = new URL(
+ (https?"https":"http")
+ + "://"
+ + host
+ + (port > -1? String.valueOf(port) : "")
+ + jalviewUri.getRawPath()
+ + (query != null && query.length() > 0 ? "?" + jalviewUri.getRawQuery() : "")
+ );
+ _appargs.add(newUrl.toString());
+ } else {
+ _appargs.add(file);
+ }
+
+ if (ref != null && ref.length() > 0) {
+ String[] refArgs = ref.split("&");
+ for (String refArg : refArgs) {
+ if (refArg.startsWith("jvmmempc=")) {
+ jvmmempc = refArg.substring(9);
+ continue;
+ }
+ if (refArg.startsWith("jvmmemmax=")) {
+ jvmmemmax = refArg.substring(10);
+ continue;
+ }
+ _appargs.add(URLDecoder.decode(refArg, "UTF-8"));
}
- _appargs.add(URLDecoder.decode(refArg, "UTF-8"));
}
+
}
-
}
} catch (URISyntaxException e) {
log.error("Malformed jalview URI", uri);
protected List<Resource> _codes = new ArrayList<>();
protected List<Resource> _resources = new ArrayList<>();
+ protected List<Resource> _digestonly = new ArrayList<>();
protected boolean _useCodeCache;
protected int _codeCacheRetentionDays;