### Question:
PluginClassLoader extends ClassLoader { @Override protected synchronized Class<?> loadClass(final String name, final boolean resolve) throws ClassNotFoundException { final Class<?> c = findLoadedClass(name); if (c != null) { return c; } final String path = name.replace('.', '/').concat(".class"); if (isEntryInPlugin(path)) { try { return loadClassFromPlugin(name, path); } catch (final IOException e) { throw new ClassNotFoundException("Unable to load class [ " + name + " ] from PluginClassLoader", e); } } return super.loadClass(name, resolve); } PluginClassLoader(final File pluginFile);  PluginClassLoader(final File pluginFile, final ClassLoader parent);  PluginClassLoader(final File pluginFile, final ClassLoader parent, final File tempDirectory); void close(); URL getLocalResource(final String name); @Override URL getResource(final String name);  }### Answer:
@Test public void testPluginClassLoaderLoadsClassFromOuterJar() throws Exception { Class c = pluginClassLoader.loadClass("org.maera.plugin.simpletest.TestClassOne"); assertEquals("org.maera.plugin.simpletest", c.getPackage().getName()); assertEquals("org.maera.plugin.simpletest.TestClassOne", c.getName()); }