public ScanParams in(Iterable<String> packages) { return in(U.arrayOf(String.class, packages)); }
public static ScanParams in(String... packages) { return new ScanParams().in(packages); }
@SuppressWarnings("unchecked") public static synchronized List<String> getEntityTypes(String packages[], Class<?>... entities) { List<String> entityTypes = Scan.annotated(Entity.class).in(packages).getAll(); for (Class<?> entity : entities) { String type = entity.getName(); if (!entityTypes.contains(type)) { entityTypes.add(type); } } if (!entityTypes.isEmpty()) { Log.info("!Found " + entityTypes.size() + " JPA Entities"); } return entityTypes; }
static synchronized List<Class<?>> findBeans(String... packages) { if (U.isEmpty(packages)) { packages = path(); } return Scan.annotated(IoC.ANNOTATIONS).in(packages).loadAll(); }
private boolean processMetadata(ClassMetadata meta) { boolean processed = false; if (U.notEmpty(meta.typesToManage)) { manage(meta.typesToManage); processed = true; } if (U.notEmpty(meta.packagesToScan)) { List<Class<?>> classes = Scan.annotated(IoC.ANNOTATIONS).in(meta.packagesToScan).loadAll(); if (U.notEmpty(classes)) { manage(classes); processed = true; } } return processed; }
private static List<String> scanClasses(ScanParams params) { String[] pkgs = params.in(); String rootPackage = ClasspathUtil.getRootPackage(); if (U.isEmpty(pkgs)) { pkgs = rootPackage != null ? new String[]{rootPackage} : new String[]{""}; } long startingAt = U.time(); String regex = params.matching(); Pattern pattern = U.notEmpty(regex) ? Pattern.compile(regex) : null; if (regex != null) { Log.info("Scanning classpath", "!annotated", Msc.annotations(params.annotated()), "!packages", Arrays.toString(pkgs), "!matching", regex); } else { Log.info("Scanning classpath", "!annotated", Msc.annotations(params.annotated()), "!packages", Arrays.toString(pkgs)); } Set<String> classpath = U.notEmpty(params.classpath()) ? U.set(params.classpath()) : ClasspathUtil.getClasspath(); AtomicInteger searched = new AtomicInteger(); Set<String> classes = U.set(); for (String pkg : pkgs) { classes.addAll(retrieveClasses(classpath, pkg, params.annotated(), params.bytecodeFilter(), pattern, params.classLoader(), searched)); } List<String> classList = U.list(classes); long timeMs = U.time() - startingAt; Log.info("Finished classpath scan", "time", Msc.maybeMasked(timeMs) + "ms", "searched", searched.get(), "!found", Msc.classNames(classList)); return classList; }
static synchronized List<Class<?>> findBeans(String... packages) { if (U.isEmpty(packages)) { packages = path(); } return Scan.annotated(IoC.ANNOTATIONS).in(packages).loadAll(); }
private boolean processMetadata(ClassMetadata meta) { boolean processed = false; if (U.notEmpty(meta.typesToManage)) { manage(meta.typesToManage); processed = true; } if (U.notEmpty(meta.packagesToScan)) { List<Class<?>> classes = Scan.annotated(IoC.ANNOTATIONS).in(meta.packagesToScan).loadAll(); if (U.notEmpty(classes)) { manage(classes); processed = true; } } return processed; }