diff --git a/platform/platform-api/src/com/intellij/featureStatistics/ProductivityFeaturesProvider.java b/platform/platform-api/src/com/intellij/featureStatistics/ProductivityFeaturesProvider.java index 3b69acf94080..28b3c6dd1f6b 100644 --- a/platform/platform-api/src/com/intellij/featureStatistics/ProductivityFeaturesProvider.java +++ b/platform/platform-api/src/com/intellij/featureStatistics/ProductivityFeaturesProvider.java @@ -16,6 +16,10 @@ package com.intellij.featureStatistics; import com.intellij.openapi.extensions.ExtensionPointName; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.Collections; /** * User: anna @@ -29,4 +33,12 @@ public abstract class ProductivityFeaturesProvider { public abstract GroupDescriptor[] getGroupDescriptors(); public abstract ApplicabilityFilter[] getApplicabilityFilters(); + + /** + * @return list of xml file urls with features configurations + */ + @NotNull + public Collection getXmlFilesUrls() { + return Collections.emptyList(); + } } diff --git a/platform/platform-impl/src/com/intellij/featureStatistics/ProductivityFeaturesRegistryImpl.java b/platform/platform-impl/src/com/intellij/featureStatistics/ProductivityFeaturesRegistryImpl.java index df271af23ce8..9dc328f324c5 100644 --- a/platform/platform-impl/src/com/intellij/featureStatistics/ProductivityFeaturesRegistryImpl.java +++ b/platform/platform-impl/src/com/intellij/featureStatistics/ProductivityFeaturesRegistryImpl.java @@ -85,6 +85,16 @@ public class ProductivityFeaturesRegistryImpl extends ProductivityFeaturesRegist private void loadFeaturesFromProviders(ProductivityFeaturesProvider[] providers) { for (ProductivityFeaturesProvider provider : providers) { + + for (String xmlUrl : provider.getXmlFilesUrls()) { + try { + readFromXml(xmlUrl); + } + catch (Exception e) { + LOG.error("Error while reading " + xmlUrl + " from " + provider + ": " + e.getMessage()); + } + } + final GroupDescriptor[] groupDescriptors = provider.getGroupDescriptors(); if (groupDescriptors != null) { for (GroupDescriptor groupDescriptor : groupDescriptors) {