X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FCache.java;h=49bbf6c745f24eb674c8decc598dad2173e9f40e;hb=refs%2Fheads%2Fj2s%2Fdevelop-bh;hp=ab0814070c48bb0c8fa52e0eff7bdddc9a25454c;hpb=06931e7445db77675739e0f206d7b5fafc3f9c05;p=jalview.git diff --git a/src/jalview/bin/Cache.java b/src/jalview/bin/Cache.java index ab08140..49bbf6c 100755 --- a/src/jalview/bin/Cache.java +++ b/src/jalview/bin/Cache.java @@ -1,770 +1,25 @@ -/* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6) - * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle - * - * This file is part of Jalview. - * - * Jalview is free software: you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * - * Jalview is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . - */ package jalview.bin; -import java.awt.Color; -import java.io.*; -import java.util.*; - -import org.apache.log4j.*; -import org.biojava.dasobert.dasregistry.Das1Source; - -/** - * Stores and retrieves Jalview Application Properties Lists and fields within - * list entries are separated by '|' symbols unless otherwise stated (|) clauses - * are alternative values for a tag.
- *
- * Current properties include: - * - * Deprecated settings: - * - * @author $author$ - * @version $Revision$ - */ -public class Cache -{ - /** - * property giving log4j level for CASTOR loggers - */ - public static final String CASTORLOGLEVEL = "logs.Castor.level"; - - /** - * property giving log4j level for AXIS loggers - */ - public static final String AXISLOGLEVEL = "logs.Axis.level"; - - /** - * property giving log4j level for Jalview Log - */ - 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"; - - /** - * Initialises the Jalview Application Log - */ - public static Logger log; - - /** Jalview Properties */ - public static Properties applicationProperties = new Properties(); - - /** Default file is ~/.jalview_properties */ - static String propertiesFile; - - private static boolean propsAreReadOnly=false; - - public static void initLogger() - { - if (log != null) - { - return; - } - try - { - // TODO: redirect stdout and stderr here in order to grab the output of - // the log - - ConsoleAppender ap = new ConsoleAppender(new SimpleLayout(), - "System.err"); - ap.setName("JalviewLogger"); - org.apache.log4j.Logger.getRootLogger().addAppender(ap); // catch all for - // log output - Logger laxis = Logger.getLogger("org.apache.axis"); - 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()))); - lcastor.setLevel(Level.toLevel(Cache.getDefault("logs.Castor.Level", - Level.INFO.toString()))); - lcastor = Logger.getLogger("org.exolab.castor.xml"); - lcastor.setLevel(Level.toLevel(Cache.getDefault("logs.Castor.Level", - Level.INFO.toString()))); - // 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()))); - // laxis.addAppender(ap); - // lcastor.addAppender(ap); - // jalview.bin.Cache.log.addAppender(ap); - // Tell the user that debug is enabled - jalview.bin.Cache.log.debug("Jalview Debugging Output Follows."); - } catch (Exception ex) - { - System.err.println("Problems initializing the log4j system\n"); - ex.printStackTrace(System.err); - } - } - - /** Called when Jalview is started */ - public static void loadProperties(String propsFile) - { - propertiesFile = propsFile; - if (propsFile == null) - { - propertiesFile = System.getProperty("user.home") + File.separatorChar - + ".jalview_properties"; - } else { - // don't corrupt the file we've been given. - propsAreReadOnly = true; - } - - try - { - 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.load(fis); - applicationProperties.remove("LATEST_VERSION"); - applicationProperties.remove("VERSION"); - fis.close(); - } catch (Exception ex) - { - System.out.println("Error reading properties file: " + ex); - } - - if (getDefault("USE_PROXY", false)) - { - System.out.println("Using proxyServer: " - + getDefault("PROXY_SERVER", null) + " proxyPort: " - + getDefault("PROXY_PORT", null)); - System.setProperty("http.proxyHost", getDefault("PROXY_SERVER", null)); - System.setProperty("http.proxyPort", getDefault("PROXY_PORT", null)); - } - - // 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 = "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) - { - System.out.println("Error reading build details: " + ex); - applicationProperties.remove("VERSION"); - } - - String jnlpVersion = System.getProperty("jalview.version"); - String codeVersion = getProperty("VERSION"); - - if (codeVersion == null) - { - // THIS SHOULD ONLY BE THE CASE WHEN TESTING!! - codeVersion = "Test"; - jnlpVersion = "Test"; - } - - System.out.println("Jalview Version: " + codeVersion); - - // 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) - && (System.getProperty("java.awt.headless") == null || System - .getProperty("java.awt.headless").equals("false"))) - { - - class VersionChecker extends Thread - { - public void run() - { - String orgtimeout = System - .getProperty("sun.net.client.defaultConnectTimeout"); - if (orgtimeout == null) - { - orgtimeout = "30"; - System.out.println("# INFO: Setting default net timeout to " - + orgtimeout + " seconds."); - } - String jnlpVersion = null; - try - { - 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"); - 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("\"")); - jnlpVersion = line; - break; - } - } catch (Exception ex) - { - System.out - .println("Non-fatal exceptions when checking version at www.jalview.org :"); - System.out.println(ex); - jnlpVersion = getProperty("VERSION"); - } - System.setProperty("sun.net.client.defaultConnectTimeout", - orgtimeout); - - setProperty("LATEST_VERSION", jnlpVersion); - } - } - - VersionChecker vc = new VersionChecker(); - vc.start(); - } - else - { - if (jnlpVersion != null) - { - setProperty("LATEST_VERSION", jnlpVersion); - } - else - { - applicationProperties.remove("LATEST_VERSION"); - } - } - - setProperty("VERSION", codeVersion); - - // LOAD USERDEFINED COLOURS - jalview.gui.UserDefinedColours - .initUserColourSchemes(getProperty("USER_DEFINED_COLOURS")); - jalview.io.PIRFile.useModellerOutput = Cache.getDefault("PIR_MODELLER", - false); - } - - /** - * Gets Jalview application property of given key. Returns null if key not - * found - * - * @param key - * Name of property - * - * @return Property value - */ - public static String getProperty(String key) - { - return applicationProperties.getProperty(key); - } - - /** - * These methods are used when checking if the saved preference is different - * to the default setting - */ - - public static boolean getDefault(String property, boolean def) - { - String string = getProperty(property); - if (string != null) - { - def = Boolean.valueOf(string).booleanValue(); - } - - 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) - { - String string = getProperty(property); - if (string != null) - { - return string; - } - - return def; - } - - /** - * Stores property in the file "HOME_DIR/.jalview_properties" - * - * @param key - * Name of object - * @param obj - * String value of property - * - * @return String value of property - */ - public static String setProperty(String key, String obj) - { - - try - { - applicationProperties.setProperty(key, obj); - if (!propsAreReadOnly) - { - FileOutputStream out = new FileOutputStream(propertiesFile); - applicationProperties.store(out, "---JalviewX Properties File---"); - out.close(); - } - } catch (Exception ex) - { - System.out.println("Error setting property: " + key + " " + obj - + "\n" + ex); - } - return obj; - } - - /** - * remove the specified property from the jalview properties file - * - * @param string - */ - public static void removeProperty(String string) - { - applicationProperties.remove(string); - saveProperties(); - } - - /** - * save the properties to the jalview properties path - */ - public static void saveProperties() - { - if (!propsAreReadOnly) - { - try - { - FileOutputStream out = new FileOutputStream(propertiesFile); - applicationProperties.store(out, "---JalviewX Properties File---"); - out.close(); - } catch (Exception ex) - { - System.out.println("Error saving properties: " + ex); - } - } - } - - /** - * internal vamsas class discovery state - */ - private static int vamsasJarsArePresent = -1; - - /** - * Searches for vamsas client classes on class path. - * - * @return true if vamsas client is present on classpath - */ - public static boolean vamsasJarsPresent() - { - if (vamsasJarsArePresent == -1) - { - try - { - 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)"); - vamsasJarsArePresent = 1; - Logger lvclient = Logger.getLogger("uk.ac.vamsas"); - lvclient.setLevel(Level.toLevel(Cache.getDefault( - "logs.Vamsas.Level", Level.INFO.toString()))); - - lvclient.addAppender(log.getAppender("JalviewLogger")); - // Tell the user that debug is enabled - lvclient.debug("Jalview Vamsas Client Debugging Output Follows."); - } - } catch (Exception e) - { - vamsasJarsArePresent = 0; - jalview.bin.Cache.log.debug("Vamsas Classes are not present"); - } - } - return (vamsasJarsArePresent > 0); - } - - /** - * internal vamsas class discovery state - */ - private static int groovyJarsArePresent = -1; - - /** - * Searches for vamsas client classes on class path. - * - * @return true if vamsas client is present on classpath - */ - public static boolean groovyJarsPresent() - { - if (groovyJarsArePresent == -1) - { - try - { - if (Cache.class.getClassLoader().loadClass( - "groovy.lang.GroovyObject") != null) - { - 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.addAppender(log.getAppender("JalviewLogger")); - // Tell the user that debug is enabled - lgclient.debug("Jalview Groovy Client Debugging Output Follows."); - } - } catch (Error e) - { - groovyJarsArePresent = 0; - jalview.bin.Cache.log.debug("Groovy Classes are not present", e); - } catch (Exception e) - { - groovyJarsArePresent = 0; - jalview.bin.Cache.log.debug("Groovy Classes are not present"); - } - } - return (groovyJarsArePresent > 0); - } - - /** - * generate Das1Sources from the local das source list - * - * @return Vector of Das1Sources - */ - public static Vector getLocalDasSources() - { - Vector localSources = new Vector(); - String local = jalview.bin.Cache.getProperty("DAS_LOCAL_SOURCE"); - if (local != null) - { - StringTokenizer st = new StringTokenizer(local, "\t"); - while (st.hasMoreTokens()) - { - String token = st.nextToken(); - int bar = token.indexOf("|"); - Das1Source source = new Das1Source(); - source.setUrl(token.substring(bar + 1)); - if (source.getUrl().startsWith("sequence:")) - { - source.setUrl(source.getUrl().substring(9)); - // this source also serves sequences as well as features - source.setCapabilities(new String[] - { "sequence", "features" }); - } - else - { - // default is that all user added sources serve features - source.setCapabilities(new String[] - { "features" }); - } - - source.setNickname(token.substring(0, bar)); - - localSources.addElement(source); - } - } - return localSources; - } - - /** - * GA tracker object - actually JGoogleAnalyticsTracker null if tracking not - * enabled. - */ - protected static Object tracker = null; - - protected static Class trackerfocus = null; - - protected static Class jgoogleanalyticstracker = null; - - /** - * Initialise the google tracker if it is not done already. - */ - public static void initGoogleTracker() - { - if (tracker == null) - { - if (jgoogleanalyticstracker == null) - { - // 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"); - } catch (Exception e) - { - log.debug("com.boxysystems.jgoogleanalytics package is not present - tracking not enabled."); - tracker = null; - jgoogleanalyticstracker = null; - trackerfocus = null; - return; - } - } - // now initialise tracker - Exception re = null, ex = null; - Error err = null; - String vrs = "No Version Accessible"; - 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." }) }); - } catch (RuntimeException e) - { - re = e; - } catch (Exception e) - { - ex = e; - } catch (Error e) - { - err = e; - } - if (re != null || ex != null || err != null) - { - if (log != null) - { - if (re != null) - 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); - if (err != null) - log.error( - "Whilst initing GoogleTracker for Jalview Desktop version " - + vrs, err); - } - else - { - if (re != null) - { - 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 " - + vrs); - ex.printStackTrace(); - } - - if (err != null) - { - System.err - .println("ERROR: Whilst initing GoogleTracker for Jalview Desktop version " - + vrs); - err.printStackTrace(); - } - } - } - else - { - log.debug("Successfully initialised tracker."); - } - } - } - - /** - * get the user's default colour if available - * @param property - * @param defcolour - * @return - */ - public static Color getDefaultColour(String property, Color defcolour) - { - String colprop = getProperty(property); - if (colprop==null) { - return defcolour; - } - Color col = jalview.schemes.ColourSchemeProperty.getAWTColorFromName(colprop); - if (col==null) - { - try { - col = new jalview.schemes.UserColourScheme(colprop).findColour('A'); - } catch (Exception ex) - { - log.warn("Couldn't parse '"+colprop+"' as a colour for "+property); - col=null; - } - } - return (col==null) ? defcolour: col; - } - - /** - * store a colour as a Jalview user default property - * @param property - * @param colour - */ - public static void setColourProperty(String property, Color colour) - { - setProperty(property, jalview.util.Format - .getHexString(colour)); - } +public class Cache { + public static final String CASTORLOGLEVEL = null; + public static Log log; + + public class Log { + + public void error(String string) { + // TODO Auto-generated method stub + + } + + public boolean isDebugEnabled() { + // TODO Auto-generated method stub + return false; + } + + } + + public static String getDefault(String string, String string2) { + // TODO Auto-generated method stub + return null; + } }