/** * Adds a jar file to be scanned * * @param jar * jar(s) to be added to the scanner * * @return this scanner */ public JarScanner addJar(URL... jar) { return addJar(Arrays.asList(jar)); }
/** * Creates a classloader for testing purposes. The classloader loads the classes from the test jars. * * @param testJars * jar files to be loaded by this classloader. For all packages and classes contained in these jars this * classloader takes precedence over the parent classloader. * @param packages * additional packages for which this classloader should take precedence over the parent classloader */ public TestClassLoader(Collection<URL> testJars, Collection<String> packages, String... excludePackages) { super(getURLs(testJars), getParentClassLoader()); this.packages = Collections.newSetFromMap(new ConcurrentHashMap<>()); this.packages.addAll(packages); this.packages.addAll(new JarScanner().addJar(testJars).ignore(excludePackages).scanPackages()); this.blacklist = Collections.newSetFromMap(new ConcurrentHashMap<>()); this.blacklist.addAll(Arrays.asList(excludePackages)); }