checkCodeName(name, true); checkCodeName(name.substring(0, idx), false); checkCodeName(name.substring(idx + 1, name.length() - 1), false); } else { checkCodeName(name, false); checkCodeName(name, false); } else if (type == Dependency.TYPE_NEEDS) { if (comparison != Dependency.COMPARE_ANY) { checkCodeName(name, false); } else if (type == Dependency.TYPE_RECOMMENDS) { if (comparison != Dependency.COMPARE_ANY) { checkCodeName(name, false); } else { throw new IllegalArgumentException("unknown type"); // NOI18N Dependency nue = new Dependency(type, name, comparison, version); DependencyKey key = new DependencyKey(nue);
public Set<Dependency> getModuleDependencies() { if (moduleDependencies != null) { return Dependency.create(Dependency.TYPE_MODULE, moduleDependencies); } else { return Collections.emptySet(); } }
/** 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(); } }
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())) { impldep = true;
Set<Dependency> openideDeps = Dependency.create(Dependency.TYPE_IDE, attr.getValue("OpenIDE-Module-IDE-Dependencies")); // NOI18N if (!openideDeps.isEmpty()) { String name = d.getName(); if (!name.startsWith("IDE/")) { throw new IllegalStateException("Weird IDE dep: " + name); // NOI18N deps.addAll(Dependency.create(Dependency.TYPE_MODULE, "org.openide/" + name.substring(4) + " > " + d.getVersion())); // NOI18N if (deps.size() != 1) { throw new IllegalStateException("Should be singleton: " + deps); // NOI18N deps.addAll(Dependency.create(Dependency.TYPE_JAVA, attr.getValue("OpenIDE-Module-Java-Dependencies"))); // NOI18N deps.addAll(Dependency.create(Dependency.TYPE_MODULE, attr.getValue("OpenIDE-Module-Module-Dependencies"))); // NOI18N String pkgdeps = attr.getValue("OpenIDE-Module-Package-Dependencies"); // NOI18N if (pkgdeps != null) { deps.addAll(Dependency.create(Dependency.TYPE_PACKAGE, pkgdeps)); // NOI18N deps.addAll(Dependency.create(Dependency.TYPE_REQUIRES, attr.getValue("OpenIDE-Module-Requires"))); // NOI18N deps.addAll(Dependency.create(Dependency.TYPE_NEEDS, attr.getValue("OpenIDE-Module-Needs"))); // NOI18N deps.addAll(Dependency.create(Dependency.TYPE_RECOMMENDS, attr.getValue("OpenIDE-Module-Recommends"))); // NOI18N forModule.refineDependencies(deps); return deps.toArray(new Dependency[deps.size()]);
/** 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 && dep.getComparison() == Dependency.COMPARE_IMPL && dep.getName().equals(parent.getCodeName())) { implDep = true; break;
for (int i = 0; i < dependencies.length; i++) { Dependency dep = dependencies[i]; if (dep.getType() != Dependency.TYPE_PACKAGE) { continue;
public DependencyKey(Dependency d) { type = d.getType(); switch (type) { case TYPE_MODULE: case TYPE_IDE: String codeName = d.getName(); int idx = codeName.lastIndexOf('/'); if (idx == -1) { String pkgName = d.getName(); idx = pkgName.indexOf('['); if (idx != -1) { default: name = d.getName(); break;
if (dep.getType() != Dependency.TYPE_PACKAGE) { throw new IllegalArgumentException("Not a package dependency"); // NOI18N throw new IllegalArgumentException("Not a package-accessible classloader: " + cl); // NOI18N String name = dep.getName(); String version = dep.getVersion(); int comparison = dep.getComparison(); String packageName, sampleName; int idx = name.indexOf('[');
checkCodeName (name, true); if (name.indexOf('-') != -1 && comparison == Dependency.COMPARE_IMPL) { throw new IllegalArgumentException("Cannot have an implementation dependency on a ranged release version: " + onedep); // NOI18N if (idx != -1) { if (idx > 0) { checkCodeName(name.substring(0, idx), false); checkCodeName(name.substring(idx + 1, name.length() - 1), false); } else { checkCodeName(name, false); throw new IllegalArgumentException("Cannot give a comparison for a token requires dep: " + body); // NOI18N checkCodeName(name, false); } else { throw new IllegalArgumentException("unknown type"); // NOI18N Dependency nue = new Dependency(type, name, comparison, version); DependencyKey key = new DependencyKey(nue); if (depsByKey.containsKey(key)) {
private static String[] parseFriends(final String friends) { Set<String> set = new HashSet<String>(); StringTokenizer tok = new StringTokenizer(friends, ", "); // NOI18N while (tok.hasMoreTokens()) { String piece = tok.nextToken(); if (piece.indexOf('/') != -1) { throw new IllegalArgumentException("May specify only module code name bases in OpenIDE-Module-Friends, not major release versions: " + piece); // NOI18N } // Indirect way of checking syntax: Dependency.create(Dependency.TYPE_MODULE, piece); // OK, add it. set.add(piece); } if (set.isEmpty()) { throw new IllegalArgumentException("Empty OpenIDE-Module-Friends: " + friends); // NOI18N } return set.toArray(new String[set.size()]); }
public DependencyKey(Dependency d) { type = d.getType(); switch (type) { case TYPE_MODULE: case TYPE_IDE: String codeName = d.getName(); int idx = codeName.lastIndexOf('/'); if (idx == -1) { String pkgName = d.getName(); idx = pkgName.indexOf('['); if (idx != -1) { default: name = d.getName(); break;
mP.put(probed, probs); for (Dependency dep : probed.getDependenciesArray()) { if (dep.getType() == Dependency.TYPE_PACKAGE) { } else if (dep.getType() == Dependency.TYPE_MODULE) { Object[] depParse = Util.parseCodeName(dep.getName()); String codeNameBase = (String)depParse[0]; int relVersionMin = (depParse[1] != null) ? ((Integer)depParse[1]).intValue() : -1; if (dep.getComparison() == Dependency.COMPARE_IMPL && ! Utilities.compareObjects(dep.getVersion(), if (dep.getComparison() == Dependency.COMPARE_SPEC && new SpecificationVersion(dep.getVersion()).compareTo( otherSpec) > 0) { if (dep.getComparison() == Dependency.COMPARE_IMPL) { throw new IllegalStateException("No such thing as ranged impl dep"); // NOI18N if (dep.getComparison() == Dependency.COMPARE_SPEC && new SpecificationVersion(dep.getVersion()).compareTo( otherSpec) > 0) { } else if (dep.getType() == Dependency.TYPE_REQUIRES || (withNeeds && dep.getType() == Dependency.TYPE_NEEDS)) { String token = dep.getName(); Set<Module> providers = getProvidersOf().get(token);
checkCodeName (name, true); if (name.indexOf('-') != -1 && comparison == Dependency.COMPARE_IMPL) { throw new IllegalArgumentException("Cannot have an implementation dependency on a ranged release version: " + onedep); // NOI18N if (idx != -1) { if (idx > 0) { checkCodeName(name.substring(0, idx), false); checkCodeName(name.substring(idx + 1, name.length() - 1), false); } else { checkCodeName(name, false); throw new IllegalArgumentException("Cannot give a comparison for a token requires dep: " + body); // NOI18N checkCodeName(name, false); } else { throw new IllegalArgumentException("unknown type"); // NOI18N Dependency nue = new Dependency(type, name, comparison, version); DependencyKey key = new DependencyKey(nue); if (depsByKey.containsKey(key)) {
if (piece.endsWith(".*")) { // NOI18N String pkg = piece.substring(0, piece.length() - 2); Dependency.create(Dependency.TYPE_MODULE, pkg); if (pkg.lastIndexOf('/') != -1) { throw new IllegalArgumentException("Illegal OpenIDE-Module-Public-Packages: " + exportsS); // NOI18N } else if (piece.endsWith(".**")) { // NOI18N String pkg = piece.substring(0, piece.length() - 3); Dependency.create(Dependency.TYPE_MODULE, pkg); if (pkg.lastIndexOf('/') != -1) { throw new IllegalArgumentException("Illegal OpenIDE-Module-Public-Packages: " + exportsS); // NOI18N
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 ) { if (m.provides(dep.getName())) { continue FIND_AUTOLOADS;