/** * list up resources recursively under the given base package name * * @param basePackageName * package name to search. e.g. org.xerial.util * @return the list of resources represented as {@link VirtualFile} */ public static List<VirtualFile> listResources(String basePackageName) { return listResources(basePackageName, new ResourceFilter() { public boolean accept(String resourcePath) { return true; } }); }
/** * list up resources recursively under the given base package name * * @param basePackageName * package name to search. e.g. org.xerial.util * @param classLoader * class loader * @return the list of resources represented as {@link VirtualFile} */ public static List<VirtualFile> listResources(String basePackageName, ClassLoader classLoader) { return listResources(classLoader, basePackageName, new ResourceFilter() { public boolean accept(String resourcePath) { return true; } }); }
/** * Lists up all resources satisfying the given resourceFilter from the * current class loader * * @param resourceFilter * @return the list of resources matching the condition specified in the * resourceFilter */ public static List<VirtualFile> listResources(ResourceFilter resourceFilter) { return listResources(Thread.currentThread().getContextClassLoader(), resourceFilter); }
/** * list up resources recursively under the given base package name * * @param basePackageName * package name to search. e.g. org.xerial.util * @return the list of resources represented as {@link VirtualFile} */ public static List<VirtualFile> listResources(String basePackageName, ResourceFilter resourceFilter) { return listResources(Thread.currentThread().getContextClassLoader(), basePackageName, resourceFilter); }
/** * Lists up all resources satisfying the given resourceFilter from the given * current class loader * * @param resourceFilter * @param classLoader * @return the list of resources matching the condition specified in the * resourceFilter */ public static List<VirtualFile> listResources(ClassLoader classLoader, ResourceFilter resourceFilter) { List<URLClassLoader> classLoaderList = getAllAncestorOrSelfClassLoaders(classLoader); ArrayList<VirtualFile> fileList = new ArrayList<VirtualFile>(); for (URLClassLoader cl : classLoaderList) { for (URL url : cl.getURLs()) { fileList.addAll(listResources(url, "", resourceFilter)); } } return fileList; }
List<VirtualFile> classFileList = FileResource.listResources(classLoader, packageName, new ResourceFilter() { public boolean accept(String resourcePath) {
/** * list up resources recursively under the given base package name * * @param classLoader * @param basePackageName * package name to search. e.g. org.xerial.util * @return the list of resources represented as {@link VirtualFile} */ public static List<VirtualFile> listResources(ClassLoader classLoader, String basePackageName, ResourceFilter resourceFilter) { String packagePath = packagePath(basePackageName); List<URL> resourceURLList = getURLListFromAllAncestorOrSelfClassLoaders(classLoader, packagePath); ArrayList<VirtualFile> fileList = new ArrayList<VirtualFile>(); for (URL resourceURL : resourceURLList) { fileList.addAll(listResources(resourceURL, packagePath, resourceFilter)); } return fileList; }
public void addCommandsIn(String packageName, boolean recursive) { List<VirtualFile> classFileList = FileResource.listResources(packageName, new ResourceFilter() { public boolean accept(String resourcePath) { return resourcePath.endsWith(".class"); } }); ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); LinkedHashSet<String> subPackagePath = new LinkedHashSet<String>(); for (VirtualFile vf : classFileList) { String logicalPath = vf.getLogicalPath(); int dot = logicalPath.lastIndexOf("."); if (dot <= 0) continue; if (!recursive && logicalPath.contains("/")) { continue; } String className = packageName + "." + logicalPath.substring(0, dot).replaceAll("/", "."); try { Class< ? > c = Class.forName(className, false, contextClassLoader); addCommand(c); } catch (ClassNotFoundException e) { continue; } } }
List<VirtualFile> scaffoldResourcesList = FileResource.listResources(inputResourcePath);