if (j > -1) {
ext = filename.substring(j+1);
}
- if (startupFileExtensions.contains(ext.toLowerCase())) {
+ if (locatorFileExtension.equals(ext.toLowerCase())) {
+ // this file extension should have been dealt with in Getdown class
+ } else {
_appargs.add(0, "-open");
- } else if (locatorFileExtension.equals(ext.toLowerCase())) {
- // deal with this when first encountered in Getdown!
}
}
}
public void newAppbase (URL url) {
- if ((url.getHost().endsWith(".jalview.org") || url.equals("jalview.org"))) {
+ if (
+ url.getHost().equals(locatorDomain)
+ || (allowLocatorSubdomains && url.getHost().endsWith("."+locatorDomain))
+ || (allowLocatorFileProtocol && url.getProtocol().equals("file") && url.getHost().equals(""))
+ ) {
newAppbase = url;
+ log.info("Appbase set to Java Version Locator url '"+url.toString()+"'");
+ return;
}
- log.info("Java Version Locator url '"+url.toString()+"' does not have a jalview.org domain. Ignoring");
+ log.info("Java Version Locator url '"+url.toString()+"' does not have satisfy domain rules ("
+ +(allowLocatorFileProtocol?"file:///|":"")
+ +"https://"
+ +(allowLocatorSubdomains?"[*.]":locatorDomain)
+ +"). Ignoring");
}
protected final EnvConfig _envc;
protected static final String ENV_VAR_PREFIX = "%ENV.";
protected static final Pattern ENV_VAR_PATTERN = Pattern.compile("%ENV\\.(.*?)%");
+ protected static final String locatorDomain = "jalview.org";
+ protected boolean allowLocatorSubdomains = true;
+ protected boolean allowLocatorFileProtocol = true;
- public static final List<String> startupFileExtensions = Arrays.asList(new String[] { "jvp" });
public static final String locatorFileExtension = "jvl";
}