@NotNull File tryDownloadPlugin(@Nullable ProgressIndicator indicator) throws IOException {
    ThreadingAssertions.assertBackgroundThread();
    if (indicator != null) {
      indicator.checkCanceled();
      indicator.setText2(IdeBundle.message("progress.downloading.plugin", getPluginName()));
    }

    LOG.info("downloading plugin " + myPluginName + "(" + myPluginId + ") version " + myPluginVersion + " from " + myPluginUrl);
    MarketplacePluginDownloadService downloader = myDownloadService != null ? myDownloadService : new MarketplacePluginDownloadService();
    return myOldFile != null ?
           downloader.downloadPluginViaBlockMap(myPluginUrl, myOldFile, indicator) :
           downloader.downloadPlugin(myPluginUrl, indicator);
  }
@NotNull File tryDownloadPlugin(@Nullable ProgressIndicator indicator)