public DependencyKey(Dependency d) { type = d.getType();
List<Module> l = null; for (Dependency dep : m1.getDependenciesArray()) { if (dep.getType() == Dependency.TYPE_REQUIRES) { List<Module> providers = providersOf.get(dep.getName()); else if (dep.getType() == Dependency.TYPE_MODULE) { String cnb = (String) parseCodeName(dep.getName())[0]; Module m2 = modulesByName.get(cnb);
Set<Module> s = new HashSet<Module>(); for (Dependency dep : m.getDependenciesArray()) { boolean needsProvider = dep.getType() == Dependency.TYPE_REQUIRES || considerNeeds && dep.getType() == Dependency.TYPE_NEEDS; if (m instanceof NetigsoModule && dep.getType() == Dependency.TYPE_RECOMMENDS) { needsProvider = true; s.addAll(providers); } else if (dep.getType() == Dependency.TYPE_MODULE) { String cnb = (String)parseCodeName(dep.getName())[0]; Module m2 = modulesByName.get(cnb);
for (int i = 0; i < dependencies.length; i++) { Dependency dep = dependencies[i]; if (dep.getType() == Dependency.TYPE_MODULE) { if (Util.parseCodeName(dep.getName())[0].equals(m.getCodeNameBase())) { dep.getType() == Dependency.TYPE_REQUIRES || dep.getType() == Dependency.TYPE_NEEDS || dep.getType() == Dependency.TYPE_RECOMMENDS ) {
/** * Transitively fill out a set of modules with all of its module dependencies. * Dependencies on missing modules are silently ignored, but dependencies * on present but uninstallable (problematic) modules are included. * @param mgr the manager * @param modules a mutable set of modules * @since JST-PENDING: used from NbInstaller */ public static void transitiveClosureModuleDependencies(ModuleManager mgr, Set<Module> modules) { Set<Module> nue = null; // Set of newly appended modules while (nue == null || !nue.isEmpty()) { nue = new HashSet<Module>(); for (Module m: modules) { for (Dependency dep : m.getDependenciesArray()) { if (dep.getType() != Dependency.TYPE_MODULE) { continue; } Module other = mgr.get((String)parseCodeName(dep.getName())[0]); if (other != null && !modules.contains(other)) { nue.add(other); } } } modules.addAll(nue); } }
public DependencyKey(Dependency d) { type = d.getType(); switch (type) { case TYPE_MODULE:
public DependencyKey(Dependency d) { type = d.getType(); switch (type) { case TYPE_MODULE:
private final Set<Module> calculateParents(Module m) throws NumberFormatException, IOException { // Calculate the parents to initialize the classloader with. Dependency[] dependencies = m.getDependenciesArray(); Set<Module> res = new HashSet<Module>(dependencies.length * 4 / 3 + 1); for (int i = 0; i < dependencies.length; i++) { Dependency dep = dependencies[i]; if (dep.getType() != Dependency.TYPE_MODULE) { // Token providers do *not* go into the parent classloader // list. The providing module must have been turned on first. // But you cannot automatically access classes from it. continue; } String name = (String) Util.parseCodeName(dep.getName())[0]; Module parent = get(name); // Should not happen: if (parent == null) { throw new IOException("Parent " + name + " not found!"); // NOI18N } res.add(parent); } return res; }
private void addToJaveleonDisableList(Set<Module> willDisable, Module m) { if (willDisable.contains(m)) { return; } willDisable.add(m); for (Module other : modules) { if (! other.isEnabled() || willDisable.contains(other)) { continue; } Dependency[] depenencies = other.getDependenciesArray(); for (int i = 0; i < depenencies.length; i++) { Dependency dep = depenencies[i]; if (dep.getType() == Dependency.TYPE_MODULE) { if (Util.parseCodeName(dep.getName())[0].equals(m.getCodeNameBase())) { addToJaveleonDisableList(willDisable, other); break; } } } } }
if (dep.getType() != Dependency.TYPE_PACKAGE) { throw new IllegalArgumentException("Not a package dependency"); // NOI18N
/** Get API module dependency, if any, for a module. * @param dependencies module dependencies * @param cnb code name base of API module * @return a fake spec version (0.x.y if x.y w/ no major release, else r.x.y); or null if no dep * @since JST-PENDING: used from NbInstaller */ public static SpecificationVersion getModuleDep(Set<Dependency> dependencies, String cnb) { for (Dependency d : dependencies) { if (d.getType() == Dependency.TYPE_MODULE && d.getComparison() == Dependency.COMPARE_SPEC) { try { Object[] p = parseCodeName(d.getName()); if (!p[0].equals(cnb)) { continue; } int rel = ((Integer)p[1]).intValue(); // ignore any end range, consider only start if (rel == -1) rel = 0; // XXX will this lead to incorrect semantics? return new SpecificationVersion("" + rel + "." + d.getVersion()); // NOI18N } catch (NumberFormatException nfe) { Util.err.log(Level.WARNING, null, nfe); return null; } } } return null; }
if (dep.getType() == Dependency.TYPE_MODULE) { String codeNameBase = (String)Util.parseCodeName(dep.getName())[0]; Module other = get(codeNameBase); dep.getType() == Dependency.TYPE_REQUIRES || dep.getType() == Dependency.TYPE_NEEDS || dep.getType() == Dependency.TYPE_RECOMMENDS ) { Set<Module> providers = getProvidersOf().get(dep.getName()); if (providers == null) { assert dep.getType() == Dependency.TYPE_RECOMMENDS : "Should have found a provider of " + dep; continue; assert foundOne || dep.getType() == Dependency.TYPE_RECOMMENDS : "Should have found a nonproblematic provider of " + dep + " among " + providers + " with willEnable=" + willEnable + " mightEnable=" + mightEnable;
if (dep.getType() == Dependency.TYPE_MODULE && dep.getComparison() == Dependency.COMPARE_IMPL && dep.getName().equals(parent.getCodeName())) {
for (int i = 0; i < dependencies.length; i++) { Dependency dep = dependencies[i]; if (dep.getType() == Dependency.TYPE_MODULE) { String codeNameBase = (String)Util.parseCodeName(dep.getName())[0]; Module other = get(codeNameBase); } else if (dep.getType() == Dependency.TYPE_REQUIRES || dep.getType() == Dependency.TYPE_NEEDS) { Set<Module> providers = getProvidersOf().get(dep.getName()); if (providers == null) throw new IllegalStateException("Should have found a provider of: " + dep.getName()); // NOI18N
Dependency[] deps = m.getDependenciesArray(); for (int i = 0; i < deps.length; i++) { if (deps[i].getType() == Dependency.TYPE_MODULE && deps[i].getComparison() == Dependency.COMPARE_IMPL && deps[i].getName().equals(parent.getCodeName())) {
for (int i = 0; i < depenencies.length; i++) { Dependency dep = depenencies[i]; if (dep.getType() == Dependency.TYPE_MODULE) { if (Util.parseCodeName(dep.getName())[0].equals(m.getCodeNameBase())) { dep.getType() == Dependency.TYPE_REQUIRES || dep.getType() == Dependency.TYPE_NEEDS ) { if (m.provides(dep.getName())) {
/** Check whether a simple dependency is met. * Only applicable to Java dependencies. */ static boolean checkJavaDependency(Dependency dep) throws IllegalArgumentException { // Note that "any" comparison is not possible for this type. if (dep.getType() == Dependency.TYPE_JAVA) { if (dep.getName().equals(Dependency.JAVA_NAME)) { if (dep.getComparison() == Dependency.COMPARE_SPEC) { return new SpecificationVersion(dep.getVersion()).compareTo(Dependency.JAVA_SPEC) <= 0; } else { return dep.getVersion().equals(Dependency.JAVA_IMPL); } } else { if (dep.getComparison() == Dependency.COMPARE_SPEC) { return new SpecificationVersion(dep.getVersion()).compareTo(Dependency.VM_SPEC) <= 0; } else { return dep.getVersion().equals(Dependency.VM_IMPL); } } } else { throw new IllegalArgumentException(); } }
mP.put(probed, probs); for (Dependency dep : probed.getDependenciesArray()) { if (dep.getType() == Dependency.TYPE_PACKAGE) { } else if (dep.getType() == Dependency.TYPE_MODULE) { } else if (dep.getType() == Dependency.TYPE_REQUIRES || (withNeeds && dep.getType() == Dependency.TYPE_NEEDS)) { } else if (dep.getType() == Dependency.TYPE_JAVA) {
for (int i = 0; i < dependencies.length; i++) { Dependency dep = dependencies[i]; if (dep.getType() != Dependency.TYPE_PACKAGE) { continue;