docs: @Override
    public ExplodedPlugin explode(PluginInfo pluginInfo) {
      File toDir = new File(fs.getDeployedPluginsDir(), pluginInfo.getKey());
      try {
        forceMkdir(toDir);
        org.sonar.core.util.FileUtils.cleanDirectory(toDir);
  
        File jarSource = pluginInfo.getNonNullJarFile();
        File jarTarget = new File(toDir, jarSource.getName());
  
        FileUtils.copyFile(jarSource, jarTarget);
        ZipUtils.unzip(jarSource, toDir, newLibFilter());
        ExplodedPlugin explodedPlugin = explodeFromUnzippedDir(pluginInfo.getKey(), jarTarget, toDir);
        pluginFileSystem.addInstalledPlugin(pluginInfo, jarTarget);
        return explodedPlugin;
      } catch (Exception e) {
        throw new IllegalStateException(String.format(
          "Fail to unzip plugin [%s] %s to %s", pluginInfo.getKey(), pluginInfo.getNonNullJarFile().getAbsolutePath(), toDir.getAbsolutePath()), e);
      }
    }