53acc88af484bcb8de88890c139bd2d7d2220f54
[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.getPropertyHelper();\r
23 \r
24         // compbio.dundee.ac.uk GA tracker\r
25         private static AnalyticsConfigData config = new AnalyticsConfigData("UA-5356328-1");\r
26 \r
27         private static GoogleAnalyticsTracker TRACKER = new GoogleAnalyticsTracker(\r
28                         config);\r
29 \r
30         static final boolean IS_GA_ENABLED = isGoogleAnalyticsEnabled();\r
31 \r
32         private static String SERVER_ADDRESS = getServerIP();\r
33 \r
34         private static boolean isGoogleAnalyticsEnabled() {\r
35                 String val = PROP_HELPER.getProperty("enable.ga");\r
36                 if (Util.isEmpty(val)) {\r
37                         return false;\r
38                 }\r
39                 val = val.trim();\r
40                 if ("yes".equalsIgnoreCase(val) || "true".equalsIgnoreCase(val)) {\r
41                         return true;\r
42                 }\r
43                 return false;\r
44         }\r
45 \r
46         private static String getServerIP() {\r
47                 String IP = "127.0.0.1";\r
48                 if (!anonymizeIP()) {\r
49                         try {\r
50                                 InetAddress localAddrIP = InetAddress.getLocalHost();\r
51                                 IP = localAddrIP.getCanonicalHostName();\r
52                         } catch (UnknownHostException ignored) {\r
53                         }\r
54                 }\r
55                 return IP;\r
56         }\r
57 \r
58         private static boolean anonymizeIP() {\r
59                 String val = PROP_HELPER.getProperty("anonymize.ip");\r
60                 if (Util.isEmpty(val)) {\r
61                         return false;\r
62                 }\r
63                 if ("yes".equalsIgnoreCase(val) || "true".equalsIgnoreCase(val)) {\r
64                         return true;\r
65                 }\r
66                 return false;\r
67         }\r
68 \r
69         static void reportUsage(Services service) {\r
70                 String service_name = "UNKNOWN";\r
71                 if (service == null) {\r
72                         log.warn("GA: Services was NULL!");\r
73                 } else {\r
74                         service_name = service.toString();\r
75                 }\r
76                 TRACKER.trackPageViewFromReferrer("JABAWS/2.0/" + service_name,\r
77                                 service_name, "http://www.compbio.dundee.ac.uk",\r
78                                 SERVER_ADDRESS, VERSION_TYPE);\r
79                 TRACKER.resetSession();\r
80         }\r
81 }\r