From: jprocter Date: Tue, 2 Jun 2009 09:25:09 +0000 (+0000) Subject: Google Analytics tracking backport X-Git-Tag: Jalview_2_4_0b2~36 X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=commitdiff_plain;h=ff92ab1b888cdb3d0f3d940996b316f2112823de Google Analytics tracking backport --- diff --git a/lib/JGoogleAnalytics_0.2.jar b/lib/JGoogleAnalytics_0.2.jar new file mode 100644 index 0000000..c389e1c Binary files /dev/null and b/lib/JGoogleAnalytics_0.2.jar differ diff --git a/src/jalview/bin/Cache.java b/src/jalview/bin/Cache.java index e5f7f7b..4475bff 100755 --- a/src/jalview/bin/Cache.java +++ b/src/jalview/bin/Cache.java @@ -23,6 +23,9 @@ import java.util.*; import org.apache.log4j.*; +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 @@ -39,71 +42,70 @@ import org.apache.log4j.*; * *
  • 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 boolean
  • - *
  • FONT_NAME java font name for alignment text display
  • - *
  • FONT_SIZE size of displayed alignment text
  • - *
  • FONT_STYLE style of font displayed (sequence labels are always italic) - *
  • - *
  • GAP_SYMBOL character to treat as gap symbol (usually -,.,' ')
  • - *
  • LAST_DIRECTORY last directory for browsing alignment
  • - *
  • USER_DEFINED_COLOURS list of user defined colour scheme files
  • - *
  • SHOW_FULL_ID show id with '/start-end' numbers appended
  • - *
  • SHOW_IDENTITY show percentage identity annotation
  • - *
  • SHOW_QUALITY show alignment quality annotation
  • - *
  • SHOW_ANNOTATIONS show alignment annotation rows
  • - *
  • SHOW_CONSERVATION show alignment conservation annotation
  • + *
  • 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 boolean
  • + *
  • FONT_NAME java font name for alignment text display
  • + *
  • FONT_SIZE size of displayed alignment text
  • + *
  • FONT_STYLE style of font displayed (sequence labels are always italic)
  • + *
  • GAP_SYMBOL character to treat as gap symbol (usually -,.,' ')
  • + *
  • LAST_DIRECTORY last directory for browsing alignment
  • + *
  • USER_DEFINED_COLOURS list of user defined colour scheme files
  • + *
  • SHOW_FULL_ID show id with '/start-end' numbers appended
  • + *
  • SHOW_IDENTITY show percentage identity annotation
  • + *
  • SHOW_QUALITY show alignment quality annotation
  • + *
  • SHOW_ANNOTATIONS show alignment annotation rows
  • + *
  • SHOW_CONSERVATION show alignment conservation annotation
  • *
  • CENTRE_COLUMN_LABELS centre the labels at each column in a displayed - * annotation row
  • - *
  • DEFAULT_COLOUR default colour scheme to apply for a new alignment
  • - *
  • DEFAULT_FILE_FORMAT file format used to save
  • - *
  • STARTUP_FILE file loaded on startup (may be a fully qualified url)
  • - *
  • SHOW_STARTUP_FILE flag to control loading of startup file
  • - *
  • VERSION the version of the jalview build
  • - *
  • BUILD_DATE date of this build
  • + * annotation row + *
  • DEFAULT_COLOUR default colour scheme to apply for a new alignment
  • + *
  • DEFAULT_FILE_FORMAT file format used to save
  • + *
  • STARTUP_FILE file loaded on startup (may be a fully qualified url)
  • + *
  • SHOW_STARTUP_FILE flag to control loading of startup file
  • + *
  • VERSION the version of the jalview build
  • + *
  • BUILD_DATE date of this build
  • *
  • LATEST_VERSION the latest jalview version advertised on the - * www.jalview.org
  • + * www.jalview.org *
  • PIR_MODELLER boolean indicating if PIR files are written with MODELLER - * descriptions
  • + * descriptions *
  • (FASTA,MSF,PILEUP,CLUSTAL,BLC,PIR,PFAM)_JVSUFFIX boolean for adding jv - * suffix to file
  • - *
  • RECENT_URL list of recently retrieved URLs
  • - *
  • RECENT_FILE list of recently opened files
  • - *
  • USE_PROXY flag for whether a http proxy is to be used
  • - *
  • PROXY_SERVER the proxy
  • - *
  • PROXY_PORT
  • + * suffix to file + *
  • RECENT_URL list of recently retrieved URLs
  • + *
  • RECENT_FILE list of recently opened files
  • + *
  • USE_PROXY flag for whether a http proxy is to be used
  • + *
  • PROXY_SERVER the proxy
  • + *
  • PROXY_PORT
  • *
  • NOQUESTIONNAIRES true to prevent jalview from checking the questionnaire - * service
  • + * service *
  • QUESTIONNAIRE last questionnaire:responder id string from questionnaire - * service
  • - *
  • 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
  • - *
  • AUTO_CALC_CONSENSUS boolean for automatic recalculation of consensus - *
  • - *
  • PAD_GAPS boolean
  • - *
  • ID_ITALICS boolean
  • - *
  • SHOW_JV_SUFFIX
  • - *
  • WRAP_ALIGNMENT
  • + * service + *
  • USAGESTATS (true) 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
  • + *
  • AUTO_CALC_CONSENSUS boolean for automatic recalculation of consensus
  • + *
  • PAD_GAPS boolean
  • + *
  • ID_ITALICS boolean
  • + *
  • SHOW_JV_SUFFIX
  • + *
  • WRAP_ALIGNMENT
  • *
  • EPS_RENDERING (Prompt each time|Lineart|Text) default for EPS rendering - * style check
  • - *
  • SORT_ALIGNMENT (No sort|Id|Pairwise Identity)
  • + * style check + *
  • SORT_ALIGNMENT (No sort|Id|Pairwise Identity)
  • *
  • SEQUENCE_LINKS list of name|URL pairs for opening a url with - * $SEQUENCE_ID$
  • - *
  • DAS_REGISTRY_URL the registry to query
  • - *
  • DEFAULT_BROWSER for unix
  • - *
  • DAS_ACTIVE_SOURCE list of active sources
  • + * $SEQUENCE_ID$ + *
  • 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)
  • - *
  • + * (false) + *
  • * * * @@ -148,7 +150,7 @@ public class Cache "System.err"); ap.setName("JalviewLogger"); org.apache.log4j.Logger.getRootLogger().addAppender(ap); // catch all for - // log output + // 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"); @@ -326,7 +328,7 @@ public class Cache * found * * @param key - * Name of property + * Name of property * * @return Property value */ @@ -370,9 +372,9 @@ public class Cache * Stores property in the file "HOME_DIR/.jalview_properties" * * @param key - * Name of object + * Name of object * @param obj - * String value of property + * String value of property * * @return String value of property */ @@ -483,4 +485,52 @@ public class Cache return (groovyJarsArePresent > 0); } + /** + * GA tracker object - null if tracking not enabled. + */ + public static JGoogleAnalyticsTracker tracker = null; + + /** + * Initialise the google tracker if it is not done already. + */ + 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); + } + } + } + } + } diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index 36f4ff6..0179023 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -83,6 +83,7 @@ public class Jalview + "-eps FILE\tCreate EPS file FILE from alignment." + "-questionnaire URL\tQueries the given URL for information about any Jalview user questionnaires." + "-noquestionnaire\tTurn off questionnaire check." + + "-nousagestats\tTurn off google analytics tracking for this session.\n" + "-dasserver nickname=URL\tAdd and enable a das server with given nickname (alphanumeric or underscores only) for retrieval of features for all alignments." + "-fetchfrom nickname\tQuery nickname for features for the alignments and display them." + "-groovy FILE\tExecute groovy script in FILE, after all other arguments have been processed (if FILE is the text 'STDIN' then the file will be read from STDIN)" @@ -135,6 +136,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");