diff options
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java')
-rw-r--r-- | bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java index 90321aa1e..d58c142e6 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java @@ -600,7 +600,9 @@ final class ModuleResolver { @Override public List<Capability> findProviders(Requirement requirement) { - return findProviders0(requirement, requirement); + Requirement origReq = requirement; + Requirement lookupReq = dynamicReq == null || dynamicReq.getOriginal() != requirement ? requirement : dynamicReq; + return findProviders0(origReq, lookupReq); } private List<Capability> findProviders0(Requirement origReq, Requirement lookupReq) { @@ -846,7 +848,7 @@ final class ModuleResolver { } @Override - public Collection<Resource> getOndemandResources(Resource host) { + public Collection<Resource> findRelatedResources(Resource host) { List<ModuleCapability> hostCaps = ((ModuleRevision) host).getModuleCapabilities(HostNamespace.HOST_NAMESPACE); if (hostCaps.isEmpty()) { return Collections.emptyList(); @@ -1354,8 +1356,7 @@ final class ModuleResolver { } private Map<Resource, List<Wire>> resolveDynamic() throws ResolutionException { - List<Capability> dynamicMatches = findProviders0(dynamicReq.getOriginal(), dynamicReq); - return new ResolverImpl(new Logger(0), null).resolve(this, dynamicReq.getRevision(), dynamicReq.getOriginal(), dynamicMatches); + return new ResolverImpl(new Logger(0), null).resolveDynamic(this, dynamicReq.getRevision().getWiring(), dynamicReq.getOriginal()); } private void filterResolvable() { |