first experiment with GA application use tracking
authorjprocter <Jim Procter>
Mon, 1 Jun 2009 15:46:54 +0000 (15:46 +0000)
committerjprocter <Jim Procter>
Mon, 1 Jun 2009 15:46:54 +0000 (15:46 +0000)
lib/JGoogleAnalytics_0.2.jar [new file with mode: 0644]
src/jalview/bin/Cache.java
src/jalview/bin/Jalview.java

diff --git a/lib/JGoogleAnalytics_0.2.jar b/lib/JGoogleAnalytics_0.2.jar
new file mode 100644 (file)
index 0000000..c389e1c
Binary files /dev/null and b/lib/JGoogleAnalytics_0.2.jar differ
index 9fe0009..dad7326 100755 (executable)
@@ -24,6 +24,9 @@ import java.util.*;
 import org.apache.log4j.*;
 import org.biojava.dasobert.dasregistry.Das1Source;
 
+import com.boxysystems.jgoogleanalytics.FocusPoint;
+import com.boxysystems.jgoogleanalytics.JGoogleAnalyticsTracker;
+
 /**
  * Stores and retrieves Jalview Application Properties Lists and fields within
  * list entries are separated by '|' symbols unless otherwise stated (|) clauses
@@ -527,5 +530,37 @@ public class Cache
     }
     return localSources;
   }
-
+  
+  public static JGoogleAnalyticsTracker tracker=null;
+  
+  public static void initGoogleTracker()
+  {
+    if (tracker==null)
+    {
+      String vrs="No Version Accessible";
+      try {
+    //Google analytics tracking code for Library Finder
+      tracker = new JGoogleAnalyticsTracker("Jalview Desktop",
+              (vrs=jalview.bin.Cache.getProperty("VERSION")+"_"+jalview.bin.Cache.getDefault("BUILD_DATE", "unknown")),
+              "UA-9060947-1");
+      tracker.trackAsynchronously(new FocusPoint("Application Started."));
+    } catch (RuntimeException e)
+    {
+      if (log!=null) {
+        log.debug("Caught runtime exception in googletracker init:",e);
+      } 
+      // quietly return.
+    }
+      catch (Exception e)
+    {
+        // unexpected error
+        if (log!=null)
+        {
+          log.warn("Failed to initialise GoogleTracker for Jalview Desktop with version "+vrs,e); 
+        } else {
+          log.warn("Failed to initialise GoogleTracker for Jalview Desktop with version "+vrs,e);
+        }
+    }
+    }
+  }
 }
index 7e70bf4..bfae7e0 100755 (executable)
@@ -152,6 +152,13 @@ public class Jalview
       desktop = new Desktop();
       desktop.setVisible(true);
       desktop.discoverer.start();
+      if (!aparser.contains("nousagestats") && Cache.getDefault("USAGESTATS", true)) {
+        Cache.log.info("Initialising googletracker for usage stats.");
+        Cache.initGoogleTracker();
+        Cache.log.debug("Tracking enabled.");
+      } else {
+        Cache.log.info("Not enabling Google Tracking.");
+      }
       if (!aparser.contains("noquestionnaire"))
       {
         String url = aparser.getValue("questionnaire");