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);
}
}