code: public static Manifest getManifest(VirtualFile archive) throws IOException {
          if (archive == null) {
              throw MESSAGES.nullArgument("archive");
          }
          VirtualFile manifest = archive.getChild(JarFile.MANIFEST_NAME);
          if (manifest == null || !manifest.exists()) {
              if (VFSLogger.ROOT_LOGGER.isTraceEnabled()) {
                  VFSLogger.ROOT_LOGGER.tracef("Can't find manifest for %s", archive.getPathName());
              }
              return null;
          }
          return readManifest(manifest);
      }
docs: Get a manifest from a virtual file, assuming the virtual file is the root of an archive
  
  @param archive the root the archive
  @return the manifest or null if not found
  @throws IOException              if there is an error reading the manifest or the virtual file is closed
  @throws IllegalArgumentException for a null archive