private Class<?> safeForName(String className) { return ClassPathUtils.safeClassForName(ClassPathUtilsTest.class.getClassLoader(), className); }
/** * Return the classes from the given package and subpackages using the supplied classloader * * @param classLoader classloader to be used * @param pkg package to scan * @return set of found classes * @throws IOException */ public static Set<Class<?>> scanPackage(ClassLoader classLoader, Package pkg) throws IOException { return scanPackage(classLoader, pkg.getName()); }
private void scanPackages(String... packages) { if (packages == null) { return; } for (String pkg : packages) { try { for (Class<?> cl : ClassPathUtils.scanPackage(classLoader, pkg)) { handleClass(cl); } } catch (IOException e) { throw new QueryException(e); } } }
/** * Return the classes from the given package and subpackages using the supplied classloader * * @param classLoader classloader to be used * @param pkg package to scan * @return set of found classes * @throws IOException */ public static Set<Class<?>> scanPackage(ClassLoader classLoader, String pkg) throws IOException { Reflections reflections = new Reflections(new ConfigurationBuilder() .addUrls(ClasspathHelper.forPackage(pkg, classLoader)) .addClassLoader(classLoader) .setScanners(new SubTypesScanner(false))); Set<Class<?>> classes = new HashSet<Class<?>>(); for (String typeNames : reflections.getStore().get(SubTypesScanner.class.getSimpleName()).values()) { Class<?> clazz = safeClassForName(classLoader, typeNames); if (clazz != null) { classes.add(clazz); } } return classes; }
@Test public void scanPackage() throws IOException { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); Set<Class<?>> classes = ClassPathUtils.scanPackage(classLoader, SomeClass.class.getPackage()); assertFalse(classes.isEmpty()); }
private Class<?> safeForName(String className) { return ClassPathUtils.safeClassForName(ClassPathUtilsTest.class.getClassLoader(), className); }
@Test public void scanPackage_check_initialized() throws IOException { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); Set<Class<?>> classes = ClassPathUtils.scanPackage(classLoader, getClass().getPackage()); assertFalse(classes.isEmpty()); assertEquals("XXX", SomeOtherClass2.property); }
@Test public void scanPackage() throws IOException { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); Set<Class<?>> classes = ClassPathUtils.scanPackage(classLoader, SomeClass.class.getPackage()); assertFalse(classes.isEmpty()); }
@Test public void scanPackage_check_initialized() throws IOException { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); Set<Class<?>> classes = ClassPathUtils.scanPackage(classLoader, getClass().getPackage()); assertFalse(classes.isEmpty()); assertEquals("XXX", SomeOtherClass2.property); }