/** created new SubTypesScanner. * @param excludeObjectClass if false, include direct {@link Object} subtypes in results. */ public SubTypesScanner(boolean excludeObjectClass) { if (excludeObjectClass) { filterResultsBy(new FilterBuilder().exclude(Object.class.getName())); //exclude direct Object subtypes } }
/** created new SubTypesScanner. * @param excludeObjectClass if false, include direct {@link Object} subtypes in results. */ public SubTypesScanner(boolean excludeObjectClass) { if (excludeObjectClass) { filterResultsBy(new FilterBuilder().exclude(Object.class.getName())); //exclude direct Object subtypes } }
excludes.forEach(excl -> { if (excl != null) { filterBuilder.exclude(excl);
/** * created new SubTypesScanner. * * @param excludeObjectClass if false, include direct {@link Object} subtypes in results. */ public PkgTypesScanner(boolean excludeObjectClass) { if (excludeObjectClass) { filterResultsBy(new FilterBuilder().exclude(Object.class.getName())); //exclude direct Object subtypes } }
/** created new SubTypesScanner. * @param excludeObjectClass if false, include direct {@link Object} subtypes in results. */ public SubTypesScanner(boolean excludeObjectClass) { if (excludeObjectClass) { filterResultsBy(new FilterBuilder().exclude(Object.class.getName())); //exclude direct Object subtypes } }
/** created new SubTypesScanner. * @param excludeObjectClass if false, include direct {@link Object} subtypes in results. */ public SubTypesScanner(boolean excludeObjectClass) { if (excludeObjectClass) { filterResultsBy(new FilterBuilder().exclude(Object.class.getName())); //exclude direct Object subtypes } }
public SubTypesScanner(boolean excludeObjectClass) { if (excludeObjectClass) { filterResultsBy(new FilterBuilder().exclude(Object.class.getName())); //exclude direct Object subtypes } }
@Override protected Set<Class<?>> scan(Application application) { final ConfigurationBuilder config = new ConfigurationBuilder(); final Set<String> acceptablePackages = new HashSet<>(); getConfiguration().map(cfg -> cfg.getResourcePackages()).orElse(Collections.emptySet()).forEach(pkg -> { if (!isIgnored(pkg)) { acceptablePackages.add(pkg); config.addUrls(ClasspathHelper.forPackage(pkg)); } }); config.filterInputsBy(new FilterBuilder().exclude(".*json").exclude(".*yaml")); config.setScanners(new ResourcesScanner(), new TypeAnnotationsScanner(), new SubTypesScanner()); final Reflections reflections; reflections = new Reflections(config); Set<Class<?>> classes = reflections.getTypesAnnotatedWith(javax.ws.rs.Path.class); classes.addAll(reflections.getTypesAnnotatedWith(SwaggerDefinition.class)); Set<Class<?>> output = new HashSet<>(); for (Class<?> cls : classes) { for (String pkg : acceptablePackages) { if (cls.getPackage().getName().startsWith(pkg)) { output.add(cls); } } } return output; }
public DefaultOpFactory() { opClazzes = new HashMap<>(); Reflections f = new Reflections(new ConfigurationBuilder().filterInputsBy( new FilterBuilder().include(FilterBuilder.prefix("org.nd4j")).exclude("^(?!.*\\.class$).*$") //Consider only .class files (to avoid debug messages etc. on .dlls, etc .exclude("^(?!org\\.nd4j\\.linalg\\.api\\.ops).*") //Exclude any not in the ops directory ) .setUrls(ClasspathHelper.forPackage("org.nd4j")).setScanners(new SubTypesScanner())); Set<Class<? extends Op>> clazzes = f.getSubTypesOf(Op.class); for (Class<? extends Op> clazz : clazzes) { if (Modifier.isAbstract(clazz.getModifiers()) || clazz.isInterface()) continue; try { opClazzes.put(clazz.newInstance().name(), clazz); } catch (Exception e) { throw new RuntimeException(e); } } }
new ConfigurationBuilder().filterInputsBy(new FilterBuilder().exclude("^(?!.*\\.class$).*$") //Consider only .class files (to avoid debug messages etc. on .dlls, etc .exclude("^org.nd4j.*").exclude("^org.bytedeco.*") //JavaCPP .exclude("^com.fasterxml.*")//Jackson .exclude("^org.apache.*") //Apache commons, Spark, log4j etc .exclude("^org.projectlombok.*").exclude("^com.twelvemonkeys.*") .exclude("^org.joda.*").exclude("^org.slf4j.*").exclude("^com.google.*") .exclude("^org.reflections.*").exclude("^ch.qos.*") //Logback ).addUrls(scanUrls).setScanners(new DataVecSubTypesScanner(interfaces, classesList))); org.reflections.Store store = reflections.getStore();
.exclude("^(?!.*\\.class$).*$") //Consider only .class files (to avoid debug messages etc. on .dlls, etc .exclude("^org.nd4j.*").exclude("^org.datavec.*").exclude("^org.bytedeco.*") //JavaCPP .exclude("^com.fasterxml.*")//Jackson .exclude("^org.apache.*") //Apache commons, Spark, log4j etc .exclude("^org.projectlombok.*").exclude("^com.twelvemonkeys.*").exclude("^org.joda.*") .exclude("^org.slf4j.*").exclude("^com.google.*").exclude("^org.reflections.*") .exclude("^ch.qos.*") //Logback ).addUrls(scanUrls).setScanners(new DL4JSubTypesScanner(interfaces, classesList))); org.reflections.Store store = reflections.getStore();
private Predicate<String> buildPackagePredicates() { FilterBuilder filterBuilder = new FilterBuilder(); // Include package names for (String packageName : options.getModelPackages()) { filterBuilder.include(FilterBuilder.prefix(packageName)); } // Exclude class names for (String excludedClassName : options.getExcludedClasses()) { filterBuilder.exclude("^" + StringUtils.replace(excludedClassName, ".", "\\.") + "\\.class$"); } return filterBuilder; } }
private Predicate<String> buildPackagePredicates() { FilterBuilder filterBuilder = new FilterBuilder(); // Include package names for (String packageName : options.getModelPackages()) { filterBuilder.include(FilterBuilder.prefix(packageName)); } // Exclude class names for (String excludedClassName : options.getExcludedClasses()) { filterBuilder.exclude("^" + StringUtils.replace(excludedClassName, ".", "\\.") + "\\.class$"); } return filterBuilder; } }
protected void loadCompressors() { /* We scan classpath for NDArrayCompressor implementations and add them one by one to codecs map */ codecs = new ConcurrentHashMap<>(); Set<Class<? extends NDArrayCompressor>> classes = new Reflections(new ConfigurationBuilder() .filterInputsBy(new FilterBuilder().include(FilterBuilder.prefix("org.nd4j")) .exclude("^(?!.*\\.class$).*$")) //Consider only .class files (to avoid debug messages etc. on .dlls, etc .setUrls(ClasspathHelper.forPackage("org.nd4j")).setScanners(new SubTypesScanner())) .getSubTypesOf(NDArrayCompressor.class); for (Class<? extends NDArrayCompressor> impl : classes) { if (Modifier.isAbstract(impl.getModifiers()) || impl.isInterface()) continue; try { NDArrayCompressor compressor = impl.newInstance(); codecs.put(compressor.getDescriptor().toUpperCase(), compressor); } catch (InstantiationException i) { ; // we need catch there, to avoid exceptions at abstract classes } catch (Exception e) { throw new RuntimeException(e); } } }
private static Set<Class<?>> getClasses(ClassLoader classLoader, String packageName) { List<ClassLoader> classLoadersList = new LinkedList<>(); classLoadersList.add(ClasspathHelper.contextClassLoader()); classLoadersList.add(ClasspathHelper.staticClassLoader()); if (classLoader != null) { classLoadersList.add(classLoader); } classLoaders = classLoadersList.toArray(new ClassLoader[0]); FilterBuilder filter = new FilterBuilder() .include(FilterBuilder.prefix(packageName)); if (!isAllowFindingInternalClasses()) { filter.exclude(FilterBuilder.prefix(URM_PACKAGE)); } Reflections reflections = new Reflections(new ConfigurationBuilder() .setScanners(new SubTypesScanner(false /* don't exclude Object.class */), new ResourcesScanner()) .setUrls(ClasspathHelper.forPackage(packageName, classLoaders)) .filterInputsBy(filter) .addClassLoaders(classLoadersList) ); Multimap<String, String> mmap = reflections.getStore().get(SubTypesScanner.class.getSimpleName()); return Sets.newHashSet(ReflectionUtils.forNames(mmap.values(), classLoadersList.toArray(new ClassLoader[0]))); }
private static Collection<? extends Class<?>> getPackageTypes(String packageToPase, Collection<URL> urls) { Set<Class<?>> classes = new HashSet<>(); Reflections reflections = new Reflections(new ConfigurationBuilder() .setScanners(new SubTypesScanner(false /* exclude Object.class */), new ResourcesScanner(), new TypeElementsScanner()) .setUrls(urls) .filterInputsBy(new FilterBuilder().include(FilterBuilder.prefix(packageToPase)).exclude("java.*"))); Set<String> types; types = reflections.getStore().get("TypeElementsScanner").keySet(); for (String type: types) { Class<?> aClass = TypesHelper.loadClass(type, CLASS_LOADER); boolean wantedElement = StringUtils.startsWith(type, packageToPase); if (null != aClass && wantedElement) { logger.log(Level.INFO, "looking up for type: " + type); classes.add(aClass); } } return classes; }
private static Reflections setupReflections() { final List<ClassLoader> classLoadersList = new LinkedList<ClassLoader>(); classLoadersList.add(ClasspathHelper.contextClassLoader()); classLoadersList.add(ClasspathHelper.staticClassLoader()); final FilterBuilder filter = new FilterBuilder() .include(FilterBuilder.prefix("com.io7m.jcamera")) .exclude(FilterBuilder.prefix("com.io7m.jcamera.tests")); final Collection<URL> urls = ClasspathHelper.forClassLoader(classLoadersList .toArray(new ClassLoader[0])); return new Reflections(new ConfigurationBuilder() .setScanners( new SubTypesScanner(false /* don't exclude Object.class */), new ResourcesScanner()) .setUrls(urls) .filterInputsBy(filter)); }