diff options
author | Thomas Watson | 2013-07-30 21:16:30 +0000 |
---|---|---|
committer | Thomas Watson | 2013-07-30 21:16:30 +0000 |
commit | dec3d5441bf405c9a71b7f48d424e00d62fb5e15 (patch) | |
tree | b08d31a6bf05cf2b175570312a871909c7e7b2db /bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java | |
parent | 9f976cb15c0b43578e65ed77bede2640d2db9f14 (diff) | |
download | rt.equinox.framework-dec3d5441bf405c9a71b7f48d424e00d62fb5e15.tar.gz rt.equinox.framework-dec3d5441bf405c9a71b7f48d424e00d62fb5e15.tar.xz rt.equinox.framework-dec3d5441bf405c9a71b7f48d424e00d62fb5e15.zip |
Bug 414065 - Shutdown raises many Framework ERRORs
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java')
-rw-r--r-- | bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java index 0a9545b8b..e6083ee0e 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java @@ -27,9 +27,9 @@ import org.eclipse.osgi.internal.container.Capabilities; import org.eclipse.osgi.internal.container.ComputeNodeOrder; import org.osgi.framework.Constants; import org.osgi.framework.Version; +import org.osgi.framework.namespace.PackageNamespace; import org.osgi.framework.wiring.BundleRevision; -import org.osgi.resource.Requirement; -import org.osgi.resource.Wire; +import org.osgi.resource.*; import org.osgi.service.resolver.Resolver; /** @@ -603,7 +603,13 @@ public class ModuleDatabase { continue; } for (ModuleWire wire : wiring.getRequiredModuleWires(null)) { - references.add(new Module[] {wire.getRequirer().getRevisions().getModule(), wire.getProvider().getRevisions().getModule()}); + ModuleRequirement req = wire.getRequirement(); + // Add all requirements that are not package requirements. + // Only add package requirements that are not dynamic + // TODO may want to consider only adding package, bundle and host requirements, other generic requirement are not that interesting + if (!PackageNamespace.PACKAGE_NAMESPACE.equals(req.getNamespace()) || !PackageNamespace.RESOLUTION_DYNAMIC.equals(req.getDirectives().get(Namespace.REQUIREMENT_RESOLUTION_DIRECTIVE))) { + references.add(new Module[] {wire.getRequirer().getRevisions().getModule(), wire.getProvider().getRevisions().getModule()}); + } } } |