protected String getUserAgentString() { StringBuilder sb = new StringBuilder("java"); appendSystemProperty(sb, "java.runtime.version"); appendSystemProperty(sb, "java.specification.vendor"); appendSystemProperty(sb, "java.vm.name"); appendSystemProperty(sb, "os.name"); appendSystemProperty(sb, "os.version"); appendSystemProperty(sb, "os.arch"); return sb.toString(); }
public static boolean isNotEmpty(String value) { return !isEmpty(value); }
public static StringBuilder appendSystemProperty(StringBuilder sb, String property) { String value = System.getProperty(property); if (isNotEmpty(value)) { if (isNotEmpty(sb.toString())) { sb.append("/"); } sb.append(value); } return sb; }
@SuppressWarnings({"rawtypes", "unchecked"}) private void processParameters(GoogleAnalyticsRequest request, List<NameValuePair> postParms) { Map<GoogleAnalyticsParameter, String> requestParms = request.getParameters(); Map<GoogleAnalyticsParameter, String> defaultParms = defaultRequest.getParameters(); for (GoogleAnalyticsParameter parm : defaultParms.keySet()) { String value = requestParms.get(parm); String defaultValue = defaultParms.get(parm); if (isEmpty(value) && !isEmpty(defaultValue)) { requestParms.put(parm, defaultValue); } } for (GoogleAnalyticsParameter key : requestParms.keySet()) { postParms.add(new BasicNameValuePair(key.getParameterName(), requestParms.get(key))); } }
protected HttpClient createHttpClient(GoogleAnalyticsConfig config) { ThreadSafeClientConnManager connManager = new ThreadSafeClientConnManager(); connManager.setDefaultMaxPerRoute(getDefaultMaxPerRoute(config)); BasicHttpParams params = new BasicHttpParams(); if (isNotEmpty(config.getUserAgent())) { params.setParameter(CoreProtocolPNames.USER_AGENT, config.getUserAgent()); } if (isNotEmpty(config.getProxyHost())) { params.setParameter(ConnRoutePNames.DEFAULT_PROXY, new HttpHost(config.getProxyHost(), config.getProxyPort())); } DefaultHttpClient client = new DefaultHttpClient(connManager, params); if (isNotEmpty(config.getProxyUserName())) { BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(new AuthScope(config.getProxyHost(), config.getProxyPort()), new UsernamePasswordCredentials(config.getProxyUserName(), config.getProxyPassword())); client.setCredentialsProvider(credentialsProvider); } return client; }
@Override public DefaultRequest discoverParameters(GoogleAnalyticsConfig config, DefaultRequest request) { try { if (isEmpty(config.getUserAgent())) { config.setUserAgent(getUserAgentString()); } if (isEmpty(request.userLanguage())) { String region = System.getProperty("user.region"); if (isEmpty(region)) { region = System.getProperty("user.country"); } request.userLanguage(System.getProperty("user.language") + "-" + region); } if (isEmpty(request.documentEncoding())) { request.documentEncoding(System.getProperty("file.encoding")); } } catch (Exception e) { // logger.warn("Exception while deriving the System properties for request " + request, e); } return request; }
@Override public DefaultRequest discoverParameters(GoogleAnalyticsConfig config, DefaultRequest request) { super.discoverParameters(config, request); Toolkit toolkit = Toolkit.getDefaultToolkit(); if (isEmpty(request.screenResolution())) { Dimension screenSize = toolkit.getScreenSize(); request.screenResolution(((int) screenSize.getWidth()) + "x" + ((int) screenSize.getHeight()) + ", " + toolkit.getScreenResolution() + " dpi"); } if (isEmpty(request.screenColors())) { GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] graphicsDevices = graphicsEnvironment.getScreenDevices(); StringBuilder sb = new StringBuilder(); for (GraphicsDevice graphicsDevice : graphicsDevices) { if (sb.length() != 0) { sb.append(", "); } sb.append(graphicsDevice.getDisplayMode().getBitDepth()); } request.screenColors(sb.toString()); } return request; } }