protected void addClasspathEntry(ClasspathEntry newEntry) { classpathEntries.add(newEntry); if (newEntry.isJar()) { List<ClasspathEntry> manifestClasspath = newEntry.findManifestClasspathEntries(); for (ClasspathEntry manifestEntry : manifestClasspath) { addClasspathEntry(manifestEntry); } } }
protected void addClasspathEntry(ClasspathEntry newEntry) { classpathEntries.add(newEntry); if (newEntry.isJar()) { List<ClasspathEntry> manifestClasspath = newEntry.findManifestClasspathEntries(); for (ClasspathEntry manifestEntry : manifestClasspath) { addClasspathEntry(manifestEntry); } } }
List<ClasspathEntry> manifestClasspathEntries = new ArrayList<>(); if (isJar()) { JarInputStream jarStream; try {
List<ClasspathEntry> manifestClasspathEntries = new ArrayList<>(); if (isJar()) { JarInputStream jarStream; try {
/** * The contents of a jar are only loaded if accessed the first time. * */ public List<ClasspathResourceVersion> getResourceVersions() throws URISyntaxException, IOException { if (!lazyLoadDone) { if (isClassFolder()) { logger.debug("\nScanning class folder: " + getUrl()); URI uri = new URI(getUrl()); Path start = Paths.get(uri); scanClasspathEntry(start); } else if (isJar()) { logger.debug("\nScanning jar: " + getUrl()); URI uri = new URI("jar:" + getUrl()); try (FileSystem jarFS = FileSystems.newFileSystem(uri, new HashMap<String, String>())) { Path zipInJarPath = jarFS.getPath("/"); scanClasspathEntry(zipInJarPath); } catch (Exception exc) { logger.debug("Could not scan jar: " + getUrl() + " - reason:" + exc.getMessage()); } } lazyLoadDone = true; } return resourceVersions; }
/** * The contents of a jar are only loaded if accessed the first time. * */ public List<ClasspathResourceVersion> getResourceVersions() throws URISyntaxException, IOException { if (!lazyLoadDone) { if (isClassFolder()) { logger.debug("\nScanning class folder: " + getUrl()); URI uri = new URI(getUrl()); Path start = Paths.get(uri); scanClasspathEntry(start); } else if (isJar()) { logger.debug("\nScanning jar: " + getUrl()); URI uri = new URI("jar:" + getUrl()); try (FileSystem jarFS = FileSystems.newFileSystem(uri, new HashMap<String, String>())) { Path zipInJarPath = jarFS.getPath("/"); scanClasspathEntry(zipInJarPath); } catch (Exception exc) { logger.debug("Could not scan jar: " + getUrl() + " - reason:" + exc.getMessage()); } } lazyLoadDone = true; } return resourceVersions; }