diff options
author | Thomas Watson | 2006-11-15 18:10:58 +0000 |
---|---|---|
committer | Thomas Watson | 2006-11-15 18:10:58 +0000 |
commit | 53a442da9be1ce60d1443e1b3d23b44e547eeb6d (patch) | |
tree | 42e950fc44ab9120000af50bf24d7b775958023b | |
parent | 4cabfd14740017f033c3509f59f967bb6c0aa231 (diff) | |
download | rt.equinox.framework-53a442da9be1ce60d1443e1b3d23b44e547eeb6d.tar.gz rt.equinox.framework-53a442da9be1ce60d1443e1b3d23b44e547eeb6d.tar.xz rt.equinox.framework-53a442da9be1ce60d1443e1b3d23b44e547eeb6d.zip |
Bug 138422 Resolver should favour packages from the JRE over the ones coming from bundles
-rw-r--r-- | bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java index bbf5ff693..7e457f8a4 100644 --- a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java +++ b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java @@ -11,8 +11,10 @@ package org.eclipse.osgi.internal.module; import java.util.*; +import org.eclipse.osgi.framework.internal.core.Constants; public class VersionHashMap extends MappedList implements Comparator { + private final String systemBundle = Constants.getInternalSymbolicName(); private ResolverImpl resolver; public VersionHashMap(ResolverImpl resolver) { @@ -101,6 +103,10 @@ public class VersionHashMap extends MappedList implements Comparator { // if the selection policy is set then use that if (resolver.getSelectionPolicy() != null) return resolver.getSelectionPolicy().compare(vs1.getBaseDescription(), vs2.getBaseDescription()); + if (systemBundle.equals(vs1.getBundle().getSymbolicName()) && !systemBundle.equals(vs2.getBundle().getSymbolicName())) + return -1; + else if (!systemBundle.equals(vs1.getBundle().getSymbolicName()) && systemBundle.equals(vs2.getBundle().getSymbolicName())) + return 1; if (vs1.getBundle().isResolved() != vs2.getBundle().isResolved()) return vs1.getBundle().isResolved() ? -1 : 1; int versionCompare = -(vs1.getVersion().compareTo(vs2.getVersion())); |