fix sending statistics

This commit is contained in:
Dmitry Jemerov
2013-06-24 19:24:37 +02:00
parent d397653008
commit eb201faf96
3 changed files with 8 additions and 7 deletions
@@ -27,7 +27,7 @@ import java.util.Map;
public interface StatisticsService {
ExtensionPointName<StatisticsService> EP_NAME = ExtensionPointName.create("com.intellij.statisticsService");
ExtensionPointName<StatisticsServiceEP> EP_NAME = ExtensionPointName.create("com.intellij.statisticsService");
@NonNls String TITLE = "title";
@NonNls String DETAILS = "details";
@@ -21,22 +21,22 @@ import com.intellij.openapi.util.LazyInstance;
import com.intellij.util.KeyedLazyInstance;
import com.intellij.util.xmlb.annotations.Attribute;
public class StatisticsServiceEP<T> extends AbstractExtensionPointBean implements KeyedLazyInstance<T> {
public class StatisticsServiceEP extends AbstractExtensionPointBean implements KeyedLazyInstance<StatisticsService> {
@Attribute("key")
public String key;
@Attribute("implementationClass")
public String implementationClass;
private final LazyInstance<T> myHandler = new LazyInstance<T>() {
private final LazyInstance<StatisticsService> myHandler = new LazyInstance<StatisticsService>() {
@Override
protected Class<T> getInstanceClass() throws ClassNotFoundException {
protected Class<StatisticsService> getInstanceClass() throws ClassNotFoundException {
return findClass(implementationClass);
}
};
@Override
public T getInstance() {
public StatisticsService getInstance() {
return myHandler.getValue();
}
@@ -17,6 +17,7 @@ package com.intellij.internal.statistic.updater;
import com.intellij.internal.statistic.StatisticsUploadAssistant;
import com.intellij.internal.statistic.connect.StatisticsService;
import com.intellij.internal.statistic.connect.StatisticsServiceEP;
import com.intellij.notification.NotificationDisplayType;
import com.intellij.notification.NotificationsConfiguration;
import com.intellij.notification.impl.NotificationsConfigurationImpl;
@@ -71,12 +72,12 @@ public class SendStatisticsProjectComponent implements ProjectComponent {
}
else if (StatisticsUploadAssistant.isSendAllowed() && StatisticsUploadAssistant.isTimeToSend()) {
StatisticsService serviceToUse = null;
StatisticsService[] extensions = StatisticsService.EP_NAME.getExtensions();
StatisticsServiceEP[] extensions = StatisticsService.EP_NAME.getExtensions();
if (extensions.length > 1) {
LOG.warn(String.format("More than one stats service detected (%s). Falling back to the built-in one", Arrays.toString(extensions)));
}
else if (extensions.length == 1) {
serviceToUse = extensions[0];
serviceToUse = extensions[0].getInstance();
}
if (serviceToUse == null) {
serviceToUse = statisticsService;