X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FCache.java;h=9dcc949ee84d8b111e81d0964b0496d31d9f4aca;hb=8fa69554edf6aeb278b4a4afd8e2b60264fdccd8;hp=dc5084347e9bc01cab00b33cf6a8a44479085053;hpb=f4766a7bbcfae845fc95923b01fa14ff83d589ff;p=jalview.git diff --git a/src/jalview/bin/Cache.java b/src/jalview/bin/Cache.java index dc50843..9dcc949 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; @@ -116,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
  • @@ -136,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 @@ -228,12 +224,6 @@ 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 */ @@ -281,14 +271,16 @@ 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 = Platform.isJS(); + + private final static String JS_PROPERTY_PREFIX = "jalview_"; public static void initLogger() { @@ -334,11 +326,14 @@ 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; - if (propsFile == null) + if (propsFile == null && !propsAreReadOnly) { propertiesFile = System.getProperty("user.home") + File.separatorChar + ".jalview_properties"; @@ -349,37 +344,45 @@ public class Cache propsAreReadOnly = true; } - try + if (propertiesFile == null) + { // BH 2019 + Platform.readInfoProperties(JS_PROPERTY_PREFIX, + applicationProperties); + } + else { - InputStream fis; 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."); - propsAreReadOnly = true; + InputStream fis; + 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."); + propsAreReadOnly = true; + + } catch (Exception ex) + { + fis = null; + } + if (fis == null) + { + fis = new FileInputStream(propertiesFile); + } + applicationProperties.clear(); + applicationProperties.load(fis); + + // remove any old build properties + deleteBuildProperties(); + fis.close(); } catch (Exception ex) { - fis = null; - } - if (fis == null) - { - fis = new FileInputStream(propertiesFile); + System.out.println("Error reading properties file: " + ex); } - applicationProperties.load(fis); - - // remove any old build properties - - deleteBuildProperties(); - fis.close(); - } catch (Exception ex) - { - System.out.println("Error reading properties file: " + ex); } - if (getDefault("USE_PROXY", false)) { String proxyServer = getDefault("PROXY_SERVER", ""), @@ -393,45 +396,57 @@ public class Cache } // LOAD THE AUTHORS FROM THE authors.props file + String authorDetails = (Platform.isJS() ? null + : "jar:".concat(Cache.class.getProtectionDomain() + .getCodeSource().getLocation().toString() + .concat("!/authors.props"))); + try { - 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(); + if (authorDetails != null) + { + 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"); + authorDetails = null; + } + if (authorDetails == null) + { + 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 - try + String buildDetails = (Platform.isJS() ? null + : "jar:".concat(Cache.class.getProtectionDomain() + .getCodeSource().getLocation().toString() + .concat("!/.build_properties"))); + if (buildDetails != null) { - String buildDetails = "jar:".concat(Cache.class.getProtectionDomain() - .getCodeSource().getLocation().toString() - .concat("!/.build_properties")); - - java.net.URL localJarFileURL = new java.net.URL(buildDetails); - - InputStream in = localJarFileURL.openStream(); - applicationProperties.load(in); - in.close(); - } catch (Exception ex) + try + { + java.net.URL localJarFileURL = new java.net.URL(buildDetails); + InputStream in = localJarFileURL.openStream(); + applicationProperties.load(in); + in.close(); + } catch (Exception ex) + { + System.out.println("Error reading build details: " + ex); + buildDetails = null; + } + } + if (buildDetails == null) { - System.out.println("Error reading build details: " + ex); - applicationProperties.remove("VERSION"); + applicationProperties.remove("VERSION"); } - String jnlpVersion = System.getProperty("jalview.version"); String codeVersion = getProperty("VERSION"); String codeInstallation = getProperty("INSTALLATION"); @@ -557,6 +572,7 @@ public class Cache false); } + private static void deleteBuildProperties() { applicationProperties.remove("LATEST_VERSION"); @@ -579,7 +595,13 @@ public class Cache */ public static String getProperty(String key) { - return applicationProperties.getProperty(key); + String prop = applicationProperties.getProperty(key); + if (prop == null && Platform.isJS()) + { + prop = applicationProperties.getProperty(Platform.getUniqueAppletID() + + "_" + JS_PROPERTY_PREFIX + key); + } + return prop; } /** @@ -598,22 +620,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 @@ -621,14 +656,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); @@ -640,7 +675,7 @@ public class Cache System.out.println( "Error setting property: " + key + " " + obj + "\n" + ex); } - return obj; + return oldValue; } /** @@ -978,22 +1013,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. @@ -1068,4 +1087,19 @@ public class Cache } } } + + /** + * Add a known domain that implements access-control-allow-origin:* bh 2018 + * + * @param defaultUniprotDomain + */ + public static void addJ2SDirectDatabaseCall(String domain) + { + + /** + * @j2sNative + * + * J2S.addDirectDatabaseCall(domain); + */ + } }