diff options
author | Thomas Watson | 2013-11-19 21:19:45 +0000 |
---|---|---|
committer | Thomas Watson | 2013-11-21 15:52:37 +0000 |
commit | 56378517e2131c04a5e5804fb27db5fd80b54dc3 (patch) | |
tree | db9d0a95f13323d467f2e54654c9f771a20d7424 | |
parent | a1bf47f33cb8e37c97b8aee5325adc4fffba0a21 (diff) | |
download | rt.equinox.framework-56378517e2131c04a5e5804fb27db5fd80b54dc3.tar.gz rt.equinox.framework-56378517e2131c04a5e5804fb27db5fd80b54dc3.tar.xz rt.equinox.framework-56378517e2131c04a5e5804fb27db5fd80b54dc3.zip |
Bug 421706 - Can't start Eclipse M3 after installing "everything"
- Fix to not wrap the identity capability
-rw-r--r-- | bundles/org.eclipse.osgi/container/src/org/apache/felix/resolver/Candidates.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/apache/felix/resolver/Candidates.java b/bundles/org.eclipse.osgi/container/src/org/apache/felix/resolver/Candidates.java index 0555ce12e..a652ddcd5 100644 --- a/bundles/org.eclipse.osgi/container/src/org/apache/felix/resolver/Candidates.java +++ b/bundles/org.eclipse.osgi/container/src/org/apache/felix/resolver/Candidates.java @@ -31,6 +31,7 @@ import java.util.Set; import java.util.TreeMap; import org.osgi.framework.Version; import org.osgi.framework.namespace.HostNamespace; +import org.osgi.framework.namespace.IdentityNamespace; import org.osgi.framework.namespace.PackageNamespace; import org.osgi.resource.Capability; import org.osgi.resource.Requirement; @@ -433,18 +434,23 @@ class Candidates { for (Capability fragCand : fragmentCands) { + String fragCandName = fragCand.getNamespace(); + if (IdentityNamespace.IDENTITY_NAMESPACE.equals(fragCandName)) { + // no need to wrap identity namespace ever + continue; + } // Only necessary for resolved fragments. Wiring wiring = rc.getWirings().get(fragCand.getResource()); if (wiring != null) { // Fragments only have host wire, so each wire represents // an attached host. - for (Wire wire : wiring.getRequiredResourceWires(null)) + for (Wire wire : wiring.getRequiredResourceWires(HostNamespace.HOST_NAMESPACE)) { // If the capability is a package, then make sure the // host actually provides it in its resolved capabilities, // since it may be a substitutable export. - if (!fragCand.getNamespace().equals(PackageNamespace.PACKAGE_NAMESPACE) + if (!fragCandName.equals(PackageNamespace.PACKAGE_NAMESPACE) || rc.getWirings().get(wire.getProvider()) .getResourceCapabilities(null).contains(fragCand)) { |