You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2011/06/07 17:03:01 UTC
svn commit: r1133036 -
/felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
Author: rickhall
Date: Tue Jun 7 15:03:01 2011
New Revision: 1133036
URL: http://svn.apache.org/viewvc?rev=1133036&view=rev
Log:
Fix a bug in previous commit plus minor optimization. (FELIX-2973)
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java?rev=1133036&r1=1133035&r2=1133036&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java Tue Jun 7 15:03:01 2011
@@ -84,7 +84,7 @@ public class ResolverImpl implements Res
allCandidates.prepare(getResolvedSingletons(state));
// Record the initial candidate permutation.
- m_usesPermutations.add(allCandidates);
+ m_usesPermutations.add(allCandidates);
ResolveException rethrow = null;
@@ -692,7 +692,7 @@ public class ResolverImpl implements Res
Map<String, List<Blame>> packages = (requires)
? currentPkgs.m_requiredPkgs
: currentPkgs.m_importedPkgs;
- List<Blame> blames = currentPkgs.m_requiredPkgs.get(pkgName);
+ List<Blame> blames = packages.get(pkgName);
if (blames == null)
{
blames = new ArrayList<Blame>();
@@ -1155,41 +1155,45 @@ public class ResolverImpl implements Res
// For resolved revisions look at the wires, for resolving
// revisions look in the candidate map to determine which
// exports are substitutable.
- if (revision.getWiring() != null)
+ if (!exports.isEmpty())
{
- for (BundleWire wire : revision.getWiring().getRequiredWires(null))
+ if (revision.getWiring() != null)
{
- if (wire.getRequirement().getNamespace().equals(
- BundleCapabilityImpl.PACKAGE_NAMESPACE))
+ for (BundleWire wire : revision.getWiring().getRequiredWires(null))
{
- String pkgName = (String) wire.getCapability()
- .getAttributes().get(BundleCapabilityImpl.PACKAGE_ATTR);
- exports.remove(pkgName);
+ if (wire.getRequirement().getNamespace().equals(
+ BundleCapabilityImpl.PACKAGE_NAMESPACE))
+ {
+ String pkgName = (String) wire.getCapability()
+ .getAttributes().get(BundleCapabilityImpl.PACKAGE_ATTR);
+ exports.remove(pkgName);
+ }
}
}
- }
- else
- {
- for (BundleRequirement req : revision.getDeclaredRequirements(null))
+ else
{
- if (req.getNamespace().equals(BundleCapabilityImpl.PACKAGE_NAMESPACE))
+ for (BundleRequirement req : revision.getDeclaredRequirements(null))
{
- Set<BundleCapability> cands =
- allCandidates.getCandidates((BundleRequirementImpl) req);
- if ((cands != null) && !cands.isEmpty())
+ if (req.getNamespace().equals(BundleCapabilityImpl.PACKAGE_NAMESPACE))
{
- String pkgName = (String) cands.iterator().next()
- .getAttributes().get(BundleCapabilityImpl.PACKAGE_ATTR);
- exports.remove(pkgName);
+ Set<BundleCapability> cands =
+ allCandidates.getCandidates((BundleRequirementImpl) req);
+ if ((cands != null) && !cands.isEmpty())
+ {
+ String pkgName = (String) cands.iterator().next()
+ .getAttributes().get(BundleCapabilityImpl.PACKAGE_ATTR);
+ exports.remove(pkgName);
+ }
}
}
}
- }
- // Add all non-substituted exports to the revisions's package space.
- for (Entry<String, BundleCapability> entry : exports.entrySet())
- {
- packages.m_exportedPkgs.put(
- entry.getKey(), new Blame(entry.getValue(), null));
+
+ // Add all non-substituted exports to the revisions's package space.
+ for (Entry<String, BundleCapability> entry : exports.entrySet())
+ {
+ packages.m_exportedPkgs.put(
+ entry.getKey(), new Blame(entry.getValue(), null));
+ }
}
revisionPkgMap.put(revision, packages);