docs: protected void downloadPlugin(final PluginCoordinates coordinates, final IAsyncResultHandler<File> handler) {
          if (pluginRepositories.isEmpty()) {
              // Didn't find it - no repositories configured!
              handler.handle(AsyncResultImpl.create((File) null));
              return;
          }
  
          final Iterator<URI> iterator = pluginRepositories.iterator();
          URI repoUrl = iterator.next();
          final IAsyncResultHandler<File> handler2 = new IAsyncResultHandler<File>() {
              @Override
              public void handle(IAsyncResult<File> result) {
                  if (result.isSuccess() && result.getResult() == null && iterator.hasNext()) {
                      downloadFromMavenRepo(coordinates, iterator.next(), this);
                  } else {
                      handler.handle(result);
                  }
              }
          };
          downloadFromMavenRepo(coordinates, repoUrl, handler2);
      }