change tracker code to compbio
[jabaws.git] / webservices / compbio / ws / server / GAUtils.java
1 package compbio.ws.server;\r
2 \r
3 import java.net.InetAddress;\r
4 import java.net.UnknownHostException;\r
5 \r
6 import org.apache.log4j.Logger;\r
7 \r
8 import compbio.engine.conf.PropertyHelperManager;\r
9 import compbio.stat.ga.AnalyticsConfigData;\r
10 import compbio.stat.ga.GoogleAnalyticsTracker;\r
11 import compbio.util.PropertyHelper;\r
12 import compbio.util.Util;\r
13 import compbio.ws.client.Services;\r
14 \r
15 public class GAUtils {\r
16 \r
17         // MODIFY BEFORE RELEASE!\r
18         final static String VERSION_TYPE = "WAR";\r
19 \r
20         private static final Logger log = Logger.getLogger(GAUtils.class);\r
21 \r
22         static PropertyHelper PROP_HELPER = PropertyHelperManager\r
23                         .getPropertyHelper();\r
24 \r
25         // compbio.dundee.ac.uk GA tracker\r
26         private static AnalyticsConfigData config = new AnalyticsConfigData(\r
27                         "UA-5356328-1");\r
28 \r
29         private static GoogleAnalyticsTracker TRACKER = new GoogleAnalyticsTracker(\r
30                         config);\r
31 \r
32         static final boolean IS_GA_ENABLED = isGoogleAnalyticsEnabled();\r
33 \r
34         private static String SERVER_ADDRESS = getServerIP();\r
35 \r
36         private static boolean isGoogleAnalyticsEnabled() {\r
37                 String val = PROP_HELPER.getProperty("enable.ga");\r
38                 if (Util.isEmpty(val)) {\r
39                         return false;\r
40                 }\r
41                 val = val.trim();\r
42                 if ("yes".equalsIgnoreCase(val) || "true".equalsIgnoreCase(val)) {\r
43                         return true;\r
44                 }\r
45                 return false;\r
46         }\r
47 \r
48         private static String getServerIP() {\r
49                 String IP = "127.0.0.1";\r
50                 if (!anonymizeIP()) {\r
51                         try {\r
52                                 InetAddress localAddrIP = InetAddress.getLocalHost();\r
53                                 IP = localAddrIP.getCanonicalHostName();\r
54                         } catch (UnknownHostException ignored) {\r
55                         }\r
56                 }\r
57                 return IP;\r
58         }\r
59 \r
60         private static boolean anonymizeIP() {\r
61                 String val = PROP_HELPER.getProperty("anonymize.ip");\r
62                 if (Util.isEmpty(val)) {\r
63                         return false;\r
64                 }\r
65                 if ("yes".equalsIgnoreCase(val) || "true".equalsIgnoreCase(val)) {\r
66                         return true;\r
67                 }\r
68                 return false;\r
69         }\r
70 \r
71         static void reportUsage(Services service) {\r
72                 String service_name = "UNKNOWN";\r
73                 if (service == null) {\r
74                         log.warn("GA: Services was NULL!");\r
75                 } else {\r
76                         service_name = service.toString();\r
77                 }\r
78                 TRACKER.trackPageViewFromReferrer("JABAWS/2.0/" + service_name,\r
79                                 service_name, "http://www.compbio.dundee.ac.uk",\r
80                                 SERVER_ADDRESS, VERSION_TYPE);\r
81                 TRACKER.resetSession();\r
82         }\r
83 }\r