/** * Recursively lists the contents of the referenced directory. Directories are * excluded from the result. Supported protocols include {@code file} and * {@code jar}. * * @param directory The directory whose contents should be listed. * @return A collection of {@link URL}s representing the directory's contents. * @see #listContents(URL, boolean, boolean) */ public static Collection<URL> listContents(final URL directory) { return listContents(directory, true, true); }
/** * Recursively lists the contents of the referenced directory. Directories are * excluded from the result. Supported protocols include {@code file} and * {@code jar}. * * @param directory The directory whose contents should be listed. * @return A collection of {@link URL}s representing the directory's contents. * @see #listContents(URL, boolean, boolean) */ public static Collection<URL> listContents(final URL directory) { return listContents(directory, true, true); }
/** Scans for annotations files in every resource on the classpath. */ public Set<String> getAnnotationFiles() throws IOException { final HashSet<String> files = new HashSet<>(); for (final String prefix : new String[] { PREFIX, LEGACY_PREFIX }) { final Enumeration<URL> directories = Thread.currentThread().getContextClassLoader().getResources(prefix); while (directories.hasMoreElements()) { final URL url = directories.nextElement(); for (final URL annotationIndexURL : FileUtils.listContents(url)) { String string = annotationIndexURL.toString(); if (string.endsWith("/")) { continue; } final int length = string.length(); add(files, PREFIX + string.substring(string.lastIndexOf('/', length - 1) + 1, length)); } } } return files; }
/** Scans for annotations files in every resource on the classpath. */ public Set<String> getAnnotationFiles() throws IOException { final HashSet<String> files = new HashSet<>(); for (final String prefix : new String[] { PREFIX, LEGACY_PREFIX }) { final Enumeration<URL> directories = Thread.currentThread().getContextClassLoader().getResources(prefix); while (directories.hasMoreElements()) { final URL url = directories.nextElement(); for (final URL annotationIndexURL : FileUtils.listContents(url)) { String string = annotationIndexURL.toString(); if (string.endsWith("/")) { continue; } final int length = string.length(); add(files, PREFIX + string.substring(string.lastIndexOf('/', length - 1) + 1, length)); } } } return files; }
private static void getResources(final Pattern pattern, final Map<String, URL> result, final URL base) { final String prefix = urlPath(base); if (prefix == null) return; // unsupported base URL for (final URL url : FileUtils.listContents(base)) { final String s = urlPath(url); if (s == null || !s.startsWith(prefix)) continue; if (pattern == null || pattern.matcher(s).matches()) { // this resource matches the pattern final String key = urlPath(s.substring(prefix.length())); if (key != null) result.put(key, url); } } }
/** Helper method of {@link #findResources(String, Iterable)}. */ private static void getResources(final Pattern pattern, final Map<String, URL> result, final URL base) { final String prefix = urlPath(base); if (prefix == null) return; // unsupported base URL for (final URL url : FileUtils.listContents(base)) { final String s = urlPath(url); if (s == null || !s.startsWith(prefix)) continue; if (pattern == null || pattern.matcher(s).matches()) { // this resource matches the pattern final String key = urlPath(s.substring(prefix.length())); if (key != null) result.put(key, url); } } }
/** Helper method of {@link #findResources(String, Iterable)}. */ private static void getResources(final Pattern pattern, final Map<String, URL> result, final URL base) { final String prefix = urlPath(base); if (prefix == null) return; // unsupported base URL for (final URL url : FileUtils.listContents(base)) { final String s = urlPath(url); if (s == null || !s.startsWith(prefix)) continue; if (pattern == null || pattern.matcher(s).matches()) { // this resource matches the pattern final String key = urlPath(s.substring(prefix.length())); if (key != null) result.put(key, url); } } }
for (final URL url : FileUtils.listContents(directories.nextElement())) { final String urlString = url.toString(); if (urlString.endsWith("/")) {
for (final URL url : FileUtils.listContents(directories.nextElement())) { final String urlString = url.toString(); if (urlString.endsWith("/")) {
for (final URL url : FileUtils.listContents(resource)) {
for (final URL url : FileUtils.listContents(resource)) {
for (final URL url : FileUtils.listContents(base)) { final String path = url.toString().substring(baseLength); if (!prefixPattern.matcher(path).matches()) {
for (final URL url : FileUtils.listContents(pomBase, true, true)) { if (url.toExternalForm().endsWith("/pom.xml")) { return new POM(url);
for (final URL url : FileUtils.listContents(pomBase, true, true)) { if (url.toExternalForm().endsWith("/pom.xml")) { return new POM(url);
for (final URL url : FileUtils.listContents(pomBase, true, true)) { if (url.toExternalForm().endsWith("/pom.xml")) { return new POM(url);
for (final URL url : FileUtils.listContents(pomBase, true, true)) { if (url.toExternalForm().endsWith("/pom.xml")) { return new POM(url);
Collection<URL> urls = FileUtils.listContents(nonExisting.toURI().toURL()); assertNotNull(urls); assertEquals(0, urls.size()); final Collection<URL> setTT = FileUtils.listContents(url, true, true); final URL[] listTT = setTT.toArray(new URL[setTT.size()]); assertArrayEquals(new URL[] { helloURL, rockURL, foxURL, dogURL }, listTT); final Collection<URL> setTF = FileUtils.listContents(url, true, false); final URL[] listTF = setTF.toArray(new URL[setTF.size()]); assertArrayEquals( final Collection<URL> setFT = FileUtils.listContents(url, false, true); final URL[] listFT = setFT.toArray(new URL[setFT.size()]); assertArrayEquals(new URL[] { helloURL, rockURL }, listFT); final Collection<URL> setFF = FileUtils.listContents(url, false, false); final URL[] listFF = setFF.toArray(new URL[setFF.size()]); assertArrayEquals(new URL[] { subSubURL, helloURL, rockURL }, listFF);