### Question:
ScriptModuleLoader { @Nullable public ClassLoader getCompilerPluginClassLoader(String pluginModuleId) { return compilerClassLoaders.get(pluginModuleId); } protected  ScriptModuleLoader(final Set<ScriptCompilerPluginSpec> pluginSpecs,
            final ClassLoader appClassLoader,
            final Set<String> appPackagePaths,
            final Set<ScriptModuleListener> listeners,
            final Path compilationRootDir); synchronized void updateScriptArchives(Set<? extends ScriptArchive> candidateArchives); synchronized void addCompilerPlugin(ScriptCompilerPluginSpec pluginSpec); synchronized void removeScriptModule(ModuleId scriptModuleId); @Nullable ScriptModule getScriptModule(String scriptModuleId); @Nullable ClassLoader getCompilerPluginClassLoader(String pluginModuleId); @Nullable ScriptModule getScriptModule(ModuleId scriptModuleId); Map<ModuleId, ScriptModule> getAllScriptModules(); void addListeners(Set<ScriptModuleListener> listeners);  }### Answer:
@Test public void testCompilerPluginClassloader() throws ModuleLoadException, IOException, ClassNotFoundException { ScriptModuleLoader moduleLoader = new ScriptModuleLoader.Builder() .addPluginSpec(new ScriptCompilerPluginSpec.Builder("mockPlugin") .withPluginClassName(MockScriptCompilerPlugin.class.getName()).build()) .build(); ClassLoader classLoader = moduleLoader.getCompilerPluginClassLoader("mockPlugin"); assertNotNull(classLoader); Class<?> pluginClass = classLoader.loadClass(MockScriptCompilerPlugin.class.getName()); assertNotNull(pluginClass); }