public void addImport(Module module) { //if (Utils.isLoggable(Level.INFO)) { // Utils.getDefaultLogger().info("For module" + getName() + " adding new dependent " + module.getName()); //} // TODO: this doesn't expose newly added module to // other modules that depend on this module. // but the notion of adding dependencies at runtime is broken anyway. if (!dependencies.contains(module)) { dependencies.add((ModuleImpl)module); getPrivateClassLoader().addDelegate(module.getClassLoader()); } }
public void addImport(Module module) { //if (Utils.isLoggable(Level.INFO)) { // Utils.getDefaultLogger().info("For module" + getName() + " adding new dependent " + module.getName()); //} // TODO: this doesn't expose newly added module to // other modules that depend on this module. // but the notion of adding dependencies at runtime is broken anyway. if (!dependencies.contains(module)) { dependencies.add((ModuleImpl)module); getPrivateClassLoader().addDelegate(module.getClassLoader()); } }
new Object[] {moduleName}); } else { ClassLoader mcl = module.getClassLoader();
public void run() { try { try { Class driverClass = myModule.getClassLoader().loadClass("org.apache.derby.jdbc.EmbeddedDriver"); myModule.setSticky(true); driverClass.newInstance(); } catch(ClassNotFoundException e) { LogHelper.getDefaultLogger().log(Level.SEVERE, "Cannot load Derby Driver ",e); } catch(java.lang.InstantiationException e) { LogHelper.getDefaultLogger().log(Level.SEVERE, "Cannot instantiate Derby Driver", e); } catch(IllegalAccessException e) { LogHelper.getDefaultLogger().log(Level.SEVERE, "Cannot instantiate Derby Driver", e); } } catch (RuntimeException e) { e.printStackTrace(); } } };
private void createAPIClassLoader() throws IOException { APIModule = mr.getModules(APIExporterModuleName).iterator().next(); assert (APIModule != null); final ClassLoader apiModuleLoader = APIModule.getClassLoader(); /* * We don't directly retrun APIModule's class loader, because * that class loader does not delegate to the parent. Instead, it * relies on OSGi bundle or some such module implementation to load the classes. That behavior is * fine if we want to mimic underlying module system's classloading semantics. But, APIClassLoader has a * slightly different requirement. It has to use classic delegation model as well so that * deployed applications can use classes made available via extension class loader. * Since the parent of bundle classloader will have glassfish launching classes, felix or any other * OSGi framework classes and their dependencies, we don't want to delegate to such a class loader. * Instead, we delegate to JRE's extension class loader if we don't find any class via APIModuleLoader. * With this, user can actually embed a different version of Felix as part of their app. */ theAPIClassLoader = new APIClassLoader(apiModuleLoader, getExtensionClassLoader()); logger.logp(Level.FINE, "APIClassLoaderService", "createAPIClassLoader", "APIClassLoader = {0}", new Object[]{theAPIClassLoader}); }
private void addProvider(Module module) { if (logger.isLoggable(Level.FINE)) logger.fine(" Adding the Provider - verified the module"); ClassLoader mcl = module.getClassLoader(); //get manifest entries and process ModuleDefinition md = module.getModuleDefinition(); Manifest mf = null; if (md != null) { mf = md.getManifest(); } if (mf != null) { processManifest(mf, mcl); } handleFutureStatsProviders(); }
if (!select(m)) continue; // We don't look in unresolved modules if (m == APIModule) continue; // we have already looked up resources in apiModuleLoader enumerations.add(m.getClassLoader().getResources(name));
if ((url = m.getClassLoader().getResource(name)) != null) { return url;
if (m != null) { if(select(m)) { return m.getClassLoader().loadClass(name); // abort search if we fail to load. } else { logger.logp(Level.FINE, "APIClassLoaderServiceImpl$APIClassLoader", "loadClass",
Module m = makeModuleFor(md.getName(), md.getVersion()); delegateModules.add(m); delegateCLs.add(m.getClassLoader());
Module m = makeModuleFor(md.getName(), md.getVersion()); delegateModules.add(m); delegateCLs.add(m.getClassLoader());
for (ModuleDefinition def : defs) { Module module = this.makeModuleFor(def.getName(), def.getVersion()); cl.addDelegate(module.getClassLoader());
for (ModuleDefinition def : defs) { Module module = this.makeModuleFor(def.getName(), def.getVersion()); cl.addDelegate(module.getClassLoader());