@Override public URL getResource(String name) { return new ClassLoaderUtils(loader, mgmt).getResource(name); }
private void assertLoadSucceeds(ClassLoaderUtils clu, String bundledClassName, Class<?> expectedClass) throws ClassNotFoundException { BundledName className = new BundledName(bundledClassName); Class<?> cls = clu.loadClass(bundledClassName); assertEquals(cls.getName(), className.name); if (expectedClass != null) { assertEquals(cls, expectedClass); } ClassLoader cl = cls.getClassLoader(); BundledName resource = className.toResource(); String bundledResource = resource.toString(); URL resourceUrl = cl.getResource(resource.name); assertEquals(clu.getResource(bundledResource), resourceUrl); assertEquals(clu.getResources(bundledResource), ImmutableList.of(resourceUrl), "Loading with "+clu); BundledName rootResource = new BundledName(resource.bundle, resource.version, "/" + resource.name); String rootBundledResource = rootResource.toString(); assertEquals(clu.getResource(rootBundledResource), resourceUrl); assertEquals(clu.getResources(rootBundledResource), ImmutableList.of(resourceUrl)); }
private void assertLoadFails(ClassLoaderUtils clu, String bundledClassName) { BundledName className = new BundledName(bundledClassName); try { clu.loadClass(bundledClassName); Asserts.shouldHaveFailedPreviously("Using loader " + clu); } catch (ClassNotFoundException e) { Asserts.expectedFailureContains(e, bundledClassName, "not found on the application class path, nor in the bundle white list"); } BundledName resource = className.toResource(); String bundledResource = resource.toString(); assertNull(clu.getResource(bundledResource), resource + " is supposed to fail resource loading, but it was successful"); assertEquals(clu.getResources(bundledResource), ImmutableList.of(), resource + " is supposed to fail resource loading, but it was successful"); }