private Artifact loadFromJar()

in core/src/main/java/com/spotify/missinglink/ArtifactLoader.java [140:159]


  private Artifact loadFromJar(ArtifactName artifactName, File path) {
    try (JarFile jarFile = new JarFile(path)) {
      Map<ClassTypeDescriptor, DeclaredClass> classes = new HashMap<>();
      Iterable<JarEntry> classFiles =
          getClassesForCurrentJavaVersion(Collections.list(jarFile.entries()));
      for (JarEntry entry : classFiles) {
        try {
          DeclaredClass cl = ClassLoader.load(jarFile.getInputStream(entry));
          classes.put(cl.className(), cl);
        } catch (MissingLinkException e) {
          throw e;
        } catch (Exception e) {
          throw new MissingLinkException("Could not load " + entry.getName() + " from " + path, e);
        }
      }
      return artifact(artifactName, classes);
    } catch (IOException e) {
      throw new RuntimeException("Could not load " + path, e);
    }
  }