public Dynamic(Logger logger, ClassLoader baseClassLoader, ReadFileSystem<S> source) { super(logger); // this.classLoader = null; this.baseClassLoader = baseClassLoader; this.classPathLoader = new ParentJarClassLoader(baseClassLoader); this.scanner = FileSystemScanner.createHashing(source); this.snapshot = scanner.take(); this.classPath = null; this.failed = false; }
public Dynamic(Logger logger, ClassLoader baseClassLoader, ReadFileSystem<S> source) { super(logger); // this.classLoader = null; this.baseClassLoader = baseClassLoader; this.classPathLoader = new ParentJarClassLoader(baseClassLoader); this.scanner = FileSystemScanner.createHashing(source); this.snapshot = scanner.take(); this.classPath = null; this.failed = false; }
@Test public void testLoadingFromAncestor() throws Exception { ClassLoader cl = new ParentJarClassLoader(new URLClassLoader(new URL[0], effectiveLoader)); // We can load from file assertSame(cl.loadClass(Dev.class.getName()), effectiveLoader.loadClass(Dev.class.getName())); URL classesResource = cl.getResource("classes_resource"); assertNotNull(classesResource); assertEquals(Collections.singletonList(classesResource), Tools.list(cl.getResources("classes_resource"))); // We can load from jar assertSame(effectiveLoader.loadClass(Lib.class.getName()), cl.loadClass(Lib.class.getName())); URL libResource = cl.getResource("lib_resource"); assertNotNull(libResource); assertEquals("lib_resource_value", Tools.read(libResource)); assertEquals(Collections.singletonList(libResource), Tools.list(cl.getResources("lib_resource"))); } }
@Test public void testLoadingFromAncestor() throws Exception { ClassLoader cl = new ParentJarClassLoader(new URLClassLoader(new URL[0], effectiveLoader)); // We can load from file assertSame(cl.loadClass(Dev.class.getName()), effectiveLoader.loadClass(Dev.class.getName())); URL classesResource = cl.getResource("classes_resource"); assertNotNull(classesResource); assertEquals(Collections.singletonList(classesResource), Tools.list(cl.getResources("classes_resource"))); // We can load from jar assertSame(effectiveLoader.loadClass(Lib.class.getName()), cl.loadClass(Lib.class.getName())); URL libResource = cl.getResource("lib_resource"); assertNotNull(libResource); assertEquals("lib_resource_value", Tools.read(libResource)); assertEquals(Collections.singletonList(libResource), Tools.list(cl.getResources("lib_resource"))); } }
@Test public void testLoadingLoadingFromParent() throws Exception { // We cannot load from file ClassLoader cl = new ParentJarClassLoader(effectiveLoader); try { cl.loadClass(Dev.class.getName()); fail(); } catch (ClassNotFoundException e) { } URL classesResource = cl.getResource("classes_resource"); assertNull(classesResource); assertFalse(cl.getResources("classes_resource").hasMoreElements()); assertEquals(Collections.emptyList(), Tools.list(cl.getResources("classes_resource"))); // We can load from jar assertSame(effectiveLoader.loadClass(Lib.class.getName()), cl.loadClass(Lib.class.getName())); URL libResource = cl.getResource("lib_resource"); assertNotNull(libResource); assertEquals("lib_resource_value", Tools.read(libResource)); Tools.list(cl.getResources("lib_resource").hasMoreElements()); assertEquals(Collections.singletonList(libResource), Tools.list(cl.getResources("lib_resource"))); }
@Test public void testLoadingLoadingFromParent() throws Exception { // We cannot load from file ClassLoader cl = new ParentJarClassLoader(effectiveLoader); try { cl.loadClass(Dev.class.getName()); fail(); } catch (ClassNotFoundException e) { } URL classesResource = cl.getResource("classes_resource"); assertNull(classesResource); assertFalse(cl.getResources("classes_resource").hasMoreElements()); assertEquals(Collections.emptyList(), Tools.list(cl.getResources("classes_resource"))); // We can load from jar assertSame(effectiveLoader.loadClass(Lib.class.getName()), cl.loadClass(Lib.class.getName())); URL libResource = cl.getResource("lib_resource"); assertNotNull(libResource); assertEquals("lib_resource_value", Tools.read(libResource)); Tools.list(cl.getResources("lib_resource").hasMoreElements()); assertEquals(Collections.singletonList(libResource), Tools.list(cl.getResources("lib_resource"))); }