private String classNameFromFile(String classFileName) { // convert /a/b.class to a.b String s = replaceFileSeparators(cutOffExtension(classFileName)); if (s.startsWith(".")) return s.substring(1); return s; }
public List<Class<?>> find() { return findClassesInClasspath(getClasspath()); }
private List<Class<?>> findClassesInClasspath(String classPath) { return findClassesInRoots(splitClassPath(classPath)); }
private void gatherClasses(List<Class<?>> classes, Iterable<String> filenamesIterator) { for (String fileName : filenamesIterator) { if (!isClassFile(fileName)) { continue; } String className = classNameFromFile(fileName); if (!tester.acceptClassName(className)) { continue; } if (!tester.acceptInnerClass() && isInnerClass(className)) { continue; } try { Class<?> clazz = Class.forName(className); if (clazz == null || clazz.isLocalClass() || clazz.isAnonymousClass()) { continue; } if (tester.acceptClass(clazz)) { classes.add(clazz); } } catch (Exception | Error ex) { // There might be a problem loading the class (like classpath problem, // ClassNotFoundException, NoClassDefFoundError etc) // We'll want to know about that to avoid classes to be accidentally // dropped out of suites logger.error("Couldn't load class " + className, ex); } } }
private void gatherClassesInRoot(File classRoot, List<Class<?>> classes) { Iterable<String> relativeFilenames = new NullIterator<String>(); if (tester.searchInJars() && isJarFile(classRoot)) { try { relativeFilenames = new JarFilenameIterator(classRoot); } catch (IOException e) { // Don't iterate unavailable ja files e.printStackTrace(); } } else if (classRoot.isDirectory()) { relativeFilenames = new RecursiveFilenameIterator(classRoot); } gatherClasses(classes, relativeFilenames); }
import org.junit.extensions.cpsuite.ClassTester; import org.junit.extensions.cpsuite.ClasspathClassesFinder; public static List<Class<?>> getClasses(final Package pkg, final boolean includeChildPackages) { return new ClasspathClassesFinder(new ClassTester() { @Override public boolean searchInJars() { return true; } @Override public boolean acceptInnerClass() { return false; } @Override public boolean acceptClassName(String name) { return name.startsWith(pkg.getName()) && (includeChildPackages || name.indexOf(".", pkg.getName().length()) != -1); } @Override public boolean acceptClass(Class<?> c) { return true; } }, System.getProperty("java.class.path")).find(); }
private List<Class<?>> findClassesInRoots(List<String> roots) { List<Class<?>> classes = new ArrayList<Class<?>>(100); for (String root : roots) { gatherClassesInRoot(new File(root), classes); } return classes; }
private String getClasspath() { String classPath = System.getProperty(getClasspathProperty()); if (classPath == null) classPath = System.getProperty(FALLBACK_CLASSPATH_PROPERTY); return classPath; }
private void gatherClasses(List<Class<?>> classes, Iterable<String> filenamesIterator) { for (String fileName : filenamesIterator) { if (!isClassFile(fileName)) { continue; String className = classNameFromFile(fileName); if (!tester.acceptClassName(className)) { continue; if (!tester.acceptInnerClass() && isInnerClass(className)) { continue;
private void gatherClassesInRoot(File classRoot, List<Class<?>> classes) { Iterable<String> relativeFilenames = new NullIterator<String>(); if (tester.searchInJars() && isJarFile(classRoot)) { try { relativeFilenames = new JarFilenameIterator(classRoot); } catch (IOException e) { // Don't iterate unavailable ja files e.printStackTrace(); } } else if (classRoot.isDirectory()) { relativeFilenames = new RecursiveFilenameIterator(classRoot); } gatherClasses(classes, relativeFilenames); }
public ClassesFinder create(boolean searchInJars, String[] filterPatterns, SuiteType[] suiteTypes, Class<?>[] baseTypes, Class<?>[] excludedBaseTypes, String classpathProperty) { ClassTester tester = new ClasspathSuiteTester(searchInJars, filterPatterns, suiteTypes, baseTypes, excludedBaseTypes); return new ClasspathClassesFinder(tester, classpathProperty); }
private List<Class<?>> findClassesInRoots(List<String> roots) { List<Class<?>> classes = new ArrayList<Class<?>>(100); for (String root : roots) { gatherClassesInRoot(new File(root), classes); } return classes; }
private String getClasspath() { String classPath = System.getProperty(getClasspathProperty()); if (classPath == null) classPath = System.getProperty(FALLBACK_CLASSPATH_PROPERTY); return classPath; }
private void gatherClasses(List<Class<?>> classes, Iterable<String> filenamesIterator) { for (String fileName : filenamesIterator) { if (!isClassFile(fileName)) { continue; String className = classNameFromFile(fileName); if (!tester.acceptClassName(className)) { continue; if (!tester.acceptInnerClass() && isInnerClass(className)) { continue;
private String classNameFromFile(String classFileName) { // convert /a/b.class to a.b String s = replaceFileSeparators(cutOffExtension(classFileName)); if (s.startsWith(".")) return s.substring(1); return s; }
public List<Class<?>> find() { return findClassesInClasspath(getClasspath()); }
private List<Class<?>> findClassesInClasspath(String classPath) { return findClassesInRoots(splitClassPath(classPath)); }
private void gatherClassesInRoot(File classRoot, List<Class<?>> classes) { Iterable<String> relativeFilenames = new NullIterator<String>(); if (tester.searchInJars() && isJarFile(classRoot)) { try { relativeFilenames = new JarFilenameIterator(classRoot); } catch (IOException e) { // Don't iterate unavailable ja files e.printStackTrace(); } } else if (classRoot.isDirectory()) { relativeFilenames = new RecursiveFilenameIterator(classRoot); } gatherClasses(classes, relativeFilenames); }
public ClassesFinder create(boolean searchInJars, String[] filterPatterns, SuiteType[] suiteTypes, Class<?>[] baseTypes, Class<?>[] excludedBaseTypes, String classpathProperty) { ClassTester tester = new ClasspathSuiteTester(searchInJars, filterPatterns, suiteTypes, baseTypes, excludedBaseTypes); return new ClasspathClassesFinder(tester, classpathProperty); }
private List<Class<?>> findClassesInRoots(List<String> roots) { List<Class<?>> classes = new ArrayList<Class<?>>(100); for (String root : roots) { gatherClassesInRoot(new File(root), classes); } return classes; }