code: @CheckForNull
      /*package*/ JSONArray getPlatformPluginList() {
          Jenkins.get().checkPermission(Jenkins.ADMINISTER);
          JSONArray initialPluginList = null;
          updateSiteList: for (UpdateSite updateSite : Jenkins.get().getUpdateCenter().getSiteList()) {
              String updateCenterJsonUrl = updateSite.getUrl();
              String suggestedPluginUrl = updateCenterJsonUrl.replace("/update-center.json", "/platform-plugins.json");
              try {
                  URLConnection connection = ProxyConfiguration.open(new URL(suggestedPluginUrl));
                  
                  try {
                      if(connection instanceof HttpURLConnection) {
                          int responseCode = ((HttpURLConnection)connection).getResponseCode();
                          if(HttpURLConnection.HTTP_OK != responseCode) {
                              throw new HttpRetryException("Invalid response code (" + responseCode + ") from URL: " + suggestedPluginUrl, responseCode);
                          }
                      }
                      
                      String initialPluginJson = IOUtils.toString(connection.getInputStream(), "utf-8");
                      initialPluginList = JSONArray.fromObject(initialPluginJson);
                      break updateSiteList;
                  } catch(Exception e) {
                      // not found or otherwise unavailable
                      LOGGER.log(Level.FINE, e.getMessage(), e);
                      continue updateSiteList;
                  }
              } catch(Exception e) {
                  LOGGER.log(Level.FINE, e.getMessage(), e);
              }
          }
          if (initialPluginList == null) {
              // fall back to local file
              try {
                  ClassLoader cl = getClass().getClassLoader();
                  URL localPluginData = cl.getResource("jenkins/install/platform-plugins.json");
                  String initialPluginJson = IOUtils.toString(localPluginData.openStream(), "utf-8");
                  initialPluginList =  JSONArray.fromObject(initialPluginJson);
              } catch (Exception e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
          return initialPluginList;
      }
docs: Gets the suggested plugin list from the update sites, falling back to a local version
  @return JSON array with the categorized plugin list