X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FCache.java;h=3c919cb4d2f76b4083ef05177e1315b84320ea9e;hb=3da878124135ff033f42d19d8733891b09e953cd;hp=da3cb92bc07a4c333c8ec36e5a981dd9eff10a39;hpb=136c0793b90b72b928c4d77dc109dd5c644e00d3;p=jalview.git
diff --git a/src/jalview/bin/Cache.java b/src/jalview/bin/Cache.java
index da3cb92..3c919cb 100755
--- a/src/jalview/bin/Cache.java
+++ b/src/jalview/bin/Cache.java
@@ -28,8 +28,7 @@ import jalview.schemes.UserColourScheme;
import jalview.structure.StructureImportSettings;
import jalview.urls.IdOrgSettings;
import jalview.util.ColorUtils;
-import jalview.ws.dbsources.das.api.DasSourceRegistryI;
-import jalview.ws.dbsources.das.datamodel.DasSourceRegistry;
+import jalview.util.Platform;
import jalview.ws.sifts.SiftsSettings;
import java.awt.Color;
@@ -77,7 +76,8 @@ import org.apache.log4j.SimpleLayout;
*
SHOW_FULLSCREEN boolean
* FONT_NAME java font name for alignment text display
* FONT_SIZE size of displayed alignment text
- * FONT_STYLE style of font displayed (sequence labels are always italic)
+ * FONT_STYLE style of font displayed (sequence labels are always
+ * italic)
* GAP_SYMBOL character to treat as gap symbol (usually -,.,' ')
* LAST_DIRECTORY last directory for browsing alignment
* USER_DEFINED_COLOURS list of user defined colour scheme files
@@ -115,7 +115,6 @@ import org.apache.log4j.SimpleLayout;
* service
* USAGESTATS (false - user prompted) Enable google analytics tracker for
* collecting usage statistics
- * DAS_LOCAL_SOURCE list of local das sources
* SHOW_OVERVIEW boolean for overview window display
* ANTI_ALIAS boolean for smooth fonts
* RIGHT_ALIGN_IDS boolean
@@ -135,9 +134,7 @@ import org.apache.log4j.SimpleLayout;
* sequence id (must be in SEQUENCE_LINKS or STORED_LINKS)
* GROUP_LINKS list of name|URL[|<separator>] tuples - see
* jalview.utils.GroupURLLink for more info
- * DAS_REGISTRY_URL the registry to query
* DEFAULT_BROWSER for unix
- * DAS_ACTIVE_SOURCE list of active sources
* SHOW_MEMUSAGE boolean show memory usage and warning indicator on desktop
* (false)
* VERSION_CHECK (true) check for the latest release version from
@@ -227,18 +224,11 @@ public class Cache
*/
public static final String JALVIEWLOGLEVEL = "logs.Jalview.level";
- public static final String DAS_LOCAL_SOURCE = "DAS_LOCAL_SOURCE";
-
- public static final String DAS_REGISTRY_URL = "DAS_REGISTRY_URL";
-
- public static final String DAS_ACTIVE_SOURCE = "DAS_ACTIVE_SOURCE";
-
/**
* Sifts settings
*/
public static final String DEFAULT_SIFTS_DOWNLOAD_DIR = System
- .getProperty("user.home")
- + File.separatorChar
+ .getProperty("user.home") + File.separatorChar
+ ".sifts_downloads" + File.separatorChar;
private final static String DEFAULT_CACHE_THRESHOLD_IN_DAYS = "2";
@@ -281,14 +271,15 @@ public class Cache
@Override
public synchronized Enumeration keys()
{
- return Collections.enumeration(new TreeSet(super.keySet()));
+ return Collections.enumeration(new TreeSet<>(super.keySet()));
}
};
/** Default file is ~/.jalview_properties */
static String propertiesFile;
- private static boolean propsAreReadOnly = false;
+ private static boolean propsAreReadOnly = /** @j2sNative true || */
+ false;
public static void initLogger()
{
@@ -310,8 +301,8 @@ public class Cache
Logger lcastor = Logger.getLogger("org.exolab.castor");
jalview.bin.Cache.log = Logger.getLogger("jalview.bin.Jalview");
- laxis.setLevel(Level.toLevel(Cache.getDefault("logs.Axis.Level",
- Level.INFO.toString())));
+ laxis.setLevel(Level.toLevel(
+ Cache.getDefault("logs.Axis.Level", Level.INFO.toString())));
lcastor.setLevel(Level.toLevel(Cache.getDefault("logs.Castor.Level",
Level.INFO.toString())));
lcastor = Logger.getLogger("org.exolab.castor.xml");
@@ -320,8 +311,8 @@ public class Cache
// lcastor = Logger.getLogger("org.exolab.castor.xml.Marshaller");
// lcastor.setLevel(Level.toLevel(Cache.getDefault("logs.Castor.Level",
// Level.INFO.toString())));
- jalview.bin.Cache.log.setLevel(Level.toLevel(Cache.getDefault(
- "logs.Jalview.level", Level.INFO.toString())));
+ jalview.bin.Cache.log.setLevel(Level.toLevel(Cache
+ .getDefault("logs.Jalview.level", Level.INFO.toString())));
// laxis.addAppender(ap);
// lcastor.addAppender(ap);
// jalview.bin.Cache.log.addAppender(ap);
@@ -334,7 +325,10 @@ public class Cache
}
}
- /** Called when Jalview is started */
+ /**
+ * Loads properties from the given properties file. Any existing properties
+ * are first cleared.
+ */
public static void loadProperties(String propsFile)
{
propertiesFile = propsFile;
@@ -355,10 +349,10 @@ public class Cache
try
{
fis = new java.net.URL(propertiesFile).openStream();
- System.out.println("Loading jalview properties from : "
- + propertiesFile);
- System.out
- .println("Disabling Jalview writing to user's local properties file.");
+ System.out.println(
+ "Loading jalview properties from : " + propertiesFile);
+ System.out.println(
+ "Disabling Jalview writing to user's local properties file.");
propsAreReadOnly = true;
} catch (Exception ex)
@@ -369,6 +363,7 @@ public class Cache
{
fis = new FileInputStream(propertiesFile);
}
+ applicationProperties.clear();
applicationProperties.load(fis);
// remove any old build properties
@@ -382,8 +377,8 @@ public class Cache
if (getDefault("USE_PROXY", false))
{
- String proxyServer = getDefault("PROXY_SERVER", ""), proxyPort = getDefault(
- "PROXY_PORT", "8080");
+ String proxyServer = getDefault("PROXY_SERVER", ""),
+ proxyPort = getDefault("PROXY_PORT", "8080");
System.out.println("Using proxyServer: " + proxyServer
+ " proxyPort: " + proxyPort);
@@ -393,28 +388,38 @@ public class Cache
}
// LOAD THE AUTHORS FROM THE authors.props file
+ boolean ignore = Platform.isJS();
+ if (!ignore)
try
{
- String authorDetails = "jar:".concat(Cache.class
- .getProtectionDomain().getCodeSource().getLocation()
- .toString().concat("!/authors.props"));
+ String authorDetails = "jar:"
+ .concat(Cache.class.getProtectionDomain().getCodeSource()
+ .getLocation().toString().concat("!/authors.props"));
java.net.URL localJarFileURL = new java.net.URL(authorDetails);
InputStream in = localJarFileURL.openStream();
applicationProperties.load(in);
in.close();
+
} catch (Exception ex)
{
System.out.println("Error reading author details: " + ex);
- applicationProperties.remove("AUTHORS");
- applicationProperties.remove("AUTHORFNAMES");
- applicationProperties.remove("YEAR");
+ ignore = true;
}
+ if (ignore) {
+ applicationProperties.remove("AUTHORS");
+ applicationProperties.remove("AUTHORFNAMES");
+ applicationProperties.remove("YEAR");
+ }
+
// FIND THE VERSION NUMBER AND BUILD DATE FROM jalview.jar
// MUST FOLLOW READING OF LOCAL PROPERTIES FILE AS THE
// VERSION MAY HAVE CHANGED SINCE LAST USING JALVIEW
+ // BH 2019.01.25 switching to Platform.isJS()
+ ignore = Platform.isJS();
+ if (!ignore)
try
{
String buildDetails = "jar:".concat(Cache.class.getProtectionDomain()
@@ -429,7 +434,11 @@ public class Cache
} catch (Exception ex)
{
System.out.println("Error reading build details: " + ex);
- applicationProperties.remove("VERSION");
+ ignore = true;
+ }
+
+ if (ignore) {
+ applicationProperties.remove("VERSION");
}
String jnlpVersion = System.getProperty("jalview.version");
@@ -451,16 +460,16 @@ public class Cache
SiftsSettings
.setMapWithSifts(Cache.getDefault("MAP_WITH_SIFTS", false));
- SiftsSettings.setSiftDownloadDirectory(jalview.bin.Cache.getDefault(
- "sifts_download_dir", DEFAULT_SIFTS_DOWNLOAD_DIR));
+ SiftsSettings.setSiftDownloadDirectory(jalview.bin.Cache
+ .getDefault("sifts_download_dir", DEFAULT_SIFTS_DOWNLOAD_DIR));
- SiftsSettings.setFailSafePIDThreshold(jalview.bin.Cache.getDefault(
- "sifts_fail_safe_pid_threshold",
- DEFAULT_FAIL_SAFE_PID_THRESHOLD));
+ SiftsSettings.setFailSafePIDThreshold(
+ jalview.bin.Cache.getDefault("sifts_fail_safe_pid_threshold",
+ DEFAULT_FAIL_SAFE_PID_THRESHOLD));
- SiftsSettings.setCacheThresholdInDays(jalview.bin.Cache.getDefault(
- "sifts_cache_threshold_in_days",
- DEFAULT_CACHE_THRESHOLD_IN_DAYS));
+ SiftsSettings.setCacheThresholdInDays(
+ jalview.bin.Cache.getDefault("sifts_cache_threshold_in_days",
+ DEFAULT_CACHE_THRESHOLD_IN_DAYS));
IdOrgSettings.setUrl(getDefault("ID_ORG_HOSTURL",
"http://www.jalview.org/services/identifiers"));
@@ -478,8 +487,7 @@ public class Cache
// "DEFAULT_PDB_FILE_PARSER", DEFAULT_PDB_FILE_PARSER));
// jnlpVersion will be null if we're using InstallAnywhere
// Dont do this check if running in headless mode
- if (jnlpVersion == null
- && getDefault("VERSION_CHECK", true)
+ if (jnlpVersion == null && getDefault("VERSION_CHECK", true)
&& (System.getProperty("java.awt.headless") == null || System
.getProperty("java.awt.headless").equals("false")))
{
@@ -502,11 +510,11 @@ public class Cache
{
System.setProperty("sun.net.client.defaultConnectTimeout",
"5000");
- java.net.URL url = new java.net.URL(Cache.getDefault(
- "www.jalview.org", "http://www.jalview.org")
+ java.net.URL url = new java.net.URL(Cache
+ .getDefault("www.jalview.org", "http://www.jalview.org")
+ "/webstart/jalview.jnlp");
- BufferedReader in = new BufferedReader(new InputStreamReader(
- url.openStream()));
+ BufferedReader in = new BufferedReader(
+ new InputStreamReader(url.openStream()));
String line = null;
while ((line = in.readLine()) != null)
{
@@ -522,8 +530,8 @@ public class Cache
}
} 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 www.jalview.org :");
System.out.println(ex);
remoteVersion = getProperty("VERSION");
}
@@ -599,22 +607,35 @@ public class Cache
return def;
}
- /**
- * These methods are used when checking if the saved preference is different
- * to the default setting
- */
- public static String getDefault(String property, String def)
+ public static int getDefault(String property, int def)
{
String string = getProperty(property);
if (string != null)
{
- return string;
+ try
+ {
+ def = Integer.parseInt(string);
+ } catch (NumberFormatException e)
+ {
+ System.out.println("Error parsing int property '" + property
+ + "' with value '" + string + "'");
+ }
}
return def;
}
/**
+ * Answers the value of the given property, or the supplied default value if
+ * the property is not set
+ */
+ public static String getDefault(String property, String def)
+ {
+ String value = getProperty(property);
+ return value == null ? def : value;
+ }
+
+ /**
* Stores property in the file "HOME_DIR/.jalview_properties"
*
* @param key
@@ -622,14 +643,14 @@ public class Cache
* @param obj
* String value of property
*
- * @return String value of property
+ * @return previous value of property (or null)
*/
- public static String setProperty(String key, String obj)
+ public static Object setProperty(String key, String obj)
{
-
+ Object oldValue = null;
try
{
- applicationProperties.setProperty(key, obj);
+ oldValue = applicationProperties.setProperty(key, obj);
if (!propsAreReadOnly)
{
FileOutputStream out = new FileOutputStream(propertiesFile);
@@ -638,10 +659,10 @@ public class Cache
}
} catch (Exception ex)
{
- System.out.println("Error setting property: " + key + " " + obj
- + "\n" + ex);
+ System.out.println(
+ "Error setting property: " + key + " " + obj + "\n" + ex);
}
- return obj;
+ return oldValue;
}
/**
@@ -690,15 +711,15 @@ public class Cache
{
try
{
- if (jalview.jbgui.GDesktop.class.getClassLoader().loadClass(
- "uk.ac.vamsas.client.VorbaId") != null)
+ if (jalview.jbgui.GDesktop.class.getClassLoader()
+ .loadClass("uk.ac.vamsas.client.VorbaId") != null)
{
- jalview.bin.Cache.log
- .debug("Found Vamsas Classes (uk.ac..vamsas.client.VorbaId can be loaded)");
+ jalview.bin.Cache.log.debug(
+ "Found Vamsas Classes (uk.ac..vamsas.client.VorbaId can be loaded)");
vamsasJarsArePresent = 1;
Logger lvclient = Logger.getLogger("uk.ac.vamsas");
- lvclient.setLevel(Level.toLevel(Cache.getDefault(
- "logs.Vamsas.Level", Level.INFO.toString())));
+ lvclient.setLevel(Level.toLevel(Cache
+ .getDefault("logs.Vamsas.Level", Level.INFO.toString())));
lvclient.addAppender(log.getAppender("JalviewLogger"));
// Tell the user that debug is enabled
@@ -729,15 +750,15 @@ public class Cache
{
try
{
- if (Cache.class.getClassLoader().loadClass(
- "groovy.lang.GroovyObject") != null)
+ if (Cache.class.getClassLoader()
+ .loadClass("groovy.lang.GroovyObject") != null)
{
- jalview.bin.Cache.log
- .debug("Found Groovy (groovy.lang.GroovyObject can be loaded)");
+ jalview.bin.Cache.log.debug(
+ "Found Groovy (groovy.lang.GroovyObject can be loaded)");
groovyJarsArePresent = 1;
Logger lgclient = Logger.getLogger("groovy");
- lgclient.setLevel(Level.toLevel(Cache.getDefault(
- "logs.Groovy.Level", Level.INFO.toString())));
+ lgclient.setLevel(Level.toLevel(Cache
+ .getDefault("logs.Groovy.Level", Level.INFO.toString())));
lgclient.addAppender(log.getAppender("JalviewLogger"));
// Tell the user that debug is enabled
@@ -778,15 +799,14 @@ public class Cache
// try to get the tracker class
try
{
- jgoogleanalyticstracker = Cache.class
- .getClassLoader()
- .loadClass(
- "com.boxysystems.jgoogleanalytics.JGoogleAnalyticsTracker");
- trackerfocus = Cache.class.getClassLoader().loadClass(
- "com.boxysystems.jgoogleanalytics.FocusPoint");
+ jgoogleanalyticstracker = Cache.class.getClassLoader().loadClass(
+ "com.boxysystems.jgoogleanalytics.JGoogleAnalyticsTracker");
+ trackerfocus = Cache.class.getClassLoader()
+ .loadClass("com.boxysystems.jgoogleanalytics.FocusPoint");
} catch (Exception e)
{
- log.debug("com.boxysystems.jgoogleanalytics package is not present - tracking not enabled.");
+ log.debug(
+ "com.boxysystems.jgoogleanalytics package is not present - tracking not enabled.");
tracker = null;
jgoogleanalyticstracker = null;
trackerfocus = null;
@@ -800,22 +820,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" });
- jgoogleanalyticstracker.getMethod("trackAsynchronously",
- new Class[] { trackerfocus }).invoke(
- tracker,
- new Object[] { trackerfocus.getConstructor(
- new Class[] { String.class }).newInstance(
- new Object[] { "Application Started." }) });
+ 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." }) });
} catch (RuntimeException e)
{
re = e;
@@ -832,42 +852,45 @@ public class Cache
{
if (re != null)
{
- log.debug("Caught runtime exception in googletracker init:", re);
+ log.debug("Caught runtime exception in googletracker init:",
+ re);
}
if (ex != null)
{
log.warn(
"Failed to initialise GoogleTracker for Jalview Desktop with version "
- + vrs, ex);
+ + vrs,
+ ex);
}
if (err != null)
{
log.error(
"Whilst initing GoogleTracker for Jalview Desktop version "
- + vrs, err);
+ + vrs,
+ err);
}
}
else
{
if (re != null)
{
- System.err
- .println("Debug: Caught runtime exception in googletracker init:"
+ System.err.println(
+ "Debug: Caught runtime exception in googletracker init:"
+ vrs);
re.printStackTrace();
}
if (ex != null)
{
- System.err
- .println("Warning: Failed to initialise GoogleTracker for Jalview Desktop with version "
+ System.err.println(
+ "Warning: Failed to initialise GoogleTracker for Jalview Desktop with version "
+ vrs);
ex.printStackTrace();
}
if (err != null)
{
- System.err
- .println("ERROR: Whilst initing GoogleTracker for Jalview Desktop version "
+ System.err.println(
+ "ERROR: Whilst initing GoogleTracker for Jalview Desktop version "
+ vrs);
err.printStackTrace();
}
@@ -977,22 +1000,6 @@ public class Cache
return null;
}
- private static DasSourceRegistryI sourceRegistry = null;
-
- /**
- * initialise and ..
- *
- * @return instance of the das source registry
- */
- public static DasSourceRegistryI getDasSourceRegistry()
- {
- if (sourceRegistry == null)
- {
- sourceRegistry = new DasSourceRegistry();
- }
- return sourceRegistry;
- }
-
/**
* Set the specified value, or remove it if null or empty. Does not save the
* properties file.
@@ -1028,7 +1035,7 @@ public class Cache
{
return;
}
-
+
// In case colours can't be loaded, we'll remove them
// from the default list here.
StringBuffer coloursFound = new StringBuffer();
@@ -1057,12 +1064,29 @@ public class Cache
{
if (coloursFound.toString().length() > 1)
{
- setProperty(UserDefinedColours.USER_DEFINED_COLOURS, coloursFound.toString());
+ setProperty(UserDefinedColours.USER_DEFINED_COLOURS,
+ coloursFound.toString());
}
else
{
- applicationProperties.remove(UserDefinedColours.USER_DEFINED_COLOURS);
+ applicationProperties
+ .remove(UserDefinedColours.USER_DEFINED_COLOURS);
}
}
}
+
+ /**
+ * Add a known domain that implements access-control-allow-origin:* bh 2018
+ *
+ * @param defaultUniprotDomain
+ */
+ public static void addJ2SDirectDatabaseCall(String domain)
+ {
+
+ /**
+ * @j2sNative
+ *
+ * J2S.addDirectDatabaseCall(domain);
+ */
+ }
}