From bd55d79ee3ed94ba2e03edff301a3be3c031164b Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 15 Jan 2013 20:44:23 +0100 Subject: [PATCH] allow customizing the URL where statistics are submitted through ApplicationInfo.xml --- .../src/idea/IdeaApplicationInfo.xml | 2 ++ .../connect/StatisticsConnectionService.java | 8 +++--- .../application/impl/ApplicationInfoImpl.java | 25 +++++++++++++++++++ 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/community-resources/src/idea/IdeaApplicationInfo.xml b/community-resources/src/idea/IdeaApplicationInfo.xml index 6cc89535c3e8..bbadb8cda630 100644 --- a/community-resources/src/idea/IdeaApplicationInfo.xml +++ b/community-resources/src/idea/IdeaApplicationInfo.xml @@ -30,4 +30,6 @@ + + diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/connect/StatisticsConnectionService.java b/platform/platform-impl/src/com/intellij/internal/statistic/connect/StatisticsConnectionService.java index 6a0df42f96eb..107a063430bd 100644 --- a/platform/platform-impl/src/com/intellij/internal/statistic/connect/StatisticsConnectionService.java +++ b/platform/platform-impl/src/com/intellij/internal/statistic/connect/StatisticsConnectionService.java @@ -16,6 +16,7 @@ package com.intellij.internal.statistic.connect; import com.intellij.facet.frameworks.SettingsConnectionService; +import com.intellij.openapi.application.impl.ApplicationInfoImpl; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.ArrayUtil; import com.intellij.util.Function; @@ -28,15 +29,12 @@ import java.util.List; import java.util.Set; public class StatisticsConnectionService extends SettingsConnectionService { - - private static final String SETTINGS_URL = "http://jetbrains.com/idea/statistics/stat-assistant.xml"; - private static final String DEFAULT_SERVICE_URL = "http://jetbrains.com/idea/statistics/index.jsp"; - private static final String PERMISSION_ATTR_NAME = "permitted"; private static final String DISABLED = "disabled"; public StatisticsConnectionService() { - this(SETTINGS_URL, DEFAULT_SERVICE_URL); + this(((ApplicationInfoImpl)ApplicationInfoImpl.getShadowInstance()).getStatisticsSettingsUrl(), + ((ApplicationInfoImpl)ApplicationInfoImpl.getShadowInstance()).getStatisticsServiceUrl()); } public StatisticsConnectionService(@NotNull String settingsUrl, @Nullable String defaultServiceUrl) { diff --git a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java index 7fbf69133683..716ce0e3bb76 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java @@ -89,6 +89,8 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern @NonNls private String myWebHelpUrl = "http://www.jetbrains.com/idea/webhelp/"; private List myPluginChooserPages = new ArrayList(); private String[] myEssentialPluginsIds; + private String myStatisticsSettingsUrl; + private String myStatisticsServiceUrl; @NonNls private static final String IDEA_PATH = "/idea/"; @NonNls private static final String ELEMENT_VERSION = "version"; @@ -149,6 +151,11 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern @NonNls private static final String DEFAULT_PLUGINS_HOST = "http://plugins.intellij.net"; @NonNls private static final String ESSENTIAL_PLUGIN = "essential-plugin"; + @NonNls private static final String ELEMENT_STATISTICS = "statistics"; + @NonNls private static final String ATTRIBUTE_STATISTICS_SETTINGS = "settings"; + @NonNls private static final String ATTRIBUTE_STATISTICS_SERVICE = "service"; + + public void initComponent() { } public void disposeComponent() { } @@ -362,6 +369,14 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern return myShowLicensee; } + public String getStatisticsSettingsUrl() { + return myStatisticsSettingsUrl; + } + + public String getStatisticsServiceUrl() { + return myStatisticsServiceUrl; + } + private static ApplicationInfoImpl ourShadowInstance; public boolean isBetaOrRC() { @@ -584,6 +599,16 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern } }); myEssentialPluginsIds = ArrayUtil.toStringArray(essentialPluginsIds); + + Element statisticsElement = parentNode.getChild(ELEMENT_STATISTICS); + if (statisticsElement != null) { + myStatisticsSettingsUrl = statisticsElement.getAttributeValue(ATTRIBUTE_STATISTICS_SETTINGS); + myStatisticsServiceUrl = statisticsElement.getAttributeValue(ATTRIBUTE_STATISTICS_SERVICE); + } + else { + myStatisticsSettingsUrl = "http://jetbrains.com/idea/statistics/stat-assistant.xml"; + myStatisticsServiceUrl = "http://jetbrains.com/idea/statistics/index.jsp"; + } } private static GregorianCalendar parseDate(final String dateString) {