//getdownTextString += "class = " + file(getdownLauncher).getName() + "\n"
getdownTextString += "resource = ${getdown_launcher_new}\n"
getdownTextString += "class = ${main_class}\n"
+ /* NOT setting these properties so that getdownappbase and getdowndistdir will default to release version
+ * getdownTextString += "jvmarg = -Dgetdowndistdir=${getdownAppDistDir}\n"
+ * getdownTextString += "jvmarg = -Dgetdownappbase=${getdownAppBase}\n"
+ */
def getdown_txt = file("${getdownWebsiteDir}/getdown.txt")
getdown_txt.write(getdownTextString)
copy {
from getdown_txt
from getdownLauncher
- from "${getdownWebsiteDir}/${getdown_build_properties}"
+ from "${getdownAppDir}/${getdown_build_properties}"
if (file(getdownLauncher).getName() != getdown_launcher) {
rename(file(getdownLauncher).getName(), getdown_launcher)
}
// lcastor.setLevel(Level.toLevel(Cache.getDefault("logs.Castor.Level",
// Level.INFO.toString())));
// we shouldn't need to do this
- org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.INFO);
+ org.apache.log4j.Logger.getRootLogger()
+ .setLevel(org.apache.log4j.Level.INFO);
jalview.bin.Cache.log.setLevel(Level.toLevel(Cache
.getDefault("logs.Jalview.level", Level.INFO.toString())));
class VersionChecker extends Thread
{
+
@Override
public void run()
{
+ String buildPropertiesUrl = Cache.getAppbaseBuildProperties();
+
String orgtimeout = System
.getProperty("sun.net.client.defaultConnectTimeout");
if (orgtimeout == null)
{
System.setProperty("sun.net.client.defaultConnectTimeout",
"5000");
- java.net.URL url = new java.net.URL(Cache
- .getDefault("www.jalview.org", "http://www.jalview.org")
- + "/webstart/jalview.jnlp");
+ java.net.URL url = new java.net.URL(buildPropertiesUrl);
+
BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream()));
- String line = null;
- while ((line = in.readLine()) != null)
- {
- if (line.indexOf("jalview.version") == -1)
- {
- continue;
- }
-
- line = line.substring(line.indexOf("value=") + 7);
- line = line.substring(0, line.lastIndexOf("\""));
- remoteVersion = line;
- break;
- }
+
+ Properties remoteBuildProperties = new Properties();
+ remoteBuildProperties.load(in);
+ remoteVersion = remoteBuildProperties.getProperty("VERSION");
} catch (Exception ex)
{
- System.out.println(
- "Non-fatal exception when checking version at www.jalview.org :");
+ System.out
+ .println("Non-fatal exception when checking version at "
+ + buildPropertiesUrl + ":");
System.out.println(ex);
remoteVersion = getProperty("VERSION");
}
{
appendIfNotNull(sb, "Getdown appdir: ",
System.getProperty("getdownappdir"), "\n", null);
+ appendIfNotNull(sb, "Getdown appbase: ",
+ System.getProperty("getdownappbase"), "\n", null);
appendIfNotNull(sb, "Java home: ", System.getProperty("java.home"),
"\n", "unknown");
}
t.printStackTrace(pw);
return sw.toString();
}
+
+ /**
+ * Getdown appbase methods
+ */
+
+ private static final String releaseAppbase;
+
+ private static String getdownAppbase;
+
+ private static String getdownDistDir;
+
+ static
+ {
+ Float specversion = Float
+ .parseFloat(System.getProperty("java.specification.version"));
+ releaseAppbase = (specversion < 9)
+ ? "https://www.jalview.org/getdown/release/1.8"
+ : "https://www.jalview.org/getdown/release/11";
+ }
+
+ // look for properties (passed in by getdown) otherwise default to release
+ private static void setGetdownAppbase()
+ {
+ if (getdownAppbase != null)
+ {
+ return;
+ }
+ String appbase = System.getProperty("getdownappbase");
+ String distDir = System.getProperty("getdowndistdir");
+ if (appbase == null)
+ {
+ appbase = releaseAppbase;
+ distDir = "release";
+ }
+ if (appbase.endsWith("/"))
+ {
+ appbase = appbase.substring(0, appbase.length() - 1);
+ }
+ if (distDir == null)
+ {
+ distDir = appbase.equals(releaseAppbase) ? "release" : "alt";
+ }
+ getdownAppbase = appbase;
+ getdownDistDir = distDir;
+ }
+
+ public static String getGetdownAppbase()
+ {
+ setGetdownAppbase();
+ return getdownAppbase;
+ }
+
+ public static String getAppbaseBuildProperties()
+ {
+ String appbase = getGetdownAppbase();
+ return appbase + "/" + getdownDistDir + "/build_properties";
+ }
}
*/
package jalview.bin;
+import static org.testng.Assert.assertNotEquals;
+import static org.testng.Assert.assertTrue;
import static org.testng.AssertJUnit.assertEquals;
-
-import jalview.gui.JvOptionPane;
+import static org.testng.AssertJUnit.assertNotNull;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
+import jalview.gui.JvOptionPane;
+
public class CacheTest
{
assertEquals(formattedDate, formattedDate2);
// currently using Locale.UK to format dates:
- assertEquals(
- formattedDate2,
- SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.MEDIUM,
- SimpleDateFormat.MEDIUM, Locale.UK).format(now));
+ assertEquals(formattedDate2,
+ SimpleDateFormat
+ .getDateTimeInstance(SimpleDateFormat.MEDIUM,
+ SimpleDateFormat.MEDIUM, Locale.UK)
+ .format(now));
+ }
+
+ @Test(groups = "Functional")
+ public void testVersionChecker()
+ {
+ Cache.loadProperties("test/jalview/bin/testProps.jvprops");
+ try
+ {
+ // 10s sleep to allow VersionChecker thread to run
+ Thread.sleep(10000);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ String latestVersion = Cache.getProperty("LATEST_VERSION");
+ assertNotNull(latestVersion);
+ assertNotEquals(latestVersion, "test");
+ assertTrue(latestVersion.startsWith("2."));
}
}