Modified OBR to correctly consider the namespace attribute when matching
capabilities to requirements. (FELIX-638)
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@678443 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java
index 1b02c27..5f30718 100644
--- a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java
+++ b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java
@@ -270,7 +270,8 @@
Capability[] caps = resource.getCapabilities();
for (int capIdx = 0; (caps != null) && (capIdx < caps.length); capIdx++)
{
- if (req.isSatisfied(caps[capIdx]))
+ if (caps[capIdx].getName().equals(req.getName())
+ && req.isSatisfied(caps[capIdx]))
{
// The requirement is already satisfied an existing
// resource, return the resource.
@@ -291,7 +292,8 @@
Capability[] caps = resources[resIdx].getCapabilities();
for (int capIdx = 0; (caps != null) && (capIdx < caps.length); capIdx++)
{
- if (req.isSatisfied(caps[capIdx]))
+ if (caps[capIdx].getName().equals(req.getName())
+ && req.isSatisfied(caps[capIdx]))
{
return resources[resIdx];
}
@@ -315,7 +317,8 @@
Capability[] caps = resources[resIdx].getCapabilities();
for (int capIdx = 0; (caps != null) && (capIdx < caps.length); capIdx++)
{
- if (req.isSatisfied(caps[capIdx]))
+ if (caps[capIdx].getName().equals(req.getName())
+ && req.isSatisfied(caps[capIdx]))
{
matchingCandidates.add(resources[resIdx]);
}
@@ -343,7 +346,8 @@
Capability[] caps = resources[resIdx].getCapabilities();
for (int capIdx = 0; (caps != null) && (capIdx < caps.length); capIdx++)
{
- if (req.isSatisfied(caps[capIdx]))
+ if (caps[capIdx].getName().equals(req.getName())
+ && req.isSatisfied(caps[capIdx]))
{
matchingCandidates.add(resources[resIdx]);
}