diff options
author | Thomas Watson | 2012-08-07 19:02:40 +0000 |
---|---|---|
committer | Thomas Watson | 2012-08-07 19:02:40 +0000 |
commit | 8d3e59c290937b4d14db39707f9ee61d9dedddfb (patch) | |
tree | 7bb875d035f62a558a2771d211edff87b083def9 /bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java | |
parent | 7f77483bb4a46c86a4a3104c5dee52c216cb8952 (diff) | |
download | rt.equinox.framework-8d3e59c290937b4d14db39707f9ee61d9dedddfb.tar.gz rt.equinox.framework-8d3e59c290937b4d14db39707f9ee61d9dedddfb.tar.xz rt.equinox.framework-8d3e59c290937b4d14db39707f9ee61d9dedddfb.zip |
Aggressively resolve extension bundles.
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java')
-rw-r--r-- | bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java index 23279c4f7..b36fcfb0a 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java @@ -29,7 +29,7 @@ public final class ModuleWiring implements BundleWiring { private static final RuntimePermission GET_CLASSLOADER_PERM = new RuntimePermission("getClassLoader"); //$NON-NLS-1$ private static final String DYNAMICALLY_ADDED_IMPORT_DIRECTIVE = "x.dynamically.added"; //$NON-NLS-1$ private final ModuleRevision revision; - private final List<ModuleCapability> capabilities; + private volatile List<ModuleCapability> capabilities; private volatile List<ModuleRequirement> requirements; private final Collection<String> substitutedPkgNames; private final Object monitor = new Object(); @@ -81,12 +81,16 @@ public final class ModuleWiring implements BundleWiring { * @see #getCapabilities(String) */ public List<ModuleCapability> getModuleCapabilities(String namespace) { + return getModuleCapabilities(namespace, capabilities); + } + + private List<ModuleCapability> getModuleCapabilities(String namespace, List<ModuleCapability> allCapabilities) { if (!isValid) return null; if (namespace == null) - return new ArrayList<ModuleCapability>(capabilities); + return new ArrayList<ModuleCapability>(allCapabilities); List<ModuleCapability> result = new ArrayList<ModuleCapability>(); - for (ModuleCapability capability : capabilities) { + for (ModuleCapability capability : allCapabilities) { if (namespace.equals(capability.getNamespace())) { result.add(capability); } @@ -311,6 +315,10 @@ public final class ModuleWiring implements BundleWiring { this.requiredWires = requiredWires; } + void setCapabilities(List<ModuleCapability> capabilities) { + this.capabilities = capabilities; + } + void invalidate() { ModuleLoader current; synchronized (monitor) { |