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