X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FCache.java;h=0744cd9e18b854c37a0f837e297a3794b83ab99c;hb=c24267ee9b42f032d0d1a561b6fb05b03d754460;hp=eb503d5858440a6954f8a4db74b040549fceb438;hpb=38299bef6dfd4b713f615781e631dcb66e1155f2;p=jalview.git
diff --git a/src/jalview/bin/Cache.java b/src/jalview/bin/Cache.java
index eb503d5..0744cd9 100755
--- a/src/jalview/bin/Cache.java
+++ b/src/jalview/bin/Cache.java
@@ -1,298 +1,460 @@
-/*
- * Jalview - A Sequence Alignment Editor and Viewer
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- *
- * This program 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 2
- * of the License, or (at your option) any later version.
- *
- * This program 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 this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
- */
-package jalview.bin;
-
-import java.io.*;
-
-import java.util.*;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.SimpleLayout;
-import org.apache.log4j.Level;
-import org.apache.log4j.ConsoleAppender;
-
-
-/**
- * Stores and retrieves Jalview Application Properties
- *
Current properties include:
- *
logs.Axis.Level - one of the stringified Levels for log4j controlling the logging level for axis (used for web services)
- *
logs.Castor.Level - one of the stringified Levels for log4j controlling the logging level for castor (used for serialization)
- *
logs.Jalview.Level - Cache.log stringified level.
- *
DISCOVERY_START - Boolean - controls if discovery services are queried on startup
- *
DISCOVERY_URLS - comma separated list of Discovery Service endpoints.
- *
SCREEN_WIDTH,SCREEN_HEIGHT,SCREEN_Y=285,SCREEN_X=371,SHOW_FULLSCREEN
- * FONT_NAME,FONT_SIZE,FONT_STYLE,GAP_SYMBOL,LAST_DIRECTORY,USER_DEFINED_COLOUR
- * SHOW_FULL_ID,SHOW_IDENTITY,SHOW_QUALITY,SHOW_ANNOTATIONS,SHOW_CONSERVATION,
- * DEFAULT_COLOUR,DEFAULT_FILE_FORMAT,STARTUP_FILE,SHOW_STARTUP_FILE
-
- * @author $author$
- * @version $Revision$
- */
-public class Cache
-{
- /**
- * Initialises the Apache Axis logger
- */
- public static Logger log;
-
- /** Jalview Properties */
- public static Properties applicationProperties = new Properties();
-
- /** Default file is ~/.jalview_properties */
- static String propertiesFile;
-
- public static void initLogger()
- {
- try
- {
- 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())));
- jalview.bin.Cache.log.setLevel(Level.toLevel(Cache.getDefault(
- "logs.Jalview.level",
- Level.INFO.toString())));
- ConsoleAppender ap = new ConsoleAppender(new SimpleLayout(),
- "System.err");
- ap.setName("JalviewLogger");
-
- 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");
- }
- }
-
-
- /** Called when Jalview is started */
- public static void loadProperties(String propsFile)
- {
- propertiesFile = propsFile;
- if (propsFile == null)
- {
- propertiesFile = System.getProperty("user.home") + "/.jalview_properties";
- }
-
- try
- {
- FileInputStream 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 && (
- System.getProperty("java.awt.headless")==null
- || System.getProperty("java.awt.headless").equals("false")))
- {
-
- class VersionChecker
- extends Thread
- {
- public void run()
- {
- String jnlpVersion = null;
- try
- {
- java.net.URL url = new java.net.URL(
- "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(ex);
- jnlpVersion = getProperty("VERSION");
- }
-
- 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
- {
- FileOutputStream out = new FileOutputStream(propertiesFile);
- applicationProperties.setProperty(key, obj);
- applicationProperties.store(out, "---JalviewX Properties File---");
- out.close();
- }
- catch (Exception ex)
- { System.out.println("Error setting property: "+key+" "+obj+"\n"+ex); }
- return obj;
- }
-
- public static void saveProperties()
- {
- try
- {
- FileOutputStream out = new FileOutputStream(propertiesFile);
- applicationProperties.store(out, "---JalviewX Properties File---");
- out.close();
- }
- catch (Exception ex)
- { System.out.println("Error saving properties: "+ex); }
- }
-}
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer
+ * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ *
+ * This program 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 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+package jalview.bin;
+
+import java.io.*;
+import java.util.*;
+
+import org.apache.log4j.*;
+
+/**
+ * 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:
+ *