public void testJar() throws Exception { File jar = toFile(this.archive, ".jar"); ClassLoader cl = new URLClassLoader(new URL[]{jar.toURI().toURL()}, parent); ClasspathResolver resolver = new ClasspathResolver(cl); // No recurse List<JavaFileObject> classes = collect(Utils.list(resolver.resolve("java.util", false))); assertEquals(2, classes.size()); assertEndsWith("/HashMap.class", classes.get(0).getName()); assertEndsWith("/Map.class", classes.get(1).getName()); // Recurse classes = collect(Utils.list(resolver.resolve("java.util", true))); assertEquals(3, classes.size()); assertEndsWith("/ConcurrentHashMap.class", classes.get(0).getName()); assertEndsWith("/HashMap.class", classes.get(1).getName()); assertEndsWith("/Map.class", classes.get(2).getName()); }
public void testDir() throws Exception { File root = toExploded(archive, ""); ClassLoader cl = new URLClassLoader(new URL[]{root.toURI().toURL()}, parent); ClasspathResolver resolver = new ClasspathResolver(cl); // No recurse List<JavaFileObject> classes = collect(Utils.list(resolver.resolve("java.util", false))); assertEquals(2, classes.size()); assertEndsWith("/HashMap.class", classes.get(0).getName()); assertEndsWith("/Map.class", classes.get(1).getName()); // Recurse classes = collect(Utils.list(resolver.resolve("java.util", true))); assertEquals(3, classes.size()); assertEndsWith("/ConcurrentHashMap.class", classes.get(0).getName()); assertEndsWith("/HashMap.class", classes.get(1).getName()); assertEndsWith("/Map.class", classes.get(2).getName()); }
public void testNestedJar() throws Exception { final File war = toFile(ShrinkWrap.create(WebArchive.class).addAsLibrary(archive), ".jar"); ClassLoader cl = new ClassLoader(parent) { @Override List<JavaFileObject> classes = collect(Utils.list(resolver.resolve("java.util", false))); assertEquals(2, classes.size()); assertEndsWith("/HashMap.class", classes.get(0).getName()); assertEndsWith("/Map.class", classes.get(1).getName()); assertTrue(bytes.length > 0); classes = collect(Utils.list(resolver.resolve("java.util", true))); assertEquals(3, classes.size()); assertEndsWith("/ConcurrentHashMap.class", classes.get(0).getName()); assertEndsWith("/HashMap.class", classes.get(1).getName()); assertEndsWith("/Map.class", classes.get(2).getName());