docs: public ArtifactMetadata explodeArtifact(File archiveFile, File metadataFile) throws RepositoryArchiveException {
          String path;
  
          try {
              path = archiveFile.getCanonicalPath();
          } catch (IOException e) {
              throw new RepositoryArchiveException("Failed to get the path for the archive", archiveFile, e);
          }
  
          String zipPath;
          if (metadataFile != null) {
              try {
                  zipPath = metadataFile.getCanonicalPath();
              } catch (IOException e) {
                  throw new RepositoryArchiveException("Failed to get the path for the metadata file", metadataFile, e);
              }
          } else {
              zipPath = path + ".metadata.zip";
          }
  
          File zip = new File(zipPath);
          if (!zip.exists()) {
              return null;
          }
          return explodeZip(zip);
      }