code: protected void copyBundledPlugin(URL src, String fileName) throws IOException {
          LOGGER.log(FINE, "Copying {0}", src);
          fileName = fileName.replace(".hpi",".jpi"); // normalize fileNames to have the correct suffix
          String legacyName = fileName.replace(".jpi",".hpi");
          long lastModified = getModificationDate(src);
          File file = new File(rootDir, fileName);
  
          // normalization first, if the old file exists.
          rename(new File(rootDir,legacyName),file);
  
          // update file if:
          //  - no file exists today
          //  - bundled version and current version differs (by timestamp).
          if (!file.exists() || file.lastModified() != lastModified) {
              FileUtils.copyURLToFile(src, file);
              file.setLastModified(getModificationDate(src));
              // lastModified is set for two reasons:
              // - to avoid unpacking as much as possible, but still do it on both upgrade and downgrade
              // - to make sure the value is not changed after each restart, so we can avoid
              // unpacking the plugin itself in ClassicPluginStrategy.explode
          }
  
          // Plugin pinning has been deprecated.
          // See https://groups.google.com/d/msg/jenkinsci-dev/kRobm-cxFw8/6V66uhibAwAJ
      }
docs: Copies the bundled plugin from the given URL to the destination of the given file name (like 'abc.jpi'),
  with a reasonable up-to-date check. A convenience method to be used by the {@link #loadBundledPlugins()}.