public static void identifyCyclicDependency(ModuleImpl m, Logger logger) { StringBuffer tree = new StringBuffer(); tree.append(m.getName()); Vector<Module> traversed = new Vector<Module>(); boolean success = traverseAndFind(m, m, traversed); if (success) { traversed.remove(0); for (Module mod : traversed) { tree.append("-->" + mod.getName()); } tree.append("-->" + m.getName()); logger.log(Level.SEVERE, "Cyclic dependency : " + tree.toString()); } }
public static void identifyCyclicDependency(ModuleImpl m, Logger logger) { StringBuffer tree = new StringBuffer(); tree.append(m.getName()); Vector<Module> traversed = new Vector<Module>(); boolean success = traverseAndFind(m, m, traversed); if (success) { traversed.remove(0); for (Module mod : traversed) { tree.append("-->" + mod.getName()); } tree.append("-->" + m.getName()); logger.log(Level.SEVERE, "Cyclic dependency : " + tree.toString()); } }
public String toString() { StringBuffer s= new StringBuffer(); s.append("ModuleClassLoader(name=").append(module.getName()); s.append(", parent=").append(super.toString()); s.append(",init=").append(initialized); s.append(",URls[]="); for (URL url : getURLs()) { s.append(url).append(","); } s.append(")"); for (ClassLoader surrogate : super.getDelegates()) { s.append("\n ref : ").append(surrogate.toString()); } return s.toString(); }
public String toString() { StringBuffer s= new StringBuffer(); s.append("ModuleClassLoader(name=").append(module.getName()); s.append(", parent=").append(super.toString()); s.append(",init=").append(initialized); s.append(",URls[]="); for (URL url : getURLs()) { s.append(url).append(","); } s.append(")"); for (ClassLoader surrogate : super.getDelegates()) { s.append("\n ref : ").append(surrogate.toString()); } return s.toString(); }
public void dumpState(PrintStream writer) { writer.println("Module " + getName() + " Dump"); writer.println("State " + getState()); for (Module imported : getImports()) { writer.println("Depends on " + imported.getName()); } if (publicCL!=null) { ClassLoaderFacade cloader = publicCL.get(); cloader.dumpState(writer); } }
public void dumpState(PrintStream writer) { writer.println("Module " + getName() + " Dump"); writer.println("State " + getState()); for (Module imported : getImports()) { writer.println("Depends on " + imported.getName()); } if (publicCL!=null) { ClassLoaderFacade cloader = publicCL.get(); cloader.dumpState(writer); } }
public Iterable<Class> getProvidersClass(String name) { List<Class> r = serviceClasses.get(name); if(r!=null) return r; // the worst case scenario in the race situation is we end up creating the same list twice, // which is not a big deal. for( String provider : getMetadata().getEntry(name).providerNames) { if(r==null) r = new ArrayList<Class>(); try { r.add(getPrivateClassLoader().loadClass(provider)); } catch (ClassNotFoundException e) { LogHelper.getDefaultLogger().log(Level.SEVERE, "Failed to load "+provider+" from "+getName(),e); } } if(r==null) r = Collections.emptyList(); serviceClasses.put(name, r); return r; }
public Iterable<Class> getProvidersClass(String name) { List<Class> r = serviceClasses.get(name); if(r!=null) return r; // the worst case scenario in the race situation is we end up creating the same list twice, // which is not a big deal. for( String provider : getMetadata().getEntry(name).providerNames) { if(r==null) r = new ArrayList<Class>(); try { r.add(getPrivateClassLoader().loadClass(provider)); } catch (ClassNotFoundException e) { LogHelper.getDefaultLogger().log(Level.SEVERE, "Failed to load "+provider+" from "+getName(),e); } } if(r==null) r = Collections.emptyList(); serviceClasses.put(name, r); return r; }
static private boolean traverseAndFind(Module toTraverse, ModuleImpl toFind, Vector<Module> traversed) { traversed.add(toTraverse); for (ModuleDependency md : toTraverse.getModuleDefinition().getDependencies()) { ModulesRegistry registry = toTraverse.getRegistry(); for (Module mod : registry.getModules()) { if (mod.getName().equals(md.getName())) { if (mod!=null) { if (mod.getName().equals(toFind.getName())) { return true; } if (traverseAndFind(mod, toFind, traversed)) { return true; } } } } } traversed.remove(toTraverse); return false; } }
static private boolean traverseAndFind(Module toTraverse, ModuleImpl toFind, Vector<Module> traversed) { traversed.add(toTraverse); for (ModuleDependency md : toTraverse.getModuleDefinition().getDependencies()) { ModulesRegistry registry = toTraverse.getRegistry(); for (Module mod : registry.getModules()) { if (mod.getName().equals(md.getName())) { if (mod!=null) { if (mod.getName().equals(toFind.getName())) { return true; } if (traverseAndFind(mod, toFind, traversed)) { return true; } } } } } traversed.remove(toTraverse); return false; } }