public void scanArchives(URL... urls) { for (URL url : urls) { Filter filter = new Filter() { public boolean accepts(String filename) { if (filename.endsWith(".class")) { if (filename.startsWith("/")) filename = filename.substring(1); if (!ignoreScan(filename.replace('/', '.'))) return true; // System.out.println("IGNORED: " + filename); } return false; } }; try { StreamIterator it = IteratorFactory.create(url, filter); InputStream stream; while ((stream = it.next()) != null) scanClass(stream); } catch (Exception e) { e.printStackTrace(); } } }
/** * Scan a url that represents an "archive" this is a classpath directory or jar file * * @param urls variable list of URLs to scan as archives * @throws IOException */ public void scanArchives(URL... urls) throws IOException { for (URL url : urls) { Filter filter = new Filter() { public boolean accepts(String filename) { if (filename.endsWith(".class")) { if (filename.startsWith("/")) filename = filename.substring(1); if (!ignoreScan(filename.replace('/', '.'))) return true; //System.out.println("IGNORED: " + filename); } return false; } }; StreamIterator it = IteratorFactory.create(url, filter); InputStream stream; while ((stream = it.next()) != null) scanClass(stream); } }
while ((stream = it.next()) != null) scanClass(stream);
private static void scanURLs(URL[] urls, ServletContext servletContext) throws PragmatachException { try { if (null != servletContext) { final PluginFilter pluginFilter = new PluginFilter(); if ((null != urls) && (urls.length > 0)) { for (final URL url : urls) { if (null != url) { final StreamIterator streamIterator = IteratorFactory.create(url, pluginFilter); InputStream inputStream; while (null != (inputStream = streamIterator.next())) { final PluginDescriptor plugin = new PluginDescriptor(url, inputStream, servletContext); logger.info("Found plugin: " + plugin.getName()); plugins.put(plugin.getName(), plugin); inputStream.close(); } } } } } } catch (final Exception e) { throw new PragmatachException("Exception in scanURLs", e); } }