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 2008/10/15 18:48:48 UTC
svn commit: r704956 -
/felix/trunk/framework/src/main/java/org/apache/felix/framework/searchpolicy/R4SearchPolicyCore.java
Author: rickhall
Date: Wed Oct 15 09:48:48 2008
New Revision: 704956
URL: http://svn.apache.org/viewvc?rev=704956&view=rev
Log:
Modified the resolver to sort candidates when resolving require-bundle
dependencies. (FELIX-775)
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/searchpolicy/R4SearchPolicyCore.java
Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/searchpolicy/R4SearchPolicyCore.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/searchpolicy/R4SearchPolicyCore.java?rev=704956&r1=704955&r2=704956&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/searchpolicy/R4SearchPolicyCore.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/searchpolicy/R4SearchPolicyCore.java Wed Oct 15 09:48:48 2008
@@ -901,8 +901,8 @@
synchronized (m_factory)
{
PackageSource[] candidates = m_emptySources;
- if (req.getNamespace().equals(ICapability.PACKAGE_NAMESPACE) &&
- (((Requirement) req).getPackageName() != null))
+ if (req.getNamespace().equals(ICapability.PACKAGE_NAMESPACE)
+ && (((Requirement) req).getPackageName() != null))
{
String pkgName = ((Requirement) req).getPackageName();
IModule[] modules = (IModule[]) m_resolvedPkgIndexMap.get(pkgName);
@@ -3126,11 +3126,23 @@
{
PackageSource ps = (PackageSource) o;
+ Version thisVersion = null;
+ Version version = null;
if (m_capability.getNamespace().equals(ICapability.PACKAGE_NAMESPACE))
{
- Version thisVersion = ((Capability) m_capability).getPackageVersion();
- Version version = ((Capability) ps.m_capability).getPackageVersion();
+ thisVersion = ((Capability) m_capability).getPackageVersion();
+ version = ((Capability) ps.m_capability).getPackageVersion();
+ }
+ else if (m_capability.getNamespace().equals(ICapability.MODULE_NAMESPACE))
+ {
+ thisVersion = (Version)
+ m_capability.getProperties().get(Constants.BUNDLE_VERSION_ATTRIBUTE);
+ version = (Version)
+ ps.m_capability.getProperties().get(Constants.BUNDLE_VERSION_ATTRIBUTE);
+ }
+ if ((thisVersion != null) && (version != null))
+ {
// Sort in reverse version order.
int cmp = thisVersion.compareTo(version);
if (cmp < 0)
@@ -3550,4 +3562,4 @@
return sb.toString();
}
-}
\ No newline at end of file
+}