}
@Override
public final Module installModule(ClassLoader classLoader, Resource resource, Dictionary<String, String> headers, Attachable context) throws ModuleException {
Attachable appcontext = context != null ? context : new AttachableSupport();
AbstractModule module = createModule(classLoader, resource, headers, appcontext);
if (getModule(module.getIdentity()) != null)
throw new ModuleException("Module already installed: " + module);
modules.put(module.getModuleId(), module);