diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateChecker.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateChecker.java | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateChecker.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateChecker.java index 354f89c22820..83858cc4fb40 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateChecker.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateChecker.java @@ -239,13 +239,13 @@ public final class UpdateChecker { updateSettings.myOutdatedPlugins.clear(); if (!toUpdate.isEmpty()) { try { - final List<IdeaPluginDescriptor> process = RepositoryHelper.loadPluginsFromRepository(indicator); + final List<IdeaPluginDescriptor> process = RepositoryHelper.loadPluginsFromRepository(indicator, buildNumber); for (IdeaPluginDescriptor loadedPlugin : process) { final PluginId pluginId = loadedPlugin.getPluginId(); final String idString = pluginId.getIdString(); if (!toUpdate.containsKey(idString)) continue; if (!downloaded.containsKey(pluginId)) { - prepareToInstall(PluginDownloader.createDownloader(loadedPlugin), buildNumber, downloaded, incompatiblePlugins, true, indicator); + prepareToInstall(PluginDownloader.createDownloader(loadedPlugin, buildNumber), buildNumber, downloaded, incompatiblePlugins, true, indicator); } } } @@ -376,7 +376,7 @@ public final class UpdateChecker { final List<IdeaPluginDescriptor> descriptors = RepositoryHelper.loadPluginsFromDescription(inputStream, indicator); for (IdeaPluginDescriptor descriptor : descriptors) { ((PluginNode)descriptor).setRepositoryName(host); - prepareToInstall(PluginDownloader.createDownloader(descriptor), buildNumber, downloaded, incompatiblePlugins, collectToUpdate, + prepareToInstall(PluginDownloader.createDownloader(descriptor, buildNumber), buildNumber, downloaded, incompatiblePlugins, collectToUpdate, indicator); } @@ -424,7 +424,7 @@ public final class UpdateChecker { if (progressIndicator != null) { progressIndicator.setText2(finalPluginUrl); } - final PluginDownloader downloader = new PluginDownloader(pluginId, finalPluginUrl, pluginVersion, null, null); + final PluginDownloader downloader = new PluginDownloader(pluginId, finalPluginUrl, pluginVersion, null, null, buildNumber); prepareToInstall(downloader, buildNumber, downloaded, incompatiblePlugins, collectToUpdate, indicator); } catch (IOException e) { @@ -624,11 +624,15 @@ public final class UpdateChecker { urlToCheck = url; } - HttpURLConnection connection = ApplicationManager.getApplication() != null ? - HttpConfigurable.getInstance().openHttpConnection(urlToCheck) : - (HttpURLConnection)new URL(urlToCheck).openConnection(); - connection.setReadTimeout(HttpConfigurable.CONNECTION_TIMEOUT); - connection.setConnectTimeout(HttpConfigurable.CONNECTION_TIMEOUT); + HttpURLConnection connection; + if (ApplicationManager.getApplication() != null) { + connection = HttpConfigurable.getInstance().openHttpConnection(urlToCheck); + } + else { + connection = (HttpURLConnection)new URL(urlToCheck).openConnection(); + connection.setReadTimeout(HttpConfigurable.CONNECTION_TIMEOUT); + connection.setConnectTimeout(HttpConfigurable.CONNECTION_TIMEOUT); + } connection.connect(); inputStreams[0] = connection.getInputStream(); @@ -862,7 +866,7 @@ public final class UpdateChecker { } } - static String getDownloadUrl(IdeaPluginDescriptor descriptor) throws UnsupportedEncodingException { + static String getDownloadUrl(IdeaPluginDescriptor descriptor, @Nullable BuildNumber buildNumber) throws UnsupportedEncodingException { String url = null; if (descriptor instanceof PluginNode) { url = ((PluginNode)descriptor).getDownloadUrl(); @@ -881,11 +885,13 @@ public final class UpdateChecker { String uuid = ApplicationManager.getApplication() == null ? UUID.randomUUID().toString() : getInstallationUID(PropertiesComponent.getInstance()); - String buildNumber = ApplicationManager.getApplication() != null - ? ApplicationInfo.getInstance().getApiVersion() - : ApplicationInfoImpl.getShadowInstance().getBuild().asString(); + String buildNumberAsString = buildNumber != null + ? buildNumber.asString() + : ApplicationManager.getApplication() != null + ? ApplicationInfo.getInstance().getApiVersion() + : ApplicationInfoImpl.getShadowInstance().getBuild().asString(); url = RepositoryHelper.getDownloadUrl() + URLEncoder.encode(descriptor.getPluginId().getIdString(), "UTF8") + - "&build=" + buildNumber + "&uuid=" + URLEncoder.encode(uuid, "UTF8"); + "&build=" + buildNumberAsString + "&uuid=" + URLEncoder.encode(uuid, "UTF8"); } return url; } |