/** * Loads a module by name (filename) for classLoader * @param name a filename * @return */ public ModuleEntity loadModule(String name, boolean withBytecode) { ModuleEntity entity = findUserModule(name); if (entity == null) return null; classLoader.loadModule(entity, withBytecode); return entity; }
public ModuleEntity removeUserModule(String name) { ModuleEntity userModule = findUserModule(name); if (userModule != null) { moduleMap.remove(name); moduleIndexMap.remove(userModule.getInternalName()); } return userModule; }
protected ModuleEntity _fetch(String name, Map<String, StandaloneLibrary.Module> source) { StandaloneLibrary.Module module = source.get(name); if (module == null) { return null; //throw new CriticalException("Cannot find module of entity: " + name); } if (scope.findUserModule(module.getName()) != null) { return null; } InputStream input = classLoader.getResourceAsStream(module.getInternalName() + ".dump"); if (input == null) { throw new CriticalException("Cannot find resource: " + module.getInternalName() + ".dump"); } ModuleDumper moduleDumper = new ModuleDumper( new Context(new File(module.getInternalName())), env, true ); try { return moduleDumper.load(input); } catch (IOException e) { throw new CriticalException(e); } }
public ModuleEntity importModule(Context context) throws Throwable { String moduleName = context.getModuleName(); ModuleEntity module = moduleName == null ? null : scope.findUserModule(moduleName); if (module == null) { AbstractCompiler compiler = scope.createCompiler(this, context); module = compiler.compile(true); synchronized (scope) { scope.loadModule(module); } } registerModule(module); return module; }
public ModuleEntity importCompiledModule(Context context, boolean debugInformation) throws Throwable { String moduleName = context.getModuleName(); ModuleEntity module = moduleName == null ? null : scope.findUserModule(moduleName); if (module == null) { ModuleDumper moduleDumper = new ModuleDumper(context, this, debugInformation); module = moduleDumper.load(context.getInputStream(getDefaultCharset())); synchronized (scope) { scope.loadModule(module); } } registerModule(module); scope.addUserModule(module); return module; }