try { transitivelyResolveFailures.addAll(revisions); interimResults = new ResolverImpl(logger).resolve(this); applyInterimResultToWiringCopy(interimResults); if (DEBUG_ROOTS) {
@SuppressWarnings("unused") private static void dumpResourcePkgMap( ResolveContext rc, Map<Resource, Packages> resourcePkgMap) { System.out.println("+++RESOURCE PKG MAP+++"); for (Entry<Resource, Packages> entry : resourcePkgMap.entrySet()) { dumpResourcePkgs(rc, entry.getKey(), entry.getValue()); } }
private static Wire createWire(Requirement requirement, Candidates allCandidates) { Capability cand = allCandidates.getFirstCandidate(requirement); if (cand == null) { return null; } return new WireImpl( getDeclaredResource(requirement.getResource()), getDeclaredRequirement(requirement), getDeclaredResource(cand.getResource()), getDeclaredCapability(cand)); }
private static Map<Resource, List<Wire>> populateDynamicWireMap( ResolveContext rc, Resource resource, Requirement dynReq, Map<Resource, List<Wire>> wireMap, Candidates allCandidates) { wireMap.put(resource, Collections.<Wire>emptyList()); List<Wire> packageWires = new ArrayList<Wire>(); // Get the candidates for the current dynamic requirement. // Record the dynamic candidate. Capability dynCand = allCandidates.getFirstCandidate(dynReq); if (!rc.getWirings().containsKey(dynCand.getResource())) { populateWireMap(rc, dynCand.getResource(), wireMap, allCandidates); } packageWires.add( new WireImpl( resource, dynReq, getDeclaredResource(dynCand.getResource()), getDeclaredCapability(dynCand))); wireMap.put(resource, packageWires); return wireMap; }
Map<Resource, List<Wire>> wireMap, Candidates allCandidates) Resource unwrappedResource = getDeclaredResource(resource); if (!rc.getWirings().containsKey(unwrappedResource) && !wireMap.containsKey(unwrappedResource)) populateWireMap(rc, cand.getResource(), wireMap, allCandidates); provider = getDeclaredCapability(cand).getResource(); } else { provider = getDeclaredResource(cand.getResource()); getDeclaredRequirement(req), provider, getDeclaredCapability(cand)); if (req.getNamespace().equals(PackageNamespace.PACKAGE_NAMESPACE)) if (!isPayload(req)) getDeclaredResource(fragment), req, unwrappedResource, && !wireMap.containsKey(fragment)) Wire wire = createWire(req, allCandidates); if (wire != null)
for (Capability candSourceCap : getPackageSources(session, mergeCap, resourcePkgMap)) if (uses == null) uses = parseUses(s); session.getUsesCache().put(s, uses); addUsedBlame(usedPkgBlames, blame.m_cap, blameReqs2, matchingCap); mergeUses(session, current, currentPkgs, blame.m_cap, blameReqs2, matchingCap, resourcePkgMap, allCandidates, cycleMap); addUsedBlame(usedPkgBlames, blame.m_cap, blameReqs, matchingCap); mergeUses(session, current, currentPkgs, blame.m_cap, blameReqs, matchingCap, resourcePkgMap, allCandidates, cycleMap);
if (!isCompatible(exportBlame, usedBlames.m_cap, resourcePkgMap)) rethrow = permuteUsedBlames(session, rethrow, allCandidates, resource, pkgName, null, usedBlames, permRef1, permRef2, mutated); if (!isCompatible(requirementBlames, usedBlames.m_cap, resourcePkgMap)) rethrow = permuteUsedBlames(session, rethrow, allCandidates, resource, pkgName, requirementBlame, usedBlames, permRef1, permRef2, mutated); rethrow = checkPackageSpaceConsistency( session, cap.getResource(), allCandidates, false, resourcePkgMap, resultCache);
calculatePackageSpaces(executor, session, allCandidates, hosts.values()); ResolutionError error = null; for (Entry<Resource, Resource> entry : hosts.entrySet()) ResolutionError rethrow = checkPackageSpaceConsistency( session, usesPermutations, importPermutations, entry.getValue(), allCandidates, dynamic, resourcePkgMap, resultCache);
calculatePackageSpaces(session, allCandidates.getWrappedHost(host), allCandidates, resourcePkgMap, new HashMap(), new HashSet()); checkDynamicPackageSpaceConsistency(session, allCandidates.getWrappedHost(host), allCandidates, resourcePkgMap, new HashMap()); ? null : exReqs.iterator().next(); Resource faultyResource = (faultyReq == null) ? null : getDeclaredResource(faultyReq.getResource()); wireMap = populateDynamicWireMap(rc, host, dynamicReq, resourcePkgMap, wireMap, allCandidates);
calculateExportedPackages(session.getContext(), resource, allCandidates, resourcePkgMap); resourcePkgs = resourcePkgMap.get(resource); calculateExportedPackages( session.getContext(), cap.getResource(), allCandidates, resourcePkgMap); mergeCandidatePackages( session.getContext(), resource, req, cap, resourcePkgMap, allCandidates, new HashMap<Resource, List<Capability>>()); calculatePackageSpaces( session, caps.get(i).getResource(), allCandidates, resourcePkgMap, usesCycleMap, cycle); blameReqs.add(req); mergeUses( session, resource, mergeUses( session, resource, mergeUses( session, resource,
calculatePackageSpaces( session, allCandidates.getWrappedHost(target), allCandidates, resourcePkgMap, new HashMap(), new HashSet()); checkPackageSpaceConsistency( session, allCandidates.getWrappedHost(target), allCandidates, resourcePkgMap, resultCache); populateWireMap( rc, allCandidates.getWrappedHost(target), resourcePkgMap, wireMap, allCandidates);
cycleMap.put(mergeCap, list); for (Capability candSourceCap : getPackageSources(session, mergeCap, resourcePkgMap)) addUsedBlame(usedPkgBlames, blame.m_cap, blameReqs2, matchingCap); mergeUses(session, current, currentPkgs, blame.m_cap, blameReqs2, matchingCap, resourcePkgMap, allCandidates, cycleMap); addUsedBlame(usedPkgBlames, blame.m_cap, blameReqs, matchingCap); mergeUses(session, current, currentPkgs, blame.m_cap, blameReqs, matchingCap, resourcePkgMap, allCandidates, cycleMap);
void start() { m_registry.registerService(m_felix, new String[] { Resolver.class.getName() }, new ResolverImpl(m_logger, 1), null); }
permutate(allCandidates, blame.m_reqs.get(0), importPermutations); permutate(allCandidates, sourceBlame.m_reqs.get(0), importPermutations); + " [" + blame.m_cap.getResource() + "] via two dependency chains.\n\nChain 1:\n" + toStringBlame(session.getContext(), allCandidates, sourceBlame) + "\n\nChain 2:\n" + toStringBlame(session.getContext(), allCandidates, blame), null, Collections.singleton(blame.m_reqs.get(0))); if (!isCompatible(session, Collections.singletonList(exportBlame), usedBlames.m_cap, resourcePkgMap)) if (checkMultiple(session, usedBlames, usedBlame, allCandidates)) + " [" + usedBlame.m_cap.getResource() + "] via the following dependency chain:\n\n" + toStringBlame(session.getContext(), allCandidates, usedBlame), null, null); if (!isCompatible(session, requirementBlames.getValue(), usedBlames.m_cap, resourcePkgMap)) if (checkMultiple(session, usedBlames, usedBlame, allCandidates)) + " [" + usedBlame.m_cap.getResource() + "] via two dependency chains.\n\nChain 1:\n" + toStringBlame(session.getContext(), allCandidates, requirementBlame)
if (!isCompatible(exportBlame, usedBlames.m_cap, resourcePkgMap)) if (checkMultiple(session, usedBlames, usedBlame, allCandidates)) if (!isCompatible(requirementBlames, usedBlames.m_cap, resourcePkgMap)) for (Blame usedBlame : usedBlames.m_blames) if (checkMultiple(session, usedBlames, usedBlame, allCandidates)) rethrow = checkPackageSpaceConsistency( session, usesPermutations, importPermutations, cap.getResource(), allCandidates, false, resourcePkgMap, resultCache);
private Map<Resource, List<Wire>> resolveDynamic() throws ResolutionException { return new ResolverImpl(new Logger(0), null).resolveDynamic(this, dynamicReq.getRevision().getWiring(), dynamicReq.getOriginal()); }
req = getDeclaredRequirement(req); for (Wire w : wires)
Map<Resource, List<Wire>> wireMap, Candidates allCandidates) Resource unwrappedResource = getDeclaredResource(resource); if (!rc.getWirings().containsKey(unwrappedResource) && !wireMap.containsKey(unwrappedResource)) populateWireMap(rc, cand.getResource(), wireMap, allCandidates); provider = getDeclaredCapability(cand).getResource(); } else { provider = getDeclaredResource(cand.getResource()); getDeclaredRequirement(req), provider, getDeclaredCapability(cand)); if (req.getNamespace().equals(PackageNamespace.PACKAGE_NAMESPACE)) if (!isPayload(req)) getDeclaredResource(fragment), req, unwrappedResource, && !wireMap.containsKey(fragment)) Wire wire = createWire(req, allCandidates); if (wire != null)
for (Capability candSourceCap : getPackageSources(mergeCap, resourcePkgMap)) if (uses == null) uses = parseUses(s); session.getUsesCache().put(s, uses); addUsedBlame(usedPkgBlames, blame.m_cap, blameReqs2, matchingCap); mergeUses(session, current, currentPkgs, blame.m_cap, blameReqs2, matchingCap, resourcePkgMap, cycleMap); addUsedBlame(usedPkgBlames, blame.m_cap, blameReqs, matchingCap); mergeUses(session, current, currentPkgs, blame.m_cap, blameReqs, matchingCap, resourcePkgMap, cycleMap);