diff --git a/java/compiler/impl/src/com/intellij/compiler/CompilerSettingsUsageCollector.java b/java/compiler/impl/src/com/intellij/compiler/CompilerSettingsUsageCollector.java index 7110947c291b..78a8110f7411 100644 --- a/java/compiler/impl/src/com/intellij/compiler/CompilerSettingsUsageCollector.java +++ b/java/compiler/impl/src/com/intellij/compiler/CompilerSettingsUsageCollector.java @@ -15,8 +15,8 @@ */ package com.intellij.compiler; +import com.intellij.internal.statistic.AbstractApplicationUsagesCollector; import com.intellij.internal.statistic.CollectUsagesException; -import com.intellij.internal.statistic.UsagesCollector; import com.intellij.internal.statistic.beans.GroupDescriptor; import com.intellij.internal.statistic.beans.UsageDescriptor; import com.intellij.openapi.project.Project; @@ -30,12 +30,12 @@ import java.util.Set; * @author Eugene Zhuravlev * Date: 4/11/13 */ -public class CompilerSettingsUsageCollector extends UsagesCollector{ +public class CompilerSettingsUsageCollector extends AbstractApplicationUsagesCollector{ public static final String GROUP_ID = "compiler"; @NotNull @Override - public Set getUsages(@Nullable Project project) throws CollectUsagesException { + public Set getProjectUsages(@Nullable Project project) throws CollectUsagesException { final CompilerWorkspaceConfiguration wsConfig = CompilerWorkspaceConfiguration.getInstance(project); final Set result = new HashSet(); diff --git a/platform/platform-impl/src/com/intellij/featureStatistics/FeaturesUsageCollector.java b/platform/platform-impl/src/com/intellij/featureStatistics/FeaturesUsageCollector.java index 44bec87c2dd1..56d891293879 100644 --- a/platform/platform-impl/src/com/intellij/featureStatistics/FeaturesUsageCollector.java +++ b/platform/platform-impl/src/com/intellij/featureStatistics/FeaturesUsageCollector.java @@ -15,13 +15,11 @@ */ package com.intellij.featureStatistics; -import com.intellij.openapi.project.Project; import com.intellij.internal.statistic.UsagesCollector; -import com.intellij.internal.statistic.beans.*; import com.intellij.internal.statistic.beans.GroupDescriptor; +import com.intellij.internal.statistic.beans.UsageDescriptor; import com.intellij.util.containers.HashSet; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.Set; @@ -35,11 +33,9 @@ public class FeaturesUsageCollector extends UsagesCollector { @NotNull @Override - public Set getUsages(@Nullable Project project) { + public Set getUsages() { Set usages = new HashSet(); - final FeatureUsageTracker usageTracker = FeatureUsageTracker.getInstance(); // - final ProductivityFeaturesRegistry registry = ProductivityFeaturesRegistry.getInstance(); for (String featureId : registry.getFeatureIds()) { final FeatureDescriptor featureDescriptor = registry.getFeatureDescriptor(featureId); diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/DisabledPluginsUsagesCollector.java b/platform/platform-impl/src/com/intellij/ide/plugins/DisabledPluginsUsagesCollector.java index 8e48bbe92277..8a5633fda4c3 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/DisabledPluginsUsagesCollector.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/DisabledPluginsUsagesCollector.java @@ -18,11 +18,9 @@ package com.intellij.ide.plugins; import com.intellij.internal.statistic.UsagesCollector; import com.intellij.internal.statistic.beans.GroupDescriptor; import com.intellij.internal.statistic.beans.UsageDescriptor; -import com.intellij.openapi.project.Project; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.Set; @@ -35,7 +33,7 @@ public class DisabledPluginsUsagesCollector extends UsagesCollector { } @NotNull - public Set getUsages(@Nullable Project project) { + public Set getUsages() { return ContainerUtil.map2Set(PluginManagerCore.getDisabledPlugins(), new Function() { @Override public UsageDescriptor fun(String descriptor) { diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/NonBundledPluginsUsagesCollector.java b/platform/platform-impl/src/com/intellij/ide/plugins/NonBundledPluginsUsagesCollector.java index f2a76ba47e44..d0e670be62aa 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/NonBundledPluginsUsagesCollector.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/NonBundledPluginsUsagesCollector.java @@ -18,12 +18,10 @@ package com.intellij.ide.plugins; import com.intellij.internal.statistic.UsagesCollector; import com.intellij.internal.statistic.beans.GroupDescriptor; import com.intellij.internal.statistic.beans.UsageDescriptor; -import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Condition; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Set; @@ -37,8 +35,8 @@ public class NonBundledPluginsUsagesCollector extends UsagesCollector { } @NotNull - public Set getUsages(@Nullable Project project) { - final IdeaPluginDescriptor[] plugins = PluginManager.getPlugins(); + public Set getUsages() { + final IdeaPluginDescriptor[] plugins = PluginManagerCore.getPlugins(); final List nonBundledEnabledPlugins = ContainerUtil.filter(plugins, new Condition() { public boolean value(final IdeaPluginDescriptor d) { return d.isEnabled() && !d.isBundled() && d.getPluginId() != null; diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/AbstractApplicationUsagesCollector.java b/platform/platform-impl/src/com/intellij/internal/statistic/AbstractApplicationUsagesCollector.java index fe9b8797ec67..dd73484b62db 100644 --- a/platform/platform-impl/src/com/intellij/internal/statistic/AbstractApplicationUsagesCollector.java +++ b/platform/platform-impl/src/com/intellij/internal/statistic/AbstractApplicationUsagesCollector.java @@ -24,7 +24,6 @@ import com.intellij.util.containers.ObjectIntHashMap; import gnu.trove.THashSet; import gnu.trove.TObjectIntProcedure; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.Set; @@ -64,7 +63,7 @@ public abstract class AbstractApplicationUsagesCollector extends UsagesCollector result.ensureCapacity(usageDescriptors.size()); for (UsageDescriptor usageDescriptor : usageDescriptors) { String key = usageDescriptor.getKey(); - result.put(key, result.get(key, 0) + 1); + result.put(key, result.get(key, 0) + usageDescriptor.getValue()); } } } @@ -87,10 +86,7 @@ public abstract class AbstractApplicationUsagesCollector extends UsagesCollector @Override @NotNull - public Set getUsages(@Nullable Project project) throws CollectUsagesException { - if (project != null) { - persistProjectUsages(project, getProjectUsages(project)); - } + public Set getUsages() throws CollectUsagesException { return getApplicationUsages(); } diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/JdkInfoUsageCollector.java b/platform/platform-impl/src/com/intellij/internal/statistic/JdkInfoUsageCollector.java index d23f274b1c89..eeae4c86d52e 100644 --- a/platform/platform-impl/src/com/intellij/internal/statistic/JdkInfoUsageCollector.java +++ b/platform/platform-impl/src/com/intellij/internal/statistic/JdkInfoUsageCollector.java @@ -17,10 +17,8 @@ package com.intellij.internal.statistic; import com.intellij.internal.statistic.beans.GroupDescriptor; import com.intellij.internal.statistic.beans.UsageDescriptor; -import com.intellij.openapi.project.Project; import com.intellij.openapi.util.SystemInfo; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.Set; @@ -31,7 +29,7 @@ import java.util.Set; class JdkInfoUsageCollector extends UsagesCollector { @NotNull @Override - public Set getUsages(@Nullable Project project) throws CollectUsagesException { + public Set getUsages() throws CollectUsagesException { final String vendor = System.getProperty("java.vendor", "Unknown"); for (String version : new String[]{"1.9", "1.8", "1.7", "1.6"}) { if (SystemInfo.isJavaVersionAtLeast(version)) { diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/OsNameUsageCollector.java b/platform/platform-impl/src/com/intellij/internal/statistic/OsNameUsageCollector.java index 76f8caebd317..c939a59da322 100644 --- a/platform/platform-impl/src/com/intellij/internal/statistic/OsNameUsageCollector.java +++ b/platform/platform-impl/src/com/intellij/internal/statistic/OsNameUsageCollector.java @@ -17,10 +17,8 @@ package com.intellij.internal.statistic; import com.intellij.internal.statistic.beans.GroupDescriptor; import com.intellij.internal.statistic.beans.UsageDescriptor; -import com.intellij.openapi.project.Project; import com.intellij.openapi.util.SystemInfo; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.Set; @@ -31,7 +29,7 @@ import java.util.Set; class OsNameUsageCollector extends UsagesCollector { @NotNull @Override - public Set getUsages(@Nullable Project project) throws CollectUsagesException { + public Set getUsages() throws CollectUsagesException { String osName = SystemInfo.isLinux ? "Linux" : SystemInfo.isMac ? "Mac OS X" : SystemInfo.isWindows ? "Windows" : SystemInfo.OS_NAME; return Collections.singleton(new UsageDescriptor(osName, 1)); } diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/OsVersionUsageCollector.java b/platform/platform-impl/src/com/intellij/internal/statistic/OsVersionUsageCollector.java index 156d2d8cfa0e..f5dfed81ee64 100644 --- a/platform/platform-impl/src/com/intellij/internal/statistic/OsVersionUsageCollector.java +++ b/platform/platform-impl/src/com/intellij/internal/statistic/OsVersionUsageCollector.java @@ -17,10 +17,8 @@ package com.intellij.internal.statistic; import com.intellij.internal.statistic.beans.GroupDescriptor; import com.intellij.internal.statistic.beans.UsageDescriptor; -import com.intellij.openapi.project.Project; import com.intellij.openapi.util.SystemInfo; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.Set; @@ -31,7 +29,7 @@ import java.util.Set; class OsVersionUsageCollector extends UsagesCollector { @NotNull @Override - public Set getUsages(@Nullable Project project) throws CollectUsagesException { + public Set getUsages() throws CollectUsagesException { UsageDescriptor descriptor = null; if (SystemInfo.isUnix && !SystemInfo.isMac) { diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/StatisticsUploadAssistant.java b/platform/platform-impl/src/com/intellij/internal/statistic/StatisticsUploadAssistant.java index cb7fc3cf7e08..cefae9e4693d 100755 --- a/platform/platform-impl/src/com/intellij/internal/statistic/StatisticsUploadAssistant.java +++ b/platform/platform-impl/src/com/intellij/internal/statistic/StatisticsUploadAssistant.java @@ -29,8 +29,6 @@ import com.intellij.internal.statistic.persistence.SentUsagesPersistence; import com.intellij.internal.statistic.persistence.UsageStatisticsPersistenceComponent; import com.intellij.openapi.application.impl.ApplicationInfoImpl; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.KeyedExtensionCollector; import com.intellij.openapi.util.Pair; @@ -75,7 +73,7 @@ public class StatisticsUploadAssistant { } public String getData(@NotNull Set disabledGroups) { - return getStringPatch(disabledGroups, ProjectManager.getInstance().getOpenProjects()); + return getStringPatch(disabledGroups); } public static void persistSentPatch(@NotNull String patchStr) { @@ -90,19 +88,18 @@ public class StatisticsUploadAssistant { } @NotNull - public static String getStringPatch(@NotNull Set disabledGroups, Project... project) { - return getStringPatch(disabledGroups, project, UsageStatisticsPersistenceComponent.getInstance(), 0); + public static String getStringPatch(@NotNull Set disabledGroups) { + return getStringPatch(disabledGroups, UsageStatisticsPersistenceComponent.getInstance(), 0); } @NotNull public static String getStringPatch(@NotNull Set disabledGroups, - @NotNull Project[] projects, @NotNull SentUsagesPersistence usagesPersistence, int maxSize) { - return getStringPatch(getPatchedUsages(disabledGroups, projects, usagesPersistence), maxSize); + return getStringPatch(getPatchedUsages(disabledGroups, usagesPersistence), maxSize); } - public static String getStringPatch(@NotNull Map> patchedUsages, int maxSize) { + public static String getStringPatch(@NotNull Map> patchedUsages, int maxSize) { if (patchedUsages.isEmpty()) { return ""; } @@ -113,14 +110,11 @@ public class StatisticsUploadAssistant { @NotNull public static Map> getPatchedUsages(@NotNull Set disabledGroups, - @NotNull Project[] projects, @NotNull SentUsagesPersistence usagesPersistence) { Map> usages = new LinkedHashMap>(); - for (Project project : projects) { - Map> allUsages = getAllUsages(project, disabledGroups); - Map> sentUsages = filterDisabled(disabledGroups, usagesPersistence.getSentUsages()); - usages.putAll(getPatchedUsages(allUsages, sentUsages)); - } + Map> allUsages = getAllUsages(disabledGroups); + Map> sentUsages = filterDisabled(disabledGroups, usagesPersistence.getSentUsages()); + usages.putAll(getPatchedUsages(allUsages, sentUsages)); return usages; } @@ -226,13 +220,13 @@ public class StatisticsUploadAssistant { } @NotNull - public static Map> getAllUsages(@Nullable Project project, @NotNull Set disabledGroups) { + public static Map> getAllUsages(@NotNull Set disabledGroups) { Map> usageDescriptors = new LinkedHashMap>(); for (UsagesCollector usagesCollector : UsagesCollector.EP_NAME.getExtensions()) { GroupDescriptor groupDescriptor = usagesCollector.getGroupId(); if (!disabledGroups.contains(groupDescriptor.getId())) { try { - usageDescriptors.put(groupDescriptor, usagesCollector.getUsages(project)); + usageDescriptors.put(groupDescriptor, usagesCollector.getUsages()); } catch (CollectUsagesException e) { LOG.info(e); diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/UiInfoUsageCollector.java b/platform/platform-impl/src/com/intellij/internal/statistic/UiInfoUsageCollector.java index 65f8c011533d..f398ae9d1faa 100644 --- a/platform/platform-impl/src/com/intellij/internal/statistic/UiInfoUsageCollector.java +++ b/platform/platform-impl/src/com/intellij/internal/statistic/UiInfoUsageCollector.java @@ -20,11 +20,9 @@ import com.intellij.ide.ui.UISettings; import com.intellij.internal.statistic.beans.GroupDescriptor; import com.intellij.internal.statistic.beans.UsageDescriptor; import com.intellij.openapi.editor.ex.EditorSettingsExternalizable; -import com.intellij.openapi.project.Project; import com.intellij.util.ui.UIUtil; import gnu.trove.THashSet; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.util.Set; @@ -35,7 +33,7 @@ import java.util.Set; class UiInfoUsageCollector extends UsagesCollector { @NotNull @Override - public Set getUsages(@Nullable Project project) throws CollectUsagesException { + public Set getUsages() throws CollectUsagesException { Set set = new THashSet(); add(set, "Nav Bar visible", navbar() ? 1 : 0); diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/UsageTrigger.java b/platform/platform-impl/src/com/intellij/internal/statistic/UsageTrigger.java index 1576a0eabcf4..1d2691a715f7 100644 --- a/platform/platform-impl/src/com/intellij/internal/statistic/UsageTrigger.java +++ b/platform/platform-impl/src/com/intellij/internal/statistic/UsageTrigger.java @@ -19,13 +19,11 @@ import com.intellij.internal.statistic.beans.ConvertUsagesUtil; import com.intellij.internal.statistic.beans.GroupDescriptor; import com.intellij.internal.statistic.beans.UsageDescriptor; import com.intellij.openapi.components.*; -import com.intellij.openapi.project.Project; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.xmlb.annotations.MapAnnotation; import com.intellij.util.xmlb.annotations.Tag; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.HashMap; import java.util.Map; @@ -75,7 +73,7 @@ public class UsageTrigger implements PersistentStateComponent getUsages(@Nullable final Project project) { + public Set getUsages() { State state = getInstance().getState(); assert state != null; return ContainerUtil.map2Set(state.myValues.entrySet(), new Function, UsageDescriptor>() { diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/UsagesCollector.java b/platform/platform-impl/src/com/intellij/internal/statistic/UsagesCollector.java index 17d0104406ea..07efb4e5d910 100644 --- a/platform/platform-impl/src/com/intellij/internal/statistic/UsagesCollector.java +++ b/platform/platform-impl/src/com/intellij/internal/statistic/UsagesCollector.java @@ -18,16 +18,14 @@ package com.intellij.internal.statistic; import com.intellij.internal.statistic.beans.GroupDescriptor; import com.intellij.internal.statistic.beans.UsageDescriptor; import com.intellij.openapi.extensions.ExtensionPointName; -import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.Set; public abstract class UsagesCollector { public static final ExtensionPointName EP_NAME = ExtensionPointName.create("com.intellij.statistics.usagesCollector"); - public abstract @NotNull Set getUsages(@Nullable Project project) throws CollectUsagesException; + public abstract @NotNull Set getUsages() throws CollectUsagesException; public abstract @NotNull GroupDescriptor getGroupId(); } diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/ideSettings/LaFUsagesCollector.java b/platform/platform-impl/src/com/intellij/internal/statistic/ideSettings/LaFUsagesCollector.java index 59753277d4a0..cc2f6b8d7ccb 100644 --- a/platform/platform-impl/src/com/intellij/internal/statistic/ideSettings/LaFUsagesCollector.java +++ b/platform/platform-impl/src/com/intellij/internal/statistic/ideSettings/LaFUsagesCollector.java @@ -5,11 +5,9 @@ import com.intellij.internal.statistic.CollectUsagesException; import com.intellij.internal.statistic.UsagesCollector; import com.intellij.internal.statistic.beans.GroupDescriptor; import com.intellij.internal.statistic.beans.UsageDescriptor; -import com.intellij.openapi.project.Project; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.text.StringUtil; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.util.Collections; @@ -18,7 +16,7 @@ import java.util.Set; public class LaFUsagesCollector extends UsagesCollector { @NotNull @Override - public Set getUsages(@Nullable Project project) throws CollectUsagesException { + public Set getUsages() throws CollectUsagesException { UIManager.LookAndFeelInfo laf = LafManager.getInstance().getCurrentLookAndFeel(); String key = SystemInfo.OS_NAME + " - "; if (!StringUtil.isEmptyOrSpaces(SystemInfo.SUN_DESKTOP)) {