X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FCache.java;h=ca01027640a245c7609380db73997fba3c90c8f2;hb=838e4f91d4a53dd315640dbc9ff6ef7a815ee576;hp=7aab4aeaf583cfe1449206d3a38bdf0d52c3f8d0;hpb=d305e02d8b425bb501141ad32142aeb8572adc57;p=jalview.git
diff --git a/src/jalview/bin/Cache.java b/src/jalview/bin/Cache.java
index 7aab4ae..ca01027 100755
--- a/src/jalview/bin/Cache.java
+++ b/src/jalview/bin/Cache.java
@@ -1,6 +1,6 @@
/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1)
+ * Copyright (C) 2015 The Jalview Authors
*
* This file is part of Jalview.
*
@@ -32,8 +32,11 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
+import java.util.Collections;
import java.util.Date;
+import java.util.Enumeration;
import java.util.Properties;
+import java.util.TreeSet;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Level;
@@ -72,7 +75,10 @@ import org.apache.log4j.SimpleLayout;
*
SHOW_QUALITY show alignment quality annotation
* SHOW_ANNOTATIONS show alignment annotation rows
* SHOW_CONSERVATION show alignment conservation annotation
- * SORT_ANNOTATIONS currently either SEQUENCE_AND_TYPE or TYPE_AND_SEQUENCE
+ * SORT_ANNOTATIONS currently either SEQUENCE_AND_LABEL or
+ * LABEL_AND_SEQUENCE
+ * SHOW_AUTOCALC_ABOVE true to show autocalculated annotations above
+ * sequence annotations
* CENTRE_COLUMN_LABELS centre the labels at each column in a displayed
* annotation row
* DEFAULT_COLOUR default colour scheme to apply for a new alignment
@@ -144,6 +150,7 @@ import org.apache.log4j.SimpleLayout;
* FOLLOW_SELECTIONS (true) Controls whether a new alignment view should
* respond to selections made in other alignments containing the same sequences.
*
+ * JWS2HOSTURLS comma-separated list of URLs to try for JABAWS services
* SHOW_WSDISCOVERY_ERRORS (true) Controls if the web service URL discovery
* warning dialog box is displayed.
* ANNOTATIONCOLOUR_MIN (orange) Shade used for minimum value of annotation
@@ -152,14 +159,22 @@ import org.apache.log4j.SimpleLayout;
* when shading by annotation
* www.jalview.org (http://www.jalview.org) a property enabling all HTTP
* requests to be redirected to a mirror of http://www.jalview.org
- *
* FIGURE_AUTOIDWIDTH (false) Expand the left hand column of an exported
* alignment figure to accommodate even the longest sequence ID or annotation
* label.
* FIGURE_FIXEDIDWIDTH Specifies the width to use for the left-hand column
* when exporting an alignment as a figure (setting FIGURE_AUTOIDWIDTH to true
* will override this).
- *
+ * STRUCT_FROM_PDB (false) derive secondary structure annotation from PDB
+ * record
+ * USE_RNAVIEW (false) use RNAViewer to derive secondary structure
+ * ADD_SS_ANN (false) add secondary structure annotation to alignment
+ * display
+ * ADD_TEMPFACT_ANN (false) add Temperature Factor annotation to alignment
+ * display
+ * STRUCTURE_DISPLAY choose from JMOL (default) or CHIMERA for 3D structure
+ * display
+ * CHIMERA_PATH specify full path to Chimera program (if non-standard)
*
*
* Deprecated settings:
@@ -207,7 +222,15 @@ public class Cache
public static Logger log;
/** Jalview Properties */
- public static Properties applicationProperties = new Properties();
+ public static Properties applicationProperties = new Properties()
+ {
+ // override results in properties output in alphabetical order
+ @Override
+ public synchronized Enumeration keys()
+ {
+ return Collections.enumeration(new TreeSet(super.keySet()));
+ }
+ };
/** Default file is ~/.jalview_properties */
static String propertiesFile;
@@ -294,9 +317,9 @@ public class Cache
fis = new FileInputStream(propertiesFile);
}
applicationProperties.load(fis);
-
+
// remove any old build properties
-
+
deleteBuildProperties();
fis.close();
} catch (Exception ex)
@@ -358,15 +381,21 @@ public class Cache
String jnlpVersion = System.getProperty("jalview.version");
String codeVersion = getProperty("VERSION");
-
+ String codeInstallation = getProperty("INSTALLATION");
if (codeVersion == null)
{
// THIS SHOULD ONLY BE THE CASE WHEN TESTING!!
codeVersion = "Test";
jnlpVersion = "Test";
+ codeInstallation = "";
}
-
- System.out.println("Jalview Version: " + codeVersion);
+ else
+ {
+ codeInstallation = " (" + codeInstallation + ")";
+ }
+ new BuildDetails(codeVersion, null, codeInstallation);
+ System.out
+ .println("Jalview Version: " + codeVersion + codeInstallation);
// jnlpVersion will be null if we're using InstallAnywhere
// Dont do this check if running in headless mode
@@ -388,7 +417,7 @@ public class Cache
System.out.println("# INFO: Setting default net timeout to "
+ orgtimeout + " seconds.");
}
- String jnlpVersion = null;
+ String remoteVersion = null;
try
{
System.setProperty("sun.net.client.defaultConnectTimeout",
@@ -408,20 +437,20 @@ public class Cache
line = line.substring(line.indexOf("value=") + 7);
line = line.substring(0, line.lastIndexOf("\""));
- jnlpVersion = line;
+ remoteVersion = line;
break;
}
} catch (Exception ex)
{
System.out
- .println("Non-fatal exceptions when checking version at www.jalview.org :");
+ .println("Non-fatal exception when checking version at www.jalview.org :");
System.out.println(ex);
- jnlpVersion = getProperty("VERSION");
+ remoteVersion = getProperty("VERSION");
}
System.setProperty("sun.net.client.defaultConnectTimeout",
orgtimeout);
- setProperty("LATEST_VERSION", jnlpVersion);
+ setProperty("LATEST_VERSION", remoteVersion);
}
}
@@ -456,6 +485,8 @@ public class Cache
applicationProperties.remove("AUTHORS");
applicationProperties.remove("AUTHORFNAMES");
applicationProperties.remove("YEAR");
+ applicationProperties.remove("BUILD_DATE");
+ applicationProperties.remove("INSTALLATION");
}
/**
@@ -689,21 +720,22 @@ public class Cache
try
{
// Google analytics tracking code for Library Finder
- tracker = jgoogleanalyticstracker.getConstructor(new Class[]
- { String.class, String.class, String.class }).newInstance(
- new Object[]
- {
- "Jalview Desktop",
- (vrs = jalview.bin.Cache.getProperty("VERSION")
- + "_"
- + jalview.bin.Cache.getDefault("BUILD_DATE",
- "unknown")), "UA-9060947-1" });
+ tracker = jgoogleanalyticstracker.getConstructor(
+ new Class[] { String.class, String.class, String.class })
+ .newInstance(
+ new Object[] {
+ "Jalview Desktop",
+ (vrs = jalview.bin.Cache.getProperty("VERSION")
+ + "_"
+ + jalview.bin.Cache.getDefault(
+ "BUILD_DATE", "unknown")),
+ "UA-9060947-1" });
jgoogleanalyticstracker.getMethod("trackAsynchronously",
- new Class[]
- { trackerfocus }).invoke(tracker, new Object[]
- { trackerfocus.getConstructor(new Class[]
- { String.class }).newInstance(new Object[]
- { "Application Started." }) });
+ new Class[] { trackerfocus }).invoke(
+ tracker,
+ new Object[] { trackerfocus.getConstructor(
+ new Class[] { String.class }).newInstance(
+ new Object[] { "Application Started." }) });
} catch (RuntimeException e)
{
re = e;
@@ -887,4 +919,27 @@ public class Cache
}
return sourceRegistry;
}
+
+ /**
+ * Set the specified value, or remove it if null or empty. Does not save the
+ * properties file.
+ *
+ * @param propName
+ * @param value
+ */
+ public static void setOrRemove(String propName, String value)
+ {
+ if (propName == null)
+ {
+ return;
+ }
+ if (value == null || value.trim().length() < 1)
+ {
+ Cache.applicationProperties.remove(propName);
+ }
+ else
+ {
+ Cache.applicationProperties.setProperty(propName, value);
+ }
+ }
}