EventLogApplicationInfo (Map<String, String> options, DataCollectorDebugLogger logger, DataCollectorSystemEventLogger eventLogger) { String productCode = options.get(EventLogUploaderOptions.PRODUCT_OPTION); String productVersion = options.get(EventLogUploaderOptions.PRODUCT_VERSION_OPTION); String url = options.get(EventLogUploaderOptions.URL_OPTION); String userAgent = options.get(EventLogUploaderOptions.USER_AGENT_OPTION); String headersString = options.get(EventLogUploaderOptions.EXTRA_HEADERS); Map<String, String> extraHeaders = ExtraHTTPHeadersParser.parse(headersString); int baselineVersion = Integer.parseInt(options.get(EventLogUploaderOptions.BASELINE_VERSION)); if (url != null && productCode != null) { boolean isInternal = options.containsKey(EventLogUploaderOptions.INTERNAL_OPTION); boolean isTestSendEndpoint = options.containsKey(EventLogUploaderOptions.TEST_SEND_ENDPOINT); boolean isTestConfig = options.containsKey(EventLogUploaderOptions.TEST_CONFIG); boolean isEAP = options.containsKey(EventLogUploaderOptions.EAP_OPTION); return new EventLogExternalApplicationInfo( url, productCode, productVersion, userAgent, isInternal, isTestConfig, isTestSendEndpoint, isEAP, extraHeaders, logger, eventLogger, baselineVersion); } return null; }