X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fjalview%2Fbin%2FCache.java;h=1abb1711df86e47d18ffdbd1dbc8dd27a4e7fdcc;hb=a0770a417ea5add70c3075b9ae9218a58533ef13;hp=b966af6e3bd7d317a1a5e5e7bab63eba2da36ef2;hpb=65ed1da9a1710a9ce132c7edfce54955dc1ddf99;p=jalview.git
diff --git a/src/jalview/bin/Cache.java b/src/jalview/bin/Cache.java
index b966af6..1abb171 100755
--- a/src/jalview/bin/Cache.java
+++ b/src/jalview/bin/Cache.java
@@ -43,6 +43,7 @@ import java.util.Collections;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
@@ -52,6 +53,7 @@ import java.util.TreeSet;
import javax.swing.LookAndFeel;
import javax.swing.UIManager;
+import jalview.analytics.Plausible;
import jalview.datamodel.PDBEntry;
import jalview.gui.Preferences;
import jalview.gui.UserDefinedColours;
@@ -127,7 +129,7 @@ import jalview.ws.sifts.SiftsSettings;
* service
*
QUESTIONNAIRE last questionnaire:responder id string from questionnaire
* service
- * USAGESTATS (false - user prompted) Enable google analytics tracker for
+ * USAGESTATS (false - user prompted) Enable analytics tracker for
* collecting usage statistics
* SHOW_OVERVIEW boolean for overview window display
* ANTI_ALIAS boolean for smooth fonts
@@ -139,6 +141,10 @@ import jalview.ws.sifts.SiftsSettings;
* WRAP_ALIGNMENT
* EPS_RENDERING (Prompt each time|Lineart|Text) default for EPS rendering
* style check
+ * BITMAP_SCALE - scale factor for PNG export - default 0.0 - native
+ * resolution
+ * BITMAP_HEIGHT - height bound for PNG export or 0 for unbound
+ * BITMAP_WIDTH - width bound for PNG export or 0 for unbound
* SORT_ALIGNMENT (No sort|Id|Pairwise Identity)
* SEQUENCE_LINKS list of name|URL pairs for opening a url with
* $SEQUENCE_ID$
@@ -405,9 +411,9 @@ public class Cache
fis = new URL(propertiesFile).openStream();
if (!Jalview.quiet())
{
- System.out.println(
+ jalview.bin.Console.outPrintln(
"Loading jalview properties from : " + propertiesFile);
- System.out.println(
+ jalview.bin.Console.outPrintln(
"Disabling Jalview writing to user's local properties file.");
}
propsAreReadOnly = true;
@@ -438,7 +444,8 @@ public class Cache
} catch (Exception ex)
{
if (!Jalview.quiet())
- System.out.println("Error reading properties file: " + ex);
+ jalview.bin.Console
+ .outPrintln("Error reading properties file: " + ex);
}
}
@@ -495,7 +502,8 @@ public class Cache
} catch (Exception ex)
{
if (!Jalview.quiet())
- System.out.println("Error reading author details: " + ex);
+ jalview.bin.Console
+ .outPrintln("Error reading author details: " + ex);
authorDetails = null;
}
if (authorDetails == null)
@@ -581,10 +589,10 @@ public class Cache
{
if (!Jalview.quiet())
{
- System.out.println(
+ jalview.bin.Console.errPrintln(
"Non-fatal exception when checking version at "
+ remoteBuildPropertiesUrl + ":");
- System.out.println(ex);
+ jalview.bin.Console.printStackTrace(ex);
}
remoteVersion = getProperty("VERSION");
}
@@ -634,8 +642,8 @@ public class Cache
url = Cache.class.getResource(resourcePath).toString();
} catch (Exception ex)
{
- System.err.println("Failed to resolve resource " + resourcePath
- + ": " + ex.getMessage());
+ jalview.bin.Console.errPrintln("Failed to resolve resource "
+ + resourcePath + ": " + ex.getMessage());
}
}
else
@@ -685,7 +693,8 @@ public class Cache
} catch (Exception ex)
{
if (!Jalview.quiet())
- System.out.println("Error reading build details: " + ex);
+ jalview.bin.Console
+ .outPrintln("Error reading build details: " + ex);
applicationProperties.remove("VERSION");
}
String codeVersion = getProperty("VERSION");
@@ -705,8 +714,9 @@ public class Cache
new BuildDetails(codeVersion, null, codeInstallation);
if (printVersion && reportVersion)
{
- System.out.println(ChannelProperties.getProperty("app_name")
- + " version: " + codeVersion + codeInstallation);
+ jalview.bin.Console
+ .outPrintln(ChannelProperties.getProperty("app_name")
+ + " version: " + codeVersion + codeInstallation);
}
}
@@ -782,8 +792,27 @@ public class Cache
} catch (NumberFormatException e)
{
if (!Jalview.quiet())
- System.out.println("Error parsing int property '" + property
- + "' with value '" + string + "'");
+ jalview.bin.Console.errPrintln("Error parsing int property '"
+ + property + "' with value '" + string + "'");
+ }
+ }
+
+ return def;
+ }
+
+ public static float getDefault(String property, float def)
+ {
+ String string = getProperty(property);
+ if (string != null)
+ {
+ try
+ {
+ def = Float.parseFloat(string);
+ } catch (NumberFormatException e)
+ {
+ if (!Jalview.quiet())
+ jalview.bin.Console.errPrintln("Error parsing float property '"
+ + property + "' with value '" + string + "'");
}
}
@@ -833,7 +862,7 @@ public class Cache
} catch (Exception ex)
{
if (!Jalview.quiet())
- System.out.println(
+ jalview.bin.Console.errPrintln(
"Error setting property: " + key + " " + obj + "\n" + ex);
}
return oldValue;
@@ -865,7 +894,7 @@ public class Cache
} catch (Exception ex)
{
if (!Jalview.quiet())
- System.out.println("Error saving properties: " + ex);
+ jalview.bin.Console.errPrintln("Error saving properties: " + ex);
}
}
}
@@ -953,102 +982,42 @@ public class Cache
}
/**
- * GA tracker object - actually JGoogleAnalyticsTracker null if tracking not
- * enabled.
+ * Initialise the tracker if it is not done already.
*/
- 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()
+ public static void initAnalytics()
{
- if (tracker == null)
+ Plausible.setEnabled(true);
+
+ String appName = ChannelProperties.getProperty("app_name") + " Desktop";
+ String version = Cache.getProperty("VERSION") + "_"
+ + Cache.getDefault("BUILD_DATE", "unknown");
+ String path;
+ /* we don't want to encode ':' as "%3A" for backward compatibility with the UA setup
+ try
{
- 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)
- {
- Console.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[]
- { ChannelProperties.getProperty("app_name") + " Desktop",
- (vrs = Cache.getProperty("VERSION") + "_"
- + 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 (re != null)
- {
- Console.debug("Caught runtime exception in googletracker init:",
- re);
- }
- if (ex != null)
- {
- Console.warn(
- "Failed to initialise GoogleTracker for Jalview Desktop with version "
- + vrs,
- ex);
- }
- if (err != null)
- {
- Console.error(
- "Whilst initing GoogleTracker for Jalview Desktop version "
- + vrs,
- err);
- }
- }
- else
- {
- Console.debug("Successfully initialised tracker.");
- }
+ path = "/" + String.join("/", URLEncoder.encode(appName, "UTF-8"),
+ URLEncoder.encode(version, "UTF-8"),
+ URLEncoder.encode(APPLICATION_STARTED, "UTF-8"));
+ } catch (UnsupportedEncodingException e)
+ {
+ */
+ List pathParts = new ArrayList<>();
+ pathParts.add(appName);
+ pathParts.add(version);
+ pathParts.add(APPLICATION_STARTED);
+ path = ("/" + String.join("/", pathParts)).replace(' ', '+');
+ /*
}
+ */
+ Plausible plausible = Plausible.getInstance();
+
+ // This will send a new "application_launch" event with parameters
+ // including the old-style "path", the channel name and version
+ plausible.sendEvent("application_launch", path, true);
}
+ private static final String APPLICATION_STARTED = "Application Started";
+
/**
* get the user's default colour if available
*
@@ -1115,8 +1084,9 @@ public class Cache
return date_format.parse(val);
} catch (Exception ex)
{
- System.err.println("Invalid or corrupt date in property '"
- + propertyName + "' : value was '" + val + "'");
+ jalview.bin.Console
+ .errPrintln("Invalid or corrupt date in property '"
+ + propertyName + "' : value was '" + val + "'");
}
}
return null;
@@ -1139,8 +1109,8 @@ public class Cache
return Integer.valueOf(val);
} catch (NumberFormatException x)
{
- System.err.println("Invalid integer in property '" + property
- + "' (value was '" + val + "')");
+ jalview.bin.Console.errPrintln("Invalid integer in property '"
+ + property + "' (value was '" + val + "')");
}
}
return null;
@@ -1204,7 +1174,8 @@ public class Cache
} catch (Exception ex)
{
if (!Jalview.quiet())
- System.out.println("Error loading User ColourFile\n" + ex);
+ jalview.bin.Console
+ .outPrintln("Error loading User ColourFile\n" + ex);
}
}
if (!files.equals(coloursFound.toString()))
@@ -1710,8 +1681,9 @@ public class Cache
return null;
if (!file.exists())
{
- System.err.println("Could not load bootstrap preferences file '"
- + filename + "'");
+ jalview.bin.Console
+ .errPrintln("Could not load bootstrap preferences file '"
+ + filename + "'");
return null;
}
@@ -1727,11 +1699,12 @@ public class Cache
}
} catch (FileNotFoundException e)
{
- System.err.println("Could not find bootstrap preferences file '"
- + file.getAbsolutePath() + "'");
+ jalview.bin.Console
+ .errPrintln("Could not find bootstrap preferences file '"
+ + file.getAbsolutePath() + "'");
} catch (IOException e)
{
- System.err.println(
+ jalview.bin.Console.errPrintln(
"IOException when loading bootstrap preferences file '"
+ file.getAbsolutePath() + "'");
}