return null;
}
- String vmfile = LaunchUtil.LOCAL_JAVA_DIR + ".jar";
+ String extension = (_javaLocation.endsWith(".tgz"))?".tgz":".jar";
+ String vmfile = LaunchUtil.LOCAL_JAVA_DIR + extension;
log.info("vmfile is '"+vmfile+"'");
System.out.println("vmfile is '"+vmfile+"'");
try {
// first determine our application base, this way if anything goes wrong later in the
// process, our caller can use the appbase to download a new configuration file
_appbase = config.getString("appbase");
+ // override if a Version Locator file has been used
+ if (newAppbase != null) {
+ _appbase = newAppbase.toString();
+ }
if (_appbase == null) {
throw new RuntimeException("m.missing_appbase");
}
// add the launch specific application arguments
_appargs.addAll(_envc.appArgs);
-
+
// look for custom arguments
fillAssignmentListFromPairs("extra.txt", _txtJvmArgs);
args.add(_class);
}
+ // almost finally check the startup file arguments
+ for (File f : startupFiles) {
+ _appargs.add(f.getAbsolutePath());
+ break; // Only add one file to open
+ }
+
+ // check if one arg with recognised extension
+ if ( _appargs.size() == 1 && _appargs.get(0) != null ) {
+ String filename = _appargs.get(0);
+ String ext = null;
+ int j = filename.lastIndexOf('.');
+ if (j > -1) {
+ ext = filename.substring(j+1);
+ }
+ if (startupFileExtensions.contains(ext.toLowerCase())) {
+ _appargs.add(0, "-open");
+ } else if (locatorFileExtension.equals(ext.toLowerCase())) {
+ // deal with this when first encountered in Getdown!
+ }
+ }
+
// finally add the application arguments
for (String string : _appargs) {
args.add(processArg(string));
}
-
+
String[] envp = createEnvironment();
String[] sargs = args.toArray(new String[args.size()]);
log.info("Running " + StringUtil.join(sargs, "\n "));
{
return new File(appdir, path);
}
+
+ public void addStartupFile (File f) {
+ startupFiles.add(f);
+ }
+
+ public void newAppbase (URL url) {
+ if (
+ url.getHost().endsWith(".jalview.org")
+ || url.equals("jalview.org")
+ || (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");
+ }
protected final EnvConfig _envc;
protected File _config;
protected List<String> _jvmargs = new ArrayList<>();
protected List<String> _appargs = new ArrayList<>();
+ protected List<File> startupFiles = new ArrayList<>();
+ protected URL newAppbase;
protected String[] _optimumJvmArgs;
protected static final String ENV_VAR_PREFIX = "%ENV.";
protected static final Pattern ENV_VAR_PATTERN = Pattern.compile("%ENV\\.(.*?)%");
+
+ public static final List<String> startupFileExtensions = Arrays.asList(new String[] { "jvp" });
+ public static final String locatorFileExtension = "jvl";
}