LibraryJarUsagesCollector - runWhenProjectIsInitialized is not needed for StartupActivity; settings may be downloaded in dumb mode

This commit is contained in:
Ivan Chirkov
2014-10-20 18:23:01 +02:00
parent d0ad0bd5fd
commit bcf1a4d6fa
2 changed files with 7 additions and 9 deletions
@@ -19,9 +19,9 @@ import com.intellij.facet.frameworks.SettingsConnectionService;
import com.intellij.internal.statistic.StatisticsUploadAssistant;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.startup.StartupActivity;
import com.intellij.openapi.startup.StartupManager;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.net.HttpConfigurable;
import com.intellij.util.xmlb.XmlSerializationException;
@@ -36,7 +36,7 @@ import java.net.URL;
/**
* @author Ivan Chirkov
*/
public class LibraryJarStatisticsService extends SettingsConnectionService implements StartupActivity {
public class LibraryJarStatisticsService extends SettingsConnectionService implements StartupActivity, DumbAware {
private static final String FILE_NAME = "statistics/library-jar-statistics.xml";
private static final String DEFAULT_SETTINGS_URL = "http://www.jetbrains.com/idea/download-assistant.xml";
@@ -103,16 +103,12 @@ public class LibraryJarStatisticsService extends SettingsConnectionService imple
public void runActivity(@NotNull Project project) {
final Application application = ApplicationManager.getApplication();
if (application.isUnitTestMode() || application.isHeadlessEnvironment()) return;
StartupManager.getInstance(project).runWhenProjectIsInitialized(new Runnable() {
ApplicationManager.getApplication().executeOnPooledThread(new Runnable() {
@Override
public void run() {
ApplicationManager.getApplication().executeOnPooledThread(new Runnable() {
@Override
public void run() {
getInstance().getTechnologyDescriptors();
}
});
getInstance().getTechnologyDescriptors();
}
});
;
}
}
@@ -20,6 +20,7 @@ import com.intellij.openapi.util.JDOMUtil;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.net.HttpConfigurable;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
@@ -70,6 +71,7 @@ public abstract class SettingsConnectionService {
Map<String, String> settings = ContainerUtil.newLinkedHashMap();
try {
String url = getSettingsUrl();
HttpConfigurable.getInstance().prepareURL(url);
String text = FileUtil.loadTextAndClose(getStream(new URL(url)));
if (text.startsWith("<html>") || text.startsWith("<!DOCTYPE html>")) {
LOG.info("HTML text obtained from " + url + ": " + StringUtil.first(text, 300, true));